[preview] Port to new FileChooser API
This commit is contained in:
@@ -38,6 +38,12 @@ from url_image_preview.http_functions import get_http_head, get_http_file
|
|||||||
from url_image_preview.config_dialog import UrlImagePreviewConfigDialog
|
from url_image_preview.config_dialog import UrlImagePreviewConfigDialog
|
||||||
from url_image_preview.resize_gif import resize_gif
|
from url_image_preview.resize_gif import resize_gif
|
||||||
|
|
||||||
|
try:
|
||||||
|
from gajim.filechoosers import FileSaveDialog
|
||||||
|
NEW_FILECHOOSER = True
|
||||||
|
except ImportError:
|
||||||
|
NEW_FILECHOOSER = False
|
||||||
|
|
||||||
log = logging.getLogger('gajim.plugin_system.preview')
|
log = logging.getLogger('gajim.plugin_system.preview')
|
||||||
|
|
||||||
PILLOW_AVAILABLE = True
|
PILLOW_AVAILABLE = True
|
||||||
@@ -590,8 +596,12 @@ class Base(object):
|
|||||||
id_ = open_menuitem.connect(
|
id_ = open_menuitem.connect(
|
||||||
'activate', self.on_open_menuitem_activate, data)
|
'activate', self.on_open_menuitem_activate, data)
|
||||||
self.handlers[id_] = open_menuitem
|
self.handlers[id_] = open_menuitem
|
||||||
id_ = save_as_menuitem.connect(
|
if NEW_FILECHOOSER:
|
||||||
'activate', self.on_save_as_menuitem_activate, data)
|
id_ = save_as_menuitem.connect(
|
||||||
|
'activate', self.on_save_as_menuitem_activate_new, data)
|
||||||
|
else:
|
||||||
|
id_ = save_as_menuitem.connect(
|
||||||
|
'activate', self.on_save_as_menuitem_activate, data)
|
||||||
self.handlers[id_] = save_as_menuitem
|
self.handlers[id_] = save_as_menuitem
|
||||||
id_ = copy_link_location_menuitem.connect(
|
id_ = copy_link_location_menuitem.connect(
|
||||||
'activate', self.on_copy_link_location_menuitem_activate, data)
|
'activate', self.on_copy_link_location_menuitem_activate, data)
|
||||||
@@ -669,6 +679,25 @@ class Base(object):
|
|||||||
dialog.connect('delete-event', lambda widget, event:
|
dialog.connect('delete-event', lambda widget, event:
|
||||||
on_cancel(widget))
|
on_cancel(widget))
|
||||||
|
|
||||||
|
def on_save_as_menuitem_activate_new(self, menu, data):
|
||||||
|
filepath = data["filepath"]
|
||||||
|
original_filename = data["original_filename"]
|
||||||
|
|
||||||
|
def on_ok(target_path):
|
||||||
|
dirname = os.path.dirname(target_path)
|
||||||
|
if not os.access(dirname, os.W_OK):
|
||||||
|
dialogs.ErrorDialog(
|
||||||
|
_('Directory "%s" is not writable') % dirname,
|
||||||
|
_('You do not have permission to '
|
||||||
|
'create files in this directory.'))
|
||||||
|
return
|
||||||
|
shutil.copy(filepath, target_path)
|
||||||
|
|
||||||
|
FileSaveDialog(on_ok,
|
||||||
|
path=app.config.get('last_save_dir'),
|
||||||
|
file_name=original_filename,
|
||||||
|
transient_for=app.app.get_active_window())
|
||||||
|
|
||||||
def on_copy_link_location_menuitem_activate(self, menu, data):
|
def on_copy_link_location_menuitem_activate(self, menu, data):
|
||||||
url = data["url"]
|
url = data["url"]
|
||||||
clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
|
clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
|
||||||
|
|||||||
Reference in New Issue
Block a user