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