bigboard r7285 - in trunk/bigboard/stocks: files mail self
- From: marinaz svn gnome org
- To: svn-commits-list gnome org
- Subject: bigboard r7285 - in trunk/bigboard/stocks: files mail self
- Date: Tue, 8 Apr 2008 23:35:21 +0100 (BST)
Author: marinaz
Date: Tue Apr 8 23:35:21 2008
New Revision: 7285
URL: http://svn.gnome.org/viewvc/bigboard?rev=7285&view=rev
Log:
Make sure that clicking on the same item in Self, Files, and Mail stocks closes the slideout.
Make left-click in the Files stock and browser open the file with default application. Make right-click show the slideout with information and options for which application to open the file with.
Modified:
trunk/bigboard/stocks/files/FilesStock.py
trunk/bigboard/stocks/files/filebrowser.py
trunk/bigboard/stocks/mail/MailStock.py
trunk/bigboard/stocks/self/SelfStock.py
Modified: trunk/bigboard/stocks/files/FilesStock.py
==============================================================================
--- trunk/bigboard/stocks/files/FilesStock.py (original)
+++ trunk/bigboard/stocks/files/FilesStock.py Tue Apr 8 23:35:21 2008
@@ -387,6 +387,7 @@
self.__slideout = None
self.__slideout_target = None
+ self.__last_slideout_event_time = None
self.desktop_path = self._panel.get_desktop_path()
@@ -430,26 +431,32 @@
def remove_google_data(self, gobj):
self.__remove_files_for_key(gobj)
- def __on_file_activated(self, fobj, lnk):
+ def on_file_activated(self, fobj, lnk, from_bigboard=True):
_logger.debug("got file activated: %s", fobj)
if self.__slideout is not None:
self.__slideout.destroy()
- self.__slideout = None
- if fobj == self.__slideout_target:
+ self.__slideout = None
+ if fobj == self.__slideout_target and \
+ self.__last_slideout_event_time == gtk.get_current_event_time():
self.__slideout_target = None
return
self.__slideout_target = fobj
self.__slideout = FileSlideout(fobj)
def on_slideout_close(s, action_taken):
+ self.__last_slideout_event_time = gtk.get_current_event_time()
if action_taken:
self._panel.action_taken()
s.destroy()
self.__slideout = None
- self.__slideout_target = None
self.__slideout.connect('close', on_slideout_close)
item = lnk.link
coords = item.get_context().translate_to_screen(item)
- if not self.__slideout.slideout_from(204, coords[1]):
+ (coord_x, coord_y) = coords
+ if from_bigboard:
+ coord_x = 204
+ else:
+ coord_y = coord_y + 20
+ if not self.__slideout.slideout_from(coord_x, coord_y):
self.__slideout.destroy()
self.__slideout = None
self.__slideout_target = None
@@ -460,7 +467,7 @@
for document_entry in document_entries:
google_file = GoogleFile(gobj, gobj.get_account().get_username_as_google_email(),
document_entry)
- google_file.connect('activated', self.__on_file_activated)
+ # google_file.connect('activated', self.on_file_activated)
self.__files.append(google_file)
self.__files.sort(compare_by_date)
self.__refresh_files()
@@ -507,7 +514,7 @@
else:
local_file = LocalFile(url, child)
local_file.connect("changed", self.__on_local_file_changed)
- local_file.connect('activated', self.__on_file_activated)
+ # local_file.connect('activated', self.on_file_activated)
self.__files.append(local_file)
self.__files = filter(lambda f: f.get_url() not in old_files, self.__files)
@@ -524,8 +531,8 @@
if i >= self.__display_limit: break
if a_file.is_valid():
link = a_file.create_icon_link()
- link.connect("button-press-event", self.on_button_press_event)
- link.connect("button-release-event", self.on_button_release_event)
+ link.connect("button-press-event", self.on_button_press_event, a_file)
+ link.connect("button-release-event", self.on_button_release_event, a_file)
link.connect("motion-notify-event", self.on_motion_notify_event, a_file.get_url())
self._recentbox.append(link)
i += 1
@@ -541,13 +548,18 @@
subprocess.Popen(['gnome-open', fobj.get_url()])
@log_except(_logger)
- def on_button_press_event(self, widget, event):
- if event.button == 1 :
+ def on_button_press_event(self, widget, event, a_file):
+ if event.button == 1:
self.__drag_start_pos = event.x, event.y
+ elif event.button == 3:
+ self.on_file_activated(a_file, widget)
return False
- def on_button_release_event(self, widget, hippo_event):
+ def on_button_release_event(self, widget, event, a_file):
+ if event.button == 1:
+ self.activate_file(a_file)
+
self.__drag_start_pos = None
return False
Modified: trunk/bigboard/stocks/files/filebrowser.py
==============================================================================
--- trunk/bigboard/stocks/files/filebrowser.py (original)
+++ trunk/bigboard/stocks/files/filebrowser.py Tue Apr 8 23:35:21 2008
@@ -131,6 +131,8 @@
for a_file in self.__stock.get_files():
if a_file.is_valid():
link = a_file.create_icon_link()
+ link.connect("button-press-event", self.__on_link_pressed, a_file)
+ link.connect("button-release-event", self.__on_link_released, a_file)
self.__file_list.add_column_item(0, link)
self.__file_items.append(link)
self.__set_visibility(link)
@@ -178,8 +180,13 @@
if not command_works(['tracker-search-tool', search]):
subprocess.Popen(['gnome-search-tool', '--named', search])
- def __on_link_clicked(self, canvas_item, url):
- subprocess.Popen(['gnome-open', url])
+ def __on_link_pressed(self, canvas_item, event, a_file):
+ if event.button == 3:
+ self.__stock.on_file_activated(a_file, canvas_item, False)
+
+ def __on_link_released(self, canvas_item, event, a_file):
+ if event.button == 1:
+ subprocess.Popen(['gnome-open', a_file.get_url()])
def __hide(self):
self.hide()
Modified: trunk/bigboard/stocks/mail/MailStock.py
==============================================================================
--- trunk/bigboard/stocks/mail/MailStock.py (original)
+++ trunk/bigboard/stocks/mail/MailStock.py Tue Apr 8 23:35:21 2008
@@ -92,7 +92,8 @@
vbox = CanvasVBox(border_color=0x0000000ff, spacing=4)
self.get_root().append(vbox)
self.__header = Header(topborder=False)
-
+ self.id = thread.id
+
subject = remove_strange_tags(thread.subject)
subject_box = hippo.CanvasText(classes='header', text=subject)
@@ -129,7 +130,8 @@
self._box = hippo.CanvasBox(orientation=hippo.ORIENTATION_VERTICAL)
self.__slideout = None
-
+ self.__last_slideout_event_time = None
+
self.__current_gobj = None
self.__google_account = None
self.__folder = 'inbox'
@@ -170,7 +172,7 @@
self._box.append(account)
box = PrelightingCanvasBox()
- box.connect("button-release-event", self.create_label_slideout, self.__google_account)
+ box.connect("button-press-event", self.create_label_slideout, self.__google_account)
self._box.append(box)
label = hippo.CanvasText(text=self.__folder, font="14px Bold Italic")
box.append(label)
@@ -190,7 +192,7 @@
subject = remove_strange_tags(thread.subject, True)
box = PrelightingCanvasBox()
- box.connect("button-release-event", self.create_email_slideout, thread)
+ box.connect("button-press-event", self.create_email_slideout, thread)
self._box.append(box)
email = hippo.CanvasText(markup=subject, xalign=hippo.ALIGNMENT_START)
box.append(email)
@@ -210,10 +212,10 @@
def show_slideout(self, widget):
def on_slideout_close(s, action_taken):
+ self.__last_slideout_event_time = gtk.get_current_event_time()
if action_taken:
self._panel.action_taken()
s.destroy()
- self.__slideout = None
self.__slideout.connect('close', on_slideout_close)
y = widget.get_context().translate_to_screen(widget)[1]
if not self.__slideout.slideout_from(204, y):
@@ -221,14 +223,22 @@
self.__slideout = None
return
- def create_label_slideout(self, widget, hippo_event, data):
+ def create_label_slideout(self, widget, hippo_event, data):
+ if type(self.__slideout) is LabelSlideout and \
+ self.__last_slideout_event_time == gtk.get_current_event_time():
+ self.__slideout = None
+ return
self.__slideout = LabelSlideout(data)
self.__slideout.connect('changed', self.on_label_changed)
self.show_slideout(widget)
def create_email_slideout(self, widget, hippo_event, data):
- self.__slideout = EmailSlideout(data)
- self.show_slideout(widget)
+ if type(self.__slideout) is EmailSlideout and self.__slideout.id == data.id and \
+ self.__last_slideout_event_time == gtk.get_current_event_time():
+ self.__slideout = None
+ return
+ self.__slideout = EmailSlideout(data)
+ self.show_slideout(widget)
def on_label_changed (self, slideout, label):
self.__folder = label
Modified: trunk/bigboard/stocks/self/SelfStock.py
==============================================================================
--- trunk/bigboard/stocks/self/SelfStock.py (original)
+++ trunk/bigboard/stocks/self/SelfStock.py Tue Apr 8 23:35:21 2008
@@ -286,6 +286,7 @@
self.info_loaded = False
self.__slideout = None
+ self.__last_slideout_event_time = None
self.__portfolio_manager = None
@@ -379,12 +380,16 @@
libbig.show_url(urlparse.urljoin(globals.get_baseurl(), url))
@log_except(_logger)
- def __on_activate(self):
+ def __on_activate(self):
if self.__slideout:
+ self.__last_slideout_event_time = gtk.get_current_event_time()
self.__slideout.destroy()
self.__slideout = None
return
+ if self.__last_slideout_event_time == gtk.get_current_event_time():
+ return
+
self.__create_fus_proxy()
self.__slideout = SelfSlideout(self, self.__myself, fus=self.__fus_service, logger=_logger)
self.__slideout.connect('account', lambda s: self.__do_account())
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]