[kupfer: 16/27] ui: +progress dialog - dialog showing progress for example uploading
- From: Ulrik Sverdrup <usverdrup src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [kupfer: 16/27] ui: +progress dialog - dialog showing progress for example uploading
- Date: Tue, 16 Feb 2010 20:48:28 +0000 (UTC)
commit 041b9b9d200d5b4140797e06e11f0a25177f2d3a
Author: Karol BÄ?dkowski <karol bedkowsk+gh gmail com>
Date: Thu Feb 4 19:10:36 2010 +0100
ui: +progress dialog - dialog showing progress for example uploading
data/progress_dialog.ui | 86 ++++++++++++++++++++++++++++++++++++++++++
kupfer/ui/progress_dialog.py | 48 +++++++++++++++++++++++
2 files changed, 134 insertions(+), 0 deletions(-)
---
diff --git a/data/progress_dialog.ui b/data/progress_dialog.ui
new file mode 100644
index 0000000..27cf16f
--- /dev/null
+++ b/data/progress_dialog.ui
@@ -0,0 +1,86 @@
+<?xml version="1.0"?>
+<interface>
+ <requires lib="gtk+" version="2.14"/>
+ <!-- interface-naming-policy project-wide -->
+ <object class="GtkWindow" id="window_progress">
+ <property name="border_width">6</property>
+ <property name="window_position">center</property>
+ <property name="default_width">439</property>
+ <child>
+ <object class="GtkVBox" id="vbox1">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkVBox" id="vbox2">
+ <property name="visible">True</property>
+ <property name="border_width">6</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="label_header">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">label</property>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label_info">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0</property>
+ <property name="label" translatable="yes">label</property>
+ <property name="use_markup">True</property>
+ <property name="ellipsize">middle</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkProgressBar" id="progressbar">
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkHButtonBox" id="hbuttonbox1">
+ <property name="visible">True</property>
+ <property name="border_width">6</property>
+ <property name="layout_style">end</property>
+ <child>
+ <object class="GtkButton" id="button_abort">
+ <property name="label">gtk-cancel</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ <signal name="clicked" handler="on_button_abort_clicked"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/kupfer/ui/progress_dialog.py b/kupfer/ui/progress_dialog.py
new file mode 100644
index 0000000..6404041
--- /dev/null
+++ b/kupfer/ui/progress_dialog.py
@@ -0,0 +1,48 @@
+import gtk
+
+from kupfer import version, config, kupferstring
+
+
+_HEADER_MARKUP = '<span weight="bold" size="larger">%s</span>'
+
+class ProgressDialogController():
+ def __init__(self, title, header=None, label=None, max_value=100):
+ """Load ui from data file"""
+ builder = gtk.Builder()
+ builder.set_translation_domain(version.PACKAGE_NAME)
+ ui_file = config.get_data_file("progress_dialog.ui")
+
+ builder.add_from_file(ui_file)
+ builder.connect_signals(self)
+ self.window = builder.get_object("window_progress")
+ self.button_abort = builder.get_object('button_abort')
+ self.progressbar = builder.get_object('progressbar')
+ self.label_info = builder.get_object('label_info')
+ self.label_header = builder.get_object('label_header')
+
+ self.aborted = False
+ self.max_value = float(max_value)
+
+ self.window.set_title(title)
+ if header:
+ self.label_header.set_markup(_HEADER_MARKUP % header)
+ else:
+ self.label_header.hide()
+
+ self.update(0, label or '')
+
+ def on_button_abort_clicked(self, widget):
+ self.aborted = True
+ self.button_abort.set_sensitive(False)
+
+ def show(self):
+ return self.window.present()
+
+ def hide(self):
+ return self.window.hide()
+
+ def update(self, value, label):
+ self.progressbar.set_fraction(min(value/self.max_value, 1.0))
+ self.label_info.set_markup(kupferstring.toutf8(label))
+ return self.aborted
+
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]