summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt6
-rw-r--r--bin/kdepim/pwmanager/germantranslation.txt353
-rw-r--r--korganizer/kolistview.cpp3
-rw-r--r--pwmanager/pwmanager/main.cpp2
-rw-r--r--pwmanager/pwmanager/pwminit.cpp5
5 files changed, 366 insertions, 3 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt
index 23ff53c..5c36415 100644
--- a/bin/kdepim/WhatsNew.txt
+++ b/bin/kdepim/WhatsNew.txt
@@ -1,55 +1,61 @@
Info about the changes in new versions of KDE-Pim/Pi
********** VERSION 1.9.19 ************
Added a lot of missing translations to KA/Pi,
added some missing translations to KO/Pi and OM/Pi.
+Fixed some minor problems in KA/Pi + KO/Pi.
+
+Fixed a crash when closing PwM/Pi.
+Added German translation for PwM/Pi.
+
+
********** VERSION 1.9.18 ************
FYI: The VERSION 1.9.17 was a testing release only.
Please read the changelog of VERSION 1.9.17 as well.
Cleaned up the syncing config dialog.
Added sync config options for date range for events.
Added sync config options for filters on incoming data.
Added sync config options for filters on outgoing data.
Please read the updated SyncHowTo about the new filter settings.
These filter settings make it now possible to sync with shared
calendars without writing back private or confidential data
(via the outgoing filters).
To sync only with particular parts of a shared calendar,
the incoming filter settings can be used.
An example can be found in the SyncHowTo.
Same for shared addressbooks.
Added a setting for the global kdepim data storage.
Usually the data is stored in (yourhomedir/kdepim).
Now you can set in the Global config dialog TAB, subTAB "Data storage path"
a directory where all the kdepim data is stored.
That makes it easy to save all kdepim data on a SD card on the Z, for example.
KO/Pi:
The timeedit input has a pulldown list for times.
If opened, this pulldown list should now has the right time highlighted.
Added the possibility to exclude events/todos/journals in a filter.
You should exclude journals, if you do not want them to sync with a public calendar.
KA/Pi:
Added the possibility to in/exclude public/private/confidential contacts to a filter.
If you have already defined filterrules in KA/Pi you have to adjust them all by setting the "include public/private/confidential" property manually. Sorry for that ...
Added printing of card view and details view on desktop.
Printing of list view is not working...
Added button for removing pictures in contact editor.
Parsing data fix of KA/Pi version 1.9.17.
Fixed the "parse name automatically" problem of KA/Pi version 1.9.17.
Fixed some syncing merging problems.
********** VERSION 1.9.17 ************
KO/Pi:
Fixed that tooltips were not updated after moving an item in agenda view.
Fixed a bug in sorting start date for recurring events in list view.
Changed the left button in todo viewer from "Agenda" to "Set completed".
This makes it possible to change a todo in the What's Next View quickly to the completed state without leaving the What's Next View.
diff --git a/bin/kdepim/pwmanager/germantranslation.txt b/bin/kdepim/pwmanager/germantranslation.txt
new file mode 100644
index 0000000..5941c2a
--- a/dev/null
+++ b/bin/kdepim/pwmanager/germantranslation.txt
@@ -0,0 +1,353 @@
+{ " Local Time","Ortszeit" },
+{ "Default","Voreinstellungen" },
+{ "Configure...","Konfigurieren..." },
+{ "Remove sync info","Entferne Sync Info" },
+{ "For all profiles","Für alle Profile" },
+{ "Enable Pi-Sync","Aktiviere Pi-Sync" },
+{ "Multiple sync","Multi Sync" },
+{ "&Save","&Speichern" },
+{ "&Print...","Drucken..." },
+{ "&File","Datei" },
+{ "&Edit","Bearbeite" },
+{ "&View","Ansichten" },
+{ "&Help","Hilfe" },
+{ "Description","Beschreibungen" },
+{ "URL","URL" },
+{ "Name:","Name:" },
+{ "Documents","Dokumente" },
+{ "Files","Dateien" },
+{ "All Files","Alle Dateien" },
+{ "Name","Name" },
+{ "Size","Größe" },
+{ "Date","Datum" },
+{ "Mime Type","Mime Typ" },
+{ "Ok","Ok" },
+{ "Cancel","Abbrechen" },
+{ "1","1" },
+{ "Synchronization Preferences","Einstellungen der Synchronisationsprofile" },
+{ "Local device name:","Name dieses Gerätes:" },
+{ "New profile","Neues Profil" },
+{ "Clone profile","Klone Profil" },
+{ "Delete profile","Lösche Profil" },
+{ "Profile:","Profil:" },
+{ "Multiple Sync options","Multi Sync Optionen" },
+{ "Include in multiple ","Beziehe in mehrfach " },
+{ "calendar ","Kalender " },
+{ "addressbook ","Adressbuch " },
+{ "pwmanager","PWmanager" },
+{ " sync"," Sync ein" },
+{ "Sync algo options","Sync Ablauf Optionen" },
+{ "Ask for preferences before sync","Frage nach Synchronisationseinstellungen vor dem Syncen" },
+{ "Sync preferences","Synchronisations Einstellungen" },
+{ "Take local entry on conflict","Nimm lokalen Eintrag beim Konflikt" },
+{ "Take remote entry on conflict","Nimm fernen Eintrag beim Konflikt" },
+{ "Take newest entry on conflict","Nimm neuesten Eintrag beim Konflikt" },
+{ "Ask for every entry on conflict","Frage bei Konflikten nach" },
+{ "Force: Take local entry always","Erzwinge: Nimm immer lokalen Eintrag" },
+{ "Force: Take remote entry always","Erzwinge: Nimm immer fernen Eintrag" },
+{ "Show summary after sync","Zeige Zusammenfassung nach dem Synchronisieren" },
+{ "Apply filter when adding data to local:","Filter für das Hinzufügen von Daten zu Lokal:" },
+{ "Incoming calendar filter:","Eingehender Kalender Filter:" },
+{ "Incoming addressbook filter:","Eingehender Adressbuch Filter:" },
+{ "Write back synced data","Schreibe gesyncte Daten zurück" },
+{ "Write back options","Optionen zum Zurückschreiben" },
+{ "Write back (on remote) existing entries only","Schreibe nur existierende (auf Entfernt) Einträge zurück" },
+{ "Apply filter when adding data to remote:","Filter für das Hinzufügen von Daten zu Entfernt:" },
+{ "Outgoing calendar filter:","Ausgehender Kalender Filter:" },
+{ "Outgoing addressbook filter:","Ausgehender Adressbuch Filter:" },
+{ "Write back (calendar) entries for time period only","Schreibe nur Kalender Einträge für Zeitspanne zurück" },
+{ "Time period","Zeitspanne" },
+{ "From ","Von " },
+{ " weeks in the past to "," Wochen in der Vergangenheit bis zu " },
+{ " weeks in the future "," Wochen in der Zukunft " },
+{ "Profile kind","Profil Art" },
+{ "Local file","Lokale Datei" },
+{ "Pi-Sync ( direct Kx/Pi to Kx/Pi sync )","Pi-Sync ( direktes Kx/Pi zu Kx/Pi sync )" },
+{ "Remote file (w down/upload command)","Entfernte Datei (via down/upload Kommando)" },
+{ "Mobile device (cell phone)","Mobiles Gerät (Handy)" },
+{ "Profile kind specific settings","Profil Art abhängige Einstellungen" },
+{ "I/O device: ","I/O device: " },
+{ "Help...","Hilfe..." },
+{ "Connection: ","Connection: " },
+{ "Model(opt.): ","Model(opt.): " },
+{ "Local file Cal:","Lokale Datei Kal:" },
+{ "Local file ABook:","Lokale Datei ABuch:" },
+{ "Local file PWMgr:","Lokale Datei PWMgr:" },
+{ "Choose...","Wähle..." },
+{ "Addressbook file (*.vcf) is used by KA/Pi","Adressbuch Datei (*.vcf) wird von KA/Pi genutzt" },
+{ "Calendar:","Kalender:" },
+{ "AddressBook:","AdressBuch:" },
+{ "PWManager:","PWManager:" },
+{ "Pre sync (download) command:","Bevor Sync (download) Kommando:" },
+{ "Local temp file:","Lokale temp Datei:" },
+{ "Post sync (upload) command:","Nach Sync (upload) Kommando:" },
+{ "Addressbook file is used by KA/Pi","Adressbuch Datei wird von KA/Pi genutzt" },
+{ "Fill in default values for:","Setze Beispiel Werte ein für:" },
+{ "ssh/scp","ssh/scp" },
+{ "ftp","ftp" },
+{ "Hint: Use $PWD$ for placeholder of password!","Hinweis: Benutze $PWD$ als Platzhalter für ein Passwort!" },
+{ "Password for remote access: (could be the same for each)","Passwort für entfernten Zugriff: (kann dasselbe sein für alle)" },
+{ "Remote IP address: (could be the same for each)","Entfernte IP Adresse: (kann dasselbe sein für alle)" },
+{ "Remote port number: (should be different for each)","Entfernte Port Nummer: (Sollte für alle unterschiedlich sein)" },
+{ "command for downloading remote file to local device","Kommando zum Download der entfernten Datei zum lokalen Gerät" },
+{ "command for uploading local temp file to remote device","Kommando zum Upload der lokalen temp. Datei zum entfernten Gerät" },
+{ "No Filter","Kein Filter" },
+{ "KO/Pi config error","KO/Pi Konfig. Fehler" },
+{ "Local device name undefined!\nPlease define device name!","Name dieses Gerätes undefiniert!\nBitte Namen angeben!" },
+{ "Multiple profiles with same name!\nPlease use unique profile names!","Mehrere Profile mit demselben Namen!\nBitte verschiedene Namen benutzen!" },
+{ "Configure","Konfiguriere" },
+{ "Apply","Anwenden" },
+{ "None","Kein" },
+{ "Global","Allgemein" },
+{ "Email","E-Mail" },
+{ "Phone","Telefon" },
+{ "SMS","SMS" },
+{ "Fax","Fax" },
+{ "Pager","Pager" },
+{ "SIP","SIP" },
+{ "Language:(needs restart)","Sprache:(Neustart)" },
+{ "English","English" },
+{ "German","Deutsch" },
+{ "French","Französisch" },
+{ "Italian","Italienisch" },
+{ "User defined (usertranslation.txt)","Benutzerdef. (usertranslation.txt)" },
+{ "Language","Sprache" },
+{ "Time Format(nr):","Zeit Format(nr):" },
+{ "24:00","24:00" },
+{ "12:00am","12:00am" },
+{ "Week starts on Sunday","Woche beginnt Sonntags" },
+{ "Time Format","Zeit Format" },
+{ "Date Format:","Datums Format:" },
+{ "24.03.2004 (%d.%m.%Y|%A %d %B %Y)","24.03.2004 (%d.%m.%Y|%A %d %B %Y)" },
+{ "03.24.2004 (%m.%d.%Y|%A %B %d %Y)","03.24.2004 (%m.%d.%Y|%A %B %d %Y)" },
+{ "2004-03-24 (%Y-%m-%d|%A %Y %B %d)","2004-03-24 (%Y-%m-%d|%A %Y %B %d)" },
+{ "User defined","Benutzerdefiniert" },
+{ "User long date:","Format langes Datum:" },
+{ "User short date:","Format kurzes Datum:" },
+{ "Monday 19 April 2004: %A %d %B %Y","Monday 19 April 2004: %A %d %B %Y" },
+{ "Mon 19.04.04: %a %d.%m.%y","Mon 19.04.04: %a %d.%m.%y" },
+{ "Mon, 19.Apr.04: %a, %d.%b.%y","Mon, 19.Apr.04: %a, %d.%b.%y" },
+{ "Date Format","Datums Format" },
+{ "Timezone:","Zeitzone:" },
+{ "Add 30 min to selected Timezone","Addiere 30 min zur Zeitzone" },
+{ "Timezone has daylight saving","Zeitzone hat Sommerzeit" },
+{ "Actual start and end is the\nsunday before this date.","Tatsächlicher Beginn/Ende ist der\nSonntag vor diesem Datum!" },
+{ "The year in the date is ignored.","Das Jahr vom Datum wird ignoriert." },
+{ "Daylight start:","Sommerzeit Beginn:" },
+{ "Mon","Mo" },
+{ "Tue","Di" },
+{ "Wed","Mi" },
+{ "Thu","Do" },
+{ "Fri","Fr" },
+{ "Sat","Sa" },
+{ "Sun","So" },
+{ "January","Januar" },
+{ "February","Februar" },
+{ "March","März" },
+{ "April","April" },
+{ "May","Mai" },
+{ "June","Juni" },
+{ "July","July" },
+{ "August","August" },
+{ "September","September" },
+{ "October","October" },
+{ "November","November" },
+{ "December","Dezember" },
+{ "tomorrow","Morgen" },
+{ "today","Heute" },
+{ "yesterday","Gestern" },
+{ "Monday","Montag" },
+{ "Tuesday","Dienstag" },
+{ "Wednesday","Mittwoch" },
+{ "Thursday","Donnerstag" },
+{ "Friday","Freitag" },
+{ "Saturday","Samstag" },
+{ "Sunday","Sonntag" },
+{ "Daylight end:","Sommerzeit Ende:" },
+{ "Time Zone","Zeit Zone" },
+{ "Used Mail Client","Benutzter Mail Client" },
+{ "Channel:","Channel:" },
+{ "Message:","Message:" },
+{ "Parameters:","Parameter:" },
+{ "HINT: Delimiter=; Name=%1,Email=%2","Hinweis: Begrenzer=; Name=%1,Email=%2" },
+{ "extra Message:","extra Message:" },
+{ "extra Parameters:","extra Parameter:" },
+{ "HINT: Emails=%1,Attachments=%2","Hinweis: Emails=%1,Attachments=%2" },
+{ "External Apps.","Externe Appl." },
+{ "Your current storage dir is:\n%1\nYour mail is stored in:\n(storagedir)/apps/kopiemail/localmail","Ihr gerade genutztes Speicherverzeichnis ist:\n%1\nIhre Mail wird gespeichert in:\n(speicherverzeichnis)/apps/kopiemail/localmail" },
+{ "<b>Set new data storage dir:</b>","<b>Setze neues Datenspeicherverzeichnis:</b>" },
+{ "Not existing dirs are created automatically","Nicht existierende Verzeichnisse werden erstellt" },
+{ "Save settings","Speichere Einstellungen" },
+{ "Save standard","Speichere Standard" },
+{ "<b>New settings are used\nafter a restart</b>","<b>Neue Einstellungen werden nach\neinem Neustart genutzt</b>" },
+{ "The settings of the storage\ndir is saved in the file\n%1","Die Einstellungen des Speicherverzeichnisses\nwerden in folgender Datei gespeichert:\n%1" },
+{ "Data storage path","Daten Speicherpfad" },
+{ "Used %1 Client","Benutzer %1 Client" },
+{ "No email client installed","Keine Email Client installiert" },
+{ "Userdefined email client","Benutzerdef. Email Client" },
+{ "OM/Pi email client","OM/Pi Email Client" },
+{ "URL:","URL:" },
+{ "No","Nein" },
+{ "Yes","Ja" },
+{ "Untitled","Unbenannt" },
+{ "&New","&Neu" },
+{ "&Open","&Öffne" },
+{ "&Close","Schließen" },
+{ "Save &as...","Speichere &als..." },
+{ "&Text-file...","&Text-Datei..." },
+{ "&Gpasman / Kpasman ...","&Gpasman / Kpasman ..." },
+{ "&CSV (Comma Separated Value) ...","&CSV (Komma getrennte Werte) ..." },
+{ "E&xport","E&xport" },
+{ "I&mport","I&mport" },
+{ "&Quit","Beenden" },
+{ "&Add password","&Passwort hinzufügen" },
+{ "&Delete","Lösche" },
+{ "Change &Master Password","Ändere &Master Passwort" },
+{ "&Manage","Verwalte" },
+{ "&Find","&Finde" },
+{ "&Lock all entries","Sperre alle Einträge" },
+{ "&Deep-lock all entries","Sperre total alle Einträge" },
+{ "&Unlock all entries","Entsperre alle Einträge" },
+{ "&Configure...","Konfiguriere..." },
+{ "&Options","&Optionen" },
+{ "C&ategories...","K&ategorien..." },
+{ "&Sync","&Sync" },
+{ "&License","&Lizenz" },
+{ "&Faq","&Faq" },
+{ "&About PwManager","Über PwManager" },
+{ "&Sync HowTo","&Sync HowTo" },
+{ "&What's New","Was ist neu?" },
+{ "New","Neu" },
+{ "Open","Öffnen" },
+{ "Save","Speichern" },
+{ "Save as","Speichern als" },
+{ "Print...","Drucke..." },
+{ "Add password","Passwort hinzufügen" },
+{ "Edit password","Passwort ändern" },
+{ "Delete password","Passwort löschen" },
+{ "Find entry","Finde Eintrag" },
+{ "Lock all entries","Sperre alle Einträge" },
+{ "Deep-Lock all entries","Sperre total alle Einträge" },
+{ "Unlock all entries","Entsperre alle Einträge" },
+{ "Categories:","Kategorien:" },
+{ "&Rename","&Umbenennen" },
+{ "Username","Benutzername" },
+{ "Password","Passwort" },
+{ "Launcher","Launcher" },
+{ "copy password to clipboard","Kopiere Passwort ins Clipboard" },
+{ "copy username to clipboard","Kopiere Benutzername ins Clipboard" },
+{ "copy description to clipboard","Kopiere Beschreibung ins Clipboard" },
+{ "copy url to clipboard","Kopiere URL ins Clipboard" },
+{ "copy launcher to clipboard","Kopiere Launcher ins Clipboard" },
+{ "copy comment to clipboard","Kopiere Kommentare ins Clipboard" },
+{ "Execute "Launcher"",""Launcher" ausführen" },
+{ "Go to "URL"","Gehe zu "URL"" },
+{ "Ready.","Fertig." },
+{ "password filename(*.pwm)","passwort dateiname(*.pwm)" },
+{ "File error","Datei Fehler" },
+{ "Could not read file!","Kann Datei nicht lesen!" },
+{ "Master-password","Master-Passwort" },
+{ "Please enter the master-password:","Bitter Master-Passwort eingeben:" },
+{ "Wrong master-password!\nPlease try again.","Falsches Master-Passwort!\nBitte erneut versuchen." },
+{ "password error","Passwort Fehler" },
+{ "Successfully opened file.","Datei erfolgreich geöffnet." },
+{ "DEEP-LOCKED","DEEP-LOCKED" },
+{ "This file is DEEP-LOCKED!\nThat means all data has been encrypted\nand written out to the file. If you want\nto see the entries, please UNLOCK the file.\nWhile unlocking, you will be prompted for the\nmaster-password or the key-card.","This file is DEEP-LOCKED!\nThat means all data has been encrypted\nand written out to the file. If you want\nto see the entries, please UNLOCK the file.\nWhile unlocking, you will be prompted for the\nmaster-password or the key-card." },
+{ "<LOCKED>","<GESPERRT>" },
+{ "To unlock click the icon on the left.","Zum Entsperren klicke auf das linke Icon." },
+{ "PwManager","PwManager" },
+{ "Window-style:","Window-style:" },
+{ "Category on top","Kategorien oben" },
+{ "Category-list left/top","Kategorien links oben" },
+{ "<b>Font for Password entries:</b>","<b>Schrift für Passwort Einträge:</b>" },
+{ "Font:","Schriftart:" },
+{ "Compression:","Kompression:" },
+{ "gzip","gzip" },
+{ "Encryption:","Verschlüsselung:" },
+{ "Blowfish (128 bit)","Blowfish (128 bit)" },
+{ "AES-128, Rijndael (128 bit)","AES-128, Rijndael (128 bit)" },
+{ "AES-192, Rijndael (192 bit)","AES-192, Rijndael (192 bit)" },
+{ "AES-256, Rijndael (256 bit)","AES-256, Rijndael (256 bit)" },
+{ "Triple-DES (168 bit)","Triple-DES (168 bit)" },
+{ "Twofish (256 bit)","Twofish (256 bit)" },
+{ "Twofish-128 (128 bit)","Twofish-128 (128 bit)" },
+{ "Hashing:","Hashing:" },
+{ "SHA-160, SHA1 (160 bit)","SHA-160, SHA1 (160 bit)" },
+{ "SHA-256 (256 bit)","SHA-256 (256 bit)" },
+{ "SHA-384 (384 bit)","SHA-384 (384 bit)" },
+{ "SHA-512 (512 bit)","SHA-512 (512 bit)" },
+{ "MD5 (128 bit)","MD5 (128 bit)" },
+{ "RIPE-MD-160 (160 bit)","RIPE-MD-160 (160 bit)" },
+{ "Tiger (192 bit)","Tiger (192 bit)" },
+{ "Permissions:","Zugriffsrechte:" },
+{ "Make backup before saving","Mache Backup vor dem Speichern" },
+{ "Password timeout\n(timeout to hold password in\nmemory,so you don't have to\nre-enter it,if you\nalready have entered it)\n[set to 0 to disable]:","Passwort Timeout\n(Timeout um das Passwort\nim Speicher zu halten,\nso dass es nicht noch mal\neingegeben werden muß.)\n[Setze auf 0 zum deaktivieren]:" },
+{ "Auto-lock timeout\n(auto lock document after this\namount of seconds)\n[set to 0 to disable]:","(Total-)Sperr-Timeout\n(Sperre Dokument total nach\ndieser Anzahl Sekunden)\n[Setze auf 0 zum deaktivieren]:" },
+{ "deep-lock on autolock","Sperre total beim Sperr-Timeout" },
+{ "open deeplocked","Öffne total gesperrt" },
+{ "Favourite browser:","Bevorzugter Browser:" },
+{ "Favourite x-terminal:","Bevorzugtes x-terminal:" },
+{ "Open document with passwords unlocked","Öffne Dokument mit Passwort ungesperrt" },
+{ "Look && feel","Aussehen" },
+{ "File","Datei" },
+{ "Timeout","Timeout" },
+{ "Autostart","Autostart" },
+{ "External apps","Externe Applik." },
+{ "Miscellaneous","Verschiedenes" },
+{ "+01:00 Europe/Oslo(CET)","+01:00 Europe/Oslo(CET)" },
+{ "edit category descriptions","Ändrere Kategoriebeschreibungen" },
+{ "Close","Schließen" },
+{ "Category:","Category:" },
+{ "Text1 (Description):","Text1 (Beschreibung):" },
+{ "Text2 (Username):","Text2 (Benutzername):" },
+{ "Text3 (Password):","Text3 (Passwort):" },
+{ "edit/add a password entry","Ändere/hinzufüge Passwort Eintrag" },
+{ "Description:","Beschreibung:" },
+{ "Username:","Benutzername:" },
+{ "Password:","Passwort:" },
+{ "&Reveal","&Offen zeigen" },
+{ "&Generate","&Generiere" },
+{ "&Password","&Passwort" },
+{ "&Comments","Kommentare" },
+{ "Launcher:","Launcher:" },
+{ "$d = Description","$d = Beschreibung" },
+{ "$n = Username","$n = Benutzername" },
+{ "$c = Comment","$c = Kommentar" },
+{ "$u = URL","$u = URL" },
+{ "$p = Password","$p = Passwort" },
+{ "&Launcher","&Launcher" },
+{ "Password generator","Passwort Generator" },
+{ "Character set:","Buchstaben Set:" },
+{ "Lowercase (abc)","Klein (abc)" },
+{ "Uppercase (ABC)","Groß (ABC)" },
+{ "Numbers (123)","Nummmern (123)" },
+{ "Special characters:","Spezielle Buchstaben:" },
+{ "Spaces (blank characters)","Leerzeichen" },
+{ "User defined:","Benutzer definiert:" },
+{ "Password Length:","Passwort Länge:" },
+{ "Enable Filtering to get better passwords","Enable Filtering to get better passwords" },
+{ "no password","Kein Passwort" },
+{ "Sorry, you haven't set a password.","Sorry, Sie haben kein Passwort angegeben." },
+{ "not saved, yet","not saved, yet" },
+{ "Can't deep-lock, because the document\nhasn't been saved, yet. Please save\nto a file and try again.","Kann nicht tiefsperren, weil das\nDokument noch nicht gespeichert wurde.\nBitte speichern und noch einmal versuchen." },
+{ "Find","Finde" },
+{ "&Exact match","Genaue Übereinstimmung" },
+{ "&Case sensitive","Großschrift abhängig" },
+{ "Search in Column","Suche in Spalten" },
+{ "&Description","Beschreibung" },
+{ "C&omment","Kommentar" },
+{ "&Username","Benutzername" },
+{ "U&RL","URL" },
+{ "delete?","Löschen?" },
+{ "Do you really want to delete\nthe selected entry","Wollen Sie wirklich\nden Eintrag löschen:" },
+{ "Save?","Speichern?" },
+{ ""\nhas been modified.\nDo you want to save it?",""\nwurde geändert.\nMöchten Sie speichern?" },
+{ "The list\n "","Die Liste\n "" },
+{ "nothing to do","Nichts zu tun" },
+{ "Sorry, there's nothing to save.\nPlease first add some passwords.","Sorry, es gibt nichts zu speichern.\nBitte erst Passwörter hinzufügen." },
+{ "","" },
+{ "","" },
+{ "","" },
+{ "","" },
+{ "","" },
+
diff --git a/korganizer/kolistview.cpp b/korganizer/kolistview.cpp
index f8bfc8b..b21b419 100644
--- a/korganizer/kolistview.cpp
+++ b/korganizer/kolistview.cpp
@@ -89,185 +89,186 @@ bool ListItemVisitor::visit(Event *e)
}
if ( ! ok ) {
start =e->dtStartDateStr();
end = e->dtEndDateStr();
ds = e->dtStart().date();
de = e->dtEnd().date();
}
mItem->setText(0,e->summary());
mItem->setText(1,start);
mItem->setText(2,e->dtStartTimeStr());
mItem->setText(3,end);
mItem->setText(4,e->dtEndTimeStr());
mItem->setText(5,e->isAlarmEnabled() ? i18n("Yes") : i18n("No"));
mItem->setText(6, e->recurrence()->recurrenceText());
mItem->setText(7,"---");
mItem->setText(8,"---");
mItem->setText(9, e->cancelled() ? i18n("Yes") : i18n("No"));
mItem->setText(10,e->categoriesStr());
QString key;
QTime t = e->doesFloat() ? QTime(0,0) : e->dtStart().time();
key.sprintf("%04d%02d%02d%02d%02d",ds.year(),ds.month(),ds.day(),t.hour(),t.minute());
mItem->setSortKey(1,key);
t = e->doesFloat() ? QTime(0,0) : e->dtEnd().time();
key.sprintf("%04d%02d%02d%02d%02d",de.year(),de.month(),de.day(),t.hour(),t.minute());
mItem->setSortKey(3,key);
return true;
}
bool ListItemVisitor::visit(Todo *t)
{
mItem->setText(0,i18n("To-Do: %1").arg(t->summary()));
if (t->hasStartDate()) {
mItem->setText(1,t->dtStartDateStr());
if (t->doesFloat()) {
mItem->setText(2,"---");
} else {
mItem->setText(2,t->dtStartTimeStr());
}
} else {
mItem->setText(1,"---");
mItem->setText(2,"---");
}
mItem->setText(3,"---");
mItem->setText(4,"---");
- mItem->setText(5,"---");
+ mItem->setText(5,t->isAlarmEnabled() ? i18n("Yes") : i18n("No"));
mItem->setText(6,"---");
if (t->hasDueDate()) {
mItem->setText(7,t->dtDueDateStr());
if (t->doesFloat()) {
mItem->setText(8,"---");
} else {
mItem->setText(8,t->dtDueTimeStr());
}
} else {
mItem->setText(7,"---");
mItem->setText(8,"---");
}
mItem->setText(9, t->cancelled() ? i18n("Yes") : i18n("No"));
mItem->setText(10,t->categoriesStr());
QString key;
QDate d;
if (t->hasDueDate()) {
d = t->dtDue().date();
QTime tm = t->doesFloat() ? QTime(0,0) : t->dtDue().time();
key.sprintf("%04d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute());
mItem->setSortKey(7,key);
}
if ( t->hasStartDate() ) {
d = t->dtStart().date();
QTime tm = t->doesFloat() ? QTime(0,0) : t->dtStart().time();
key.sprintf("%04d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute());
mItem->setSortKey(1,key);
}
return true;
}
bool ListItemVisitor::visit(Journal * j)
{
QString des = j->description().left(50);
des = des.simplifyWhiteSpace ();
des.replace (QRegExp ("\\n"),"" );
des.replace (QRegExp ("\\r"),"" );
mItem->setText(0,i18n("Journal")+": "+des.left(25));
mItem->setText(1,j->dtStartDateStr());
mItem->setText(2,"---");
mItem->setText(3,"---");
mItem->setText(4,"---");
mItem->setText(5,"---");
mItem->setText(6,"---");
mItem->setText(7,j->dtStartDateStr());
mItem->setText(8,"---");
mItem->setText(9,"---");
mItem->setText(10,i18n("Last Modified: ")+ KGlobal::locale()->formatDateTime( j->lastModified() , true) );
QString key;
QDate d = j->dtStart().date();
key.sprintf("%04d%02d%02d",d.year(),d.month(),d.day());
mItem->setSortKey(1,key);
mItem->setSortKey(7,key);
return true;
}
KOListView::KOListView(Calendar *calendar, QWidget *parent,
const char *name)
: KOEventView(calendar, parent, name)
{
mActiveItem = 0;
mListView = new KOListViewListView(this);
mListView->addColumn(i18n("Summary"));
mListView->addColumn(i18n("Start Date"));
mListView->addColumn(i18n("Start Time"));
mListView->addColumn(i18n("End Date"));
mListView->addColumn(i18n("End Time"));
mListView->addColumn(i18n("Alarm")); // alarm set?
mListView->addColumn(i18n("Recurs")); // recurs?
mListView->addColumn(i18n("Due Date"));
mListView->addColumn(i18n("Due Time"));
mListView->addColumn(i18n("Cancelled"));
mListView->addColumn(i18n("Categories"));
mListView->setColumnAlignment(0,AlignLeft);
mListView->setColumnAlignment(1,AlignLeft);
mListView->setColumnAlignment(2,AlignHCenter);
mListView->setColumnAlignment(3,AlignLeft);
mListView->setColumnAlignment(4,AlignHCenter);
mListView->setColumnAlignment(5,AlignLeft);
mListView->setColumnAlignment(6,AlignLeft);
mListView->setColumnAlignment(7,AlignLeft);
mListView->setColumnAlignment(8,AlignLeft);
mListView->setColumnAlignment(9,AlignLeft);
mListView->setColumnAlignment(10,AlignLeft);
+ mListView->setColumnWidthMode(10, QListView::Manual);
int iii = 0;
for ( iii = 0; iii< 10 ; ++iii )
mListView->setColumnWidthMode( iii, QListView::Manual );
QBoxLayout *layoutTop = new QVBoxLayout(this);
layoutTop->addWidget(mListView);
mListView->setFont ( KOPrefs::instance()->mListViewFont );
mPopupMenu = eventPopup();
mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
i18n("Select all"),this,
SLOT(allSelection()),true);
mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
i18n("Deselect All"),this,
SLOT(clearSelection()),true);
mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
i18n("Delete all selected"),this,
SLOT(deleteAll()),true);
mPopupMenu->insertSeparator();
mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
i18n("Save selected to file..."),this,
SLOT(saveToFile()),true);
mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
i18n("Save Journal/Description..."),this,
SLOT(saveDescriptionToFile()),true);
mPopupMenu->insertSeparator();
mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
i18n("Add Categ. to selected..."),this,
SLOT(addCat()),true);
mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
i18n("Set Categ. for selected..."),this,
SLOT(setCat()),true);
mPopupMenu->insertSeparator();
#ifndef DESKTOP_VERSION
mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
i18n("Beam selected via IR"),this,
SLOT(beamSelected()),true);
#endif
/*
mPopupMenu = new QPopupMenu;
mPopupMenu->insertItem(i18n("Edit Event"), this,
SLOT (editEvent()));
mPopupMenu->insertItem(SmallIcon("delete"), i18n("Delete Event"), this,
SLOT (deleteEvent()));
mPopupMenu->insertSeparator();
mPopupMenu->insertItem(i18n("Show Dates"), this,
diff --git a/pwmanager/pwmanager/main.cpp b/pwmanager/pwmanager/main.cpp
index 70df15d..6e449c6 100644
--- a/pwmanager/pwmanager/main.cpp
+++ b/pwmanager/pwmanager/main.cpp
@@ -1,80 +1,81 @@
/***************************************************************************
* *
* copyright (C) 2003, 2004 by Michael Buesch *
* email: mbuesch@freenet.de *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License version 2 *
* as published by the Free Software Foundation. *
* *
***************************************************************************/
/***************************************************************************
* copyright (C) 2004 by Ulf Schenk
* This file is originaly based on version 1.0.1 of pwmanager
* and was modified to run on embedded devices that run microkde
*
* $Id$
**************************************************************************/
#ifndef PWM_EMBEDDED
#include <kcmdlineargs.h>
#include <kaboutdata.h>
#else
#include <qdir.h>
#include <kpimglobalprefs.h>
#endif
#include <klocale.h>
#include <kstandarddirs.h>
#include "pwmexception.h"
#include "pwminit.h"
+void dumpMissing();
#define LICENSE_FILE (::locate("data", "pwmanager/pwmanager_license_text"))
int PwMApplication::newInstance()
{
static bool initial = true;
if (initial) {
initial = false;
init = new PwMInit(this);
init->initializeApp();
} else {
BUG_ON(!init);
printInfo("passing parameters to old instance.");
init->handleCmdLineArgs(false);
}
return EXIT_SUCCESS;
}
static const char *description = I18N_NOOP("PwManager\n"
"The convenient way of managing passwords");
#ifndef PWM_EMBEDDED
static KCmdLineOptions options[] =
{
{ "minimized", I18N_NOOP("Windows minimized"), 0 },
{ "mintray", I18N_NOOP("Windows minimized to tray"), 0 },
{ "open-deeplocked", I18N_NOOP("Open all \"files\" deeplocked"), 0 },
{ "skip-self-test", I18N_NOOP("Don't run a self-test on startup"), 0 },
{ "+[files...]", I18N_NOOP("Files to open on startup"), 0 },
{ 0, 0, 0 }
};
#endif
#ifdef PWM_DEBUG
static void printDebugConfigureInfo()
{
cout << "================================" << endl;
cout << PROG_NAME " version " PACKAGE_VER << endl;
#ifdef CONFIG_KEYCARD
cout << "CONFIG_KEYCARD: enabled" << endl;
#else
cout << "CONFIG_KEYCARD: disabled" << endl;
#endif
#ifdef CONFIG_KWALLETIF
cout << "CONFIG_KWALLETIF: enabled" << endl;
#else
cout << "CONFIG_KWALLETIF: disabled" << endl;
@@ -166,55 +167,56 @@ int main(int argc, char *argv[])
bool exitHelp = false;
if ( argc > 1 ) {
QString command = argv[1];
if ( command == "-help" ){
printf("PWM/PI command line commands:\n");
printf(" no command: Start PWM/PI in usual way\n");
printf(" -help: This output\n");
printf(" PWM/PI is exiting now. Bye!\n");
exitHelp = true;
}
}
if ( ! exitHelp ) {
PwMApplication a(argc, argv);
KGlobal::setAppName( "pwmanager" );
#ifndef DESKTOP_VERSION
//qDebug("width %d ",QApplication::desktop()->width() );
if ( QApplication::desktop()->width() > 320 )
KGlobal::iconLoader()->setIconPath(QString(getenv("QPEDIR"))+"/pics/kdepim/pwmanager/icons22/");
else
KGlobal::iconLoader()->setIconPath(QString(getenv("QPEDIR"))+"/pics/kdepim/pwmanager/icons16/");
#else
QString fileName ;
fileName = qApp->applicationDirPath () + "/kdepim/pwmanager/icons22/";
KGlobal::iconLoader()->setIconPath(QDir::convertSeparators(fileName));
QApplication::addLibraryPath ( qApp->applicationDirPath () );
#endif
KStandardDirs::setAppDir( QDir::convertSeparators(locateLocal("data", "pwmanager")));
KPimGlobalPrefs::instance()->setGlobalConfig();
a.newInstance();
//US KAddressBookMain m ;
//US QObject::connect(&a, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & )));
/*US
#ifndef DESKTOP_VERSION
a.showMainWidget( &m );
#else
a.setMainWidget( &m );
m.resize (640, 480 );
m.show();
#endif
*/
QObject::connect( &a, SIGNAL( lastWindowClosed()), &a, SLOT (quit()));
a.exec();
+ dumpMissing();
KPimGlobalPrefs::instance()->writeConfig();
}
qDebug("PWMPI: Bye! ");
#endif
}
diff --git a/pwmanager/pwmanager/pwminit.cpp b/pwmanager/pwmanager/pwminit.cpp
index 68f3637..0cf248c 100644
--- a/pwmanager/pwmanager/pwminit.cpp
+++ b/pwmanager/pwmanager/pwminit.cpp
@@ -142,98 +142,99 @@ void PwMInit::initializeApp()
Configuration::init();
#endif
initDCOP();
initKWalletEmu();
initKeycard();
initTray();
handleCmdLineArgs();
bool openDeeplocked = false;
if (conf()->confGlobAutostartDeepLocked() ||
savedCmd.open_deeplocked)
openDeeplocked = true;
if ( false ){
// LR is not working
//if (conf()->confWndAutoMinimizeOnStart() ||
// savedCmd.minToTray) {
PwMDoc *newDoc = createDoc();
qDebug(" createDoc()");
if (!newDoc->openDocUi(newDoc,
conf()->confGlobAutoStart(),
openDeeplocked)) {
delete newDoc;
}
//US ENH for embedded devices: in the case of failure, open a document the default way
createMainWnd(conf()->confGlobAutoStart(),
openDeeplocked,
true,
0,
savedCmd.minimized);
// }
} else {
createMainWnd(conf()->confGlobAutoStart(),
openDeeplocked,
true,
0,
savedCmd.minimized);
}
runStatus = running;
}
void PwMInit::shutdownApp(int exitStatus)
{
- PwM * iii;
- while ( iii = _mainWndList.first() ) {
+ PwM * iii;;
+ while ( _mainWndList.count() ) {
+ iii = _mainWndList.first();
disconnect(iii, SIGNAL(closed(PwM *)),
this, SLOT(mainWndClosed(PwM *)));
mainWndClosed((iii));
}
printDebug(string("PwMInit::shutdownApp(")
+ tostr(exitStatus) + ") called.");
PWM_ASSERT((runStatus == running) || (runStatus == init));
runStatus = shutdown;
QApplication::exit(exitStatus);
/* The destructor of PwMInit is called when control
* leaves main()
*/
}
void PwMInit::initPosixSignalHandler()
{
signal(SIGINT, sig_handler);
signal(SIGTERM, sig_handler);
}
void PwMInit::initDCOP()
{
#ifndef PWM_EMBEDDED
_dcopClient = app->dcopClient();
_dcopClient->setNotifications(true);
#endif
}
void PwMInit::initKWalletEmu(bool forceDisable, bool forceReload)
{
#ifdef CONFIG_KWALLETIF
if (!conf()->confGlobKwalletEmu() ||
forceDisable) {
delete_ifnot_null(_kwalletEmu);
return;
}
try {
if (_kwalletEmu && forceReload)
delete_and_null(_kwalletEmu);
if (!_kwalletEmu)
_kwalletEmu = new KWalletEmu(this);
} catch (PwMException e) {
string errMsg("initializing KWallet emulation failed. ID: ");
errMsg += tostr(static_cast<int>(e.getId()));
errMsg += " err-message: ";
errMsg += e.getMessage();