diff --git a/Window.py b/Window.py index 278d461..11e674b 100644 --- a/Window.py +++ b/Window.py @@ -97,6 +97,7 @@ class Window: self.projects_container.remove(self.projects_table) self.projects = self.ds.getProjects() self.project_hour_labels = {} + self.project_labels_to_pnum = {} projects_to_show = {} for p in self.shown_projects: projects_to_show[p] = 1 @@ -106,6 +107,7 @@ class Window: self.tasks = self.ds.getTasks(self.currProject) self.task_hour_labels = {} + self.task_labels_to_pnum = {} # Header row col_headers = ('Project', @@ -132,14 +134,17 @@ class Window: pnum = self.getProjectNum(pname) e = projTblCell(pname, pnum) e.get_child().set_alignment(0.0, 0.0) + self.project_labels_to_pnum[e.get_child()] = pnum e.add_events(gtk.gdk.BUTTON_PRESS_MASK) e.connect("button-press-event", self.project_click_event) self.projects_table.attach(e, 0, 1, row, row + 1) self.project_hour_labels[pnum] = {} for i in range(8): - e = projTblCell(" ", pnum) + e = projTblCell('', pnum) self.projects_table.attach(e, i + 1, i + 2, row, row + 1) self.project_hour_labels[pnum][i] = e.get_child() + e.connect("button-press-event", self.project_click_event) + self.project_labels_to_pnum[e.get_child()] = pnum row += 1 # Totals row @@ -297,7 +302,7 @@ class Window: pnum = 0 if pnum: self.shown_projects[pnum] = 1 - self.project_select_event(pname) + self.project_select_event(pnum) self.updateProjects() def project_key_press_event(self, widget, event, data=None): @@ -310,14 +315,15 @@ class Window: lbl = ebox.get_child() if lbl: if event.button == 1: - return self.project_select_event(lbl.get_text()) + if lbl in self.project_labels_to_pnum: + return self.project_select_event( + self.project_labels_to_pnum[lbl]) elif event.button == 3: # TODO: handle right-click return True return False - def project_select_event(self, projectName): - pnum = self.getProjectNum(projectName) + def project_select_event(self, pnum): if pnum: self.currProject = pnum self.updateProjects()