Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAneesh Dogra <lionaneesh@gmail.com>2012-12-21 19:28:40 (GMT)
committer Aneesh Dogra <lionaneesh@gmail.com>2012-12-21 19:28:40 (GMT)
commitcf81a79f509fd52a890815a414373af230721d71 (patch)
tree414d28c84708d3a3aa67b941eba4f6e43fab17d2
parente296a2489af3b3381e3e64098932a362fbbb08c0 (diff)
Fixes.
-rw-r--r--GNUChessActivity.py31
-rw-r--r--chess.py4
2 files changed, 28 insertions, 7 deletions
diff --git a/GNUChessActivity.py b/GNUChessActivity.py
index e4d8f67..1cb8f2a 100644
--- a/GNUChessActivity.py
+++ b/GNUChessActivity.py
@@ -490,7 +490,10 @@ class GNUChessActivity(activity.Activity):
return
def set_timer_cb(self, widget):
- if widget.get_active() > 0:
+ game_already_started = 0
+ if self.time_interval != None:
+ game_already_started = 1
+ if widget.get_active() >= 0:
timer_type = widget.get_active_text()
if timer_type == _('Lightning: 30 seconds'):
self.time_interval = 30
@@ -499,9 +502,16 @@ class GNUChessActivity(activity.Activity):
elif timer_type == _('Tournament: 10 minutes'):
self.time_interval = 10 * 60
else:
- return
- widget.set_sensitive(False)
- self._gnuchess.new_game()
+ self.time_interval = -1
+
+ if game_already_started:
+ self.alert_reset(timer_type)
+ if self.time_interval and self.time_interval == -1:
+ self.stopwatch(self.time_interval, self.alert_time)
+ else:
+ GObject.source_remove(self.stopwatch_timer)
+ else:
+ self._gnuchess.new_game()
def _reskin_cb(self, button, piece):
object_id, file_path = self._choose_skin()
@@ -691,7 +701,7 @@ class GNUChessActivity(activity.Activity):
if 'timer_mode' in self.metadata:
self.timer.set_active(self.time_list.index(
self.metadata['timer_mode']))
- self.timer.set_sensitive(False)
+
self._gnuchess.restore_game(self._parse_move_list(self.game_data))
self.do_custom_skin_cb()
@@ -943,6 +953,17 @@ params=%r state=%d' % (id, initiator, type, service, params, state))
alert.show()
self.add_alert(alert)
+ def alert_reset(self, mode):
+ def _alert_response_cb(alert, response_id):
+ self.remove_alert(alert)
+
+ alert = NotifyAlert()
+ alert.props.title = _('Time Reset')
+ alert.props.msg = _('The timer mode was reset to %s' % mode)
+ alert.connect('response', _alert_response_cb)
+ alert.show()
+ self.add_alert(alert)
+
def stopwatch(self, time, alert_callback):
if self.stopwatch_running:
GObject.source_remove(self.stopwatch_timer)
diff --git a/chess.py b/chess.py
index c7957b5..de343cc 100644
--- a/chess.py
+++ b/chess.py
@@ -259,7 +259,8 @@ class Gnuchess():
self._flash_tile([self._xy_to_file_and_rank(
self.black[4].get_xy())])
else:
- if self._activity.time_interval != None:
+ if self._activity.time_interval and \
+ (self._activity.time_interval >= 0):
self._activity.stopwatch(self._activity.time_interval,
self._activity.alert_time)
@@ -429,7 +430,6 @@ class Gnuchess():
self._dragpos = [x, y]
self._total_drag[0] += dx
self._total_drag[1] += dy
- self._activity.timer.set_sensitive(False)
return True
def _button_release_cb(self, win, event):