This email list is read-only. Emails sent to this list will be discarded ---------------------------------- .gitignore | 22 +++++++++++++++++++ configure.ac | 7 ++--- src/Makefile.am | 11 ++++++--- src/kvm-launcher | 55 +++++++++++++++++++++++++++++++++++++---------- src/kvm-launcher.glade | 32 ++++++++++++++------------- src/kvm-launcher32.png | Bin 1138 -> 2769 bytes src/kvm-launcher48.png | Bin 1503 -> 3348 bytes 7 files changed, 92 insertions(+), 35 deletions(-)
New commits: commit f5b7df2e9b38bd258fdb9606d5cd77c5b212a4cf Author: Bob Spencer <[email protected]> Date: Tue Jan 13 17:16:20 2009 -0700 Changed 32x32 and 48x48 icons Added code to load icons from correct location (/usr/share/icons/hicolor/...) Updated Makefile.am to make pkgdatadir available in code Hooked up Link button to go to image location Diff in this email is a maximum of 400 lines. diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..80aff2a --- /dev/null +++ b/.gitignore @@ -0,0 +1,22 @@ +Makefile +Makefile.in +aclocal.m4 +config.guess +config.log +config.status +config.sub +configure +doc/Makefile +doc/Makefile.in +doc/reference/Makefile +doc/reference/Makefile.in +doc/reference/version.xml +gtk-doc.make +install-sh +libtool +ltmain.sh +missing +py-compile +src/Makefile +src/Makefile.in + diff --git a/configure.ac b/configure.ac index b74e175..4600f8f 100644 --- a/configure.ac +++ b/configure.ac @@ -40,10 +40,9 @@ PKG_PROG_PKG_CONFIG # AC_CHECK_FUNCS([memset]) # all libraries listed are associated with "KVM_LAUNCHER" tag -PKG_CHECK_MODULES(KVM_LAUNCHER, glib-2.0) - -AC_SUBST(KVM_LAUNCHER_CFLAGS) -AC_SUBST(KVM_LAUNCHER_LIBS) +#PKG_CHECK_MODULES(KVM_LAUNCHER, glib-2.0) +#AC_SUBST(KVM_LAUNCHER_CFLAGS) +#AC_SUBST(KVM_LAUNCHER_LIBS) GTK_DOC_CHECK([1.9]) diff --git a/src/Makefile.am b/src/Makefile.am index 4c343db..7196f2d 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -10,17 +10,20 @@ python_PYTHON = sample_utils.py desktopentry_DATA = kvm-launcher.desktop icon_DATA = kvm-launcher32.png -#TBD: how to tell Python app where ${pkgdatadir} is? - #supporting files to place in /usr/share/kvm-launcher -pkgdata_DATA = sample_data.conf +pkgdata_DATA = kvm-launcher.glade + ##sample script to customize copy more data to /usr/share/kvm-launcher #install-data-hook: # $(MKDIR_P) ${pkgdatadir} # cp -R foo/* ${pkgdatadir} -CLEANFILES = *~ kvm-launcher.desktop +# Set the path to pkgdatadir post installation: +install-exec-hook: + sed -i "s|@PKGDATADIR@|${pkgdatadir}|g" \ + $(DESTDIR)$(bindir)/kvm-launcher +CLEANFILES = *~ *.pyc kvm-launcher.desktop diff --git a/src/kvm-launcher b/src/kvm-launcher index 7af465f..089ae51 100755 --- a/src/kvm-launcher +++ b/src/kvm-launcher @@ -22,13 +22,14 @@ import gobject import gtk import gtk.glade import os +import sys import pygtk import re import shutil -import sys import time import traceback import signal +import webbrowser debug = False @@ -38,28 +39,54 @@ ENVIRONMENT_VARS = { 'PATH' : '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', } +ICON_NAME = "kvm-launcher32" + +#PKGDATADIR is replaced w/datadir during install (e.g./usr/local/share/<pkg>) +sys.path.insert(0, '@PKGDATADIR@') + class App(object): """This is our main""" def __init__(self): - self.gladefile = "kvm-launcher.glade" #os.path.join(self.sdk.path, "kvm-launcher.glade") - if not os.path.isfile(self.gladefile): - raise IOError, "Glade file is missing from: %s" % self.gladefile gnome.init('kvm-launcher', "1.0", properties = {'app-datadir':""}) + + self.gladefile = self.get_file_in_path("kvm-launcher.glade") + if self.gladefile == None: + raise IOError, "Error: glade file is missing (%s)" % self.gladefile + self.widgets = gtk.glade.XML (self.gladefile, 'main') dic = {"on_main_destroy_event" : self.quit, - "on_main_key_press_event" : self.main_key_press_event, - "on_cancel_clicked" : self.cancel_clicked, - "on_browse_clicked" : self.browse_clicked, - "on_launch_kvm_clicked" : self.launch_kvm_clicked, - "on_launch_qemu_clicked" : self.launch_qemu_clicked - } + "on_main_key_press_event" : self.main_key_press_event, + "on_cancel_clicked" : self.cancel_clicked, + "on_link_clicked" : self.link_clicked, + "on_browse_clicked" : self.browse_clicked, + "on_launch_kvm_clicked" : self.launch_kvm_clicked, + "on_launch_qemu_clicked" : self.launch_qemu_clicked + } self.widgets.signal_autoconnect(dic) main_window = self.widgets.get_widget("main") main_window.set_resizable(True) + self.set_icon(main_window) main_window.show_all() self.image_path_entry = self.widgets.get_widget("image_path_entry") + def get_file_in_path (self, file): + '''get full path''' + fullpath = None + for pathentry in sys.path: + tmp = os.path.join (pathentry, file) + if os.path.isfile(tmp): + fullpath = tmp + break + return fullpath + + def set_icon (self,widget): + icon_theme = gtk.icon_theme_get_default() + icon_pixbuf = icon_theme.load_icon (ICON_NAME, 32, + gtk.ICON_LOOKUP_USE_BUILTIN) + if icon_pixbuf != None: + widget.set_icon(icon_pixbuf) + def run(self): gtk.main() @@ -70,14 +97,18 @@ class App(object): if event.keyval == gtk.keysyms.Escape: self.cancel_clicked(widget) - def cancel_clicked(self, widget): - dialog = gtk.MessageDialog(flags=gtk.MESSAGE_QUESTION, buttons=gtk.BUTTONS_OK_CANCEL, + dialog = gtk.MessageDialog(flags=gtk.MESSAGE_QUESTION, + buttons=gtk.BUTTONS_OK_CANCEL, message_format="Do you want to exit?") if dialog.run() == gtk.RESPONSE_OK: gtk.main_quit() dialog.destroy() + def link_clicked(self, widget): + '''Load browser with URL''' + print widget.get_uri() + webbrowser.open(widget.get_uri()); def browse_clicked(self, widget): dialog = gtk.FileChooserDialog(action=gtk.FILE_CHOOSER_ACTION_OPEN, title=_("Choose an image")) diff --git a/src/kvm-launcher.glade b/src/kvm-launcher.glade index beb0c84..65be81f 100755 --- a/src/kvm-launcher.glade +++ b/src/kvm-launcher.glade @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd"> -<!--Generated with glade3 3.4.5 on Tue Jan 13 12:06:09 2009 --> +<!--Generated with glade3 3.4.5 on Tue Jan 13 16:37:04 2009 --> <glade-interface> <widget class="GtkWindow" id="main"> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> @@ -109,7 +109,7 @@ <property name="label" translatable="yes">_Images online:</property> <property name="use_underline">True</property> <property name="justify">GTK_JUSTIFY_FILL</property> - <property name="mnemonic_widget">linkBtn</property> + <property name="mnemonic_widget">link</property> </widget> <packing> <property name="x_options"></property> @@ -117,15 +117,16 @@ </packing> </child> <child> - <widget class="GtkLinkButton" id="linkBtn"> + <widget class="GtkLinkButton" id="link"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> - <property name="label" translatable="yes">http://git.moblin.org</property> + <property name="label" translatable="yes">http://dev.moblin.org</property> <property name="relief">GTK_RELIEF_NONE</property> <property name="xalign">0</property> <property name="response_id">0</property> - <property name="uri">http://glade.gnome.org</property> + <property name="uri">http://dev.moblin.org</property> + <signal name="clicked" handler="on_link_clicked"/> </widget> <packing> <property name="left_attach">1</property> @@ -173,38 +174,39 @@ </packing> </child> <child> - <widget class="GtkButton" id="launch_kvm"> + <widget class="GtkButton" id="cancel"> <property name="width_request">120</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="label" translatable="yes">Launch _KVM</property> - <property name="use_underline">True</property> + <property name="label" translatable="yes">gtk-cancel</property> + <property name="use_stock">True</property> <property name="response_id">0</property> - <signal name="clicked" handler="on_launch_kvm_clicked"/> + <signal name="clicked" handler="on_cancel_clicked"/> </widget> <packing> <property name="expand">False</property> + <property name="fill">False</property> <property name="pack_type">GTK_PACK_END</property> <property name="position">1</property> </packing> </child> <child> - <widget class="GtkButton" id="cancel"> + <widget class="GtkButton" id="launch_kvm"> <property name="width_request">120</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> - <property name="label" translatable="yes">gtk-cancel</property> - <property name="use_stock">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="label" translatable="yes">Launch _KVM</property> + <property name="use_underline">True</property> <property name="response_id">0</property> - <signal name="clicked" handler="on_cancel_clicked"/> + <signal name="clicked" handler="on_launch_kvm_clicked"/> </widget> <packing> <property name="expand">False</property> - <property name="fill">False</property> <property name="pack_type">GTK_PACK_END</property> + <property name="position">1</property> </packing> </child> </widget> diff --git a/src/kvm-launcher32.png b/src/kvm-launcher32.png index 2ed90d0..99821cc 100644 Binary files a/src/kvm-launcher32.png and b/src/kvm-launcher32.png differ diff --git a/src/kvm-launcher48.png b/src/kvm-launcher48.png index 87182a1..18269db 100644 Binary files a/src/kvm-launcher48.png and b/src/kvm-launcher48.png differ _______________________________________________ Commits mailing list [email protected] https://lists.moblin.org/mailman/listinfo/commits
