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

Reply via email to