summaryrefslogtreecommitdiff
path: root/portato/gui/gtk/windows.py
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--portato/gui/gtk/windows.py54
1 files changed, 54 insertions, 0 deletions
diff --git a/portato/gui/gtk/windows.py b/portato/gui/gtk/windows.py
index 64ff8a1..91153aa 100644
--- a/portato/gui/gtk/windows.py
+++ b/portato/gui/gtk/windows.py
@@ -16,6 +16,9 @@ pygtk.require("2.0")
import gtk
import gtk.glade
import gobject
+from portato.constants import USE_GTKSOURCEVIEW
+if USE_GTKSOURCEVIEW:
+ import gtksourceview
#our backend stuff
from portato.helper import *
@@ -245,6 +248,52 @@ class PreferenceWindow (AbstractDialog):
"""Just closes - w/o saving."""
self.window.destroy()
+class EbuildWindow (AbstractDialog):
+ """The window showing the ebuild."""
+
+ def __init__ (self, parent, package):
+ AbstractDialog.__init__(self,parent)
+
+ # we want it to get minimized
+ self.window.set_transient_for(None)
+
+ self.window.set_title(package.get_cpv())
+
+ # set geometry (same as MainWindow)
+ mHeight = 800
+ if gtk.gdk.screen_height() <= 800: mHeight = 600
+ self.window.set_geometry_hints (self.window, min_width = 800, min_height = mHeight, max_height = gtk.gdk.screen_height(), max_width = gtk.gdk.screen_width())
+
+ if USE_GTKSOURCEVIEW: # we want syntax highlighting
+ # get language
+ man = gtksourceview.SourceLanguagesManager()
+ language = [l for l in man.get_available_languages() if l.get_name() == "Gentoo"]
+
+ # set buffer and view
+ buf = gtksourceview.SourceBuffer()
+ buf.set_language(language[0])
+ buf.set_highlight(True)
+ view = gtksourceview.SourceView(buf)
+ else:
+ buf = gtk.TextBuffer()
+ view = gtk.TextView(buf)
+
+ view.set_editable(False)
+ view.set_cursor_visible(False)
+
+ try: # read ebuild
+ f = open(package.get_ebuild_path(), "r")
+ lines = f.readlines()
+ f.close()
+ except IOError,e:
+ io_ex_dialog(e)
+ return
+
+ buf.set_text("".join(lines))
+
+ self.tree.get_widget("ebuildScroll").add(view)
+ self.window.show_all()
+
class PackageTable:
"""A window with data about a specfic package."""
@@ -279,6 +328,7 @@ class PackageTable:
self.emergeBtn = self.tree.get_widget("pkgEmergeBtn")
self.unmergeBtn = self.tree.get_widget("pkgUnmergeBtn")
self.cancelBtn = self.tree.get_widget("pkgCancelBtn")
+ self.ebuildBtn = self.tree.get_widget("pkgEbuildBtn")
# useList
self.useListScroll = self.tree.get_widget("useListScroll")
@@ -516,6 +566,10 @@ class PackageTable:
self.main.notebook.set_current_page(self.main.QUEUE_PAGE)
return True
+ def cb_package_ebuild_clicked(self, button):
+ EbuildWindow(self.main.window, self.actual_package())
+ return True
+
def cb_testing_toggled (self, button):
"""Callback for toggled testing-checkbox."""
status = button.get_active()
le='2014-04-18 12:57:45 +0200'>2014-04-18Pruning: turns out rmdir does it for us with -p.Jason A. Donenfeld1-9/+3 2014-04-18Abstract remove empty directories into function.Jason A. Donenfeld1-14/+11 2014-04-18Remember to prune empty folders.Jason A. Donenfeld1-0/+8 2014-04-18init: allow deinitializationJason A. Donenfeld2-2/+18 2014-04-18bash-completion: filter dot files from resultsJason A. Donenfeld1-3/+8 2014-04-18reencrypt: remove option, do automaticallyJason A. Donenfeld5-39/+25 2014-04-18reencryption: add to completion filesJason A. Donenfeld3-1/+5 2014-04-18Specify variable gpg.Jason A. Donenfeld1-1/+1 2014-04-18style: don't escape new line on &&Jason A. Donenfeld1-2/+2 2014-04-18reencryption: remove temporary file on failureJason A. Donenfeld1-1/+1 2014-04-18reencryption: only reencrypt files when requiredJason A. Donenfeld2-16/+37 2014-04-17cp: typo as cvJason A. Donenfeld1-1/+1 2014-04-17bash: gpg_id is localJason A. Donenfeld1-0/+1 2014-04-17move/copy: always reencrypt passwords at destinationJason A. Donenfeld5-25/+56 2014-04-17makefile: allow platform files with gnu sedJason A. Donenfeld1-7/+8 2014-04-17mv: Add pass mv/rename supportJason A. Donenfeld5-3/+78 2014-04-17revelation2pass: add plain XML importJavali1-11/+15 2014-04-17platform: add cygwin supportJason A. Donenfeld2-1/+17