mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Make dialogs resizable with scroll bars so that the GUI becomes more netbook friendly. Fixes #1583 (Popup screens are too large for the desktop.)
This commit is contained in:
parent
38949adec0
commit
dbf0868998
@ -14,7 +14,7 @@ from lxml.etree import XPath
|
||||
|
||||
from calibre.gui2.dialogs.choose_format import ChooseFormatDialog
|
||||
from calibre.gui2.dialogs.epub_ui import Ui_Dialog
|
||||
from calibre.gui2 import error_dialog, choose_images, pixmap_to_data
|
||||
from calibre.gui2 import error_dialog, choose_images, pixmap_to_data, ResizableDialog
|
||||
from calibre.ebooks.epub.from_any import SOURCE_FORMATS, config as epubconfig
|
||||
from calibre.ebooks.metadata import MetaInformation
|
||||
from calibre.ptempfile import PersistentTemporaryFile
|
||||
@ -22,13 +22,12 @@ from calibre.ebooks.metadata.opf import OPFCreator
|
||||
from calibre.ebooks.metadata import authors_to_string, string_to_authors
|
||||
|
||||
|
||||
class Config(QDialog, Ui_Dialog):
|
||||
class Config(ResizableDialog, Ui_Dialog):
|
||||
|
||||
OUTPUT = 'EPUB'
|
||||
|
||||
def __init__(self, parent, db, row=None, config=epubconfig):
|
||||
QDialog.__init__(self, parent)
|
||||
self.setupUi(self)
|
||||
ResizableDialog.__init__(self, parent)
|
||||
self.hide_controls()
|
||||
self.connect(self.category_list, SIGNAL('itemEntered(QListWidgetItem *)'),
|
||||
self.show_category_help)
|
||||
@ -68,11 +67,11 @@ class Config(QDialog, Ui_Dialog):
|
||||
self.__w.append(QIcon(':/images/dialog_information.svg'))
|
||||
self.item1 = QListWidgetItem(self.__w[-1], _('Metadata'), self.category_list)
|
||||
self.__w.append(QIcon(':/images/lookfeel.svg'))
|
||||
self.item2 = QListWidgetItem(self.__w[-1], _('Look & Feel'), self.category_list)
|
||||
self.item2 = QListWidgetItem(self.__w[-1], _('Look & Feel').replace(' ','\n'), self.category_list)
|
||||
self.__w.append(QIcon(':/images/page.svg'))
|
||||
self.item3 = QListWidgetItem(self.__w[-1], _('Page Setup'), self.category_list)
|
||||
self.item3 = QListWidgetItem(self.__w[-1], _('Page Setup').replace(' ','\n'), self.category_list)
|
||||
self.__w.append(QIcon(':/images/chapters.svg'))
|
||||
self.item4 = QListWidgetItem(self.__w[-1], _('Chapter Detection'), self.category_list)
|
||||
self.item4 = QListWidgetItem(self.__w[-1], _('Chapter Detection').replace(' ','\n'), self.category_list)
|
||||
self.setup_tooltips()
|
||||
self.initialize_options()
|
||||
|
||||
@ -98,7 +97,7 @@ class Config(QDialog, Ui_Dialog):
|
||||
_('Page Setup') : _('Specify the page layout settings like margins.'),
|
||||
_('Chapter Detection') : _('Fine tune the detection of chapter and section headings.'),
|
||||
}
|
||||
self.set_help(help[text])
|
||||
self.set_help(help[text.replace('\n', ' ')])
|
||||
|
||||
def select_cover(self):
|
||||
files = choose_images(self, 'change cover dialog',
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -11,7 +11,7 @@ from PyQt4.QtGui import QPixmap, QListWidgetItem, QErrorMessage, QDialog, QCompl
|
||||
|
||||
|
||||
from calibre.gui2 import qstring_to_unicode, error_dialog, file_icon_provider, \
|
||||
choose_files, pixmap_to_data, choose_images
|
||||
choose_files, pixmap_to_data, choose_images, ResizableDialog
|
||||
from calibre.gui2.dialogs.metadata_single_ui import Ui_MetadataSingleDialog
|
||||
from calibre.gui2.dialogs.fetch_metadata import FetchMetadata
|
||||
from calibre.gui2.dialogs.tag_editor import TagEditor
|
||||
@ -40,7 +40,7 @@ class AuthorCompleter(QCompleter):
|
||||
all_authors.sort(cmp=lambda x, y : cmp(x[1], y[1]))
|
||||
QCompleter.__init__(self, [x[1] for x in all_authors])
|
||||
|
||||
class MetadataSingleDialog(QDialog, Ui_MetadataSingleDialog):
|
||||
class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog):
|
||||
|
||||
def do_reset_cover(self, *args):
|
||||
pix = QPixmap(':/images/book.svg')
|
||||
@ -164,9 +164,7 @@ class MetadataSingleDialog(QDialog, Ui_MetadataSingleDialog):
|
||||
self.db.remove_format(self.row, ext, notify=False)
|
||||
|
||||
def __init__(self, window, row, db, accepted_callback=None):
|
||||
QDialog.__init__(self, window)
|
||||
Ui_MetadataSingleDialog.__init__(self)
|
||||
self.setupUi(self)
|
||||
ResizableDialog.__init__(self, window)
|
||||
self.bc_box.layout().setAlignment(self.cover, Qt.AlignCenter|Qt.AlignHCenter)
|
||||
self.splitter.setStretchFactor(100, 1)
|
||||
self.db = db
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -134,16 +134,8 @@ class Main(MainWindow, Ui_MainWindow):
|
||||
for f in self.output_formats:
|
||||
self.output_format.addItem(f)
|
||||
self.output_format.setCurrentIndex(self.output_formats.index(prefs['output_format']))
|
||||
def change_output_format(x):
|
||||
of = unicode(x).strip()
|
||||
if of != prefs['output_format']:
|
||||
if of not in ('LRF',):
|
||||
warning_dialog(self, 'Warning',
|
||||
'<p>%s support is still in beta. If you find bugs, please report them by opening a <a href="http://calibre.kovidgoyal.net">ticket</a>.'%of).exec_()
|
||||
prefs.set('output_format', of)
|
||||
|
||||
self.connect(self.output_format, SIGNAL('currentIndexChanged(QString)'),
|
||||
change_output_format)
|
||||
self.change_output_format, Qt.QueuedConnection)
|
||||
|
||||
####################### Vanity ########################
|
||||
self.vanity_template = _('<p>For help visit <a href="http://%s.kovidgoyal.net/user_manual">%s.kovidgoyal.net</a><br>')%(__appname__, __appname__)
|
||||
@ -376,6 +368,15 @@ class Main(MainWindow, Ui_MainWindow):
|
||||
self.action_news.setMenu(self.scheduler.news_menu)
|
||||
self.connect(self.action_news, SIGNAL('triggered(bool)'), self.scheduler.show_dialog)
|
||||
self.location_view.setCurrentIndex(self.location_view.model().index(0))
|
||||
|
||||
def change_output_format(self, x):
|
||||
of = unicode(x).strip()
|
||||
if of != prefs['output_format']:
|
||||
if of not in ('LRF',):
|
||||
warning_dialog(self, 'Warning',
|
||||
'<p>%s support is still in beta. If you find bugs, please report them by opening a <a href="http://calibre.kovidgoyal.net">ticket</a>.'%of).exec_()
|
||||
prefs.set('output_format', of)
|
||||
|
||||
|
||||
def test_server(self, *args):
|
||||
if self.content_server.exception is not None:
|
||||
|
Loading…
x
Reference in New Issue
Block a user