diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py index 5d0f51315b..2d3a294c5b 100644 --- a/src/calibre/gui2/__init__.py +++ b/src/calibre/gui2/__init__.py @@ -3,7 +3,7 @@ __copyright__ = '2008, Kovid Goyal ' """ The GUI """ import os from PyQt4.QtCore import QVariant, QFileInfo, QObject, SIGNAL, QBuffer, Qt, QSize, \ - QByteArray, QUrl, QTranslator, QCoreApplication, QThread + QByteArray, QTranslator, QCoreApplication, QThread from PyQt4.QtGui import QFileDialog, QMessageBox, QPixmap, QFileIconProvider, \ QIcon, QTableView, QApplication, QDialog, QPushButton @@ -23,8 +23,6 @@ ALL_COLUMNS = ['title', 'authors', 'size', 'timestamp', 'rating', 'publisher', def _config(): c = Config('gui', 'preferences for the calibre GUI') - c.add_opt('frequently_used_directories', default=[], - help=_('Frequently used directories')) c.add_opt('send_to_storage_card_by_default', default=False, help=_('Send file to storage card instead of main memory by default')) c.add_opt('confirm_delete', default=False, @@ -379,15 +377,8 @@ def file_icon_provider(): global _file_icon_provider return _file_icon_provider -_sidebar_directories = [] -def set_sidebar_directories(dirs): - global _sidebar_directories - if dirs is None: - dirs = config['frequently_used_directories'] - _sidebar_directories = [QUrl.fromLocalFile(i) for i in dirs] - class FileDialog(QObject): - def __init__(self, title='Choose Files', + def __init__(self, title=_('Choose Files'), filters=[], add_all_files_filter=True, parent=None, @@ -396,7 +387,6 @@ class FileDialog(QObject): mode = QFileDialog.ExistingFiles, ): QObject.__init__(self) - initialize_file_icon_provider() ftext = '' if filters: for filter in filters: @@ -412,63 +402,42 @@ class FileDialog(QObject): self.selected_files = None self.fd = None - if islinux: - self.fd = QFileDialog(parent) - self.fd.setFileMode(mode) - self.fd.setIconProvider(_file_icon_provider) - self.fd.setModal(modal) - self.fd.setNameFilter(ftext) - self.fd.setWindowTitle(title) - state = dynamic[self.dialog_name] - if not state or not self.fd.restoreState(state): - self.fd.setDirectory(os.path.expanduser('~')) - osu = [i for i in self.fd.sidebarUrls()] - self.fd.setSidebarUrls(osu + _sidebar_directories) - QObject.connect(self.fd, SIGNAL('accepted()'), self.save_dir) - self.accepted = self.fd.exec_() == QFileDialog.Accepted + initial_dir = dynamic.get(self.dialog_name, os.path.expanduser('~')) + if not isinstance(initial_dir, basestring): + initial_dir = os.path.expanduser('~') + self.selected_files = [] + if mode == QFileDialog.AnyFile: + f = unicode(QFileDialog.getSaveFileName(parent, title, initial_dir, ftext, "")) + if f and os.path.exists(f): + self.selected_files.append(f) + elif mode == QFileDialog.ExistingFile: + f = unicode(QFileDialog.getOpenFileName(parent, title, initial_dir, ftext, "")) + if f and os.path.exists(f): + self.selected_files.append(f) + elif mode == QFileDialog.ExistingFiles: + fs = QFileDialog.getOpenFileNames(parent, title, initial_dir, ftext, "") + for f in fs: + f = unicode(f) + if f and os.path.exists(f): + self.selected_files.append(f) else: - dir = dynamic.get(self.dialog_name, os.path.expanduser('~')) - self.selected_files = [] - if mode == QFileDialog.AnyFile: - f = qstring_to_unicode( - QFileDialog.getSaveFileName(parent, title, dir, ftext, "")) - if os.path.exists(f): - self.selected_files.append(f) - elif mode == QFileDialog.ExistingFile: - f = qstring_to_unicode( - QFileDialog.getOpenFileName(parent, title, dir, ftext, "")) - if os.path.exists(f): - self.selected_files.append(f) - elif mode == QFileDialog.ExistingFiles: - fs = QFileDialog.getOpenFileNames(parent, title, dir, ftext, "") - for f in fs: - if os.path.exists(qstring_to_unicode(f)): - self.selected_files.append(f) - else: - opts = QFileDialog.ShowDirsOnly if mode == QFileDialog.DirectoryOnly else QFileDialog.Option() - f = qstring_to_unicode( - QFileDialog.getExistingDirectory(parent, title, dir, opts)) - if os.path.exists(f): - self.selected_files.append(f) - if self.selected_files: - self.selected_files = [unicode(q) for q in self.selected_files] - saved_loc = self.selected_files[0] - if os.path.isfile(saved_loc): - saved_loc = os.path.dirname(saved_loc) - dynamic[self.dialog_name] = saved_loc - self.accepted = bool(self.selected_files) + opts = QFileDialog.ShowDirsOnly if mode == QFileDialog.DirectoryOnly else QFileDialog.Option() + f = unicode(QFileDialog.getExistingDirectory(parent, title, initial_dir, opts)) + if os.path.exists(f): + self.selected_files.append(f) + if self.selected_files: + self.selected_files = [unicode(q) for q in self.selected_files] + saved_loc = self.selected_files[0] + if os.path.isfile(saved_loc): + saved_loc = os.path.dirname(saved_loc) + dynamic[self.dialog_name] = saved_loc + self.accepted = bool(self.selected_files) def get_files(self): - if islinux and self.fd.result() != self.fd.Accepted: - return tuple() if self.selected_files is None: return tuple(os.path.abspath(qstring_to_unicode(i)) for i in self.fd.selectedFiles()) return tuple(self.selected_files) - def save_dir(self): - if self.fd: - dynamic[self.dialog_name] = self.fd.saveState() - def choose_dir(window, name, title): fd = FileDialog(title, [], False, window, name=name, diff --git a/src/calibre/gui2/dialogs/config/__init__.py b/src/calibre/gui2/dialogs/config/__init__.py index 21ac8be43f..217fbb09fa 100644 --- a/src/calibre/gui2/dialogs/config/__init__.py +++ b/src/calibre/gui2/dialogs/config/__init__.py @@ -354,14 +354,10 @@ class ConfigDialog(QDialog, Ui_Dialog): self.connect(self.input_up, SIGNAL('clicked()'), self.up_input) self.connect(self.input_down, SIGNAL('clicked()'), self.down_input) - dirs = config['frequently_used_directories'] rn = config['use_roman_numerals_for_series_number'] self.timeout.setValue(prefs['network_timeout']) self.roman_numerals.setChecked(rn) self.new_version_notification.setChecked(config['new_version_notification']) - self.directory_list.addItems(dirs) - self.connect(self.add_button, SIGNAL('clicked(bool)'), self.add_dir) - self.connect(self.remove_button, SIGNAL('clicked(bool)'), self.remove_dir) if not islinux: self.dirs_box.setVisible(False) @@ -676,15 +672,6 @@ class ConfigDialog(QDialog, Ui_Dialog): if dir: self.location.setText(dir) - def add_dir(self): - dir = choose_dir(self, 'Add freq dir dialog', 'select directory') - if dir: - self.directory_list.addItem(dir) - - def remove_dir(self): - idx = self.directory_list.currentRow() - if idx >= 0: - self.directory_list.takeItem(idx) def accept(self): mcs = unicode(self.max_cover_size.text()).strip() @@ -751,10 +738,6 @@ class ConfigDialog(QDialog, Ui_Dialog): d.exec_() else: self.database_location = os.path.abspath(path) - self.directories = [ - qstring_to_unicode(self.directory_list.item(i).text()) for i in \ - range(self.directory_list.count())] - config['frequently_used_directories'] = self.directories QDialog.accept(self) class VacThread(QThread): diff --git a/src/calibre/gui2/dialogs/config/config.ui b/src/calibre/gui2/dialogs/config/config.ui index 844a2bdbe0..14d37d9c43 100644 --- a/src/calibre/gui2/dialogs/config/config.ui +++ b/src/calibre/gui2/dialogs/config/config.ui @@ -281,103 +281,6 @@ - - - - Frequently used directories - - - - - - - - true - - - - 22 - 22 - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - Add a directory to the frequently used directories list - - - ... - - - - :/images/plus.svg:/images/plus.svg - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - Remove a directory from the frequently used directories list - - - ... - - - - :/images/list_remove.svg:/images/list_remove.svg - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - diff --git a/src/calibre/gui2/main.py b/src/calibre/gui2/main.py index 2c43906778..c73b6bd49a 100644 --- a/src/calibre/gui2/main.py +++ b/src/calibre/gui2/main.py @@ -25,7 +25,7 @@ from calibre.utils.ipc.server import Server from calibre.gui2 import APP_UID, warning_dialog, choose_files, error_dialog, \ initialize_file_icon_provider, question_dialog,\ pixmap_to_data, choose_dir, ORG_NAME, \ - set_sidebar_directories, Dispatcher, \ + Dispatcher, \ Application, available_height, \ max_available_height, config, info_dialog, \ available_width, GetMetadata @@ -1486,8 +1486,6 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI): self.save_menu.actions()[2].setText( _('Save only %s format to disk')% prefs['output_format'].upper()) - if hasattr(d, 'directories'): - set_sidebar_directories(d.directories) self.library_view.model().read_config() self.create_device_menu() @@ -1646,7 +1644,6 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI): geometry = config['main_window_geometry'] if geometry is not None: self.restoreGeometry(geometry) - set_sidebar_directories(None) self.tool_bar.setIconSize(config['toolbar_icon_size']) self.tool_bar.setToolButtonStyle( Qt.ToolButtonTextUnderIcon if \