changeset 776c3005e691 in /home/hg/repos/gajim

details:http://hg.gajim.org/gajim?cmd=changeset;node=776c3005e691
description: add a splash screen when loading roster

diffstat:

 data/gui/splash_screen.ui |  38 ++++++++++++++++++++++++++++++++++++++
 src/dialogs.py            |  21 +++++++++++++++++++++
 src/gui_interface.py      |   6 +++++-
 3 files changed, 64 insertions(+), 1 deletions(-)

diffs (92 lines):

diff -r e1030bbfceee -r 776c3005e691 data/gui/splash_screen.ui
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/data/gui/splash_screen.ui Sat Jul 24 22:04:07 2010 +0200
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<interface>
+  <requires lib="gtk+" version="2.16"/>
+  <!-- interface-naming-policy project-wide -->
+  <object class="GtkWindow" id="splash_window">
+    <property name="modal">True</property>
+    <property name="window_position">center</property>
+    <property name="type_hint">splashscreen</property>
+    <property name="skip_taskbar_hint">True</property>
+    <property name="skip_pager_hint">True</property>
+    <property name="decorated">False</property>
+    <property name="deletable">False</property>
+    <child>
+      <object class="GtkVBox" id="vbox1">
+        <property name="visible">True</property>
+        <property name="orientation">vertical</property>
+        <child>
+          <object class="GtkImage" id="image">
+            <property name="visible">True</property>
+            <property name="icon-size">6</property>
+          </object>
+          <packing>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkProgressBar" id="progressbar">
+            <property name="visible">True</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff -r e1030bbfceee -r 776c3005e691 src/dialogs.py
--- a/src/dialogs.py    Sat Jul 24 00:29:20 2010 +0200
+++ b/src/dialogs.py    Sat Jul 24 22:04:07 2010 +0200
@@ -5011,3 +5011,24 @@
                     session.reject_content(content)
 
         dialog.destroy()
+
+class SplashScreen:
+    def __init__(self):
+        xml = gtkgui_helpers.get_gtk_builder('splash_screen.ui')
+        self.window = xml.get_object('splash_window')
+        pixbuf = gtkgui_helpers.get_icon_pixmap('gajim-about', 128)
+        xml.get_object('image').set_from_pixbuf(pixbuf)
+        self.pb = xml.get_object('progressbar')
+        self.pb.set_text('Loading roster ...')
+        self.nb = 0
+        self.nb_max = 1
+        self.window.show_all()
+        self.window.window.process_updates(True)
+        
+    def set_nb_account(self, nb):
+        self.nb_max = nb
+
+    def inc_progressbar(self):
+        self.nb += 1
+        self.pb.set_fraction(float(self.nb) / self.nb_max)
+        self.window.window.process_updates(True)
\ No newline at end of file
diff -r e1030bbfceee -r 776c3005e691 src/gui_interface.py
--- a/src/gui_interface.py      Sat Jul 24 00:29:20 2010 +0200
+++ b/src/gui_interface.py      Sat Jul 24 22:04:07 2010 +0200
@@ -3245,12 +3245,16 @@
         if gajim.config.get('trayicon') != 'never':
             self.show_systray()
 
+        splash = dialogs.SplashScreen()
+        splash.set_nb_account(len(gajim.connections))
         self.roster = roster_window.RosterWindow()
         self.roster._before_fill()
         for account in gajim.connections:
             gajim.connections[account].load_roster_from_db()
+            splash.inc_progressbar()
         self.roster._after_fill()
-
+        splash.window.destroy()
+        
         # get instances for windows/dialogs that will show_all()/hide()
         self.instances['file_transfers'] = dialogs.FileTransfersWindow()
 
_______________________________________________
Commits mailing list
[email protected]
http://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to