summaryrefslogtreecommitdiffstats
path: root/src/Gui
diff options
context:
space:
mode:
authorJiri Moskovcak <jmoskovc@redhat.com>2009-09-17 19:24:40 +0200
committerJiri Moskovcak <jmoskovc@redhat.com>2009-09-17 19:24:40 +0200
commitb3cd99a13a2370f655cf8b8ff4944e3717456784 (patch)
treec2f87660c099968db80c81dc4cf91c7a72798740 /src/Gui
parent9e98b1d47c997b188b48fb99161c812eb8ad31ed (diff)
downloadabrt-b3cd99a13a2370f655cf8b8ff4944e3717456784.tar.gz
abrt-b3cd99a13a2370f655cf8b8ff4944e3717456784.tar.xz
abrt-b3cd99a13a2370f655cf8b8ff4944e3717456784.zip
GUI: added popup menu, fixed behaviour when run with root privs
- pop-up menu binded to right mouse button should be more user friendly - the background color was wrongly set when run as root because of wrong refence to liststore item
Diffstat (limited to 'src/Gui')
-rw-r--r--src/Gui/CCMainWindow.py19
-rw-r--r--src/Gui/ccgui.glade25
2 files changed, 41 insertions, 3 deletions
diff --git a/src/Gui/CCMainWindow.py b/src/Gui/CCMainWindow.py
index 63d9b0b6..ac0b600b 100644
--- a/src/Gui/CCMainWindow.py
+++ b/src/Gui/CCMainWindow.py
@@ -81,7 +81,7 @@ class MainWindow():
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=5)
+ icon_column.set_attributes(icon_column.cell, pixbuf=(n-1), cell_background_set=5+(os.getuid() == 0))
# ===============================================
columns = [None]*4
columns[0] = gtk.TreeViewColumn(_("Package"))
@@ -99,17 +99,20 @@ class MainWindow():
#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=5)
+ column.set_attributes(column.cell, text=(n-1), cell_background_set=5+(os.getuid() == 0))
column.set_resizable(True)
#connect signals
self.dlist.connect("cursor-changed", self.on_tvDumps_cursor_changed)
self.dlist.connect("row-activated", self.on_dumpRowActivated)
+ 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("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)
self.wTree.get_widget("miPreferences").connect("activate", self.on_miSettings_clicked)
+ self.wTree.get_widget("miReport").connect("activate", self.on_bReport_clicked)
+ self.wTree.get_widget("miDelete").connect("activate", self.on_bDelete_clicked, self.dlist)
# connect handlers for daemon signals
self.ccdaemon.connect("crash", self.on_data_changed_cb, None)
self.ccdaemon.connect("analyze-complete", self.on_analyze_complete_cb, self.pBarWindow)
@@ -128,6 +131,12 @@ class MainWindow():
self.window.set_sensitive(True)
elif state == "down":
self.window.set_sensitive(False)
+
+ def on_popupActivate(self, widget, event):
+ menu = self.wTree.get_widget("popup_menu")
+ # 3 == right mouse button
+ if event.button == 3:
+ menu.popup(None, None, None, event.button, event.time)
def on_miAbout_clicked(self, widget):
dialog = self.wTree.get_widget("about")
@@ -186,8 +195,12 @@ class MainWindow():
except:
icon = None
if os.getuid() == 0:
+ try:
+ user = pwd.getpwuid(int(entry.getUID()))[0]
+ except Exception, e:
+ user = _("Can't get username for uid %s" % entry.getUID())
n = self.dumpsListStore.append([icon, entry.getPackage(), entry.getExecutable(),
- entry.getTime("%Y.%m.%d %H:%M:%S"), entry.getCount(), pwd.getpwuid(int(entry.getUID()))[0], entry.isReported(), entry])
+ entry.getTime("%Y.%m.%d %H:%M:%S"), entry.getCount(), user, entry.isReported(), entry])
else:
n = self.dumpsListStore.append([icon, entry.getPackage(), entry.getExecutable(),
entry.getTime("%Y.%m.%d %H:%M:%S"), entry.getCount(), entry.isReported(), entry])
diff --git a/src/Gui/ccgui.glade b/src/Gui/ccgui.glade
index 71e9012a..89163771 100644
--- a/src/Gui/ccgui.glade
+++ b/src/Gui/ccgui.glade
@@ -320,4 +320,29 @@ Zdenek Prikryl &lt;zprikryl@redhat.com&gt;</property>
</widget>
</child>
</widget>
+ <widget class="GtkMenu" id="popup_menu">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkImageMenuItem" id="miDelete">
+ <property name="label">gtk-delete</property>
+ <property name="visible">True</property>
+ <property name="use_underline">True</property>
+ <property name="use_stock">True</property>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkImageMenuItem" id="miReport">
+ <property name="label" translatable="yes">Report</property>
+ <property name="visible">True</property>
+ <property name="use_stock">False</property>
+ <child internal-child="image">
+ <widget class="GtkImage" id="image1">
+ <property name="visible">True</property>
+ <property name="stock">gtk-save</property>
+ <property name="icon-size">1</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
</glade-interface>