[GTKUI] Fix adding from clipboard

This commit is contained in:
Calum Lind 2017-03-20 22:50:50 +00:00
parent 5a3625f6cd
commit e5e49f68ba
4 changed files with 16 additions and 15 deletions

View File

@ -23,7 +23,7 @@ from deluge.configmanager import ConfigManager
from deluge.httpdownloader import download_file from deluge.httpdownloader import download_file
from deluge.ui.client import client from deluge.ui.client import client
from deluge.ui.common import TorrentInfo from deluge.ui.common import TorrentInfo
from deluge.ui.gtkui.common import listview_replace_treestore, reparent_iter from deluge.ui.gtkui.common import get_clipboard_text, listview_replace_treestore, reparent_iter
from deluge.ui.gtkui.dialogs import ErrorDialog from deluge.ui.gtkui.dialogs import ErrorDialog
from deluge.ui.gtkui.edittrackersdialog import trackers_tiers_from_text from deluge.ui.gtkui.edittrackersdialog import trackers_tiers_from_text
from deluge.ui.gtkui.path_chooser import PathChooser from deluge.ui.gtkui.path_chooser import PathChooser
@ -559,12 +559,9 @@ class AddTorrentDialog(component.Component):
dialog.set_transient_for(self.dialog) dialog.set_transient_for(self.dialog)
entry.grab_focus() entry.grab_focus()
text = (gtk.clipboard_get(selection='PRIMARY').wait_for_text() or text = get_clipboard_text()
gtk.clipboard_get().wait_for_text()) if text and deluge.common.is_url(text) or deluge.common.is_magnet(text):
if text: entry.set_text(text)
text = text.strip()
if deluge.common.is_url(text) or deluge.common.is_magnet(text):
entry.set_text(text)
dialog.show_all() dialog.show_all()
response = dialog.run() response = dialog.run()
@ -646,8 +643,7 @@ class AddTorrentDialog(component.Component):
dialog.set_transient_for(self.dialog) dialog.set_transient_for(self.dialog)
entry.grab_focus() entry.grab_focus()
text = (gtk.clipboard_get(selection='PRIMARY').wait_for_text() or text = get_clipboard_text()
gtk.clipboard_get().wait_for_text()).strip()
if deluge.common.is_infohash(text): if deluge.common.is_infohash(text):
entry.set_text(text) entry.set_text(text)

View File

@ -17,8 +17,8 @@ import shutil
import sys import sys
from gobject import GError from gobject import GError
from gtk import SORT_ASCENDING, Menu, MenuItem, RadioMenuItem, SeparatorMenuItem, icon_theme_get_default from gtk import SORT_ASCENDING, Menu, MenuItem, RadioMenuItem, SeparatorMenuItem, clipboard_get, icon_theme_get_default
from gtk.gdk import COLORSPACE_RGB, Pixbuf, pixbuf_new_from_file, pixbuf_new_from_file_at_size from gtk.gdk import COLORSPACE_RGB, SELECTION_PRIMARY, Pixbuf, pixbuf_new_from_file, pixbuf_new_from_file_at_size
from deluge.common import get_pixmap, osx_check, windows_check from deluge.common import get_pixmap, osx_check, windows_check
@ -323,3 +323,8 @@ def listview_replace_treestore(listview):
listview.set_model(treestore) listview.set_model(treestore)
listview.thaw_child_notify() listview.thaw_child_notify()
def get_clipboard_text():
text = clipboard_get(selection=SELECTION_PRIMARY).wait_for_text() or clipboard_get().wait_for_text()
return text.strip()

View File

@ -25,7 +25,7 @@ from deluge.configmanager import ConfigManager, get_config_dir
from deluge.error import AuthenticationRequired, BadLoginError, IncompatibleClient from deluge.error import AuthenticationRequired, BadLoginError, IncompatibleClient
from deluge.ui.client import Client, client from deluge.ui.client import Client, client
from deluge.ui.common import get_localhost_auth from deluge.ui.common import get_localhost_auth
from deluge.ui.gtkui.common import get_deluge_icon, get_logo from deluge.ui.gtkui.common import get_clipboard_text, get_deluge_icon, get_logo
from deluge.ui.gtkui.dialogs import AuthenticationDialog, ErrorDialog from deluge.ui.gtkui.dialogs import AuthenticationDialog, ErrorDialog
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
@ -237,7 +237,7 @@ class ConnectionManager(component.Component):
self.__update_list() self.__update_list()
def on_entry_host_paste_clipboard(self, widget): def on_entry_host_paste_clipboard(self, widget):
text = gtk.clipboard_get().wait_for_text().strip() text = get_clipboard_text()
log.debug('on_entry_proxy_host_paste-clipboard: got paste: %s', text) log.debug('on_entry_proxy_host_paste-clipboard: got paste: %s', text)
text = text if '//' in text else '//' + text text = text if '//' in text else '//' + text
parsed = urlparse(text) parsed = urlparse(text)

View File

@ -24,7 +24,7 @@ from deluge.configmanager import ConfigManager, get_config_dir
from deluge.error import AuthManagerError, NotAuthorizedError from deluge.error import AuthManagerError, NotAuthorizedError
from deluge.ui.client import client from deluge.ui.client import client
from deluge.ui.common import DISK_CACHE_KEYS from deluge.ui.common import DISK_CACHE_KEYS
from deluge.ui.gtkui.common import associate_magnet_links, get_deluge_icon from deluge.ui.gtkui.common import associate_magnet_links, get_clipboard_text, get_deluge_icon
from deluge.ui.gtkui.dialogs import AccountDialog, ErrorDialog, InformationDialog, YesNoDialog from deluge.ui.gtkui.dialogs import AccountDialog, ErrorDialog, InformationDialog, YesNoDialog
from deluge.ui.gtkui.path_chooser import PathChooser from deluge.ui.gtkui.path_chooser import PathChooser
from deluge.ui.translations_util import get_languages from deluge.ui.translations_util import get_languages
@ -954,7 +954,7 @@ class Preferences(component.Component):
self.builder.get_object(entry).hide() self.builder.get_object(entry).hide()
def on_entry_proxy_host_paste_clipboard(self, widget): def on_entry_proxy_host_paste_clipboard(self, widget):
text = gtk.clipboard_get().wait_for_text().strip() text = get_clipboard_text()
log.debug('on_entry_proxy_host_paste-clipboard: got paste: %s', text) log.debug('on_entry_proxy_host_paste-clipboard: got paste: %s', text)
text = text if '//' in text else '//' + text text = text if '//' in text else '//' + text
parsed = urlparse(text) parsed = urlparse(text)