diff options
author | Karel Klic <kklic@redhat.com> | 2010-03-31 15:12:52 +0200 |
---|---|---|
committer | Karel Klic <kklic@redhat.com> | 2010-03-31 15:12:52 +0200 |
commit | bbb5154ea8bdb42365f32159c24899b7e5b1b703 (patch) | |
tree | 01d8bcee52bdf40b5edaf821a334dc6dd9ac1316 | |
parent | 41d165340e8367d66719d5e306cdf55164f6b3c3 (diff) | |
parent | 5bf1aed7bbd24c27f79f63f694d4e3677a34e5f9 (diff) | |
download | abrt-bbb5154ea8bdb42365f32159c24899b7e5b1b703.tar.gz abrt-bbb5154ea8bdb42365f32159c24899b7e5b1b703.tar.xz abrt-bbb5154ea8bdb42365f32159c24899b7e5b1b703.zip |
Merge branch 'master' of ssh://git.fedorahosted.org/git/abrt
-rw-r--r-- | lib/Utils/abrt_curl.cpp | 4 | ||||
-rw-r--r-- | lib/Utils/abrt_rh_support.cpp | 13 | ||||
-rw-r--r-- | po/de.po | 244 | ||||
-rw-r--r-- | po/gu.po | 209 | ||||
-rw-r--r-- | po/nl.po | 149 | ||||
-rw-r--r-- | po/pa.po | 49 | ||||
-rw-r--r-- | po/pl.po | 125 | ||||
-rw-r--r-- | src/Applet/Makefile.am | 3 | ||||
-rw-r--r-- | src/Applet/abrt-applet.desktop.in (renamed from src/Applet/abrt-applet.desktop) | 4 | ||||
-rw-r--r-- | src/Gui/CCDump.py | 75 | ||||
-rw-r--r-- | src/Gui/CCDumpList.py | 2 | ||||
-rw-r--r-- | src/Gui/CCMainWindow.py | 187 | ||||
-rw-r--r-- | src/Gui/CC_gui_functions.py | 12 | ||||
-rw-r--r-- | src/Gui/PluginsSettingsDialog.py | 2 | ||||
-rw-r--r-- | src/Gui/ccgui.glade | 527 |
15 files changed, 1023 insertions, 582 deletions
diff --git a/lib/Utils/abrt_curl.cpp b/lib/Utils/abrt_curl.cpp index 6dc8582f..edc27124 100644 --- a/lib/Utils/abrt_curl.cpp +++ b/lib/Utils/abrt_curl.cpp @@ -135,8 +135,12 @@ curl_post(curl_post_state_t* state, const char* url, const char* data) curl_err = curl_easy_perform(handle); if (curl_err) { + VERB2 log("curl_easy_perform: error %d", (int)curl_err); if (state->flags & ABRT_CURL_POST_WANT_ERROR_MSG) + { state->curl_error_msg = check_curl_error(curl_err, "curl_easy_perform"); + VERB3 log("curl_easy_perform: error_msg: %s", state->curl_error_msg); + } goto ret; } diff --git a/lib/Utils/abrt_rh_support.cpp b/lib/Utils/abrt_rh_support.cpp index ff8ce48b..be2d3961 100644 --- a/lib/Utils/abrt_rh_support.cpp +++ b/lib/Utils/abrt_rh_support.cpp @@ -204,12 +204,21 @@ post_signature(const char* baseURL, const char* signature) strata_msg = find_header_in_curl_post_state(state, "Strata-Message:"); if (strata_msg) { - retval = xasprintf("Error (HTTP response %d): %s", + retval = xasprintf("Error (HTTP response %d): %s", http_resp_code, strata_msg); - break; + break; + } + if (state->curl_error_msg) + { + if (http_resp_code >= 0) + retval = xasprintf("Error (HTTP response %d): %s", http_resp_code, state->curl_error_msg); + else + retval = xasprintf("Error in HTTP transaction: %s", state->curl_error_msg); + break; } retval = xasprintf("Error (HTTP response %d), body:\n%s", http_resp_code, state->body); + break; } free_curl_post_state(state); @@ -15,8 +15,8 @@ msgid "" msgstr "" "Project-Id-Version: abrt.master\n" "Report-Msgid-Bugs-To: jmoskovc@redhat.com\n" -"POT-Creation-Date: 2010-03-16 19:03+0000\n" -"PO-Revision-Date: 2010-03-17 14:33+1000\n" +"POT-Creation-Date: 2010-03-30 21:29+0000\n" +"PO-Revision-Date: 2010-03-31 14:03+1000\n" "Last-Translator: sknirT omiT <moc.tahder@sknirtt>\n" "Language-Team: <de@li.org>\n" "MIME-Version: 1.0\n" @@ -101,7 +101,7 @@ msgstr "Nicht berichtet" msgid "Plugins" msgstr "Plugins" -#: ../src/Gui/ccgui.glade.h:8 ../src/Applet/CCApplet.cpp:280 +#: ../src/Gui/ccgui.glade.h:8 ../src/Applet/CCApplet.cpp:251 msgid "Report" msgstr "Bericht" @@ -145,157 +145,9 @@ msgstr "_Datei" msgid "_Help" msgstr "_Hilfe" -#: ../src/Gui/ccgui.glade.h:17 -msgid "" -"aalam@fedoraproject.org\n" -"amitakhya@fedoraproject.org\n" -"andrealafauci@fedoraproject.org\n" -"anipeter@fedoraproject.org\n" -"astur@fedoraproject.org\n" -"beckerde@fedoraproject.org\n" -"bruce89@fedoraproject.org\n" -"charnik@fedoraproject.org\n" -"chenh@fedoraproject.org\n" -"cyrushmh@fedoraproject.org\n" -"dennistobar@fedoraproject.org\n" -"dheche@fedoraproject.org\n" -"diegobz@fedoraproject.org\n" -"dominiksandjaja@fedoraproject.org\n" -"elad@fedoraproject.org\n" -"elsupergomez@fedoraproject.org\n" -"eukim@fedoraproject.org\n" -"fab@fedoraproject.org\n" -"feonsu@fedoraproject.org\n" -"fgonz@fedoraproject.org\n" -"fvalen@fedoraproject.org\n" -"gcintra@fedoraproject.org\n" -"gguerrer@fedoraproject.org\n" -"goeran@fedoraproject.org\n" -"hedda@fedoraproject.org\n" -"hyuuga@fedoraproject.org\n" -"ifelix@fedoraproject.org\n" -"igorbounov@fedoraproject.org\n" -"igor@fedoraproject.org\n" -"jassy@fedoraproject.org\n" -"jensm@fedoraproject.org\n" -"jmoskovc@redhat.com\n" -"joe74@fedoraproject.org\n" -"jorgelopes@fedoraproject.org\n" -"kenda@fedoraproject.org\n" -"khasida@fedoraproject.org\n" -"kkrothap@fedoraproject.org\n" -"kmaraas@fedoraproject.org\n" -"kmilos@fedoraproject.org\n" -"kristho@fedoraproject.org\n" -"leahliu@fedoraproject.org\n" -"logan@fedoraproject.org\n" -"mgiri@fedoraproject.org\n" -"mideal@fedoraproject.org\n" -"nagyesta@fedoraproject.org\n" -"nippur@fedoraproject.org\n" -"perplex@fedoraproject.org\n" -"peti@fedoraproject.org\n" -"pkst@fedoraproject.org\n" -"ppapadeas@fedoraproject.org\n" -"ptr@fedoraproject.org\n" -"raada@fedoraproject.org\n" -"rajesh@fedoraproject.org\n" -"ratal@fedoraproject.org\n" -"raven@fedoraproject.org\n" -"ricardopinto@fedoraproject.org\n" -"ruigo@fedoraproject.org\n" -"runab@fedoraproject.org\n" -"samfreemanz@fedoraproject.org\n" -"sandeeps@fedoraproject.org\n" -"sergiomesquita@fedoraproject.org\n" -"shanky@fedoraproject.org\n" -"shnurapet@fedoraproject.org\n" -"snicore@fedoraproject.org\n" -"swkothar@fedoraproject.org\n" -"tch@fedoraproject.org\n" -"tchuang@fedoraproject.org\n" -"thalia@fedoraproject.org\n" -"tomchiukc@fedoraproject.org\n" -"vpv@fedoraproject.org\n" -"warrink@fedoraproject.org\n" -"xconde@fedoraproject.org\n" -"ypoyarko@fedoraproject.org\n" -"zoltanh721@fedoraproject.org" -msgstr "" -"aalam@fedoraproject.org\n" -"amitakhya@fedoraproject.org\n" -"andrealafauci@fedoraproject.org\n" -"anipeter@fedoraproject.org\n" -"astur@fedoraproject.org\n" -"beckerde@fedoraproject.org\n" -"bruce89@fedoraproject.org\n" -"charnik@fedoraproject.org\n" -"chenh@fedoraproject.org\n" -"cyrushmh@fedoraproject.org\n" -"dennistobar@fedoraproject.org\n" -"dheche@fedoraproject.org\n" -"diegobz@fedoraproject.org\n" -"dominiksandjaja@fedoraproject.org\n" -"elad@fedoraproject.org\n" -"elsupergomez@fedoraproject.org\n" -"eukim@fedoraproject.org\n" -"fab@fedoraproject.org\n" -"feonsu@fedoraproject.org\n" -"fgonz@fedoraproject.org\n" -"fvalen@fedoraproject.org\n" -"gcintra@fedoraproject.org\n" -"gguerrer@fedoraproject.org\n" -"goeran@fedoraproject.org\n" -"hedda@fedoraproject.org\n" -"hyuuga@fedoraproject.org\n" -"ifelix@fedoraproject.org\n" -"igorbounov@fedoraproject.org\n" -"igor@fedoraproject.org\n" -"jassy@fedoraproject.org\n" -"jensm@fedoraproject.org\n" -"jmoskovc@redhat.com\n" -"joe74@fedoraproject.org\n" -"jorgelopes@fedoraproject.org\n" -"kenda@fedoraproject.org\n" -"khasida@fedoraproject.org\n" -"kkrothap@fedoraproject.org\n" -"kmaraas@fedoraproject.org\n" -"kmilos@fedoraproject.org\n" -"kristho@fedoraproject.org\n" -"leahliu@fedoraproject.org\n" -"logan@fedoraproject.org\n" -"mgiri@fedoraproject.org\n" -"mideal@fedoraproject.org\n" -"nagyesta@fedoraproject.org\n" -"nippur@fedoraproject.org\n" -"perplex@fedoraproject.org\n" -"peti@fedoraproject.org\n" -"pkst@fedoraproject.org\n" -"ppapadeas@fedoraproject.org\n" -"ptr@fedoraproject.org\n" -"raada@fedoraproject.org\n" -"rajesh@fedoraproject.org\n" -"ratal@fedoraproject.org\n" -"raven@fedoraproject.org\n" -"ricardopinto@fedoraproject.org\n" -"ruigo@fedoraproject.org\n" -"runab@fedoraproject.org\n" -"samfreemanz@fedoraproject.org\n" -"sandeeps@fedoraproject.org\n" -"sergiomesquita@fedoraproject.org\n" -"shanky@fedoraproject.org\n" -"shnurapet@fedoraproject.org\n" -"snicore@fedoraproject.org\n" -"swkothar@fedoraproject.org\n" -"tch@fedoraproject.org\n" -"tchuang@fedoraproject.org\n" -"thalia@fedoraproject.org\n" -"tomchiukc@fedoraproject.org\n" -"vpv@fedoraproject.org\n" -"warrink@fedoraproject.org\n" -"xconde@fedoraproject.org\n" -"ypoyarko@fedoraproject.org\n" -"zoltanh721@fedoraproject.org" +#: ../src/Gui/ccgui.glade.h:17 ../src/Applet/CCApplet.cpp:104 +msgid "translator-credits" +msgstr "translator-credits" #. add pixbuff separatelly #: ../src/Gui/CCMainWindow.py:65 @@ -362,7 +214,7 @@ msgstr "<b>Dieser Absturz wurde gemeldet:</b>\n" msgid "<b>Not reported!</b>" msgstr "<b>Nicht berichtet!</b>" -#: ../src/Gui/CCMainWindow.py:304 +#: ../src/Gui/CCMainWindow.py:323 msgid "" "Usage: abrt-gui [OPTIONS]\n" "\t-h, --help \tthis help message\n" @@ -374,7 +226,7 @@ msgstr "" "\t-v[vv] \tverbosity level\n" "\t--report=<crashid>\tdirectly report crash with crashid=<crashid>" -#: ../src/Gui/CCMainWindow.py:328 +#: ../src/Gui/CCMainWindow.py:347 #, python-format msgid "" "No such crash in database, probably wrong crashid.\n" @@ -419,14 +271,24 @@ msgstr "" "Schritte zum Reproduzieren vorhanden sind." #: ../src/Gui/CCReporterDialog.py:130 -msgid "Reporting disabled, please fix the the problems shown above." -msgstr "Berichterstellung deaktiviert, bitte beheben Sie die oben aufgeführten Probleme." +msgid "Reporting disabled, please fix the problems shown above." +msgstr "" +"Berichterstellung deaktiviert, bitte beheben Sie die oben aufgeführten " +"Probleme." #: ../src/Gui/CCReporterDialog.py:132 msgid "Sends the report using selected plugin." msgstr "Sendet den Bericht unter Verwendung des ausgwählten Plugins." -#: ../src/Gui/CCReporterDialog.py:170 +#: ../src/Gui/CCReporterDialog.py:392 +msgid "" +"No reporter plugin available for this type of crash\n" +"Please check abrt.conf." +msgstr "" +"Kein Plugin zur Berichterstellung für diesen Crash-Typ verfügbar\n" +"Bitte überprüfen Sie abrt.conf." + +#: ../src/Gui/CCReporterDialog.py:412 #, python-format msgid "" "Can't save plugin settings:\n" @@ -435,20 +297,12 @@ msgstr "" "Plugin-Einstellungen konnten nicht gesichert werden:\n" " %s" -#: ../src/Gui/CCReporterDialog.py:202 +#: ../src/Gui/CCReporterDialog.py:442 #, python-format msgid "Configure %s options" msgstr "%s Optionen konfigurieren" -#: ../src/Gui/CCReporterDialog.py:449 -msgid "" -"No reporter plugin available for this type of crash\n" -"Please check abrt.conf." -msgstr "" -"Kein Plugin zur Berichterstellung für diesen Crash-Typ verfügbar\n" -"Bitte überprüfen Sie abrt.conf." - -#: ../src/Gui/CCReporterDialog.py:493 +#: ../src/Gui/CCReporterDialog.py:492 msgid "" "Unable to get report!\n" "Debuginfo is missing?" @@ -456,7 +310,7 @@ msgstr "" "Konnte Bericht nicht abrufen!\n" "Fehlt Debuginfo?" -#: ../src/Gui/CCReporterDialog.py:522 +#: ../src/Gui/CCReporterDialog.py:521 #, python-format msgid "" "Reporting failed!\n" @@ -465,7 +319,7 @@ msgstr "" "Berichterstellung fehlgeschlagen!\n" "%s" -#: ../src/Gui/CCReporterDialog.py:548 ../src/Gui/CCReporterDialog.py:569 +#: ../src/Gui/CCReporterDialog.py:547 ../src/Gui/CCReporterDialog.py:568 #, python-format msgid "Error getting the report: %s" msgstr "Fehler beim Abrufen des Berichts: %s" @@ -606,7 +460,7 @@ msgstr "<b>Analyse-Plugin</b>" #: ../src/Gui/settings.glade.h:2 msgid "<b>Associated action</b>" -msgstr "<b>zugehörige Aktionen</b>" +msgstr "<b>Zugehörige Aktionen</b>" #: ../src/Gui/settings.glade.h:3 msgid "<b>Plugin details</b>" @@ -662,7 +516,7 @@ msgstr "GPG-Schlüssel" #: ../src/Gui/settings.glade.h:16 msgid "GPG keys: " -msgstr "GPG-Schlüssel:" +msgstr "GPG-Schlüssel: " #: ../src/Gui/settings.glade.h:17 msgid "Max coredump storage size(MB):" @@ -678,7 +532,7 @@ msgstr "Einstellungen" #: ../src/Gui/settings.glade.h:21 msgid "Version:" -msgstr "Version" +msgstr "Version:" #: ../src/Gui/settings.glade.h:22 msgid "Web Site:" @@ -701,11 +555,19 @@ msgstr "Es wurde ein Absturz entdeckt!" msgid "ABRT service is not running" msgstr "ABRT-Dienst wird nicht ausgeführt." -#: ../src/Applet/CCApplet.cpp:124 ../src/Applet/CCApplet.cpp:287 -#: ../src/Applet/CCApplet.cpp:314 +#: ../src/Applet/CCApplet.cpp:39 ../src/Applet/CCApplet.cpp:258 +#: ../src/Applet/CCApplet.cpp:285 msgid "Warning" msgstr "Warnung" +#: ../src/Applet/CCApplet.cpp:88 +msgid "Notification area applet to notify user about issues detected by ABRT" +msgstr "Info-Applet zur Benutzer-Benachrichtigung über von ABRT entdeckte Probleme" + +#: ../src/Applet/CCApplet.cpp:114 +msgid "Hide" +msgstr "Verstecken" + #: ../src/Daemon/Daemon.cpp:481 msgid "" "Report size exceeded the quota. Please check system's MaxCrashReportsSize " @@ -724,11 +586,7 @@ msgstr "Fehler wurde bereits gemeldet: %i" msgid "New bug id: %i" msgstr "Neue Fehler-ID: %i" -#: ../lib/Plugins/Bugzilla.cpp:549 -msgid "Logging into bugzilla..." -msgstr "Bei Bugzilla anmelden ..." - -#: ../lib/Plugins/Bugzilla.cpp:553 +#: ../lib/Plugins/Bugzilla.cpp:607 msgid "" "Empty login and password.\n" "Please check " @@ -736,48 +594,52 @@ msgstr "" "Leerer Benutzername und Passwort.\n" "Bitte überprüfen!" -#: ../lib/Plugins/Bugzilla.cpp:563 +#: ../lib/Plugins/Bugzilla.cpp:615 +msgid "Logging into bugzilla..." +msgstr "Bei Bugzilla anmelden ..." + +#: ../lib/Plugins/Bugzilla.cpp:618 msgid "Checking for duplicates..." msgstr "Auf Duplikate überprüfen ..." -#: ../lib/Plugins/Bugzilla.cpp:576 +#: ../lib/Plugins/Bugzilla.cpp:631 msgid "Missing mandatory member 'bugs'" msgstr "Fehlender benötigter Teil 'bugs'" -#: ../lib/Plugins/Bugzilla.cpp:586 +#: ../lib/Plugins/Bugzilla.cpp:641 msgid "Creating new bug..." msgstr "Neuen Fehlerbericht erstellen ..." -#: ../lib/Plugins/Bugzilla.cpp:591 +#: ../lib/Plugins/Bugzilla.cpp:646 msgid "Bugzilla entry creation failed" msgstr "Erstellung eines Bugzilla-Eintrags fehlgeschlagen" -#: ../lib/Plugins/Bugzilla.cpp:599 ../lib/Plugins/Bugzilla.cpp:704 +#: ../lib/Plugins/Bugzilla.cpp:654 ../lib/Plugins/Bugzilla.cpp:761 msgid "Logging out..." msgstr "Abmelden ..." -#: ../lib/Plugins/Bugzilla.cpp:629 ../lib/Plugins/Bugzilla.cpp:657 +#: ../lib/Plugins/Bugzilla.cpp:686 ../lib/Plugins/Bugzilla.cpp:714 msgid "get_bug_info() failed. Could not collect all mandatory information" msgstr "" "get_bug_info() fehlgeschlagen. Es konnten nicht alle relevanten " "Informationen gesammelt werden." -#: ../lib/Plugins/Bugzilla.cpp:641 +#: ../lib/Plugins/Bugzilla.cpp:698 #, c-format msgid "Bugzilla couldn't find parent of bug(%d)" msgstr "Bugzilla kann die Eltern des Fehlerberichts nicht finden(%d)" -#: ../lib/Plugins/Bugzilla.cpp:646 +#: ../lib/Plugins/Bugzilla.cpp:703 #, c-format msgid "Jump to bug %d" msgstr "Springe zu Bug %d" -#: ../lib/Plugins/Bugzilla.cpp:671 ../lib/Plugins/Bugzilla.cpp:672 +#: ../lib/Plugins/Bugzilla.cpp:728 ../lib/Plugins/Bugzilla.cpp:729 #, c-format msgid "Add %s to CC list" msgstr "Füge %s in die CC-Liste hinzu" -#: ../lib/Plugins/Bugzilla.cpp:695 +#: ../lib/Plugins/Bugzilla.cpp:752 #, c-format msgid "Add new comment into bug(%d)" msgstr "Füge neuen Kommentar in Bug(%d) hinzu" @@ -1,14 +1,14 @@ -# translation of abrt.po to Gujarati +# translation of ABRT-master.po to Gujarati # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Sweta Kothari <swkothar@redhat.com>, 2009, 2010. msgid "" msgstr "" -"Project-Id-Version: abrt\n" +"Project-Id-Version: ABRT-master\n" "Report-Msgid-Bugs-To: jmoskovc@redhat.com\n" -"POT-Creation-Date: 2010-03-22 08:16+0000\n" -"PO-Revision-Date: 2010-03-22 15:19+0530\n" +"POT-Creation-Date: 2010-03-31 10:22+0000\n" +"PO-Revision-Date: 2010-03-31 16:09+0530\n" "Last-Translator: Sweta Kothari <swkothar@redhat.com>\n" "Language-Team: Gujarati\n" "MIME-Version: 1.0\n" @@ -63,38 +63,55 @@ msgstr "" "Debuginfo ગુમ થયેલ છે?" #: ../src/Gui/ccgui.glade.h:1 -#, fuzzy -msgid "" -"(C) 2009 Red Hat, Inc.\n" -"(C) 2010 Red Hat, Inc." -msgstr "(C) 2009 Red Hat, Inc." +msgid "(C) 2009, 2010 Red Hat, Inc." +msgstr "(C) 2009, 2010 Red Hat, Inc." + +#: ../src/Gui/ccgui.glade.h:2 +msgid "<b>Bug Reports:</b>" +msgstr "<b>ભુલ અહેવાલ:</b>" #: ../src/Gui/ccgui.glade.h:3 -msgid "About ABRT" -msgstr "ABRT વિશે" +msgid "<b>Command:</b>" +msgstr "<b>આદેશ:</b>" -#: ../src/Gui/ccgui.glade.h:4 ../src/Gui/CCMainWindow.py:8 -#: ../src/Gui/report.glade.h:16 ../src/Gui/abrt.desktop.in.h:1 -msgid "Automatic Bug Reporting Tool" -msgstr "Automatic Bug Reporting Tool" +#: ../src/Gui/ccgui.glade.h:4 +msgid "<b>Comment:</b>" +msgstr "<b>ટિપ્પણી:</b>" #: ../src/Gui/ccgui.glade.h:5 -msgid "Delete" -msgstr "કાઢી નાંખો" +msgid "<b>Crash Count:</b>" +msgstr "<b>ભંગાણ ગણતરી:</b>" #: ../src/Gui/ccgui.glade.h:6 -msgid "Not Reported" -msgstr "અહેવાલ થયેલ નથી" +msgid "<b>Latest Crash:</b>" +msgstr "<b>તાજેતરનું ભંગાણ:</b>" + +#: ../src/Gui/ccgui.glade.h:7 +msgid "<b>Reason:</b>" +msgstr "<b>કારણ:</b>" + +#: ../src/Gui/ccgui.glade.h:8 +msgid "<b>User:</b>" +msgstr "<b>વપરાશકર્તા:</b>" + +#: ../src/Gui/ccgui.glade.h:9 +msgid "About ABRT" +msgstr "ABRT વિશે" + +#: ../src/Gui/ccgui.glade.h:10 ../src/Gui/CCMainWindow.py:8 +#: ../src/Gui/report.glade.h:16 ../src/Gui/abrt.desktop.in.h:1 +msgid "Automatic Bug Reporting Tool" +msgstr "આપોઆપ ભૂલ અહેવાલીકરણ સાધન" -#: ../src/Gui/ccgui.glade.h:7 ../src/Gui/settings.glade.h:19 +#: ../src/Gui/ccgui.glade.h:11 ../src/Gui/settings.glade.h:19 msgid "Plugins" msgstr "પ્લગઇનો" -#: ../src/Gui/ccgui.glade.h:8 ../src/Applet/CCApplet.cpp:251 +#: ../src/Gui/ccgui.glade.h:12 ../src/Applet/CCApplet.cpp:251 msgid "Report" msgstr "અહેવાલ" -#: ../src/Gui/ccgui.glade.h:9 +#: ../src/Gui/ccgui.glade.h:13 msgid "" "This program is free software; you can redistribute it and/or modify it " "under the terms of the GNU General Public License as published by the Free " @@ -122,48 +139,40 @@ msgstr "" "You should have received a copy of the GNU General Public License along with " "this program. If not, see <http://www.gnu.org/licenses/>." -#: ../src/Gui/ccgui.glade.h:14 +#: ../src/Gui/ccgui.glade.h:18 +msgid "View log" +msgstr "લૉગને જુઓ" + +#: ../src/Gui/ccgui.glade.h:19 msgid "_Edit" -msgstr "ફેરફાર કરો (_E)" +msgstr "ફેરફાર (_E)" -#: ../src/Gui/ccgui.glade.h:15 +#: ../src/Gui/ccgui.glade.h:20 msgid "_File" msgstr "ફાઇલ (_F)" -#: ../src/Gui/ccgui.glade.h:16 +#: ../src/Gui/ccgui.glade.h:21 msgid "_Help" msgstr "મદદ (_H)" -#: ../src/Gui/ccgui.glade.h:17 ../src/Applet/CCApplet.cpp:104 +#: ../src/Gui/ccgui.glade.h:22 ../src/Applet/CCApplet.cpp:104 msgid "translator-credits" -msgstr "" +msgstr "શ્ર્વેતા કોઠારી <swkothar@redhat.com>" #. add pixbuff separatelly -#: ../src/Gui/CCMainWindow.py:65 -msgid "Icon" -msgstr "ચિહ્ન" - -#: ../src/Gui/CCMainWindow.py:73 -msgid "Package" -msgstr "પેકેજ" +#: ../src/Gui/CCMainWindow.py:61 +msgid "Reported" +msgstr "અહેવાલ થયેલ" -#: ../src/Gui/CCMainWindow.py:75 +#: ../src/Gui/CCMainWindow.py:69 msgid "Application" msgstr "કાર્યક્રમ" -#: ../src/Gui/CCMainWindow.py:77 -msgid "Date" -msgstr "તારીખ" +#: ../src/Gui/CCMainWindow.py:71 +msgid "Latest Crash" +msgstr "તાજેતરનું ભંગાણ" -#: ../src/Gui/CCMainWindow.py:79 -msgid "Crash count" -msgstr "ભંગાણ ગણતરી" - -#: ../src/Gui/CCMainWindow.py:81 -msgid "User" -msgstr "વપરાશકર્તા" - -#: ../src/Gui/CCMainWindow.py:149 +#: ../src/Gui/CCMainWindow.py:139 #, python-format msgid "" "Can't show the settings dialog\n" @@ -172,7 +181,7 @@ msgstr "" "સંવાદ સુયોજનોને બતાવી શકાતા નથી\n" "%s" -#: ../src/Gui/CCMainWindow.py:154 +#: ../src/Gui/CCMainWindow.py:144 #, python-format msgid "" "Unable to finish current task!\n" @@ -182,7 +191,7 @@ msgstr "" "%s" #. there is something wrong with the daemon if we cant get the dumplist -#: ../src/Gui/CCMainWindow.py:176 +#: ../src/Gui/CCMainWindow.py:179 #, python-format msgid "" "Error while loading the dumplist.\n" @@ -191,32 +200,39 @@ msgstr "" "જ્યારે ડમ્પયાદીને લાવી રહ્યા હોય ત્યારે ભૂલ.\n" "%s" -#: ../src/Gui/CCMainWindow.py:214 -msgid "This crash has been reported:\n" -msgstr "આ ભંગાણનો અહેવાલ કરી દેવામાં આવ્યો છે:\n" - -#: ../src/Gui/CCMainWindow.py:215 -msgid "<b>This crash has been reported:</b>\n" -msgstr "<b>આ ભંગાણનો અહેવાલ કરી દેવામાં આવ્યો છે:</b>\n" - -#: ../src/Gui/CCMainWindow.py:230 -msgid "<b>Not reported!</b>" -msgstr "<b>અહેવાલ થયેલ નથી!</b>" +#: ../src/Gui/CCMainWindow.py:227 +#, python-format +msgid "" +"<b>%s Crash</b>\n" +"%s" +msgstr "" +"<b>%s ભંગાણ</b>\n" +"%s" #: ../src/Gui/CCMainWindow.py:323 +msgid "You have to select a crash to copy." +msgstr "તમારે નકલ કરવા માટે ભંગાણને પસંદ કરવુ જ પડશે." + +#: ../src/Gui/CCMainWindow.py:402 msgid "" "Usage: abrt-gui [OPTIONS]\n" "\t-h, --help \tthis help message\n" "\t-v[vv] \tverbosity level\n" "\t--report=<crashid>\tdirectly report crash with crashid=<crashid>" msgstr "" +"વપરાશ: abrt-gui [OPTIONS]\n" +"\t-h, --help \tthis help message\n" +"\t-v[vv] \tverbosity level\n" +"\t--report=<crashid>\tdirectly report crash with crashid=<crashid>" -#: ../src/Gui/CCMainWindow.py:347 +#: ../src/Gui/CCMainWindow.py:426 #, python-format msgid "" "No such crash in database, probably wrong crashid.\n" "crashid=%s" msgstr "" +"ડેટાબેઝમાં આવુ ભંગાણ નથી, કદાચ ખોટુ crashid છે.\n" +"crashid=%s" #. default texts #: ../src/Gui/CCReporterDialog.py:22 @@ -225,7 +241,7 @@ msgstr "કેવી રીતે આનું પુન:ઉત્પાદન #: ../src/Gui/CCReporterDialog.py:107 msgid "You must check backtrace for sensitive data" -msgstr "" +msgstr "સંવેદનશીલ માહિતી માટે તમારે બેકટ્રેસને ચકાસવુ જ જોઇએ" #: ../src/Gui/CCReporterDialog.py:118 #, python-format @@ -235,38 +251,39 @@ msgid "" "%s</b> \n" "then use Refresh button to regenerate the backtrace." msgstr "" -"નિષ્ક્રિય થયેલ છે તેનો અહેવાલ કરી રહ્યા છે કારણ કે backtrace નો ઉપયોગ કરી શકાય તેવો " -"નથી.\n" +"નિષ્ક્રિય થયેલ છે તેનો અહેવાલ કરી રહ્યા છે કારણ કે બેકટ્રેસ નો ઉપયોગ કરી શકાય તેવો નથી.\n" "મહેરબાની કરીને આદેશની મદદથી જાતે જ debuginfo ને સ્થાપિત કરવા માટે પ્રયત્ન કરો:" "<b>debuginfo-install %s</b> \n" "\n" -"પછી backtrace નો પુન: પ્રયત્ન કરવા માટે તાજુ કરો એ બટનને વાપરો." +"પછી બેકટ્રેસ નો પુન: પ્રયત્ન કરવા માટે તાજુ કરો એ બટનને વાપરો." #: ../src/Gui/CCReporterDialog.py:120 msgid "The backtrace is unusable, you can't report this!" -msgstr "backtrace નો ઉપયોગ કરી શકાય તેવું નથી, આનો તમે અહેવાલ કરી શકતા નથી!" +msgstr "બેકટ્રેસ નો ઉપયોગ કરી શકાય તેવું નથી, આનો તમે અહેવાલ કરી શકતા નથી!" #: ../src/Gui/CCReporterDialog.py:124 msgid "" "The backtrace is incomplete, please make sure you provide good steps to " "reproduce." msgstr "" -"backtrace એ અપૂરતુ છે, મહેરબાની કરીને ખાતરી કરો કે પુન:ઉત્પન્ન કરવા માટે સારાં પગલાઓ " -"પૂરા પાડો છો." +"બેકટ્રેસ એ અપૂરતુ છે, મહેરબાની કરીને ખાતરી કરો કે પુન:ઉત્પન્ન કરવા માટે સારાં પગલાઓ પૂરા " +"પાડો છો." #: ../src/Gui/CCReporterDialog.py:130 msgid "Reporting disabled, please fix the problems shown above." -msgstr "" +msgstr "અહેવાલ કરવાનું નિષ્ક્રિય થયેલ, ઉપર બતાવેલ સમસ્યાઓને સુધારો." #: ../src/Gui/CCReporterDialog.py:132 msgid "Sends the report using selected plugin." -msgstr "" +msgstr "પસંદ થયેલ પ્લગઇનની મદદથી અહેવાલને મોકલે છે." #: ../src/Gui/CCReporterDialog.py:392 msgid "" "No reporter plugin available for this type of crash\n" "Please check abrt.conf." msgstr "" +"ભંગાણનાં આ પ્રકાર માટે અહેવાલ કરવાર પ્લગઇન ઉપલ્બધ નથી\n" +"મહેરબાની કરીને abrt.conf ને ચકાસો." #: ../src/Gui/CCReporterDialog.py:412 #, python-format @@ -278,9 +295,9 @@ msgstr "" " %s" #: ../src/Gui/CCReporterDialog.py:442 -#, fuzzy, python-format +#, python-format msgid "Configure %s options" -msgstr "પ્લગઇનને રૂપરેખાંકિત કરો (_o)" +msgstr "%s વિકલ્પોને રૂપરેખાંકિત કરો" #: ../src/Gui/CCReporterDialog.py:492 msgid "" @@ -334,7 +351,7 @@ msgstr "<b>જોડાણો</b>" #: ../src/Gui/report.glade.h:3 msgid "<b>Backtrace</b>" -msgstr "<b>બેરટ્રેસ</b>" +msgstr "<b>બેકટ્રેસ્ટ્રેસ</b>" #: ../src/Gui/report.glade.h:4 msgid "<b>Comment</b>" @@ -350,7 +367,7 @@ msgstr "<b>મહેરબાની કરીને નીચેની સમસ #: ../src/Gui/report.glade.h:7 msgid "<b>Where do you want to report this incident?</b>" -msgstr "" +msgstr "<b>ક્યાં તમે આ ઘટનાનો અહેવાલ કરવા માંગો છો?</b>" #: ../src/Gui/report.glade.h:8 msgid "<span fgcolor=\"blue\">Architecture:</span>" @@ -390,11 +407,11 @@ msgstr "વિગતો" #: ../src/Gui/report.glade.h:18 msgid "Forces ABRT to regenerate the backtrace" -msgstr "" +msgstr "બેકટ્રેસ ને પુન:ઉત્પન્ન કરવા માટે ABRT ને દબાણ કરે છે" #: ../src/Gui/report.glade.h:19 msgid "I checked backtrace and removed sensitive data (passwords, etc)" -msgstr "" +msgstr "મેં બેકટ્રેસને ચકાસેલ છે અને સંવેદનશીલ માહિતીને દૂર કરેલ છે (પાસવર્ડો, વગેરે)" #: ../src/Gui/report.glade.h:20 msgid "N/A" @@ -405,17 +422,16 @@ msgid "Please wait.." msgstr "મહેરબાની કરીને થોભો.." #: ../src/Gui/report.glade.h:22 -#, fuzzy msgid "Reporter Selector" -msgstr "Reporter પ્લગઇનો" +msgstr "રિપૉર્ટર પસંદ કરનાર" #: ../src/Gui/report.glade.h:23 msgid "Send report" -msgstr "" +msgstr "અહેવાલ મોકલો" #: ../src/Gui/report.glade.h:24 msgid "Show log" -msgstr "" +msgstr "લૉગ બતાવો" #: ../src/Gui/SettingsDialog.py:33 ../src/Gui/SettingsDialog.py:50 msgid "<b>Select plugin</b>" @@ -507,7 +523,7 @@ msgstr "નામ:" #: ../src/Gui/settings.glade.h:20 msgid "Preferences" -msgstr "" +msgstr "પસંદગીઓ" #: ../src/Gui/settings.glade.h:21 msgid "Version:" @@ -527,9 +543,8 @@ msgid "A crash in package %s has been detected" msgstr "પેકેજ %s માં ભંગાણ ને શોધી દેવામાં આવ્યો છે" #: ../src/Applet/Applet.cpp:90 -#, fuzzy msgid "A crash has been detected" -msgstr "પેકેજ %s માં ભંગાણ ને શોધી દેવામાં આવ્યો છે" +msgstr "ભંગાણ ને શોધી દેવામાં આવ્યો છે" #: ../src/Applet/Applet.cpp:266 msgid "ABRT service is not running" @@ -542,11 +557,11 @@ msgstr "ચેતવણી" #: ../src/Applet/CCApplet.cpp:88 msgid "Notification area applet to notify user about issues detected by ABRT" -msgstr "" +msgstr "ABRT દ્દારા શોધેલ મુદ્દાઓ વિશે વપરાશકર્તાને સૂચિત કરવા માટે સૂચના વિસ્તાર એપલેટ" #: ../src/Applet/CCApplet.cpp:114 msgid "Hide" -msgstr "" +msgstr "છુપાડો" #: ../src/Daemon/Daemon.cpp:481 msgid "" @@ -567,11 +582,12 @@ msgid "New bug id: %i" msgstr "નવી ભૂલ id: %i" #: ../lib/Plugins/Bugzilla.cpp:607 -#, fuzzy msgid "" "Empty login and password.\n" "Please check " -msgstr "ખાલી લોગીન અને પાસવર્ડ. મહેરબાની કરીને Bugzilla.conf ને ચકાસો" +msgstr "" +"ખાલી લોગીન અને પાસવર્ડ. \n" +"મહેરબાની કરીને ચકાસો" #: ../lib/Plugins/Bugzilla.cpp:615 msgid "Logging into bugzilla..." @@ -583,7 +599,7 @@ msgstr "નકલો માટે ચકાસી રહ્યા છે..." #: ../lib/Plugins/Bugzilla.cpp:631 msgid "Missing mandatory member 'bugs'" -msgstr "" +msgstr "ગુમ થયેલ ફરજિયાત સભ્ય 'ભૂલો'" #: ../lib/Plugins/Bugzilla.cpp:641 msgid "Creating new bug..." @@ -591,7 +607,7 @@ msgstr "નવી ભૂલને બનાવી રહ્યા છે..." #: ../lib/Plugins/Bugzilla.cpp:646 msgid "Bugzilla entry creation failed" -msgstr "" +msgstr "બગઝીલા નોંધણી બનાવવાનું નિષ્ફળ" #: ../lib/Plugins/Bugzilla.cpp:654 ../lib/Plugins/Bugzilla.cpp:761 msgid "Logging out..." @@ -599,27 +615,27 @@ msgstr "બહાર નીકળી રહ્યા છે..." #: ../lib/Plugins/Bugzilla.cpp:686 ../lib/Plugins/Bugzilla.cpp:714 msgid "get_bug_info() failed. Could not collect all mandatory information" -msgstr "" +msgstr "get_bug_info() નિષ્ફળ. બધી ફરજિયાત જાણકારીને મેળવી શક્યા નહિં" #: ../lib/Plugins/Bugzilla.cpp:698 #, c-format msgid "Bugzilla couldn't find parent of bug(%d)" -msgstr "" +msgstr "બગઝીલાએ ભૂલ(%d) નાં મુખ્યને શોધી શક્યા નથી" #: ../lib/Plugins/Bugzilla.cpp:703 #, c-format msgid "Jump to bug %d" -msgstr "" +msgstr "ભૂલ %d પર કૂદો" #: ../lib/Plugins/Bugzilla.cpp:728 ../lib/Plugins/Bugzilla.cpp:729 #, c-format msgid "Add %s to CC list" -msgstr "" +msgstr "CC યાદીમાં %s ને ઉમેરો" #: ../lib/Plugins/Bugzilla.cpp:752 #, c-format msgid "Add new comment into bug(%d)" -msgstr "" +msgstr "ભૂલ(%d) માં નવી ટિપ્પણીને ઉમેરો" #: ../lib/Plugins/Kerneloops.cpp:100 msgid "Getting local universal unique identification" @@ -678,12 +694,11 @@ msgid "Sending an email..." msgstr "ઇમેઇલને મોકલી રહ્યા છે..." #: ../lib/Plugins/SOSreport.cpp:101 -#, fuzzy, c-format +#, c-format msgid "Running sosreport: %s" msgstr "sosreport ચાલી રહ્યુ છે: %s" #: ../lib/Plugins/SOSreport.cpp:107 -#, fuzzy msgid "Done running sosreport" msgstr "sosreport ચાલી રહ્યુ છે તે સમાપ્ત થયુ" @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: abrt.master\n" "Report-Msgid-Bugs-To: jmoskovc@redhat.com\n" -"POT-Creation-Date: 2010-03-21 14:12+0000\n" -"PO-Revision-Date: 2010-03-21 20:08+0100\n" +"POT-Creation-Date: 2010-03-31 10:22+0000\n" +"PO-Revision-Date: 2010-03-31 14:35+0200\n" "Last-Translator: Geert Warrink <geert.warrink@onsnet.nu>\n" "Language-Team: nl <fedora-trans-list@redhat.com>\n" "MIME-Version: 1.0\n" @@ -68,39 +68,55 @@ msgstr "" "Mist debuginfo?" #: ../src/Gui/ccgui.glade.h:1 -msgid "" -"(C) 2009 Red Hat, Inc.\n" -"(C) 2010 Red Hat, Inc." -msgstr "" -"(C) 2009 Red Hat, Inc.\n" -"(C) 2010 Red Hat, Inc." +msgid "(C) 2009, 2010 Red Hat, Inc." +msgstr "(C) 2009, 2010 Red Hat, Inc." + +#: ../src/Gui/ccgui.glade.h:2 +msgid "<b>Bug Reports:</b>" +msgstr "<b>Fout rapporten:</b>" #: ../src/Gui/ccgui.glade.h:3 +msgid "<b>Command:</b>" +msgstr "<b>Commando:</b>" + +#: ../src/Gui/ccgui.glade.h:4 +msgid "<b>Comment:</b>" +msgstr "<b>Commentaar:</b>" + +#: ../src/Gui/ccgui.glade.h:5 +msgid "<b>Crash Count:</b>" +msgstr "<b>Crash telling:</b>" + +#: ../src/Gui/ccgui.glade.h:6 +msgid "<b>Latest Crash:</b>" +msgstr "<b>Laatste crash:</b>" + +#: ../src/Gui/ccgui.glade.h:7 +msgid "<b>Reason:</b>" +msgstr "<b>Reden:</b>" + +#: ../src/Gui/ccgui.glade.h:8 +msgid "<b>User:</b>" +msgstr "<b>Gebruiker:</b>" + +#: ../src/Gui/ccgui.glade.h:9 msgid "About ABRT" msgstr "Over ABRT" -#: ../src/Gui/ccgui.glade.h:4 ../src/Gui/CCMainWindow.py:8 +#: ../src/Gui/ccgui.glade.h:10 ../src/Gui/CCMainWindow.py:8 #: ../src/Gui/report.glade.h:16 ../src/Gui/abrt.desktop.in.h:1 msgid "Automatic Bug Reporting Tool" msgstr "Automatisch bug rapporteer gereedschap" -#: ../src/Gui/ccgui.glade.h:5 -msgid "Delete" -msgstr "Verwijderen" - -#: ../src/Gui/ccgui.glade.h:6 -msgid "Not Reported" -msgstr "Niet gerapporteerd" - -#: ../src/Gui/ccgui.glade.h:7 ../src/Gui/settings.glade.h:19 +#: ../src/Gui/ccgui.glade.h:11 ../src/Gui/settings.glade.h:19 msgid "Plugins" msgstr "Plugins" -#: ../src/Gui/ccgui.glade.h:8 ../src/Applet/CCApplet.cpp:251 +#: ../src/Gui/ccgui.glade.h:12 ../src/Applet/CCApplet.cpp:251 msgid "Report" msgstr "Rapport" -#: ../src/Gui/ccgui.glade.h:9 +#: ../src/Gui/ccgui.glade.h:13 msgid "" "This program is free software; you can redistribute it and/or modify it " "under the terms of the GNU General Public License as published by the Free " @@ -128,48 +144,40 @@ msgstr "" "Je moet een kopie van de GNU General Public License tezamen met dit " "programma ontvangen hebben. Zo niet, zie <http://www.gnu.org/licenses/>." -#: ../src/Gui/ccgui.glade.h:14 +#: ../src/Gui/ccgui.glade.h:18 +msgid "View log" +msgstr "Bekijk log" + +#: ../src/Gui/ccgui.glade.h:19 msgid "_Edit" msgstr "Be_werken" -#: ../src/Gui/ccgui.glade.h:15 +#: ../src/Gui/ccgui.glade.h:20 msgid "_File" msgstr "_Bestand" -#: ../src/Gui/ccgui.glade.h:16 +#: ../src/Gui/ccgui.glade.h:21 msgid "_Help" msgstr "_Hulp" -#: ../src/Gui/ccgui.glade.h:17 ../src/Applet/CCApplet.cpp:104 +#: ../src/Gui/ccgui.glade.h:22 ../src/Applet/CCApplet.cpp:104 msgid "translator-credits" msgstr "vertaling verdienste" #. add pixbuff separatelly -#: ../src/Gui/CCMainWindow.py:65 -msgid "Icon" -msgstr "Icoon" - -#: ../src/Gui/CCMainWindow.py:73 -msgid "Package" -msgstr "Pakket" +#: ../src/Gui/CCMainWindow.py:61 +msgid "Reported" +msgstr "Gerapporteerd" -#: ../src/Gui/CCMainWindow.py:75 +#: ../src/Gui/CCMainWindow.py:69 msgid "Application" msgstr "Toepassing" -#: ../src/Gui/CCMainWindow.py:77 -msgid "Date" -msgstr "Datum" +#: ../src/Gui/CCMainWindow.py:71 +msgid "Latest Crash" +msgstr "Laatste crash" -#: ../src/Gui/CCMainWindow.py:79 -msgid "Crash count" -msgstr "Crash count" - -#: ../src/Gui/CCMainWindow.py:81 -msgid "User" -msgstr "Gebruiker" - -#: ../src/Gui/CCMainWindow.py:149 +#: ../src/Gui/CCMainWindow.py:139 #, python-format msgid "" "Can't show the settings dialog\n" @@ -178,7 +186,7 @@ msgstr "" "Kan de instellingen dialoog niet tonen\n" "%s" -#: ../src/Gui/CCMainWindow.py:154 +#: ../src/Gui/CCMainWindow.py:144 #, python-format msgid "" "Unable to finish current task!\n" @@ -188,7 +196,7 @@ msgstr "" "%s" #. there is something wrong with the daemon if we cant get the dumplist -#: ../src/Gui/CCMainWindow.py:176 +#: ../src/Gui/CCMainWindow.py:179 #, python-format msgid "" "Error while loading the dumplist.\n" @@ -197,19 +205,20 @@ msgstr "" "Fout tijdens het laden van de dumplijst.\n" "%s" -#: ../src/Gui/CCMainWindow.py:214 -msgid "This crash has been reported:\n" -msgstr "Deze crash is gerapporteerd:\n" - -#: ../src/Gui/CCMainWindow.py:215 -msgid "<b>This crash has been reported:</b>\n" -msgstr "<b>Deze crash is gerapporteerd:</b>\n" - -#: ../src/Gui/CCMainWindow.py:230 -msgid "<b>Not reported!</b>" -msgstr "<b>Niet gerapporteerd!</b>" +#: ../src/Gui/CCMainWindow.py:227 +#, python-format +msgid "" +"<b>%s Crash</b>\n" +"%s" +msgstr "" +"<b>%s crash</b>\n" +"%s" #: ../src/Gui/CCMainWindow.py:323 +msgid "You have to select a crash to copy." +msgstr "Je moet een crash selecteren om te kopiëren." + +#: ../src/Gui/CCMainWindow.py:402 msgid "" "Usage: abrt-gui [OPTIONS]\n" "\t-h, --help \tthis help message\n" @@ -221,7 +230,7 @@ msgstr "" "\t-v[vv] \tniveau van uitgebreidheid\n" "\t--report=<crashid>\trapporteer crash direct met crashid=<crashid>" -#: ../src/Gui/CCMainWindow.py:347 +#: ../src/Gui/CCMainWindow.py:426 #, python-format msgid "" "No such crash in database, probably wrong crashid.\n" @@ -704,6 +713,30 @@ msgstr "Sosreport draaien: %s" msgid "Done running sosreport" msgstr "Klaar met het draaien van sosreport" +#~ msgid "Delete" +#~ msgstr "Verwijderen" + +#~ msgid "Not Reported" +#~ msgstr "Niet gerapporteerd" + +#~ msgid "Icon" +#~ msgstr "Icoon" + +#~ msgid "Package" +#~ msgstr "Pakket" + +#~ msgid "Date" +#~ msgstr "Datum" + +#~ msgid "User" +#~ msgstr "Gebruiker" + +#~ msgid "This crash has been reported:\n" +#~ msgstr "Deze crash is gerapporteerd:\n" + +#~ msgid "<b>This crash has been reported:</b>\n" +#~ msgstr "<b>Deze crash is gerapporteerd:</b>\n" + #~ msgid "" #~ "aalam@fedoraproject.org\n" #~ "amitakhya@fedoraproject.org\n" @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: abrt.master.pa\n" "Report-Msgid-Bugs-To: jmoskovc@redhat.com\n" "POT-Creation-Date: 2010-03-25 02:14+0000\n" -"PO-Revision-Date: 2010-03-25 11:45+0530\n" +"PO-Revision-Date: 2010-03-31 15:09+0530\n" "Last-Translator: Jaswinder Singh <jsingh@redhat.com>\n" "Language-Team: Punjabi/Panjabi <kde-i18n-doc@kde.org>\n" "MIME-Version: 1.0\n" @@ -221,6 +221,8 @@ msgid "" "No such crash in database, probably wrong crashid.\n" "crashid=%s" msgstr "" +"ਡਾਟਾਬੇਸ ਵਿੱਚ ਅਜਿਹਾ ਕੋਈ ਕਰੈਸ਼ ਨਹੀਂ ਹੈ, ਸੰਭਵ ਹੈ ਕਿ ਕੋਈ ਗਲਤ crashid ਹੈ।\n" +"crashid=%s" #. default texts #: ../src/Gui/CCReporterDialog.py:22 @@ -229,7 +231,7 @@ msgstr "ਇਸ ਨੂੰ ਪੈਦਾ ਕਰਨ ਬਾਰੇ ਸੰਖੇਪ ਜ #: ../src/Gui/CCReporterDialog.py:107 msgid "You must check backtrace for sensitive data" -msgstr "" +msgstr "ਤੁਹਾਨੂੰ ਜਰੂਰੀ ਡਾਟੇ ਲਈ ਬੈਕਟਰੇਸ ਦੀ ਜਾਂਚ ਕਰਨੀ ਪਵੇਗੀ" #: ../src/Gui/CCReporterDialog.py:118 #, python-format @@ -256,17 +258,19 @@ msgstr "ਬੈਕਟਰੇਸ ਅਧੂਰਾ ਹੈ, ਯਕੀਨੀ ਬਣਾ #: ../src/Gui/CCReporterDialog.py:130 msgid "Reporting disabled, please fix the problems shown above." -msgstr "" +msgstr "ਰਿਪੋਰਟਿੰਗ ਅਯੋਗ ਹੈ, ਕਿਰਪਾ ਕਰਕੇ ਉੱਪਰ ਦਿੱਤੀ ਸਮੱਸਿਆ ਹੱਲ ਕਰੋ।" #: ../src/Gui/CCReporterDialog.py:132 msgid "Sends the report using selected plugin." -msgstr "" +msgstr "ਚੁਣੇ ਪਲੱਗਇਨ ਵਰਤ ਕੇ ਰਿਪੋਰਟ ਭੇਜਦਾ ਹੈ।" #: ../src/Gui/CCReporterDialog.py:392 msgid "" "No reporter plugin available for this type of crash\n" "Please check abrt.conf." msgstr "" +"ਕੋਈ ਰਿਪੋਰਟਰ ਪਲੱਗਇਨ ਇਸ ਕਿਸਮ ਦੇ ਕਰੈਸ਼ ਲਈ ਉਪਲੱਬਧ ਨਹੀਂ ਹੈ\n" +"abrt.conf ਦੀ ਜਾਂਚ ਕਰੋ ਜੀ।" #: ../src/Gui/CCReporterDialog.py:412 #, python-format @@ -350,7 +354,7 @@ msgstr "<b>ਹੇਠਲੀਆਂ ਸਮੱਸਿਆਵਾਂ ਹੱਲ ਕਰੋ #: ../src/Gui/report.glade.h:7 msgid "<b>Where do you want to report this incident?</b>" -msgstr "" +msgstr "<b>ਤੁਸੀਂ ਇਸ ਘਟਨਾਂ ਨੂੰ ਕਿੱਤੇ ਰਿਪੋਰਟ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹਨ?</b>" #: ../src/Gui/report.glade.h:8 msgid "<span fgcolor=\"blue\">Architecture:</span>" @@ -390,11 +394,11 @@ msgstr "ਵੇਰਵਾ" #: ../src/Gui/report.glade.h:18 msgid "Forces ABRT to regenerate the backtrace" -msgstr "" +msgstr "ABRT ਨੂੰ ਬੈਕਟਰੇਸ ਮੁੜ-ਬਣਾਉਣ ਲਈ ਮਜਬੂਰ ਕਰੋ" #: ../src/Gui/report.glade.h:19 msgid "I checked backtrace and removed sensitive data (passwords, etc)" -msgstr "" +msgstr "ਮੈਂ ਬੈਕਟਰੇਸ ਦੀ ਜਾਂਚ ਕੀਤੀ ਹੈ ਅਤੇ ਜਰੂਰੀ ਡਾਟਾ (ਪਾਸਵਰਡ, ਆਦਿ) ਹਟਾ ਦਿੱਤਾ ਹੈ" #: ../src/Gui/report.glade.h:20 msgid "N/A" @@ -410,11 +414,11 @@ msgstr "ਰਿਪੋਰਟਰ ਚੋਣਕਾਰ" #: ../src/Gui/report.glade.h:23 msgid "Send report" -msgstr "" +msgstr "ਰਿਪੋਰਟ ਭੇਜੋ" #: ../src/Gui/report.glade.h:24 msgid "Show log" -msgstr "" +msgstr "ਲਾਗ ਵੇਖਾਓ" #: ../src/Gui/SettingsDialog.py:33 ../src/Gui/SettingsDialog.py:50 msgid "<b>Select plugin</b>" @@ -540,7 +544,7 @@ msgstr "ਚੇਤਾਵਨੀ" #: ../src/Applet/CCApplet.cpp:88 msgid "Notification area applet to notify user about issues detected by ABRT" -msgstr "" +msgstr "ਸੂਚਨਾ ਖੇਤਰ ਐਪਲਿਟ ਜੋ ਯੂਜ਼ਰ ਨੂੰ ABRT ਦੁਆਰਾ ਲੱਭੇ ਮੁੱਦਿਆਂ ਬਾਰੇ ਦੱਸਦਾ ਹੈ" #: ../src/Applet/CCApplet.cpp:114 msgid "Hide" @@ -565,11 +569,12 @@ msgid "New bug id: %i" msgstr "ਨਵਾਂ ਬੱਗ id: %i" #: ../lib/Plugins/Bugzilla.cpp:607 -#, fuzzy msgid "" "Empty login and password.\n" "Please check " -msgstr "ਖਾਲੀ ਲਾਗਇਨ ਅਤੇ ਪਾਸਵਰਡ। Bugzilla.conf ਵੇਖੋ ਜੀ।" +msgstr "" +"ਖਾਲੀ ਲਾਗਇਨ ਅਤੇ ਪਾਸਵਰਡ। \n" +"ਜਾਂਚ ਕਰੋ ਜੀ " #: ../lib/Plugins/Bugzilla.cpp:615 msgid "Logging into bugzilla..." @@ -580,9 +585,8 @@ msgid "Checking for duplicates..." msgstr "ਡੁਪਲੀਕੇਟ ਲਈ ਜਾਂਚ ਜਾਰੀ..." #: ../lib/Plugins/Bugzilla.cpp:631 -#, fuzzy msgid "Missing mandatory member 'bugs'" -msgstr "ਗੈਰ-ਮੌਜੂਦ ਮੈਂਬਰ 'ਬੱਗ'" +msgstr "ਗੈਰ-ਮੌਜੂਦ ਜਰੂਰੀ ਮੈਂਬਰ 'ਬੱਗ'" #: ../lib/Plugins/Bugzilla.cpp:641 msgid "Creating new bug..." @@ -590,7 +594,7 @@ msgstr "ਨਵਾਂ ਬੱਗ ਬਣਾ ਰਿਹਾ ਹੈ..." #: ../lib/Plugins/Bugzilla.cpp:646 msgid "Bugzilla entry creation failed" -msgstr "" +msgstr "ਬੱਗਜ਼ੀਲਾ ਐਂਟਰੀ ਬਣਾਉਣ ਵਿੱਚ ਫੇਲ" #: ../lib/Plugins/Bugzilla.cpp:654 ../lib/Plugins/Bugzilla.cpp:761 msgid "Logging out..." @@ -598,27 +602,27 @@ msgstr "ਲਾਗਆਉਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ..." #: ../lib/Plugins/Bugzilla.cpp:686 ../lib/Plugins/Bugzilla.cpp:714 msgid "get_bug_info() failed. Could not collect all mandatory information" -msgstr "" +msgstr "get_bug_info() ਫੇਲ ਹੈ। ਸਭ ਜਰੂਰੀ ਜਾਣਕਾਰੀ ਇਕੱਠੀ ਨਹੀਂ ਕਰ ਸਕਿਆ" #: ../lib/Plugins/Bugzilla.cpp:698 #, c-format msgid "Bugzilla couldn't find parent of bug(%d)" -msgstr "" +msgstr "ਬੱਗਜ਼ੀਲਾ ਨੂੰ bug(%d) ਦਾ ਅਧਾਰ ਨਹੀਂ ਲੱਭਿਆ" #: ../lib/Plugins/Bugzilla.cpp:703 #, c-format msgid "Jump to bug %d" -msgstr "" +msgstr "ਬੱਗ %d ਤੇ ਜਾਓ" #: ../lib/Plugins/Bugzilla.cpp:728 ../lib/Plugins/Bugzilla.cpp:729 #, c-format msgid "Add %s to CC list" -msgstr "" +msgstr "%s ਨੂੰ CC ਲਿਸਟ ਵਿੱਚ ਜੋੜੋ" #: ../lib/Plugins/Bugzilla.cpp:752 #, c-format msgid "Add new comment into bug(%d)" -msgstr "" +msgstr "bug(%d) ਵਿੱਚ ਨਵੀਂ ਟਿੱਪਣੀ ਜੋੜੋ" #: ../lib/Plugins/Kerneloops.cpp:100 msgid "Getting local universal unique identification" @@ -677,12 +681,11 @@ msgid "Sending an email..." msgstr "ਈਮੇਲ ਭੇਜੀ ਜਾ ਰਹੀ ਹੈ..." #: ../lib/Plugins/SOSreport.cpp:101 -#, fuzzy, c-format +#, c-format msgid "Running sosreport: %s" -msgstr "sosreport ਚਲਾਈ ਜਾ ਰਹੀ ਹੈ: %s " +msgstr "sosreport ਚਲਾ ਰਿਹਾ ਹੈ: %s " #: ../lib/Plugins/SOSreport.cpp:107 -#, fuzzy msgid "Done running sosreport" msgstr "sosreport ਚਲਾਉਣਾ ਮੁਕੰਮਲ" @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: pl\n" "Report-Msgid-Bugs-To: jmoskovc@redhat.com\n" -"POT-Creation-Date: 2010-03-19 22:23+0000\n" -"PO-Revision-Date: 2010-03-19 23:25+0100\n" +"POT-Creation-Date: 2010-03-31 10:22+0000\n" +"PO-Revision-Date: 2010-03-31 14:38+0100\n" "Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n" "Language-Team: Polish <trans-pl@lists.fedoraproject.org>\n" "MIME-Version: 1.0\n" @@ -62,39 +62,55 @@ msgstr "" "Brak pakietów debuginfo?" #: ../src/Gui/ccgui.glade.h:1 -msgid "" -"(C) 2009 Red Hat, Inc.\n" -"(C) 2010 Red Hat, Inc." -msgstr "" -"(C) 2009 Red Hat, Inc.\n" -"(C) 2010 Red Hat, Inc." +msgid "(C) 2009, 2010 Red Hat, Inc." +msgstr "(C) 2009, 2010 Red Hat, Inc." + +#: ../src/Gui/ccgui.glade.h:2 +msgid "<b>Bug Reports:</b>" +msgstr "<b>Zgłoszenia błędów:</b>" #: ../src/Gui/ccgui.glade.h:3 +msgid "<b>Command:</b>" +msgstr "<b>Polecenie:</b>" + +#: ../src/Gui/ccgui.glade.h:4 +msgid "<b>Comment:</b>" +msgstr "<b>Komentarz:</b>" + +#: ../src/Gui/ccgui.glade.h:5 +msgid "<b>Crash Count:</b>" +msgstr "<b>Liczba awarii:</b>" + +#: ../src/Gui/ccgui.glade.h:6 +msgid "<b>Latest Crash:</b>" +msgstr "<b>Ostatnia awaria:</b>" + +#: ../src/Gui/ccgui.glade.h:7 +msgid "<b>Reason:</b>" +msgstr "<b>Przyczyna:</b>" + +#: ../src/Gui/ccgui.glade.h:8 +msgid "<b>User:</b>" +msgstr "<b>Użytkownik:</b>" + +#: ../src/Gui/ccgui.glade.h:9 msgid "About ABRT" msgstr "O programie ABRT" -#: ../src/Gui/ccgui.glade.h:4 ../src/Gui/CCMainWindow.py:8 +#: ../src/Gui/ccgui.glade.h:10 ../src/Gui/CCMainWindow.py:8 #: ../src/Gui/report.glade.h:16 ../src/Gui/abrt.desktop.in.h:1 msgid "Automatic Bug Reporting Tool" msgstr "Narzędzie do automatycznego zgłaszania błędów" -#: ../src/Gui/ccgui.glade.h:5 -msgid "Delete" -msgstr "Usuń" - -#: ../src/Gui/ccgui.glade.h:6 -msgid "Not Reported" -msgstr "Nie zgłoszono" - -#: ../src/Gui/ccgui.glade.h:7 ../src/Gui/settings.glade.h:19 +#: ../src/Gui/ccgui.glade.h:11 ../src/Gui/settings.glade.h:19 msgid "Plugins" msgstr "Wtyczki" -#: ../src/Gui/ccgui.glade.h:8 ../src/Applet/CCApplet.cpp:251 +#: ../src/Gui/ccgui.glade.h:12 ../src/Applet/CCApplet.cpp:251 msgid "Report" msgstr "Zgłoś" -#: ../src/Gui/ccgui.glade.h:9 +#: ../src/Gui/ccgui.glade.h:13 msgid "" "This program is free software; you can redistribute it and/or modify it " "under the terms of the GNU General Public License as published by the Free " @@ -124,50 +140,42 @@ msgstr "" "Powszechnej Licencji Publicznej GNU (GNU General Public License); jeśli nie " "- proszę odwiedzić stronę internetową <http://www.gnu.org/licenses/>." -#: ../src/Gui/ccgui.glade.h:14 +#: ../src/Gui/ccgui.glade.h:18 +msgid "View log" +msgstr "Wyświetl dziennik" + +#: ../src/Gui/ccgui.glade.h:19 msgid "_Edit" msgstr "_Edycja" -#: ../src/Gui/ccgui.glade.h:15 +#: ../src/Gui/ccgui.glade.h:20 msgid "_File" msgstr "_Plik" -#: ../src/Gui/ccgui.glade.h:16 +#: ../src/Gui/ccgui.glade.h:21 msgid "_Help" msgstr "Pomo_c" -#: ../src/Gui/ccgui.glade.h:17 ../src/Applet/CCApplet.cpp:104 +#: ../src/Gui/ccgui.glade.h:22 ../src/Applet/CCApplet.cpp:104 msgid "translator-credits" msgstr "" "Piotr Drąg <piotrdrag@gmail.com>, 2009\n" "Tomasz Chrzczonowicz <chrzczonowicz@gmail.com>, 2009" #. add pixbuff separatelly -#: ../src/Gui/CCMainWindow.py:65 -msgid "Icon" -msgstr "Ikona" +#: ../src/Gui/CCMainWindow.py:61 +msgid "Reported" +msgstr "Zgłoszono" -#: ../src/Gui/CCMainWindow.py:73 -msgid "Package" -msgstr "Pakiet" - -#: ../src/Gui/CCMainWindow.py:75 +#: ../src/Gui/CCMainWindow.py:69 msgid "Application" msgstr "Aplikacja" -#: ../src/Gui/CCMainWindow.py:77 -msgid "Date" -msgstr "Data" - -#: ../src/Gui/CCMainWindow.py:79 -msgid "Crash count" -msgstr "Liczba awarii" +#: ../src/Gui/CCMainWindow.py:71 +msgid "Latest Crash" +msgstr "Ostatnia awaria" -#: ../src/Gui/CCMainWindow.py:81 -msgid "User" -msgstr "Użytkownik" - -#: ../src/Gui/CCMainWindow.py:149 +#: ../src/Gui/CCMainWindow.py:139 #, python-format msgid "" "Can't show the settings dialog\n" @@ -176,7 +184,7 @@ msgstr "" "Nie można wyświetlić okna dialogowego ustawień\n" "%s" -#: ../src/Gui/CCMainWindow.py:154 +#: ../src/Gui/CCMainWindow.py:144 #, python-format msgid "" "Unable to finish current task!\n" @@ -186,7 +194,7 @@ msgstr "" "%s" #. there is something wrong with the daemon if we cant get the dumplist -#: ../src/Gui/CCMainWindow.py:176 +#: ../src/Gui/CCMainWindow.py:179 #, python-format msgid "" "Error while loading the dumplist.\n" @@ -195,19 +203,20 @@ msgstr "" "Błąd podczas wczytywania listy zrzutów.\n" "%s" -#: ../src/Gui/CCMainWindow.py:214 -msgid "This crash has been reported:\n" -msgstr "Ta awaria została zgłoszona:\n" - -#: ../src/Gui/CCMainWindow.py:215 -msgid "<b>This crash has been reported:</b>\n" -msgstr "<b>Ta awaria została zgłoszona:</b>\n" - -#: ../src/Gui/CCMainWindow.py:230 -msgid "<b>Not reported!</b>" -msgstr "<b>Nie zgłoszono.</b>" +#: ../src/Gui/CCMainWindow.py:227 +#, python-format +msgid "" +"<b>%s Crash</b>\n" +"%s" +msgstr "" +"<b>%s awaria</b>\n" +"%s" #: ../src/Gui/CCMainWindow.py:323 +msgid "You have to select a crash to copy." +msgstr "Należy wybrać awarię do skopiowania." + +#: ../src/Gui/CCMainWindow.py:402 msgid "" "Usage: abrt-gui [OPTIONS]\n" "\t-h, --help \tthis help message\n" @@ -219,7 +228,7 @@ msgstr "" "\t-v[vv] \tpoziom wyświetlania komunikatów\n" "\t--report=<id_awarii>\tbezpośrednio zgłasza awarię z id_awarii=<id_awarii>" -#: ../src/Gui/CCMainWindow.py:347 +#: ../src/Gui/CCMainWindow.py:426 #, python-format msgid "" "No such crash in database, probably wrong crashid.\n" diff --git a/src/Applet/Makefile.am b/src/Applet/Makefile.am index 5f0401ba..64a9ded4 100644 --- a/src/Applet/Makefile.am +++ b/src/Applet/Makefile.am @@ -37,3 +37,6 @@ DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ autostartdir = $(sysconfdir)/xdg/autostart autostart_DATA = abrt-applet.desktop + +abrt-applet.desktop: + intltool-merge -d ../../po abrt-applet.desktop.in abrt-applet.desktop diff --git a/src/Applet/abrt-applet.desktop b/src/Applet/abrt-applet.desktop.in index d7cc9662..842d4e9f 100644 --- a/src/Applet/abrt-applet.desktop +++ b/src/Applet/abrt-applet.desktop.in @@ -1,5 +1,7 @@ [Desktop Entry] -Name=Automatic Bug Reporting Tool +_Name=Automatic Bug Reporting Tool +_Comment=ABRT notification applet +Icon=abrt Exec=abrt-applet Terminal=false Type=Application diff --git a/src/Gui/CCDump.py b/src/Gui/CCDump.py index fe903845..8a09b5b6 100644 --- a/src/Gui/CCDump.py +++ b/src/Gui/CCDump.py @@ -44,56 +44,73 @@ CD_MESSAGE = "Message" class Dump(): """Class for mapping the debug dump to python object""" + not_required_fields = ["comment", "Message"] def __init__(self): - self.UUID = None - self.uid = None - self.Count = None - self.executable = None - self.package = None - self.time = None - self.description = None - self.Message = None - self.Reported = None - self.analyzer = None + # we set all attrs dynamically, so no need to have it in init + for field in self.not_required_fields: + self.__dict__[field] = None + + def __setattr__(self, name, value): + if value != None: + if name == "time": + try: + self.__dict__["date"] = datetime.fromtimestamp(int(value[CD_CONTENT])).strftime("%c") + except Exception, ex: + self.__dict__["date"] = value[CD_CONTENT] + log2("can't convert timestamp to date: %s" % ex) + self.__dict__[name] = value[CD_CONTENT] + else: + self.__dict__[name] = value def getUUID(self): - return self.UUID[CD_CONTENT] + return self.UUID def getUID(self): - return self.uid[CD_CONTENT] + return self.uid def getCount(self): - return int(self.Count[CD_CONTENT]) + return int(self.Count) def getExecutable(self): - return self.executable[CD_CONTENT] + return self.executable def getPackage(self): - return self.package[CD_CONTENT] + return self.package def isReported(self): - return self.Reported[CD_CONTENT] == "1" + return self.Reported == "1" def getMessage(self): if not self.Message: return "" #[] #return self.Message[CD_CONTENT].split('\n') - return self.Message[CD_CONTENT] - - def getTime(self, fmt): - #print format - if fmt: - try: - return datetime.fromtimestamp(int(self.time[CD_CONTENT])).strftime(fmt) - except Exception, e: - print e - return int(self.time[CD_CONTENT]) + return self.Message + + def getTime(self, fmt=None): + if self.time: + if fmt: + try: + return datetime.fromtimestamp(int(self.time)).strftime(fmt) + except Exception, ex: + log1(ex) + return int(self.time) + return self.time def getPackageName(self): - return self.package[CD_CONTENT][:self.package[CD_CONTENT].find("-")] + name_delimiter_pos = self.package[:self.package.rfind("-")].rfind("-") + # fix for kerneloops + if name_delimiter_pos > 0: + return self.package[:name_delimiter_pos] + return self.package def getDescription(self): - return self.description[CD_CONTENT] + return self.description def getAnalyzerName(self): - return self.analyzer[CD_CONTENT] + return self.analyzer + + def get_reason(self): + return self.reason + + def get_comment(self): + return self.comment diff --git a/src/Gui/CCDumpList.py b/src/Gui/CCDumpList.py index c962f217..3c555d84 100644 --- a/src/Gui/CCDumpList.py +++ b/src/Gui/CCDumpList.py @@ -19,7 +19,7 @@ class DumpList(list): entry = Dump() for column in row: log2(" Dump.%s='%s'", column, row[column]) - entry.__dict__[column] = row[column] + entry.__setattr__(column, row[column]) self.append(entry) except Exception: # FIXME handle exception better diff --git a/src/Gui/CCMainWindow.py b/src/Gui/CCMainWindow.py index 781a8015..25b08460 100644 --- a/src/Gui/CCMainWindow.py +++ b/src/Gui/CCMainWindow.py @@ -41,54 +41,41 @@ class MainWindow(): #Get the Main Window, and connect the "destroy" event self.window = self.wTree.get_widget("main_window") if self.window: - self.window.set_default_size(700, 480) + self.window.set_default_size(600, 700) self.window.connect("delete_event", self.delete_event_cb) self.window.connect("destroy", self.destroy) self.window.connect("focus-in-event", self.focus_in_cb) - + self.wTree.get_widget("vp_details").modify_bg(gtk.STATE_NORMAL,gtk.gdk.color_parse("#FFFFFF")) #init the dumps treeview self.dlist = self.wTree.get_widget("tvDumps") #rows of items with: - ICON_COL = 0 - PACKAGE_COL = 1 - APPLICATION_COL = 2 - TIME_STR_COL = 3 - CRASH_RATE_COL = 4 - USER_COL = 5 - IS_REPORTED_COL = 6 - UNIX_TIME_COL = 7 - DUMP_OBJECT_COL = 8 - #icon, package_name, application, date, crash_rate, user, is_reported, time_in_sec ?object? - self.dumpsListStore = gtk.ListStore(gtk.gdk.Pixbuf, str,str,str,int,str,bool, int, object) + STATUS_COL = 0 + APP_NAME_COL = 1 + TIME_STR_COL = 2 + UNIX_TIME_COL = 3 + DUMP_OBJECT_COL = 4 + #is_reported, application_name, date, time_in_sec ?object? + self.dumpsListStore = gtk.ListStore(str, str, str, int, object) self.dlist.set_model(self.dumpsListStore) # add pixbuff separatelly - icon_column = gtk.TreeViewColumn(_("Icon")) + icon_column = gtk.TreeViewColumn(_("Reported")) icon_column.cell = gtk.CellRendererPixbuf() - icon_column.cell.set_property('cell-background', "#C9C9C9") + #icon_column.cell.set_property('cell-background', "#C9C9C9") n = self.dlist.append_column(icon_column) - icon_column.pack_start(icon_column.cell, False) - icon_column.set_attributes(icon_column.cell, pixbuf=(n-1), cell_background_set=6) + icon_column.pack_start(icon_column.cell, True) + icon_column.set_attributes(icon_column.cell, stock_id=(n-1))# cell_background_set=6) # =============================================== columns = [] - columns.append(gtk.TreeViewColumn(_("Package"))) - columns[-1].set_sort_column_id(PACKAGE_COL) columns.append(gtk.TreeViewColumn(_("Application"))) - columns[-1].set_sort_column_id(APPLICATION_COL) - columns.append(gtk.TreeViewColumn(_("Date"))) + columns[-1].set_sort_column_id(APP_NAME_COL) + columns.append(gtk.TreeViewColumn(_("Latest Crash"))) columns[-1].set_sort_column_id(UNIX_TIME_COL) - columns.append(gtk.TreeViewColumn(_("Crash count"))) - columns[-1].set_sort_column_id(CRASH_RATE_COL) - columns.append(gtk.TreeViewColumn(_("User"))) - columns[-1].set_sort_column_id(USER_COL) - # create list + # add cells to colums and bind cells to the liststore values for column in columns: n = self.dlist.append_column(column) column.cell = gtk.CellRendererText() column.pack_start(column.cell, False) - #column.set_attributes(column.cell, ) - # FIXME: use some relative indexing - column.cell.set_property('cell-background', "#C9C9C9") - column.set_attributes(column.cell, text=(n-1), cell_background_set=6) + column.set_attributes(column.cell, text=(n-1)) column.set_resizable(True) #connect signals self.dlist.connect("cursor-changed", self.on_tvDumps_cursor_changed) @@ -96,6 +83,9 @@ class MainWindow(): self.dlist.connect("button-press-event", self.on_popupActivate) self.wTree.get_widget("bDelete").connect("clicked", self.on_bDelete_clicked, self.dlist) self.wTree.get_widget("bReport").connect("clicked", self.on_bReport_clicked) + self.wTree.get_widget("b_close").connect("clicked", self.on_bQuit_clicked) + self.wTree.get_widget("b_copy").connect("clicked", self.on_b_copy_clicked) + self.wTree.get_widget("b_help").connect("clicked", self.on_miAbout_clicked) self.wTree.get_widget("miQuit").connect("activate", self.on_bQuit_clicked) self.wTree.get_widget("miAbout").connect("activate", self.on_miAbout_clicked) self.wTree.get_widget("miPlugins").connect("activate", self.on_miPreferences_clicked) @@ -166,6 +156,19 @@ class MainWindow(): tvUpdates.set_buffer(buff) tvUpdates.scroll_mark_onscreen(end) + def get_username_from_uid(self, uid): + # if uid == None or "" return it back + if not uid: + return uid + user = "N/A" + if uid != "-1": # compat: only abrt <= 1.0.9 used UID = -1 + try: + user = pwd.getpwuid(int(uid))[0] + except Exception, ex: + user = "UID: %s" % uid + return user + + def hydrate(self): n = None self.dumpsListStore.clear() @@ -177,18 +180,11 @@ class MainWindow(): # so we shouldn't continue.. sys.exit() for entry in dumplist[::-1]: - try: - icon = get_icon_for_package(self.theme, entry.getPackageName()) - except: - icon = None - user = "N/A" - if entry.getUID() != "-1": # compat: only abrt <= 1.0.9 used UID = -1 - try: - user = pwd.getpwuid(int(entry.getUID()))[0] - except Exception, ex: - user = "UID: %s" % entry.getUID() - n = self.dumpsListStore.append([icon, entry.getPackage(), entry.getExecutable(), - entry.getTime("%c"), entry.getCount(), user, entry.isReported(), entry.getTime(""), entry]) + n = self.dumpsListStore.append([["gtk-no","gtk-yes"][entry.isReported()], + entry.getExecutable(), + entry.getTime("%c"), + entry.getTime(), + entry]) # activate the first row if any.. if n: # we can use (0,) as path for the first row, but what if API changes? @@ -198,21 +194,78 @@ class MainWindow(): # for later.. return True - def on_tvDumps_cursor_changed(self,treeview): + def on_tvDumps_cursor_changed(self, treeview): dumpsListStore, path = self.dlist.get_selection().get_selected_rows() if not path: self.wTree.get_widget("bDelete").set_sensitive(False) self.wTree.get_widget("bReport").set_sensitive(False) + self.wTree.get_widget("b_copy").set_sensitive(False) + # create an empty dump to fill the labels with empty strings + self.wTree.get_widget("sw_details").hide() return - self.wTree.get_widget("bDelete").set_sensitive(True) - self.wTree.get_widget("bReport").set_sensitive(True) - # this should work until we keep the row object in the last position - dump = dumpsListStore.get_value(dumpsListStore.get_iter(path[0]), dumpsListStore.get_n_columns()-1) + else: + self.wTree.get_widget("sw_details").show() + self.wTree.get_widget("bDelete").set_sensitive(True) + self.wTree.get_widget("bReport").set_sensitive(True) + self.wTree.get_widget("b_copy").set_sensitive(True) + # this should work until we keep the row object in the last position + dump = dumpsListStore.get_value(dumpsListStore.get_iter(path[0]), + dumpsListStore.get_n_columns()-1) + + try: + icon = get_icon_for_package(self.theme, dump.getPackageName()) + except: + icon = None + + i_package_icon = self.wTree.get_widget("i_package_icon") + if icon: + i_package_icon.set_from_pixbuf(icon) + else: + i_package_icon.set_from_stock(gtk.STOCK_MISSING_IMAGE, gtk.ICON_SIZE_DIALOG) + + l_heading = self.wTree.get_widget("l_detail_heading") + l_heading.set_markup(_("<b>%s Crash</b>\n%s") % (dump.getPackageName().title(),dump.getPackage())) + + # process the labels in sw_details + # hide the fields that are not filled by daemon - e.g. comments + # and how to reproduce + for field in dump.not_required_fields: + self.wTree.get_widget("l_%s" % field.lower()).hide() + self.wTree.get_widget("l_%s_heading" % field.lower()).hide() + + # fill the details + # read attributes from CCDump object and if a corresponding label is + # found, then the label text is set to the attribute's value + # field names in glade file: + # heading label: l_<field>_heading + # text label: l_<field> + for att in dump.__dict__: + label = self.wTree.get_widget("l_%s" % str(att).lower()) + if label: + label.show() + if att in dump.not_required_fields: + try: + lbl_heading = self.wTree.get_widget("l_%s_heading" % str(att).lower()) + lbl_heading.show() + except: + # we don't care if we fail to show the heading, it will + # break the gui a little, but it's better then exit + log2("failed to show the heading for >%s< : %s" % (att,e)) + pass + if dump.__dict__[att] != None: + label.set_text(dump.__dict__[att]) + else: + label.set_text("") + self.wTree.get_widget("l_date").set_text(dump.getTime("%c")) + self.wTree.get_widget("l_user").set_text(self.get_username_from_uid(dump.getUID())) + #move this to Dump class - lReported = self.wTree.get_widget("lReported") + hb_reports = self.wTree.get_widget("hb_reports") + lReported = self.wTree.get_widget("l_message") if dump.isReported(): - report_label_raw = _("This crash has been reported:\n") - report_label = _("<b>This crash has been reported:</b>\n") + hb_reports.show() + report_label_raw = "" + report_label = "" # plugin message follows, but at least in case of kerneloops, # it is not informative (no URL to the report) for message in dump.getMessage().split(';'): @@ -221,13 +274,13 @@ class MainWindow(): report_label += "%s\n" % report_message report_label_raw += "%s\n" % message log2("setting markup '%s'", report_label) - lReported.set_text(report_label_raw) # Sometimes (!) set_markup() fails with - # "GtkWarning: Failed to set text from markup due to error parsing markup: Unknown tag 'a'" - # If it does, then set_text() above acts as a fallback + # "GtkWarning: Failed to set text from markup due to error parsing + # markup: Unknown tag 'a'" If it does, then set_text() + # in "fill the details" above acts as a fallback lReported.set_markup(report_label) else: - lReported.set_markup(_("<b>Not reported!</b>")) + hb_reports.hide() def mark_last_selected_row(self, dump_list_store, path, iter, last_selected_uuid): # Get dump object from list (in our list it's in last col) @@ -257,6 +310,32 @@ class MainWindow(): except Exception, ex: print ex + def dumplist_get_selected(self): + dumpsListStore, path = self.dlist.get_selection().get_selected_rows() + if path and dumpsListStore: + return dumpsListStore.get_value(dumpsListStore.get_iter(path[0]), dumpsListStore.get_n_columns()-1) + return None + + def on_b_copy_clicked(self, button): + clipboard = gtk.clipboard_get() + dump = self.dumplist_get_selected() + if not dump: + gui_info_dialog(_("You have to select a crash to copy."), parent=self.window) + return + # dictionaries are not sorted, so we need this as a workaround + dumpinfo = [("Package:", dump.package), + ("Latest Crash:", dump.date), + ("Command:", dump.cmdline), + ("Reason:", dump.reason), + ("Comment:", dump.comment), + ("Bug Reports:", dump.Message), + ] + dumpinfo_text = "" + for line in dumpinfo: + dumpinfo_text += ("%-12s\t%s" % (line[0], line[1])).replace('\n','\n\t\t') + dumpinfo_text += '\n' + clipboard.set_text(dumpinfo_text) + def destroy(self, widget, data=None): gtk.main_quit() diff --git a/src/Gui/CC_gui_functions.py b/src/Gui/CC_gui_functions.py index f8f1c9ed..2365720a 100644 --- a/src/Gui/CC_gui_functions.py +++ b/src/Gui/CC_gui_functions.py @@ -109,11 +109,11 @@ def gui_report_dialog ( report_status_dict, parent_dialog, dialog.destroy() return ret -def gui_info_dialog ( message, parent_dialog, +def gui_info_dialog ( message, parent=None, message_type=gtk.MESSAGE_INFO, widget=None, page=0, broken_widget=None ): - dialog = gtk.MessageDialog( parent_dialog, + dialog = gtk.MessageDialog( parent, gtk.DIALOG_MODAL|gtk.DIALOG_DESTROY_WITH_PARENT, message_type, gtk.BUTTONS_OK, message ) @@ -128,9 +128,9 @@ def gui_info_dialog ( message, parent_dialog, if isinstance (broken_widget, gtk.Entry): broken_widget.select_region (0, -1) - if parent_dialog: + if parent: dialog.set_position (gtk.WIN_POS_CENTER_ON_PARENT) - dialog.set_transient_for(parent_dialog) + dialog.set_transient_for(parent) else: dialog.set_position (gtk.WIN_POS_CENTER) @@ -182,7 +182,7 @@ def gui_question_dialog ( message, parent_dialog=None, def get_icon_for_package(theme, package): log2("get_icon_for_package('%s')", package) try: - return theme.load_icon(package, 22, gtk.ICON_LOOKUP_USE_BUILTIN) + return theme.load_icon(package, 48, gtk.ICON_LOOKUP_USE_BUILTIN) except: # try to find icon filename by manually if not rpm: @@ -225,7 +225,7 @@ def get_icon_for_package(theme, package): break if icon_filename: log1("icon created from %s", icon_filename) - return gtk.gdk.pixbuf_new_from_file_at_size(icon_filename, 22, 22) + return gtk.gdk.pixbuf_new_from_file_at_size(icon_filename, 48, 48) else: return None diff --git a/src/Gui/PluginsSettingsDialog.py b/src/Gui/PluginsSettingsDialog.py index be20b17a..05904300 100644 --- a/src/Gui/PluginsSettingsDialog.py +++ b/src/Gui/PluginsSettingsDialog.py @@ -145,7 +145,7 @@ class PluginsSettingsDialog: def on_bConfigurePlugin_clicked(self, button, pluginview): pluginsListStore, path = pluginview.get_selection().get_selected_rows() if not path: - gui_info_dialog(_("Please select a plugin from the list to edit it's options."), self.window) + gui_info_dialog(_("Please select a plugin from the list to edit it's options."), parent=self.window) return # this should work until we keep the row object in the last position pluginfo = pluginsListStore.get_value(pluginsListStore.get_iter(path[0]), pluginsListStore.get_n_columns()-1) diff --git a/src/Gui/ccgui.glade b/src/Gui/ccgui.glade index 73114684..cbb957a6 100644 --- a/src/Gui/ccgui.glade +++ b/src/Gui/ccgui.glade @@ -12,8 +12,7 @@ <property name="has_separator">False</property> <property name="program_name">ABRT</property> <property name="version">@VER@</property> - <property name="copyright" translatable="yes">(C) 2009 Red Hat, Inc. -(C) 2010 Red Hat, Inc.</property> + <property name="copyright" translatable="yes">(C) 2009, 2010 Red Hat, Inc.</property> <property name="website">http://fedorahosted.org/abrt/</property> <property name="license" translatable="yes">This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. @@ -27,7 +26,10 @@ Nikola Pajkovsky <npajkovs@redhat.com> Zdenek Prikryl <zprikryl@redhat.com> Denys Vlasenko <dvlasenk@redhat.com></property> <property name="translator_credits" translatable="yes">translator-credits</property> - <property name="artists">Patrick Connelly <pcon@fedoraproject.org></property> + <property name="artists">Patrick Connelly <pcon@fedoraproject.org> + +UI Design: +Máirín Duffy <duffy@redhat.com></property> <property name="logo_icon_name">abrt</property> <property name="wrap_license">True</property> <child internal-child="vbox"> @@ -119,6 +121,12 @@ Denys Vlasenko <dvlasenk@redhat.com></property> <widget class="GtkMenu" id="menu6"> <property name="visible">True</property> <child> + <widget class="GtkMenuItem" id="mi_view_log"> + <property name="label" translatable="yes">View log</property> + <property name="use_underline">True</property> + </widget> + </child> + <child> <widget class="GtkImageMenuItem" id="miAbout"> <property name="label">gtk-about</property> <property name="visible">True</property> @@ -138,49 +146,6 @@ Denys Vlasenko <dvlasenk@redhat.com></property> </packing> </child> <child> - <widget class="GtkToolbar" id="toolbar1"> - <property name="visible">True</property> - <child> - <widget class="GtkToolButton" id="bDelete"> - <property name="visible">True</property> - <property name="sensitive">False</property> - <property name="tooltip" translatable="yes">Delete</property> - <property name="label" translatable="yes">Delete</property> - <property name="stock_id">gtk-delete</property> - </widget> - <packing> - <property name="expand">False</property> - <property name="homogeneous">True</property> - </packing> - </child> - <child> - <widget class="GtkToolButton" id="bReport"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Report</property> - <property name="label" translatable="yes">Report</property> - <property name="stock_id">gtk-go-up</property> - </widget> - <packing> - <property name="expand">False</property> - <property name="homogeneous">True</property> - </packing> - </child> - <child> - <widget class="GtkSeparatorToolItem" id="toolbutton1"> - <property name="visible">True</property> - </widget> - <packing> - <property name="expand">False</property> - <property name="homogeneous">True</property> - </packing> - </child> - </widget> - <packing> - <property name="expand">False</property> - <property name="position">1</property> - </packing> - </child> - <child> <widget class="GtkVPaned" id="vpaned1"> <property name="visible">True</property> <property name="can_focus">True</property> @@ -197,6 +162,7 @@ Denys Vlasenko <dvlasenk@redhat.com></property> <widget class="GtkTreeView" id="tvDumps"> <property name="visible">True</property> <property name="can_focus">True</property> + <property name="has_focus">True</property> <property name="reorderable">True</property> <property name="search_column">1</property> </widget> @@ -208,30 +174,322 @@ Denys Vlasenko <dvlasenk@redhat.com></property> </packing> </child> <child> - <widget class="GtkScrolledWindow" id="scrolledwindow2"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="hscrollbar_policy">automatic</property> + <widget class="GtkScrolledWindow" id="sw_details"> + <property name="can_focus">False</property> + <property name="hscrollbar_policy">never</property> <property name="vscrollbar_policy">automatic</property> <property name="shadow_type">in</property> <child> - <widget class="GtkViewport" id="viewport2"> + <widget class="GtkViewport" id="vp_details"> <property name="visible">True</property> <property name="resize_mode">queue</property> <property name="shadow_type">none</property> <child> - <widget class="GtkAlignment" id="alignment1"> + <widget class="GtkVBox" id="vbox2"> <property name="visible">True</property> - <property name="top_padding">6</property> - <property name="left_padding">6</property> + <property name="orientation">vertical</property> <child> - <widget class="GtkLabel" id="lReported"> + <widget class="GtkHBox" id="hbox1"> <property name="visible">True</property> - <property name="xalign">0</property> - <property name="yalign">0</property> - <property name="label" translatable="yes">Not Reported</property> - <property name="selectable">True</property> + <property name="spacing">10</property> + <child> + <widget class="GtkImage" id="i_package_icon"> + <property name="visible">True</property> + <property name="xpad">5</property> + <property name="stock">gtk-missing-image</property> + <property name="icon-size">6</property> + </widget> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="l_detail_heading"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="use_markup">True</property> + </widget> + <packing> + <property name="position">1</property> + </packing> + </child> </widget> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="padding">10</property> + <property name="position">0</property> + </packing> + </child> + <child> + <widget class="GtkHBox" id="hb_reports"> + <property name="visible">True</property> + <property name="spacing">5</property> + <child> + <widget class="GtkLabel" id="l_message_heading"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="yalign">0</property> + <property name="xpad">5</property> + <property name="label" translatable="yes"><b>Bug Reports:</b></property> + <property name="use_markup">True</property> + </widget> + <packing> + <property name="expand">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="l_message"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="yalign">0</property> + </widget> + <packing> + <property name="position">1</property> + </packing> + </child> + </widget> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <widget class="GtkHBox" id="hbox2"> + <property name="visible">True</property> + <child> + <widget class="GtkTable" id="t_details"> + <property name="visible">True</property> + <property name="n_rows">5</property> + <property name="n_columns">2</property> + <property name="column_spacing">5</property> + <property name="row_spacing">5</property> + <child> + <widget class="GtkLabel" id="label1"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="yalign">0</property> + <property name="label" translatable="yes"><b>Latest Crash:</b></property> + <property name="use_markup">True</property> + </widget> + <packing> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label2"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="yalign">0</property> + <property name="label" translatable="yes"><b>Command:</b></property> + <property name="use_markup">True</property> + </widget> + <packing> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options">GTK_FILL</property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label3"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="yalign">0</property> + <property name="label" translatable="yes"><b>User:</b></property> + <property name="use_markup">True</property> + </widget> + <packing> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label4"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="yalign">0</property> + <property name="label" translatable="yes"><b>Crash Count:</b></property> + <property name="use_markup">True</property> + </widget> + <packing> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="l_date"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="yalign">0</property> + <property name="wrap">True</property> + <property name="width_chars">30</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="l_cmdline"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="yalign">0</property> + <property name="wrap">True</property> + <property name="width_chars">30</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="l_user"> + <property name="visible">True</property> + <property name="xalign">1.862645149230957e-09</property> + <property name="yalign">0</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options">GTK_FILL</property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="l_count"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="yalign">0</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options">GTK_FILL</property> + </packing> + </child> + <child> + <widget class="GtkAlignment" id="alignment6"> + <property name="visible">True</property> + <child> + <placeholder/> + </child> + </widget> + <packing> + <property name="top_attach">4</property> + <property name="bottom_attach">5</property> + </packing> + </child> + <child> + <widget class="GtkAlignment" id="alignment7"> + <property name="visible">True</property> + <child> + <placeholder/> + </child> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">4</property> + <property name="bottom_attach">5</property> + </packing> + </child> + </widget> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="padding">5</property> + <property name="position">0</property> + </packing> + </child> + <child> + <widget class="GtkVBox" id="vbox1"> + <property name="visible">True</property> + <property name="orientation">vertical</property> + <property name="spacing">5</property> + <child> + <widget class="GtkLabel" id="label5"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="yalign">0</property> + <property name="label" translatable="yes"><b>Reason:</b></property> + <property name="use_markup">True</property> + </widget> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="l_reason"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="yalign">0</property> + <property name="wrap">True</property> + <property name="width_chars">40</property> + </widget> + <packing> + <property name="position">1</property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="l_comment_heading"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="yalign">0</property> + <property name="label" translatable="yes"><b>Comment:</b></property> + <property name="use_markup">True</property> + </widget> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">2</property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="l_comment"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="yalign">0</property> + <property name="wrap">True</property> + <property name="width_chars">40</property> + </widget> + <packing> + <property name="position">3</property> + </packing> + </child> + </widget> + <packing> + <property name="position">1</property> + </packing> + </child> + </widget> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">2</property> + </packing> </child> </widget> </child> @@ -240,23 +498,170 @@ Denys Vlasenko <dvlasenk@redhat.com></property> </widget> <packing> <property name="resize">False</property> - <property name="shrink">True</property> + <property name="shrink">False</property> + </packing> + </child> + </widget> + <packing> + <property name="position">1</property> + </packing> + </child> + <child> + <widget class="GtkHBox" id="hbox4"> + <property name="visible">True</property> + <property name="border_width">10</property> + <property name="spacing">5</property> + <property name="homogeneous">True</property> + <child> + <widget class="GtkAlignment" id="alignment4"> + <property name="visible">True</property> + <child> + <placeholder/> + </child> + </widget> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <widget class="GtkButton" id="bDelete"> + <property name="label">gtk-delete</property> + <property name="visible">True</property> + <property name="sensitive">False</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_stock">True</property> + </widget> + <packing> + <property name="position">1</property> + </packing> + </child> + <child> + <widget class="GtkButton" id="b_copy"> + <property name="label">Copy to Clipboard</property> + <property name="visible">True</property> + <property name="sensitive">False</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </widget> + <packing> + <property name="position">2</property> + </packing> + </child> + <child> + <widget class="GtkButton" id="bReport"> + <property name="label" translatable="yes">Report</property> + <property name="visible">True</property> + <property name="sensitive">False</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + </widget> + <packing> + <property name="position">3</property> </packing> </child> </widget> <packing> + <property name="expand">False</property> + <property name="fill">False</property> <property name="position">2</property> </packing> </child> <child> - <widget class="GtkStatusbar" id="statusbar1"> + <widget class="GtkAlignment" id="alignment8"> <property name="visible">True</property> + <child> + <placeholder/> + </child> </widget> <packing> <property name="expand">False</property> + <property name="padding">10</property> <property name="position">3</property> </packing> </child> + <child> + <widget class="GtkHBox" id="hbox3"> + <property name="visible">True</property> + <property name="homogeneous">True</property> + <child> + <widget class="GtkButton" id="b_help"> + <property name="label">gtk-help</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_stock">True</property> + </widget> + <packing> + <property name="padding">10</property> + <property name="position">0</property> + </packing> + </child> + <child> + <widget class="GtkAlignment" id="alignment1"> + <property name="visible">True</property> + <child> + <placeholder/> + </child> + </widget> + <packing> + <property name="position">1</property> + </packing> + </child> + <child> + <widget class="GtkAlignment" id="alignment2"> + <property name="visible">True</property> + <child> + <placeholder/> + </child> + </widget> + <packing> + <property name="position">2</property> + </packing> + </child> + <child> + <widget class="GtkAlignment" id="alignment3"> + <property name="visible">True</property> + <child> + <placeholder/> + </child> + </widget> + <packing> + <property name="position">3</property> + </packing> + </child> + <child> + <widget class="GtkButton" id="b_close"> + <property name="label">gtk-close</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_stock">True</property> + </widget> + <packing> + <property name="padding">10</property> + <property name="position">4</property> + </packing> + </child> + </widget> + <packing> + <property name="expand">False</property> + <property name="position">4</property> + </packing> + </child> + <child> + <widget class="GtkAlignment" id="alignment5"> + <property name="visible">True</property> + <child> + <placeholder/> + </child> + </widget> + <packing> + <property name="expand">False</property> + <property name="padding">10</property> + <property name="position">5</property> + </packing> + </child> </widget> </child> </widget> |