summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/Changelog2
-rw-r--r--doc/TODO2
-rw-r--r--i18n/de.po413
-rw-r--r--i18n/messages.pot360
-rw-r--r--portato/config_parser.py14
-rw-r--r--portato/gui/gtk/dialogs.py3
-rw-r--r--portato/gui/gtk/windows.py65
-rw-r--r--portato/plugin.py8
-rw-r--r--portato/session.py4
9 files changed, 477 insertions, 394 deletions
diff --git a/doc/Changelog b/doc/Changelog
index cfcd1e5..7e54e6d 100644
--- a/doc/Changelog
+++ b/doc/Changelog
@@ -4,6 +4,8 @@ next:
- added log, ebuild and changelog as tabs
- saved preferences (aka sessions)
- added scrollbars to the update window
+- handle new "use defaults" correctly
+- allowed the permanent change of a plugin status
0.8.6.2:
- changed the pipe version and use shm instead (fixes issues with kdesu)
diff --git a/doc/TODO b/doc/TODO
index d782402..1e50b4b 100644
--- a/doc/TODO
+++ b/doc/TODO
@@ -8,10 +8,8 @@ Backend:
- add pkgcore support |-> not necessairy if catapult is used
- add equo support /
-- bugs in update world
- fix for flag handling, when reverting flags (Necoro, 04/20/07: what did i mean by this?)
==> rewrite flags handling in an object oriented manner
- - new USEflag format (with the "+")
- do not alert a block, if a package blocks a version of one package which is updated to a new one not being blocked anymore
diff --git a/i18n/de.po b/i18n/de.po
index 33315e6..c24c85d 100644
--- a/i18n/de.po
+++ b/i18n/de.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Portato\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2007-11-13 23:37+0100\n"
+"PO-Revision-Date: 2008-01-14 17:13+0100\n"
"Last-Translator: René 'Necoro' Neumann <necoro@necoro.net>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -25,7 +25,7 @@ msgid "Re_load Portage"
msgstr "Aktua_lisiere Portage-Cache"
#: portato/gui/templates/portato.glade:68
-#: portato/gui/templates/portato.glade:1749
+#: portato/gui/templates/portato.glade:1750
msgid "gtk-quit"
msgstr ""
@@ -34,17 +34,17 @@ msgid "_Emerge"
msgstr "_Emerge"
#: portato/gui/templates/portato.glade:89
-#: portato/gui/templates/portato.glade:858
+#: portato/gui/templates/portato.glade:857
msgid "E_merge"
msgstr "E_merge"
#: portato/gui/templates/portato.glade:104
-#: portato/gui/templates/portato.glade:892
+#: portato/gui/templates/portato.glade:891
msgid "_Unmerge"
msgstr "_Unmerge"
#: portato/gui/templates/portato.glade:118
-#: portato/gui/templates/portato.glade:911
+#: portato/gui/templates/portato.glade:910
msgid "Update _World"
msgstr "Update _World"
@@ -66,18 +66,18 @@ msgstr "Speichere _Flags"
#: portato/gui/templates/portato.glade:187
#: portato/gui/templates/portato.glade:279
-#: portato/gui/templates/portato.glade:1724
+#: portato/gui/templates/portato.glade:1725
msgid "Emerge _Paused"
msgstr "Emerge _angehalten"
#: portato/gui/templates/portato.glade:195
#: portato/gui/templates/portato.glade:261
-#: portato/gui/templates/portato.glade:1731
+#: portato/gui/templates/portato.glade:1732
msgid "_Kill Emerge"
msgstr "_Kill Emerge"
#: portato/gui/templates/portato.glade:218
-#: portato/gui/gtk/windows.py:1026
+#: portato/gui/gtk/windows.py:967
msgid "Queue"
msgstr "Queue"
@@ -86,7 +86,7 @@ msgid "Oneshot"
msgstr "Oneshot"
#: portato/gui/templates/portato.glade:237
-#: portato/gui/gtk/windows.py:1132
+#: portato/gui/gtk/windows.py:1129
msgid "Console"
msgstr "Konsole"
@@ -114,165 +114,177 @@ msgstr "_Plugins"
msgid "gtk-find"
msgstr ""
-#: portato/gui/templates/portato.glade:463
-#: portato/gui/gtk/windows.py:545
-msgid "Installed"
-msgstr "Installiert"
-
-#: portato/gui/templates/portato.glade:476
-#: portato/gui/gtk/windows.py:676
-#: portato/gui/gtk/windows.py:679
-#: portato/gui/gtk/windows.py:682
-#: portato/gui/gtk/windows.py:774
-#: portato/gui/gtk/windows.py:777
-#: portato/gui/gtk/windows.py:784
-#: portato/gui/gtk/windows.py:788
-msgid "Masked"
-msgstr "Masked"
+#: portato/gui/templates/portato.glade:473
+msgid "<b>Installed, but not in portage anymore</b>"
+msgstr "<b>Installiert, aber nicht mehr im Portage-Tree vorhanden</b>"
-#: portato/gui/templates/portato.glade:490
-#: portato/gui/gtk/windows.py:689
-#: portato/gui/gtk/windows.py:692
-#: portato/gui/gtk/windows.py:746
-#: portato/gui/gtk/windows.py:751
-msgid "Testing"
-msgstr "Testing"
+#: portato/gui/templates/portato.glade:552
+msgid "<span foreground='red'><b>MISSING KEYWORD</b></span>"
+msgstr "<span foreground='red'><b>FEHLENDES KEYWORD</b></span>"
-#: portato/gui/templates/portato.glade:516
+#: portato/gui/templates/portato.glade:570
msgid "Mark package for installation"
msgstr "Merke das Paket zur Installation vor"
-#: portato/gui/templates/portato.glade:535
+#: portato/gui/templates/portato.glade:589
msgid "Add to E_merge Queue"
msgstr "Füge zur E_merge Queue hinzu"
-#: portato/gui/templates/portato.glade:550
+#: portato/gui/templates/portato.glade:604
msgid "Mark package for deinstallation"
msgstr "Merke das Paket zur Deinstallation vor"
-#: portato/gui/templates/portato.glade:569
+#: portato/gui/templates/portato.glade:623
msgid "Add to _Unmerge Queue"
msgstr "Füge zur _Unmerge Queue hinzu"
-#: portato/gui/templates/portato.glade:605
+#: portato/gui/templates/portato.glade:659
msgid "Re_vert"
msgstr "_Wiederherstellen"
-#: portato/gui/templates/portato.glade:631
-msgid "<span foreground='red'><b>MISSING KEYWORD</b></span>"
-msgstr "<span foreground='red'><b>FEHLENDES KEYWORD</b></span>"
+#: portato/gui/templates/portato.glade:690
+#: portato/gui/gtk/windows.py:533
+msgid "Installed"
+msgstr "Installiert"
-#: portato/gui/templates/portato.glade:710
-msgid "<b>Installed, but not in portage anymore</b>"
-msgstr "<b>Installiert, aber nicht mehr im Portage-Tree vorhanden</b>"
+#: portato/gui/templates/portato.glade:703
+#: portato/gui/gtk/windows.py:664
+#: portato/gui/gtk/windows.py:667
+#: portato/gui/gtk/windows.py:670
+#: portato/gui/gtk/windows.py:762
+#: portato/gui/gtk/windows.py:765
+#: portato/gui/gtk/windows.py:772
+#: portato/gui/gtk/windows.py:776
+msgid "Masked"
+msgstr "Masked"
-#: portato/gui/templates/portato.glade:744
+#: portato/gui/templates/portato.glade:717
+#: portato/gui/gtk/windows.py:677
+#: portato/gui/gtk/windows.py:680
+#: portato/gui/gtk/windows.py:734
+#: portato/gui/gtk/windows.py:739
+msgid "Testing"
+msgstr "Testing"
+
+#: portato/gui/templates/portato.glade:743
msgid "_Package"
msgstr "_Paket"
-#: portato/gui/templates/portato.glade:771
+#: portato/gui/templates/portato.glade:770
msgid "E_build"
msgstr "E_build"
-#: portato/gui/templates/portato.glade:799
+#: portato/gui/templates/portato.glade:798
msgid "C_hangelog"
-msgstr ""
+msgstr "C_hangelog"
-#: portato/gui/templates/portato.glade:839
+#: portato/gui/templates/portato.glade:838
msgid "Install all packages in the \"Emerge Queue\""
msgstr "Installiere alle Pakete aus der \"Emerge Queue\""
-#: portato/gui/templates/portato.glade:873
+#: portato/gui/templates/portato.glade:872
msgid "Deinstall all packages in the \"Unmerge Queue\""
msgstr "Deinstalliere alle Pakete aus der \"Unmerge Queue\""
-#: portato/gui/templates/portato.glade:910
+#: portato/gui/templates/portato.glade:909
msgid "Calculate the packages which will be installed during an \"update world\""
msgstr "Berechnet die Pakete, welche während eines \"update world\" installiert werden würden"
-#: portato/gui/templates/portato.glade:923
+#: portato/gui/templates/portato.glade:922
msgid "Remove the selected package from the queue"
msgstr "Löscht das gewählte Paket aus der Queue"
-#: portato/gui/templates/portato.glade:924
+#: portato/gui/templates/portato.glade:923
msgid "_Remove"
msgstr "_Löschen"
-#: portato/gui/templates/portato.glade:948
+#: portato/gui/templates/portato.glade:947
msgid "_Queue"
msgstr "_Queue"
-#: portato/gui/templates/portato.glade:975
+#: portato/gui/templates/portato.glade:974
msgid "_Console"
msgstr "_Konsole"
-#: portato/gui/templates/portato.glade:1009
+#: portato/gui/templates/portato.glade:1010
msgid "_Log"
msgstr "_Log"
-#: portato/gui/templates/portato.glade:1038
+#: portato/gui/templates/portato.glade:1039
msgid "Portato - A Portage GUI"
msgstr "Portato - A Portage GUI"
-#: portato/gui/templates/portato.glade:1055
+#: portato/gui/templates/portato.glade:1056
msgid "Search Results"
msgstr "Ergebnisse"
-#: portato/gui/templates/portato.glade:1095
-#: portato/gui/templates/portato.glade:1690
-#: portato/gui/templates/portato.glade:1877
+#: portato/gui/templates/portato.glade:1096
+#: portato/gui/templates/portato.glade:1691
+#: portato/gui/templates/portato.glade:1799
msgid "gtk-cancel"
msgstr ""
-#: portato/gui/templates/portato.glade:1107
+#: portato/gui/templates/portato.glade:1108
msgid "gtk-jump-to"
msgstr ""
-#: portato/gui/templates/portato.glade:1122
+#: portato/gui/templates/portato.glade:1123
msgid "gtk-ok"
msgstr ""
-#: portato/gui/templates/portato.glade:1143
+#: portato/gui/templates/portato.glade:1144
msgid "Preferences"
msgstr "Einstellungen"
-#: portato/gui/templates/portato.glade:1178
+#: portato/gui/templates/portato.glade:1179
msgid "Debug"
msgstr "Debug"
-#: portato/gui/templates/portato.glade:1191
+#: portato/gui/templates/portato.glade:1192
msgid "Browser command: "
msgstr "Browser-Befehl: "
-#: portato/gui/templates/portato.glade:1217
+#: portato/gui/templates/portato.glade:1218
msgid "<b>General Options</b>"
msgstr "<b>Allgemeine Optionen</b>"
-#: portato/gui/templates/portato.glade:1267
+#: portato/gui/templates/portato.glade:1268
msgid "<b>Update World Options</b>"
msgstr "<b>Optionen für \"update world\"</b>"
-#: portato/gui/templates/portato.glade:1295
+#: portato/gui/templates/portato.glade:1296
msgid "Sync command: "
msgstr "Sync-Befehl: "
-#: portato/gui/templates/portato.glade:1316
+#: portato/gui/templates/portato.glade:1317
msgid "<b>Sync Options</b>"
msgstr "<b>Sync Optionen</b>"
-#: portato/gui/templates/portato.glade:1357
-msgid "<u><i>Masking Keywords</i></u>"
-msgstr "<u><i>Masking Keywords</i></u>"
+#: portato/gui/templates/portato.glade:1368
+msgid "File name to use, if package.use is a directory: "
+msgstr "Zu benutzender Dateiname, wenn package.use ein Verzeichnis ist:"
-#: portato/gui/templates/portato.glade:1372
-msgid "<u><i>Testing Keywords</i></u>"
-msgstr "<u><i>Testing Keywords</i></u>"
+#: portato/gui/templates/portato.glade:1379
+msgid "Add only exact version to package.use"
+msgstr "Füge nur die exakte Paketversion zu package.keywords hinzu"
-#: portato/gui/templates/portato.glade:1387
-msgid "<u><i>Use-Flags</i></u>"
-msgstr "<u><i>Use-Flags</i></u>"
+#: portato/gui/templates/portato.glade:1392
+msgid "Add only exact version to package.keywords"
+msgstr "Füge nur die exakte Paketversion zu package.keywords hinzu"
-#: portato/gui/templates/portato.glade:1409
+#: portato/gui/templates/portato.glade:1406
+msgid "File name to use, if package.keywords is a directory: "
+msgstr "Zu benutzender Dateiname, wenn package.keywords ein Verzeichnis ist:"
+
+#: portato/gui/templates/portato.glade:1440
+msgid "File name to use, if package.mask/package.unmask is a directory: "
+msgstr "Zu benutzender Dateiname, wenn package.mask/package.unmask ein Verzeichnis ist:"
+
+#: portato/gui/templates/portato.glade:1451
+msgid "Add only exact version to package.mask/package.unmask"
+msgstr "Füge nur die exakte Paketversion zu package.mask/package.unmask hinzu"
+
+#: portato/gui/templates/portato.glade:1473
msgid ""
"<u>You may use the following placeholders:</u>\n"
"\n"
@@ -286,92 +298,64 @@ msgstr ""
"<i>$(pkg)</i>: Paketname\n"
"<i>$(cat-1)/$(cat-2)</i>: erster/zweiter Teil der Kategorie"
-#: portato/gui/templates/portato.glade:1433
-msgid "Add only exact version to package.mask/package.unmask"
-msgstr "Füge nur die exakte Paketversion zu package.mask/package.unmask hinzu"
-
-#: portato/gui/templates/portato.glade:1447
-msgid "File name to use, if package.mask/package.unmask is a directory: "
-msgstr "Zu benutzender Dateiname, wenn package.mask/package.unmask ein Verzeichnis ist:"
-
-#: portato/gui/templates/portato.glade:1481
-msgid "File name to use, if package.keywords is a directory: "
-msgstr "Zu benutzender Dateiname, wenn package.keywords ein Verzeichnis ist:"
-
-#: portato/gui/templates/portato.glade:1492
-msgid "Add only exact version to package.keywords"
-msgstr "Füge nur die exakte Paketversion zu package.keywords hinzu"
+#: portato/gui/templates/portato.glade:1499
+msgid "<u><i>Use-Flags</i></u>"
+msgstr "<u><i>Use-Flags</i></u>"
-#: portato/gui/templates/portato.glade:1505
-msgid "Add only exact version to package.use"
-msgstr "Füge nur die exakte Paketversion zu package.keywords hinzu"
+#: portato/gui/templates/portato.glade:1514
+msgid "<u><i>Testing Keywords</i></u>"
+msgstr "<u><i>Testing Keywords</i></u>"
-#: portato/gui/templates/portato.glade:1519
-msgid "File name to use, if package.use is a directory: "
-msgstr "Zu benutzender Dateiname, wenn package.use ein Verzeichnis ist:"
+#: portato/gui/templates/portato.glade:1529
+msgid "<u><i>Masking Keywords</i></u>"
+msgstr "<u><i>Masking Keywords</i></u>"
-#: portato/gui/templates/portato.glade:1545
+#: portato/gui/templates/portato.glade:1546
msgid "<b>Use Flag and Keyword Options</b>"
msgstr "<b>Use-Flag- und Keyword-Optionen</b>"
-#: portato/gui/templates/portato.glade:1563
+#: portato/gui/templates/portato.glade:1564
msgid "General"
msgstr "Allgemein"
-#: portato/gui/templates/portato.glade:1586
+#: portato/gui/templates/portato.glade:1587
msgid "Show emerge progress in title - similar to the console tab"
msgstr "Zeige den Emerge Prozess im Fenstertitel (wie im Konsolen-Tab)"
-#: portato/gui/templates/portato.glade:1602
+#: portato/gui/templates/portato.glade:1603
msgid "Enable systray"
msgstr "Aktiviere Systray"
-#: portato/gui/templates/portato.glade:1616
+#: portato/gui/templates/portato.glade:1617
msgid "Hide on minimization (only if systray is enabled)"
msgstr "Minimiere zu Systray"
-#: portato/gui/templates/portato.glade:1635
+#: portato/gui/templates/portato.glade:1636
msgid "Console Font"
msgstr "Schriftart in Konsole"
-#: portato/gui/templates/portato.glade:1645
+#: portato/gui/templates/portato.glade:1646
msgid "Chose a console font"
msgstr "Wähle eine Schriftart"
-#: portato/gui/templates/portato.glade:1672
+#: portato/gui/templates/portato.glade:1673
msgid "Visual"
msgstr "Oberfläche"
-#: portato/gui/templates/portato.glade:1699
-#: portato/gui/templates/portato.glade:1889
+#: portato/gui/templates/portato.glade:1700
+#: portato/gui/templates/portato.glade:1811
msgid "gtk-apply"
msgstr ""
-#: portato/gui/templates/portato.glade:1758
-msgid "Updateble Packages"
-msgstr "Pakete mit Updates"
-
-#: portato/gui/templates/portato.glade:1790
-msgid "_Close"
-msgstr "_Schließen"
-
-#: portato/gui/templates/portato.glade:1802
-msgid "Select _All"
-msgstr "_Alles auswählen"
-
-#: portato/gui/templates/portato.glade:1817
-msgid "_Install Selected"
-msgstr "_Installiere ausgewählte"
-
-#: portato/gui/templates/portato.glade:1838
+#: portato/gui/templates/portato.glade:1760
msgid "Plugins"
msgstr "Plugins"
-#: portato/gui/templates/portato.glade:1910
+#: portato/gui/templates/portato.glade:1832
msgid "About Portato"
msgstr "Portato"
-#: portato/gui/templates/portato.glade:1919
+#: portato/gui/templates/portato.glade:1841
msgid ""
"This software is licensed under the terms of the GPLv2.\n"
"Copyright (C) 2006-2007 René 'Necoro' Neumann <necoro@necoro.net>"
@@ -379,10 +363,26 @@ msgstr ""
"This software is licensed under the terms of the GPLv2.\n"
"Copyright (C) 2006-2007 René 'Necoro' Neumann <necoro@necoro.net>"
-#: portato/gui/templates/portato.glade:1921
+#: portato/gui/templates/portato.glade:1843
msgid "A Portage GUI"
msgstr "A Portage GUI"
+#: portato/gui/templates/portato.glade:1933
+msgid "Updateble Packages"
+msgstr "Pakete mit Updates"
+
+#: portato/gui/templates/portato.glade:1975
+msgid "_Close"
+msgstr "_Schließen"
+
+#: portato/gui/templates/portato.glade:1987
+msgid "Select _All"
+msgstr "_Alles auswählen"
+
+#: portato/gui/templates/portato.glade:2002
+msgid "_Install Selected"
+msgstr "_Installiere ausgewählte"
+
#: portato.py:47
msgid "runs pychecker (should only be used by developers)"
msgstr "Startet \"pychecker\". (Nur Entwickler sollten dies brauchen)."
@@ -444,12 +444,7 @@ msgstr "Fehler-Code: %d"
msgid "Resume-loop called while process is still running!"
msgstr "\"Resume-Loop\" aufgerufen, während Emerge noch lief. Bug!"
-#: portato/plugins/etc_proposals.py:65
-#: portato/plugins/etc_proposals.py:77
-msgid "Cannot start etc-proposals. No graphical frontend installed!"
-msgstr "Kann etc-proposals nicht starten. Kein grafisches Frontend installiert."
-
-#: portato/plugins/etc_proposals.py:79
+#: portato/plugins/etc_proposals.py:30
msgid "Cannot start etc-proposals. Not root!"
msgstr "Kann etc-proposals nicht starten. Nur root kann das!"
@@ -458,106 +453,111 @@ msgstr "Kann etc-proposals nicht starten. Nur root kann das!"
msgid "... is starting up: %s"
msgstr "... startet: %s"
-#: portato/gui/gtk/windows.py:77
+#: portato/gui/gtk/windows.py:61
+msgid "Disabled"
+msgstr "Deaktiviert"
+
+#: portato/gui/gtk/windows.py:61
+msgid "Temporarily enabled"
+msgstr "Aktiviert (temporär)"
+
+#: portato/gui/gtk/windows.py:61
+#: portato/gui/gtk/windows.py:149
+#: portato/gui/gtk/windows.py:532
+msgid "Enabled"
+msgstr "Aktiviert"
+
+#: portato/gui/gtk/windows.py:61
+msgid "Temporarily disabled"
+msgstr "Deaktiviert (temporär)"
+
+#: portato/gui/gtk/windows.py:80
msgid "Plugin"
msgstr "Plugin"
-#: portato/gui/gtk/windows.py:80
+#: portato/gui/gtk/windows.py:83
msgid "Authors"
msgstr "Entwickler"
-#: portato/gui/gtk/windows.py:85
-#: portato/gui/gtk/windows.py:131
-#: portato/gui/gtk/windows.py:544
-msgid "Enabled"
-msgstr "Aktiviert"
+#: portato/gui/gtk/windows.py:92
+msgid "Status"
+msgstr "Status"
-#: portato/gui/gtk/windows.py:132
+#: portato/gui/gtk/windows.py:150
msgid "Package"
msgstr "Paket"
-#: portato/gui/gtk/windows.py:227
+#: portato/gui/gtk/windows.py:260
msgid "Results"
msgstr "Ergebnisse"
-#: portato/gui/gtk/windows.py:366
-#, python-format
-msgid "No %(old)s language file installed. Falling back to %(new)s."
-msgstr "Keine \"%(old)s\" Syntaxdatei gefunden. Benutze \"%(new)s\"-Syntax."
-
-#: portato/gui/gtk/windows.py:371
-#, python-format
-msgid "No %(old)s language file installed. Disable highlighting."
-msgstr "Keine \"%(old)s\" Syntaxdatei gefunden. Deaktiviere Hervorhebung."
-
-#: portato/gui/gtk/windows.py:395
-#, python-format
-msgid "Error: %s"
-msgstr "Fehler: %s"
-
-#: portato/gui/gtk/windows.py:490
+#: portato/gui/gtk/windows.py:478
msgid "<no description>"
msgstr "<keine Beschreibung>"
-#: portato/gui/gtk/windows.py:522
+#: portato/gui/gtk/windows.py:510
msgid "This is an expanded use flag and cannot be selected"
msgstr "Dies ist ein \"Expanded Use Flag\" und kann daher nicht ausgewählt werden."
-#: portato/gui/gtk/windows.py:546
+#: portato/gui/gtk/windows.py:534
msgid "Flag"
msgstr "Flag"
-#: portato/gui/gtk/windows.py:547
+#: portato/gui/gtk/windows.py:535
msgid "Description"
msgstr "Beschreibung"
-#: portato/gui/gtk/windows.py:626
+#: portato/gui/gtk/windows.py:614
#, python-format
msgid "Package could not be found: %s"
msgstr "Paket konnte nicht gefunden werden: %s"
-#: portato/gui/gtk/windows.py:886
+#: portato/gui/gtk/windows.py:840
msgid "Loading Config"
msgstr "Lade Konfiguration"
-#: portato/gui/gtk/windows.py:898
-msgid "Loading Preferences"
-msgstr "Lade Einstellungen"
-
-#: portato/gui/gtk/windows.py:918
+#: portato/gui/gtk/windows.py:852
msgid "Creating Database"
msgstr "Erstelle Datenbank"
-#: portato/gui/gtk/windows.py:923
+#: portato/gui/gtk/windows.py:857
msgid "Loading Plugins"
msgstr "Lade Plugins"
-#: portato/gui/gtk/windows.py:936
+#: portato/gui/gtk/windows.py:870
+msgid "Building frontend"
+msgstr "Erstelle Oberfläche"
+
+#: portato/gui/gtk/windows.py:920
+msgid "Restoring Session"
+msgstr "Laden der Sitzung"
+
+#: portato/gui/gtk/windows.py:923
msgid "Finishing startup"
msgstr "Erledige letzte Handgriffe :)"
-#: portato/gui/gtk/windows.py:1029
+#: portato/gui/gtk/windows.py:970
msgid "Options"
msgstr "Optionen"
-#: portato/gui/gtk/windows.py:1039
+#: portato/gui/gtk/windows.py:980
msgid "Categories"
msgstr "Kategorien"
-#: portato/gui/gtk/windows.py:1069
+#: portato/gui/gtk/windows.py:1010
msgid "Packages"
msgstr "Pakete"
-#: portato/gui/gtk/windows.py:1134
+#: portato/gui/gtk/windows.py:1131
#, python-format
msgid "Console (%(title)s)"
msgstr "Konsole (%(title)s)"
-#: portato/gui/gtk/windows.py:1250
+#: portato/gui/gtk/windows.py:1247
msgid "use flags"
msgstr "Use Flags"
-#: portato/gui/gtk/windows.py:1257
+#: portato/gui/gtk/windows.py:1254
msgid "masking keywords"
msgstr "Masking Keywords"
@@ -599,7 +599,7 @@ msgstr ""
"Es sind noch Pakete in der Emerge-Queue und/oder emerge läuft noch.\n"
"Wirklich beenden?"
-#: portato/gui/gtk/dialogs.py:33
+#: portato/gui/gtk/dialogs.py:35
#, python-format
msgid ""
"%(blocked)s is blocked by %(blocks)s.\n"
@@ -608,11 +608,11 @@ msgstr ""
"%(blocks)s blockiert %(blocked)s.\n"
"Bitte deinstalliere das blockierende Paket."
-#: portato/gui/gtk/dialogs.py:39
+#: portato/gui/gtk/dialogs.py:41
msgid "You are not root."
msgstr "Du bist nicht root."
-#: portato/gui/gtk/dialogs.py:45
+#: portato/gui/gtk/dialogs.py:47
#, python-format
msgid ""
"%s seems to be masked.\n"
@@ -621,20 +621,20 @@ msgstr ""
"%s scheint maskiert zu sein.\n"
"Soll das Paket und seine Abhängigkeiten demaskiert werden?"
-#: portato/gui/gtk/dialogs.py:51
+#: portato/gui/gtk/dialogs.py:53
msgid "Package not found!"
msgstr "Paket nicht gefunden!"
-#: portato/gui/gtk/dialogs.py:58
+#: portato/gui/gtk/dialogs.py:60
#, python-format
msgid "You have changed %s. Portato will write these changes into the appropriate files. Please backup them if you think it is necessairy."
msgstr "Du hast die %s geändert. Portato wird diese Änderungen speichern. Bitte sichere die entsprechenden Dateien, wenn du es als notwendig erachtest."
-#: portato/gui/gtk/dialogs.py:64
+#: portato/gui/gtk/dialogs.py:66
msgid "You cannot remove dependencies. :)"
msgstr "Du kannst keine Abhängigkeiten löschen ;)."
-#: portato/gui/gtk/dialogs.py:70
+#: portato/gui/gtk/dialogs.py:72
msgid "Do you really want to clear the whole queue?"
msgstr "Wirklich die gesamte Queue löschen?"
@@ -677,59 +677,74 @@ msgstr ""
"Exception:\n"
"%s"
-#: portato/gui/gui_helper.py:178
+#: portato/gui/gtk/views.py:30
+#, python-format
+msgid "No %(old)s language file installed. Falling back to %(new)s."
+msgstr "Keine \"%(old)s\" Syntaxdatei gefunden. Benutze \"%(new)s\"-Syntax."
+
+#: portato/gui/gtk/views.py:35
+#, python-format
+msgid "No %(old)s language file installed. Disable highlighting."
+msgstr "Keine \"%(old)s\" Syntaxdatei gefunden. Deaktiviere Hervorhebung."
+
+#: portato/gui/gtk/views.py:59
+#, python-format
+msgid "Error: %s"
+msgstr "Fehler: %s"
+
+#: portato/gui/gui_helper.py:180
#, python-format
msgid "Catched KeyError => %s seems not to be an available category. Have you played with rsync-excludes?"
msgstr "Catched KeyError => %s scheint keine valide Kategorie zu sein. Hast du mit rsync-excludes gespielt?"
-#: portato/plugin.py:292
#: portato/plugin.py:298
-#: portato/plugin.py:303
+#: portato/plugin.py:304
+#: portato/plugin.py:309
#, python-format
msgid "%s cannot be imported."
msgstr "%s kann nicht importiert werden."
-#: portato/plugin.py:330
+#: portato/plugin.py:336
#, python-format
msgid "Accessing hook '%(hook)s' of plugin '%(plugin)s' (before)."
msgstr "Aufruf des Hooks '%(hook)s' vom Plugin '%(plugin)s'. (before)"
-#: portato/plugin.py:334
+#: portato/plugin.py:340
#, python-format
msgid "Overriding hook '%(hook)s' with plugin '%(plugin)s'."
msgstr "Überschreibe den Hook '%(hook)s' mit Plugin '%(plugin)s'."
-#: portato/plugin.py:341
+#: portato/plugin.py:347
#, python-format
msgid "Accessing hook '%(hook)s' of plugin '%(plugin)s' (after)."
msgstr "Aufruf des Hooks '%(hook)s' vom Plugin '%(plugin)s'. (after)"
-#: portato/plugin.py:361
+#: portato/plugin.py:367
#, python-format
msgid "Loading plugin '%s' failed. Invalid XML syntax."
msgstr "Laden des Plugins '%s\" fehlgeschlagen: XML-Syntax-Fehler."
-#: portato/plugin.py:364
+#: portato/plugin.py:370
#, python-format
msgid "Loading plugin '%s' failed. Plugin does not comply with schema."
msgstr "Laden des Plugins '%s\" fehlgeschlagen. Plugin erfüllt nicht das XML-Schema."
-#: portato/plugin.py:392
+#: portato/plugin.py:398
#, python-format
msgid "Plugin '%s' loaded."
msgstr "Plugin '%s' geladen."
-#: portato/plugin.py:395
+#: portato/plugin.py:401
#, python-format
msgid "Loading plugin '%(plugin)s' failed: Could not import %(import)s"
msgstr "Laden des Plugins '%(plugin)s\" fehlgeschlagen. Import von '%(import)s' nicht möglich."
-#: portato/plugin.py:460
+#: portato/plugin.py:466
#, python-format
msgid "For hook '%(hook)s' an override is already defined by plugin '%(plugin)s'!"
msgstr "Das Plugin '%(plugin)s' definiert bereits einen \"Override\" fürr den Hook '%(hook)s'!"
-#: portato/backend/portage/package.py:99
+#: portato/backend/portage/package.py:115
#: portato/backend/catapult/package.py:76
#, python-format
msgid "BUG in flags.new_masking_status. It returns '%s'"
@@ -745,12 +760,12 @@ msgstr "Es konnte kein bester Treffer für das Paket %s gefunden werden. Es sche
msgid "Found a not installed dependency: %s."
msgstr "Nicht installierte Abhängigkeit gefunden: %s"
-#: portato/backend/portage/system.py:435
+#: portato/backend/portage/system.py:439
#, python-format
msgid "Bug? No best match could be found for '%(package)s'. Needed by: '%(cpv)s'."
msgstr "Es konnte kein bester Treffer für das Paket '%(package)s' ermittelt werden (gebraucht von '%(cpv)s'). Bug?"
-#: portato/backend/flags.py:484
+#: portato/backend/flags.py:505
#, python-format
msgid "Conflicting values for masking status: %s"
msgstr "Konflikt beim Masking-Status: %s"
diff --git a/i18n/messages.pot b/i18n/messages.pot
index 6fa7f76..38f4cbc 100644
--- a/i18n/messages.pot
+++ b/i18n/messages.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-11-13 23:34+0100\n"
+"POT-Creation-Date: 2008-01-14 17:10+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -29,7 +29,7 @@ msgid "Re_load Portage"
msgstr ""
#: portato/gui/templates/portato.glade:68
-#: portato/gui/templates/portato.glade:1749
+#: portato/gui/templates/portato.glade:1750
msgid "gtk-quit"
msgstr ""
@@ -38,17 +38,17 @@ msgid "_Emerge"
msgstr ""
#: portato/gui/templates/portato.glade:89
-#: portato/gui/templates/portato.glade:858
+#: portato/gui/templates/portato.glade:857
msgid "E_merge"
msgstr ""
#: portato/gui/templates/portato.glade:104
-#: portato/gui/templates/portato.glade:892
+#: portato/gui/templates/portato.glade:891
msgid "_Unmerge"
msgstr ""
#: portato/gui/templates/portato.glade:118
-#: portato/gui/templates/portato.glade:911
+#: portato/gui/templates/portato.glade:910
msgid "Update _World"
msgstr ""
@@ -70,17 +70,17 @@ msgstr ""
#: portato/gui/templates/portato.glade:187
#: portato/gui/templates/portato.glade:279
-#: portato/gui/templates/portato.glade:1724
+#: portato/gui/templates/portato.glade:1725
msgid "Emerge _Paused"
msgstr ""
#: portato/gui/templates/portato.glade:195
#: portato/gui/templates/portato.glade:261
-#: portato/gui/templates/portato.glade:1731
+#: portato/gui/templates/portato.glade:1732
msgid "_Kill Emerge"
msgstr ""
-#: portato/gui/templates/portato.glade:218 portato/gui/gtk/windows.py:1026
+#: portato/gui/templates/portato.glade:218 portato/gui/gtk/windows.py:967
msgid "Queue"
msgstr ""
@@ -88,7 +88,7 @@ msgstr ""
msgid "Oneshot"
msgstr ""
-#: portato/gui/templates/portato.glade:237 portato/gui/gtk/windows.py:1132
+#: portato/gui/templates/portato.glade:237 portato/gui/gtk/windows.py:1129
msgid "Console"
msgstr ""
@@ -116,260 +116,260 @@ msgstr ""
msgid "gtk-find"
msgstr ""
-#: portato/gui/templates/portato.glade:463 portato/gui/gtk/windows.py:545
-msgid "Installed"
-msgstr ""
-
-#: portato/gui/templates/portato.glade:476 portato/gui/gtk/windows.py:676
-#: portato/gui/gtk/windows.py:679 portato/gui/gtk/windows.py:682
-#: portato/gui/gtk/windows.py:774 portato/gui/gtk/windows.py:777
-#: portato/gui/gtk/windows.py:784 portato/gui/gtk/windows.py:788
-msgid "Masked"
+#: portato/gui/templates/portato.glade:473
+msgid "<b>Installed, but not in portage anymore</b>"
msgstr ""
-#: portato/gui/templates/portato.glade:490 portato/gui/gtk/windows.py:689
-#: portato/gui/gtk/windows.py:692 portato/gui/gtk/windows.py:746
-#: portato/gui/gtk/windows.py:751
-msgid "Testing"
+#: portato/gui/templates/portato.glade:552
+msgid "<span foreground='red'><b>MISSING KEYWORD</b></span>"
msgstr ""
-#: portato/gui/templates/portato.glade:516
+#: portato/gui/templates/portato.glade:570
msgid "Mark package for installation"
msgstr ""
-#: portato/gui/templates/portato.glade:535
+#: portato/gui/templates/portato.glade:589
msgid "Add to E_merge Queue"
msgstr ""
-#: portato/gui/templates/portato.glade:550
+#: portato/gui/templates/portato.glade:604
msgid "Mark package for deinstallation"
msgstr ""
-#: portato/gui/templates/portato.glade:569
+#: portato/gui/templates/portato.glade:623
msgid "Add to _Unmerge Queue"
msgstr ""
-#: portato/gui/templates/portato.glade:605
+#: portato/gui/templates/portato.glade:659
msgid "Re_vert"
msgstr ""
-#: portato/gui/templates/portato.glade:631
-msgid "<span foreground='red'><b>MISSING KEYWORD</b></span>"
+#: portato/gui/templates/portato.glade:690 portato/gui/gtk/windows.py:533
+msgid "Installed"
msgstr ""
-#: portato/gui/templates/portato.glade:710
-msgid "<b>Installed, but not in portage anymore</b>"
+#: portato/gui/templates/portato.glade:703 portato/gui/gtk/windows.py:664
+#: portato/gui/gtk/windows.py:667 portato/gui/gtk/windows.py:670
+#: portato/gui/gtk/windows.py:762 portato/gui/gtk/windows.py:765
+#: portato/gui/gtk/windows.py:772 portato/gui/gtk/windows.py:776
+msgid "Masked"
msgstr ""
-#: portato/gui/templates/portato.glade:744
+#: portato/gui/templates/portato.glade:717 portato/gui/gtk/windows.py:677
+#: portato/gui/gtk/windows.py:680 portato/gui/gtk/windows.py:734
+#: portato/gui/gtk/windows.py:739
+msgid "Testing"
+msgstr ""
+
+#: portato/gui/templates/portato.glade:743
msgid "_Package"
msgstr ""
-#: portato/gui/templates/portato.glade:771
+#: portato/gui/templates/portato.glade:770
msgid "E_build"
msgstr ""
-#: portato/gui/templates/portato.glade:799
+#: portato/gui/templates/portato.glade:798
msgid "C_hangelog"
msgstr ""
-#: portato/gui/templates/portato.glade:839
+#: portato/gui/templates/portato.glade:838
msgid "Install all packages in the \"Emerge Queue\""
msgstr ""
-#: portato/gui/templates/portato.glade:873
+#: portato/gui/templates/portato.glade:872
msgid "Deinstall all packages in the \"Unmerge Queue\""
msgstr ""
-#: portato/gui/templates/portato.glade:910
+#: portato/gui/templates/portato.glade:909
msgid ""
"Calculate the packages which will be installed during an \"update world\""
msgstr ""
-#: portato/gui/templates/portato.glade:923
+#: portato/gui/templates/portato.glade:922
msgid "Remove the selected package from the queue"
msgstr ""
-#: portato/gui/templates/portato.glade:924
+#: portato/gui/templates/portato.glade:923
msgid "_Remove"
msgstr ""
-#: portato/gui/templates/portato.glade:948
+#: portato/gui/templates/portato.glade:947
msgid "_Queue"
msgstr ""
-#: portato/gui/templates/portato.glade:975
+#: portato/gui/templates/portato.glade:974
msgid "_Console"
msgstr ""
-#: portato/gui/templates/portato.glade:1009
+#: portato/gui/templates/portato.glade:1010
msgid "_Log"
msgstr ""
-#: portato/gui/templates/portato.glade:1038
+#: portato/gui/templates/portato.glade:1039
msgid "Portato - A Portage GUI"
msgstr ""
-#: portato/gui/templates/portato.glade:1055
+#: portato/gui/templates/portato.glade:1056
msgid "Search Results"
msgstr ""
-#: portato/gui/templates/portato.glade:1095
-#: portato/gui/templates/portato.glade:1690
-#: portato/gui/templates/portato.glade:1877
+#: portato/gui/templates/portato.glade:1096
+#: portato/gui/templates/portato.glade:1691
+#: portato/gui/templates/portato.glade:1799
msgid "gtk-cancel"
msgstr ""
-#: portato/gui/templates/portato.glade:1107
+#: portato/gui/templates/portato.glade:1108
msgid "gtk-jump-to"
msgstr ""
-#: portato/gui/templates/portato.glade:1122
+#: portato/gui/templates/portato.glade:1123
msgid "gtk-ok"
msgstr ""
-#: portato/gui/templates/portato.glade:1143
+#: portato/gui/templates/portato.glade:1144
msgid "Preferences"
msgstr ""
-#: portato/gui/templates/portato.glade:1178
+#: portato/gui/templates/portato.glade:1179
msgid "Debug"
msgstr ""
-#: portato/gui/templates/portato.glade:1191
+#: portato/gui/templates/portato.glade:1192
msgid "Browser command: "
msgstr ""
-#: portato/gui/templates/portato.glade:1217
+#: portato/gui/templates/portato.glade:1218
msgid "<b>General Options</b>"
msgstr ""
-#: portato/gui/templates/portato.glade:1267
+#: portato/gui/templates/portato.glade:1268
msgid "<b>Update World Options</b>"
msgstr ""
-#: portato/gui/templates/portato.glade:1295
+#: portato/gui/templates/portato.glade:1296
msgid "Sync command: "
msgstr ""
-#: portato/gui/templates/portato.glade:1316
+#: portato/gui/templates/portato.glade:1317
msgid "<b>Sync Options</b>"
msgstr ""
-#: portato/gui/templates/portato.glade:1357
-msgid "<u><i>Masking Keywords</i></u>"
+#: portato/gui/templates/portato.glade:1368
+msgid "File name to use, if package.use is a directory: "
msgstr ""
-#: portato/gui/templates/portato.glade:1372
-msgid "<u><i>Testing Keywords</i></u>"
+#: portato/gui/templates/portato.glade:1379
+msgid "Add only exact version to package.use"
msgstr ""
-#: portato/gui/templates/portato.glade:1387
-msgid "<u><i>Use-Flags</i></u>"
+#: portato/gui/templates/portato.glade:1392
+msgid "Add only exact version to package.keywords"
msgstr ""
-#: portato/gui/templates/portato.glade:1409
-msgid ""
-"<u>You may use the following placeholders:</u>\n"
-"\n"
-"<i>$(cat)</i>: category\n"
-"<i>$(pkg)</i>: package name\n"
-"<i>$(cat-1)/$(cat-2)</i>: first/second part of the category"
+#: portato/gui/templates/portato.glade:1406
+msgid "File name to use, if package.keywords is a directory: "
msgstr ""
-#: portato/gui/templates/portato.glade:1433
-msgid "Add only exact version to package.mask/package.unmask"
+#: portato/gui/templates/portato.glade:1440
+msgid "File name to use, if package.mask/package.unmask is a directory: "
msgstr ""
-#: portato/gui/templates/portato.glade:1447
-msgid "File name to use, if package.mask/package.unmask is a directory: "
+#: portato/gui/templates/portato.glade:1451
+msgid "Add only exact version to package.mask/package.unmask"
msgstr ""
-#: portato/gui/templates/portato.glade:1481
-msgid "File name to use, if package.keywords is a directory: "
+#: portato/gui/templates/portato.glade:1473
+msgid ""
+"<u>You may use the following placeholders:</u>\n"
+"\n"
+"<i>$(cat)</i>: category\n"
+"<i>$(pkg)</i>: package name\n"
+"<i>$(cat-1)/$(cat-2)</i>: first/second part of the category"
msgstr ""
-#: portato/gui/templates/portato.glade:1492
-msgid "Add only exact version to package.keywords"
+#: portato/gui/templates/portato.glade:1499
+msgid "<u><i>Use-Flags</i></u>"
msgstr ""
-#: portato/gui/templates/portato.glade:1505
-msgid "Add only exact version to package.use"
+#: portato/gui/templates/portato.glade:1514
+msgid "<u><i>Testing Keywords</i></u>"
msgstr ""
-#: portato/gui/templates/portato.glade:1519
-msgid "File name to use, if package.use is a directory: "
+#: portato/gui/templates/portato.glade:1529
+msgid "<u><i>Masking Keywords</i></u>"
msgstr ""
-#: portato/gui/templates/portato.glade:1545
+#: portato/gui/templates/portato.glade:1546
msgid "<b>Use Flag and Keyword Options</b>"
msgstr ""
-#: portato/gui/templates/portato.glade:1563
+#: portato/gui/templates/portato.glade:1564
msgid "General"
msgstr ""
-#: portato/gui/templates/portato.glade:1586
+#: portato/gui/templates/portato.glade:1587
msgid "Show emerge progress in title - similar to the console tab"
msgstr ""
-#: portato/gui/templates/portato.glade:1602
+#: portato/gui/templates/portato.glade:1603
msgid "Enable systray"
msgstr ""
-#: portato/gui/templates/portato.glade:1616
+#: portato/gui/templates/portato.glade:1617
msgid "Hide on minimization (only if systray is enabled)"
msgstr ""
-#: portato/gui/templates/portato.glade:1635
+#: portato/gui/templates/portato.glade:1636
msgid "Console Font"
msgstr ""
-#: portato/gui/templates/portato.glade:1645
+#: portato/gui/templates/portato.glade:1646
msgid "Chose a console font"
msgstr ""
-#: portato/gui/templates/portato.glade:1672
+#: portato/gui/templates/portato.glade:1673
msgid "Visual"
msgstr ""
-#: portato/gui/templates/portato.glade:1699
-#: portato/gui/templates/portato.glade:1889
+#: portato/gui/templates/portato.glade:1700
+#: portato/gui/templates/portato.glade:1811
msgid "gtk-apply"
msgstr ""
-#: portato/gui/templates/portato.glade:1758
-msgid "Updateble Packages"
+#: portato/gui/templates/portato.glade:1760
+msgid "Plugins"
msgstr ""
-#: portato/gui/templates/portato.glade:1790
-msgid "_Close"
+#: portato/gui/templates/portato.glade:1832
+msgid "About Portato"
msgstr ""
-#: portato/gui/templates/portato.glade:1802
-msgid "Select _All"
+#: portato/gui/templates/portato.glade:1841
+msgid ""
+"This software is licensed under the terms of the GPLv2.\n"
+"Copyright (C) 2006-2007 René 'Necoro' Neumann <necoro@necoro.net>"
msgstr ""
-#: portato/gui/templates/portato.glade:1817
-msgid "_Install Selected"
+#: portato/gui/templates/portato.glade:1843
+msgid "A Portage GUI"
msgstr ""
-#: portato/gui/templates/portato.glade:1838
-msgid "Plugins"
+#: portato/gui/templates/portato.glade:1933
+msgid "Updateble Packages"
msgstr ""
-#: portato/gui/templates/portato.glade:1910
-msgid "About Portato"
+#: portato/gui/templates/portato.glade:1975
+msgid "_Close"
msgstr ""
-#: portato/gui/templates/portato.glade:1919
-msgid ""
-"This software is licensed under the terms of the GPLv2.\n"
-"Copyright (C) 2006-2007 René 'Necoro' Neumann <necoro@necoro.net>"
+#: portato/gui/templates/portato.glade:1987
+msgid "Select _All"
msgstr ""
-#: portato/gui/templates/portato.glade:1921
-msgid "A Portage GUI"
+#: portato/gui/templates/portato.glade:2002
+msgid "_Install Selected"
msgstr ""
#: portato.py:47
@@ -435,11 +435,7 @@ msgstr ""
msgid "Resume-loop called while process is still running!"
msgstr ""
-#: portato/plugins/etc_proposals.py:65 portato/plugins/etc_proposals.py:77
-msgid "Cannot start etc-proposals. No graphical frontend installed!"
-msgstr ""
-
-#: portato/plugins/etc_proposals.py:79
+#: portato/plugins/etc_proposals.py:30
msgid "Cannot start etc-proposals. Not root!"
msgstr ""
@@ -448,105 +444,110 @@ msgstr ""
msgid "... is starting up: %s"
msgstr ""
-#: portato/gui/gtk/windows.py:77
-msgid "Plugin"
+#: portato/gui/gtk/windows.py:61
+msgid "Disabled"
msgstr ""
-#: portato/gui/gtk/windows.py:80
-msgid "Authors"
+#: portato/gui/gtk/windows.py:61
+msgid "Temporarily enabled"
msgstr ""
-#: portato/gui/gtk/windows.py:85 portato/gui/gtk/windows.py:131
-#: portato/gui/gtk/windows.py:544
+#: portato/gui/gtk/windows.py:61 portato/gui/gtk/windows.py:149
+#: portato/gui/gtk/windows.py:532
msgid "Enabled"
msgstr ""
-#: portato/gui/gtk/windows.py:132
-msgid "Package"
+#: portato/gui/gtk/windows.py:61
+msgid "Temporarily disabled"
msgstr ""
-#: portato/gui/gtk/windows.py:227
-msgid "Results"
+#: portato/gui/gtk/windows.py:80
+msgid "Plugin"
msgstr ""
-#: portato/gui/gtk/windows.py:366
-#, python-format
-msgid "No %(old)s language file installed. Falling back to %(new)s."
+#: portato/gui/gtk/windows.py:83
+msgid "Authors"
msgstr ""
-#: portato/gui/gtk/windows.py:371
-#, python-format
-msgid "No %(old)s language file installed. Disable highlighting."
+#: portato/gui/gtk/windows.py:92
+msgid "Status"
msgstr ""
-#: portato/gui/gtk/windows.py:395
-#, python-format
-msgid "Error: %s"
+#: portato/gui/gtk/windows.py:150
+msgid "Package"
+msgstr ""
+
+#: portato/gui/gtk/windows.py:260
+msgid "Results"
msgstr ""
-#: portato/gui/gtk/windows.py:490
+#: portato/gui/gtk/windows.py:478
msgid "<no description>"
msgstr ""
-#: portato/gui/gtk/windows.py:522
+#: portato/gui/gtk/windows.py:510
msgid "This is an expanded use flag and cannot be selected"
msgstr ""
-#: portato/gui/gtk/windows.py:546
+#: portato/gui/gtk/windows.py:534
msgid "Flag"
msgstr ""
-#: portato/gui/gtk/windows.py:547
+#: portato/gui/gtk/windows.py:535
msgid "Description"
msgstr ""
-#: portato/gui/gtk/windows.py:626
+#: portato/gui/gtk/windows.py:614
#, python-format
msgid "Package could not be found: %s"
msgstr ""
-#: portato/gui/gtk/windows.py:886
+#: portato/gui/gtk/windows.py:840
msgid "Loading Config"
msgstr ""
-#: portato/gui/gtk/windows.py:898
-msgid "Loading Preferences"
-msgstr ""
-
-#: portato/gui/gtk/windows.py:918
+#: portato/gui/gtk/windows.py:852
msgid "Creating Database"
msgstr ""
-#: portato/gui/gtk/windows.py:923
+#: portato/gui/gtk/windows.py:857
msgid "Loading Plugins"
msgstr ""
-#: portato/gui/gtk/windows.py:936
+#: portato/gui/gtk/windows.py:870
+msgid "Building frontend"
+msgstr ""
+
+#: portato/gui/gtk/windows.py:920
+msgid "Restoring Session"
+msgstr ""
+
+#: portato/gui/gtk/windows.py:923
msgid "Finishing startup"
msgstr ""
-#: portato/gui/gtk/windows.py:1029
+#: portato/gui/gtk/windows.py:970
msgid "Options"
msgstr ""
-#: portato/gui/gtk/windows.py:1039
+#: portato/gui/gtk/windows.py:980
msgid "Categories"
msgstr ""
-#: portato/gui/gtk/windows.py:1069
+#: portato/gui/gtk/windows.py:1010
msgid "Packages"
msgstr ""
-#: portato/gui/gtk/windows.py:1134
+#: portato/gui/gtk/windows.py:1131
#, python-format
msgid "Console (%(title)s)"
msgstr ""
-#: portato/gui/gtk/windows.py:1250
+#: portato/gui/gtk/windows.py:1247
msgid "use flags"
msgstr ""
-#: portato/gui/gtk/windows.py:1257
+#: portato/gui/gtk/windows.py:1254
msgid "masking keywords"
msgstr ""
@@ -587,40 +588,40 @@ msgid ""
"Do you really want to quit?"
msgstr ""
-#: portato/gui/gtk/dialogs.py:33
+#: portato/gui/gtk/dialogs.py:35
#, python-format
msgid ""
"%(blocked)s is blocked by %(blocks)s.\n"
"Please unmerge the blocking package."
msgstr ""
-#: portato/gui/gtk/dialogs.py:39
+#: portato/gui/gtk/dialogs.py:41
msgid "You are not root."
msgstr ""
-#: portato/gui/gtk/dialogs.py:45
+#: portato/gui/gtk/dialogs.py:47
#, python-format
msgid ""
"%s seems to be masked.\n"
"Do you want to unmask it and its dependencies?"
msgstr ""
-#: portato/gui/gtk/dialogs.py:51
+#: portato/gui/gtk/dialogs.py:53
msgid "Package not found!"
msgstr ""
-#: portato/gui/gtk/dialogs.py:58
+#: portato/gui/gtk/dialogs.py:60
#, python-format
msgid ""
"You have changed %s. Portato will write these changes into the appropriate "
"files. Please backup them if you think it is necessairy."
msgstr ""
-#: portato/gui/gtk/dialogs.py:64
+#: portato/gui/gtk/dialogs.py:66
msgid "You cannot remove dependencies. :)"
msgstr ""
-#: portato/gui/gtk/dialogs.py:70
+#: portato/gui/gtk/dialogs.py:72
msgid "Do you really want to clear the whole queue?"
msgstr ""
@@ -662,60 +663,75 @@ msgid ""
"%s"
msgstr ""
-#: portato/gui/gui_helper.py:178
+#: portato/gui/gtk/views.py:30
+#, python-format
+msgid "No %(old)s language file installed. Falling back to %(new)s."
+msgstr ""
+
+#: portato/gui/gtk/views.py:35
+#, python-format
+msgid "No %(old)s language file installed. Disable highlighting."
+msgstr ""
+
+#: portato/gui/gtk/views.py:59
+#, python-format
+msgid "Error: %s"
+msgstr ""
+
+#: portato/gui/gui_helper.py:180
#, python-format
msgid ""
"Catched KeyError => %s seems not to be an available category. Have you "
"played with rsync-excludes?"
msgstr ""
-#: portato/plugin.py:292 portato/plugin.py:298 portato/plugin.py:303
+#: portato/plugin.py:298 portato/plugin.py:304 portato/plugin.py:309
#, python-format
msgid "%s cannot be imported."
msgstr ""
-#: portato/plugin.py:330
+#: portato/plugin.py:336
#, python-format
msgid "Accessing hook '%(hook)s' of plugin '%(plugin)s' (before)."
msgstr ""
-#: portato/plugin.py:334
+#: portato/plugin.py:340
#, python-format
msgid "Overriding hook '%(hook)s' with plugin '%(plugin)s'."
msgstr ""
-#: portato/plugin.py:341
+#: portato/plugin.py:347
#, python-format
msgid "Accessing hook '%(hook)s' of plugin '%(plugin)s' (after)."
msgstr ""
-#: portato/plugin.py:361
+#: portato/plugin.py:367
#, python-format
msgid "Loading plugin '%s' failed. Invalid XML syntax."
msgstr ""
-#: portato/plugin.py:364
+#: portato/plugin.py:370
#, python-format
msgid "Loading plugin '%s' failed. Plugin does not comply with schema."
msgstr ""
-#: portato/plugin.py:392
+#: portato/plugin.py:398
#, python-format
msgid "Plugin '%s' loaded."
msgstr ""
-#: portato/plugin.py:395
+#: portato/plugin.py:401
#, python-format
msgid "Loading plugin '%(plugin)s' failed: Could not import %(import)s"
msgstr ""
-#: portato/plugin.py:460
+#: portato/plugin.py:466
#, python-format
msgid ""
"For hook '%(hook)s' an override is already defined by plugin '%(plugin)s'!"
msgstr ""
-#: portato/backend/portage/package.py:99
+#: portato/backend/portage/package.py:115
#: portato/backend/catapult/package.py:76
#, python-format
msgid "BUG in flags.new_masking_status. It returns '%s'"
@@ -731,13 +747,13 @@ msgstr ""
msgid "Found a not installed dependency: %s."
msgstr ""
-#: portato/backend/portage/system.py:435
+#: portato/backend/portage/system.py:439
#, python-format
msgid ""
"Bug? No best match could be found for '%(package)s'. Needed by: '%(cpv)s'."
msgstr ""
-#: portato/backend/flags.py:484
+#: portato/backend/flags.py:505
#, python-format
msgid "Conflicting values for masking status: %s"
msgstr ""
diff --git a/portato/config_parser.py b/portato/config_parser.py
index b2b47a6..30d5d28 100644
--- a/portato/config_parser.py
+++ b/portato/config_parser.py
@@ -43,8 +43,8 @@ COMMENT = [";","#"]
# precompiled expressions
TRUE = re.compile("((true)|(1)|(on)|(wahr)|(ja)|(yes))", re.I)
FALSE = re.compile("((false)|(0)|(off)|(falsch)|(nein)|(no))", re.I)
-SECTION = re.compile("\s*\[(\w+)\]\s*")
-EXPRESSION = re.compile(r"\s*(\w+)\s*[:=]\s*(.*)\s*")
+SECTION = re.compile("\s*\[(?P<name>\w(\w|[-_])*)\]\s*")
+EXPRESSION = re.compile(r"\s*(?P<key>\w(\w|[-_])*)\s*[:=]\s*(?P<value>.*)\s*")
class Value (object):
"""Class defining a value of a key.
@@ -187,7 +187,7 @@ class ConfigParser:
# look for a section
match = SECTION.search(line)
if match:
- sec = match.group(1).upper()
+ sec = match.group("name").upper()
self.sections[sec] = count
if sec != section:
self.vars[sec] = {}
@@ -197,7 +197,7 @@ class ConfigParser:
# look for an expression
match = EXPRESSION.search(line)
if match:
- val = match.group(2)
+ val = match.group("value")
# find the boolean value
bool = None
@@ -207,9 +207,9 @@ class ConfigParser:
bool = False
# insert
- key = match.group(1).lower()
+ key = match.group("key").lower()
self.vars[section][key] = Value(val, count, bool = bool)
- self.pos[count] = match.span(2)
+ self.pos[count] = match.span("value")
else: # neither comment nor empty nor expression nor section => error
error(_("Unrecognized line in configuration: %s"), line)
@@ -252,7 +252,7 @@ class ConfigParser:
if val.is_bool():
return val.boolean
- raise ValueError, "\"%s\" is not a boolean." % key
+ raise ValueError, "\"%s\" is not a boolean. (%s)" % (key, val.value)
def set (self, key, value = "", section = "MAIN"):
"""Sets a new value of a given key in a section.
diff --git a/portato/gui/gtk/dialogs.py b/portato/gui/gtk/dialogs.py
index a176a17..7bea2b8 100644
--- a/portato/gui/gtk/dialogs.py
+++ b/portato/gui/gtk/dialogs.py
@@ -15,7 +15,8 @@ from gettext import lgettext as _
def queue_not_empty_dialog():
dialog = gtk.MessageDialog(None, gtk.DIALOG_MODAL, gtk.MESSAGE_QUESTION, gtk.BUTTONS_NONE, _("There are some packages in the emerge queue and/or an emerge process is running.\nDo you really want to quit?"))
- dialog.add_buttons(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_SAVE, gtk.RESPONSE_YES, gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE)
+ #dialog.add_buttons(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_SAVE, gtk.RESPONSE_YES, gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE)
+ dialog.add_buttons(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE)
ret = dialog.run()
dialog.destroy()
return ret
diff --git a/portato/gui/gtk/windows.py b/portato/gui/gtk/windows.py
index 485f123..7ec6157 100644
--- a/portato/gui/gtk/windows.py
+++ b/portato/gui/gtk/windows.py
@@ -23,7 +23,7 @@ from gettext import lgettext as _
# our backend stuff
from ... import get_listener, plugin
-from ...helper import debug, warning, error, unique_array
+from ...helper import debug, warning, error, unique_array, N_
from ...session import Session
from ...constants import CONFIG_LOCATION, VERSION, APP_ICON
from ...backend import flags, system
@@ -56,6 +56,11 @@ class AboutWindow (AbstractDialog):
class PluginWindow (AbstractDialog):
+ statsStore = gtk.ListStore(str)
+
+ for s in (_("Disabled"), _("Temporarily enabled"), _("Enabled"), _("Temporarily disabled")):
+ statsStore.append([s])
+
def __init__ (self, parent, plugins):
"""Constructor.
@@ -67,7 +72,7 @@ class PluginWindow (AbstractDialog):
self.changedPlugins = {}
view = self.tree.get_widget("pluginList")
- self.store = gtk.ListStore(str,str,bool)
+ self.store = gtk.ListStore(str,str,str)
view.set_model(self.store)
@@ -78,25 +83,40 @@ class PluginWindow (AbstractDialog):
col = gtk.TreeViewColumn(_("Authors"), cell, text = 1)
view.append_column(col)
- bcell = gtk.CellRendererToggle()
- bcell.connect("toggled", self.cb_plugin_toggled)
- col = gtk.TreeViewColumn(_("Enabled"), bcell, active = 2)
+ ccell = gtk.CellRendererCombo()
+ ccell.set_property("model", self.statsStore)
+ ccell.set_property("text-column", 0)
+ ccell.set_property("has-entry", False)
+ ccell.set_property("editable", True)
+ ccell.connect("edited", self.cb_status_changed)
+ col = gtk.TreeViewColumn(_("Status"), ccell, markup = 2)
view.append_column(col)
- for p in (("<b>"+p.name+"</b>", p.author, p.is_enabled()) for p in plugins):
+ for p in (("<b>"+p.name+"</b>", p.author, _(self.statsStore[p.status][0])) for p in plugins):
self.store.append(p)
self.window.show_all()
- def cb_plugin_toggled (self, cell, path):
+ def cb_status_changed (self, cell, path, new_text):
path = int(path)
- self.store[path][2] = not self.store[path][2]
+
+ self.store[path][2] = "<b>%s</b>" % new_text
+
+ # convert string to constant
+ const = None
+ for num, val in enumerate(self.statsStore):
+ if val[0] == new_text:
+ const = num
+ break
- self.changedPlugins.update({self.plugins[path] : self.store[path][2]})
+ assert (const is not None)
+
+ self.changedPlugins.update({self.plugins[path] : const})
+ debug("new changed plugins: %s => %d", self.plugins[path].name, const)
def cb_ok_clicked (self, btn):
for plugin, val in self.changedPlugins.iteritems():
- plugin.set_option("disabled", not val)
+ plugin.status = val
self.close()
return True
@@ -1053,6 +1073,31 @@ class MainWindow (Window):
([("merge", "queue"), ("unmerge", "queue"), ("oneshot", "queue")], load_queue, save_queue)
])
+ def save_plugin (p):
+ def _save ():
+ stat_on = p.status >= p.STAT_ENABLED
+ hard_on = not p.get_option("disabled")
+
+ if stat_on != hard_on:
+ return int(stat_on)
+ else:
+ return ""
+ return _save
+
+ def load_plugin (p):
+ def _load(val):
+ if val:
+ p.status = int(val)*2
+
+ return _load
+
+ queue = plugin.get_plugin_queue().get_plugins()
+ if queue is None:
+ queue = []
+
+ for p in queue:
+ self.session.add_handler(([(p.name.replace(" ","_"), "plugins")], load_plugin(p), save_plugin(p)))
+
self.session.load()
def jump_to (self, cp, version = None):
diff --git a/portato/plugin.py b/portato/plugin.py
index 09f2dea..b081ecd 100644
--- a/portato/plugin.py
+++ b/portato/plugin.py
@@ -155,6 +155,8 @@ class Hook:
class Plugin:
"""A complete plugin."""
+ (STAT_DISABLED, STAT_TEMP_ENABLED, STAT_ENABLED, STAT_TEMP_DISABLED) = range(4)
+
def __init__ (self, file, name, author):
"""Constructor.
@@ -173,6 +175,8 @@ class Plugin:
self.menus = []
self.options = Options()
+ self.status = self.STAT_ENABLED
+
def parse_hooks (self, hooks):
"""Gets an <hooks>-elements and parses it.
@@ -199,6 +203,8 @@ class Plugin:
if options:
for o in options:
self.options.parse(o.getElementsByTagName("option"))
+
+ self.status = self.STAT_DISABLED if self.options.get("disabled") else self.STAT_ENABLED
def set_import (self, imports):
"""This gets a list of imports and parses them - setting the import needed to call the plugin.
@@ -234,7 +240,7 @@ class Plugin:
return self.options.set(name, value)
def is_enabled (self):
- return not self.get_option("disabled")
+ return (self.status in (self.STAT_ENABLED, self.STAT_TEMP_ENABLED))
class PluginQueue:
"""Class managing and loading the plugins."""
diff --git a/portato/session.py b/portato/session.py
index 2a049d1..0a61181 100644
--- a/portato/session.py
+++ b/portato/session.py
@@ -77,9 +77,9 @@ class Session (object):
for options, lfn, sfn in self._handlers:
vals = sfn()
- # map into tuple if necessairy
+ # map into list if necessairy
if not hasattr(vals, "__iter__"):
- vals = (vals,)
+ vals = [vals]
debug("Saving %s with values %s", options, vals)
for value, (option, section) in zip(vals, options):