summaryrefslogtreecommitdiff
path: root/rapid/rapid.py
diff options
context:
space:
mode:
Diffstat (limited to 'rapid/rapid.py')
-rwxr-xr-xrapid/rapid.py54
1 files changed, 47 insertions, 7 deletions
diff --git a/rapid/rapid.py b/rapid/rapid.py
index 7de18c2..4f7e6bc 100755
--- a/rapid/rapid.py
+++ b/rapid/rapid.py
@@ -54,6 +54,8 @@ logger = log_to_stderr()
import rpdfile
+from misc import get_folder_selection
+
import problemnotification as pn
import thumbnail as tn
import rpdmultiprocessing as rpdmp
@@ -343,7 +345,10 @@ class DeviceCollection(gtk.TreeView):
n = pynotify.Notification(title, message)
n.set_icon_from_pixbuf(self.parent_app.application_icon)
- n.show()
+ try:
+ n.show()
+ except:
+ logger.error("Unable to display message using notification system")
def create_cairo_image_surface(pil_image, image_width, image_height):
@@ -627,6 +632,20 @@ class ThumbnailDisplay(gtk.IconView):
self.liststore.set_sort_column_id(self.TIMESTAMP_COL, gtk.SORT_ASCENDING)
def on_selection_changed(self, iconview):
+ """
+ Allow selections by row (and not GTK default by square) when user is
+ dragging the mouse or using the keyboard to select
+ """
+ selections = self.get_selected_items()
+ if len(selections) > 1:
+ previous_sel = selections[0][0] + 1
+ # seleted items list always starts with the highest selected item
+ for selection in selections:
+ current_sel = selection[0]
+ if current_sel <> (previous_sel-1):
+ for i in range(previous_sel-1, current_sel, -1):
+ self.select_path(i)
+ previous_sel = current_sel
self._selected_items = self.get_selected_items()
def on_checkbutton_toggled(self, cellrenderertoggle, path):
@@ -1838,7 +1857,7 @@ class RapidApp(dbus.service.Object):
if path:
if (path in self.prefs.device_blacklist and
self.search_for_PSD()):
- logger.info("%s ignored", mount.get_name())
+ logger.info("blacklisted device %s ignored", mount.get_name())
else:
logger.info("Detected %s", mount.get_name())
is_backup_mount, backup_file_type = self.check_if_backup_mount(path)
@@ -2807,7 +2826,10 @@ class RapidApp(dbus.service.Object):
n = pynotify.Notification(notification_name, message)
n.set_icon_from_pixbuf(icon)
- n.show()
+ try:
+ n.show()
+ except:
+ logger.error("Unable to display message using notification system")
def notify_download_complete(self):
if self.display_summary_notification:
@@ -2859,7 +2881,10 @@ class RapidApp(dbus.service.Object):
if use_pynotify:
n = pynotify.Notification(PROGRAM_NAME, message)
n.set_icon_from_pixbuf(self.application_icon)
- n.show()
+ try:
+ n.show()
+ except:
+ logger.error("Unable to display message using notification system")
self.display_summary_notification = False # don't show it again unless needed
@@ -3373,6 +3398,10 @@ class RapidApp(dbus.service.Object):
self._set_to_toolbar_values()
self.to_photo_filechooser_button.connect("selection-changed",
self.on_to_photo_filechooser_button_selection_changed)
+ #~ self.to_photo_filechooser_button.connect("file-set",
+ #~ self.on_to_photo_filechooser_button_file_set)
+ #~ self.to_photo_filechooser_button.connect("current-folder-changed",
+ #~ self.on_to_photo_filechooser_button_current_folder_changed)
self.to_video_filechooser_button.connect("selection-changed",
self.on_to_video_filechooser_button_selection_changed)
self.dest_toolbar.show_all()
@@ -3426,17 +3455,28 @@ class RapidApp(dbus.service.Object):
def on_from_filechooser_button_selection_changed(self, filechooserbutton):
logger.debug("on_from_filechooser_button_selection_changed")
- path = filechooserbutton.get_current_folder()
+ path = get_folder_selection(filechooserbutton)
if path and not self.rerun_setup_available_image_and_video_media:
self.prefs.device_location = path
+ def on_from_filechooser_button_file_set(self, button):
+ logger.debug("on_from_filechooser_button_file_set")
+
+ def on_to_photo_filechooser_button_file_set(self, filechooserbutton):
+ logger.debug("on_to_filechooser_button_file_set")
+
def on_to_photo_filechooser_button_selection_changed(self, filechooserbutton):
- path = filechooserbutton.get_current_folder()
+ logger.debug("on_to_filechooser_button_selection_changed")
+ path = get_folder_selection(filechooserbutton)
+ #~ logger.debug("Path: %s", path)
if path:
self.prefs.download_folder = path
+ def on_to_photo_filechooser_button_current_folder_changed(self, filechooserbutton):
+ logger.debug("on_to_photo_filechooser_button_current_folder_changed")
+
def on_to_video_filechooser_button_selection_changed(self, filechooserbutton):
- path = filechooserbutton.get_current_folder()
+ path = get_folder_selection(filechooserbutton)
if path:
self.prefs.video_download_folder = path