--- data/gtk_frontend.py.orig
+++ data/gtk_frontend.py
@@ -23,6 +23,8 @@
import time
import locale
import gettext
+import tempfile
+import gzip
import pygtk
pygtk.require('2.0')
@@ -31,7 +33,7 @@
import gnome.ui
import gobject
-from bootconfig import StartupThread, ShutdownThread, FloppyThread
+from bootconfig import StartupThread, ShutdownThread, FloppyThread, utils
APP_NAME = 'startupmanager'
APP_VERSION = '1.9.12'
@@ -161,6 +163,7 @@
self.main_window.realize()
self.splashy_set = False
self.usplash_set = False
+ self.resolution = utils.get_resolution()
#Display a Progress dialog during config initialization
dialog = gtk.Dialog(title=_('StartUp-Manager'), parent=self.main_window)
progress = gtk.ProgressBar()
@@ -534,6 +537,47 @@
self.grub.remove_image(name)
self.refresh_legacy_grub_themes()
+ def on_preview_window_keypress(self, widget, event):
+ keyname = gtk.gdk.keyval_name(event.keyval)
+ if keyname == 'Escape':
+ utils.set_resolution(self.resolution)
+ widget.hide()
+
+ def on_preview_grub_button_clicked(self, widget):
+ selected = self.grub_treeview.get_selection().get_selected()
+ model = selected[0]
+ iter = selected[1]
+ if iter:
+ name = model.get_value(iter, 0)
+ else:
+ name = self.grub_splash_combo.get_active_text()
+
+ filename = os.path.join(self.grub.splashdir, '%s.xpm.gz' % name)
+ handle = gzip.open(filename, 'rb')
+ xpm_data = handle.read()
+ handle.close()
+ tmpfile = tempfile.NamedTemporaryFile()
+ tmpfile.write(xpm_data)
+ screen = gtk.gdk.screen_get_default()
+ pixmap, mask = gtk.gdk.pixmap_create_from_xpm(screen.get_root_window(),
+ None, tmpfile.name)
+ tmpfile.close()
+
+ dialog = gtk.MessageDialog(parent=self.main_window,
+ flags=gtk.DIALOG_MODAL,
+ type=gtk.MESSAGE_INFO,
+ buttons=gtk.BUTTONS_OK,
+ message_format=_('When you wish to leave '
+ 'the preview, press Esc.'))
+ dialog.run()
+ dialog.destroy()
+
+ x, y = self.resolution_combo.get_active_text().split('x')
+ utils.set_resolution(x + 'x' + y)
+ self.preview_window.resize(int(x), int(y))
+ self.preview_window.child.set_from_pixmap(pixmap, mask)
+ self.preview_window.show_all()
+
def on_grub_file_chooser_update_preview(self, widget):
filename = self.grub_file_chooser.get_filename()
self.grub.add_image(filename)
@@ -996,4 +1040,5 @@
self.splashy_treeview = get_widget('splashy_treeview')
self.usplash_dialog = get_widget('usplash_dialog')
self.usplash_treeview = get_widget('usplash_treeview')
+ self.preview_window = get_widget('preview_window')
--- data/startupmanager.glade.orig
+++ data/startupmanager.glade
@@ -653,8 +653,9 @@
-
+
True
+ 6
True
@@ -664,6 +665,16 @@
+
+
+ True
+ True
+ Preview theme
+ True
+ 0
+
+
+
2
@@ -1658,4 +1669,18 @@
+
+ 0
+ StartUp-Manager
+ True
+ False
+ True
+ main_window
+
+
+
+ True
+
+
+
--- bootconfig/utils.py.orig
+++ bootconfig/utils.py
@@ -151,3 +151,13 @@
os.rmdir('/mnt/floppysum')
return 0
+def get_resolution():
+ pipe = os.popen('xrandr')
+ data = pipe.read()
+ pipe.close()
+ matches = re.search('current (\d+) x (\d+)', data)
+ return matches.group(1) + 'x' + matches.group(2)
+
+def set_resolution(resolution):
+ os.system('xrandr --size ' + resolution)
+