summaryrefslogtreecommitdiff
path: root/misc/kdepim3/patches/patch-ao
diff options
context:
space:
mode:
Diffstat (limited to 'misc/kdepim3/patches/patch-ao')
-rw-r--r--misc/kdepim3/patches/patch-ao107
1 files changed, 107 insertions, 0 deletions
diff --git a/misc/kdepim3/patches/patch-ao b/misc/kdepim3/patches/patch-ao
new file mode 100644
index 00000000000..f3cf9bae723
--- /dev/null
+++ b/misc/kdepim3/patches/patch-ao
@@ -0,0 +1,107 @@
+$NetBSD: patch-ao,v 1.1 2006/07/24 12:43:40 markd Exp $
+
+--- korganizer/koprefsdialog.cpp.orig 2005-09-10 20:24:47.000000000 +1200
++++ korganizer/koprefsdialog.cpp
+@@ -75,6 +75,7 @@
+ #include "stdcalendar.h"
+ #include <kdepimmacros.h>
+
++#include <ktimezones.h>
+
+ KOPrefsDialogMain::KOPrefsDialogMain( QWidget *parent, const char *name )
+ : KPrefsModule( KOPrefs::instance(), parent, name )
+@@ -169,67 +170,25 @@ class KOPrefsDialogTime : public KPrefsM
+ connect( mTimeZoneCombo, SIGNAL( activated( int ) ),
+ SLOT( slotWidChanged() ) );
+
+- FILE *f;
+- char tempstring[101] = "Unknown";
+- QString sCurrentlySet(i18n("Unknown"));
++ KTimezones *db;
++ const KTimezone *sCurrentlySet;
+ int nCurrentlySet = 0;
+ QStringList list;
+
++ db = new KTimezones();
+ // read the currently set time zone
+- #if defined(USE_SOLARIS) // MARCO
+- char buf[MAXPATHLEN];
+-
+- snprintf(buf, MAXPATHLEN,
+- "/bin/fgrep 'TZ=' %s | /bin/head -n 1 | /bin/cut -b 4-",
+- INITFILE);
+-
+- if (f = popen(buf, "r"))
+- {
+- if (fgets(buf, MAXPATHLEN - 1, f) != NULL)
+- {
+- buf[strlen(buf) - 1] = '\0';
+- sCurrentlySet = QString(buf);
+- }
+- pclose(f);
+- }
+- #else
+- if((f = fopen("/etc/timezone", "r")) != NULL) {
+- // get the currently set timezone
+- fgets(tempstring, 100, f);
+- tempstring[strlen(tempstring) - 1] = '\0';
+- sCurrentlySet = QString(tempstring);
+- fclose(f);
+- }
+- #endif // !USE_SOLARIS
++ sCurrentlySet = db->local();
+
+ mTimeZoneCombo->insertItem(i18n("[No selection]"));
+
+ // Read all system time zones
+- #if defined(USE_SOLARIS) // MARCO
+- snprintf(buf, MAXPATHLEN,
+- "/bin/find %s \\( -name src -prune \\) -o -type f -print | /bin/cut -b %d-",
+- ZONEINFODIR, strlen(ZONEINFODIR) + 2);
+-
+- if (f = popen(buf, "r"))
+- {
+- while(fgets(buf, MAXPATHLEN - 1, f) != NULL)
+- {
+- buf[strlen(buf) - 1] = '\0';
+- list.append(buf);
+- }
+- pclose(f);
+- }
+-
+- #else
+- f = popen("grep -e ^[^#] /usr/share/zoneinfo/zone.tab | cut -f 3","r");
+- if (!f) return;
+- while(fgets(tempstring, 100, f) != NULL) {
+- tempstring[strlen(tempstring)-1] = '\0';
+- list.append(i18n(tempstring));
+- tzonenames << tempstring;
++ const KTimezones::ZoneMap zones = db->allZones();
++ for (KTimezones::ZoneMap::ConstIterator it = zones.begin(); it != zones.end(); ++it)
++ {
++ const KTimezone *zone = it.data();
++ list.append(zone->name());
++ tzonenames << zone->name();
+ }
+- pclose(f);
+- #endif // !USE_SOLARIS
+ list.sort();
+
+ mTimeZoneCombo->insertStringList(list);
+@@ -237,7 +196,7 @@ class KOPrefsDialogTime : public KPrefsM
+ // find the currently set time zone and select it
+ for ( int i = 0; i < mTimeZoneCombo->count(); ++i )
+ {
+- if (mTimeZoneCombo->text(i) == sCurrentlySet)
++ if (mTimeZoneCombo->text(i) == sCurrentlySet->name())
+ {
+ nCurrentlySet = i;
+ break;
+@@ -246,6 +205,7 @@ class KOPrefsDialogTime : public KPrefsM
+
+ mTimeZoneCombo->setCurrentItem(nCurrentlySet);
+ QWhatsThis::add( mTimeZoneCombo, whatsThis );
++ delete db;
+
+ // holiday region selection
+ QHBox *holidayRegBox = new QHBox( topFrame );