[hamster-applet] Restrict actions when activity is in progress. Fixes bug 583584
- From: Toms Baugis <tbaugis src gnome org>
- To: svn-commits-list gnome org
- Subject: [hamster-applet] Restrict actions when activity is in progress. Fixes bug 583584
- Date: Sat, 23 May 2009 21:15:14 -0400 (EDT)
commit 231e005435d893a0e7696a864cf07e7c4c562de8
Author: Andreas Köhler <andi5 py gmx net>
Date: Sun May 24 02:10:27 2009 +0100
Restrict actions when activity is in progress. Fixes bug 583584
---
data/edit_activity.ui | 2 +-
hamster/edit_activity.py | 32 ++++++++++++++++++++++++--------
2 files changed, 25 insertions(+), 9 deletions(-)
diff --git a/data/edit_activity.ui b/data/edit_activity.ui
index 654989c..24bc99d 100644
--- a/data/edit_activity.ui
+++ b/data/edit_activity.ui
@@ -107,7 +107,7 @@
</packing>
</child>
<child>
- <object class="GtkLabel" id="label3">
+ <object class="GtkLabel" id="end_label">
<property name="visible">True</property>
<property name="label" translatable="yes">to</property>
</object>
diff --git a/hamster/edit_activity.py b/hamster/edit_activity.py
index 0558636..04311dd 100644
--- a/hamster/edit_activity.py
+++ b/hamster/edit_activity.py
@@ -56,7 +56,8 @@ class Dayline(graphics.Area):
self.move_type = ""
self.on_time_changed = None #override this with your func to get notified when user changes date
self.on_more_data = None #supplement with more data func that accepts single date
-
+ self.in_progress = False
+
self.range_start = None
self.in_motion = False
self.days = []
@@ -70,7 +71,10 @@ class Dayline(graphics.Area):
if event.state & gtk.gdk.BUTTON1_MASK:
self.call_parent_time_changed()
-
+
+ def set_in_progress(self, in_progress):
+ self.in_progress = in_progress
+
def call_parent_time_changed(self):
#now calculate back from pixels into minutes
start_time = self.get_value_at_pos(x = self.highlight_start)
@@ -130,14 +134,20 @@ class Dayline(graphics.Area):
#print x, self.highlight_start, self.highlight_end
if self.highlight_start != None:
start_drag = 10 > (self.highlight_start - x) > -1
+
end_drag = 10 > (x - self.highlight_end) > -1
if start_drag and end_drag:
start_drag = abs(x - self.highlight_start) < abs(x - self.highlight_end)
in_between = self.highlight_start <= x <= self.highlight_end
-
-
+ scale = True
+
+ if self.in_progress:
+ end_drag = False
+ in_between = False
+ scale = False
+
if mouse_down and not self.drag_start:
self.drag_start = x
if start_drag:
@@ -147,7 +157,7 @@ class Dayline(graphics.Area):
elif in_between:
self.move_type = "move"
self.drag_start = x - self.highlight_start
- else:
+ elif scale:
self.move_type = "scale_drag"
self.drag_start_time = self.range_start.value
@@ -334,8 +344,10 @@ class CustomFactController:
buf.set_text(fact["description"] or "")
self.get_widget('description').set_buffer(buf)
- if not end_date and fact["start_time"].date() == dt.date.today():
- end_date = dt.datetime.now()
+ if not end_date:
+ self.get_widget("in_progress").set_active(True)
+ if (dt.datetime.now() - start_date).days == 0:
+ end_date = dt.datetime.now()
self.get_widget("save_button").set_label("gtk-save")
self.window.set_title(_("Update activity"))
@@ -562,8 +574,12 @@ class CustomFactController:
return False
def on_in_progress_toggled(self, check):
- self.end_time.set_sensitive(not check.get_active())
+ sensitive = not check.get_active()
+ self.end_time.set_sensitive(sensitive)
+ self.get_widget("end_label").set_sensitive(sensitive)
+ self.get_widget("end_date_label").set_sensitive(sensitive)
self.validate_fields()
+ self.dayline.set_in_progress(not sensitive)
def on_cancel_clicked(self, button):
self.close_window()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]