%PDF- %PDF-
| Direktori : /lib/calibre/calibre/gui2/dialogs/ |
| Current File : //lib/calibre/calibre/gui2/dialogs/comments_dialog.py |
#!/usr/bin/env python3
__copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net'
__docformat__ = 'restructuredtext en'
__license__ = 'GPL v3'
from qt.core import (
QApplication, QDialog, QDialogButtonBox, QPlainTextEdit, QSize, Qt,
QVBoxLayout
)
from calibre.gui2 import Application, gprefs
from calibre.gui2.comments_editor import Editor
from calibre.gui2.widgets2 import Dialog
from calibre.library.comments import comments_to_html
class CommentsDialog(QDialog):
def __init__(self, parent, text, column_name=None):
QDialog.__init__(self, parent)
self.setObjectName("CommentsDialog")
self.setWindowTitle(_("Edit comments"))
self.verticalLayout = l = QVBoxLayout(self)
self.textbox = tb = Editor(self)
self.buttonBox = bb = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok | QDialogButtonBox.StandardButton.Cancel, self)
bb.accepted.connect(self.accept)
bb.rejected.connect(self.reject)
l.addWidget(tb)
l.addWidget(bb)
# Remove help icon on title bar
icon = self.windowIcon()
self.setWindowFlags(self.windowFlags()&(~Qt.WindowType.WindowContextHelpButtonHint))
self.setWindowIcon(icon)
self.textbox.html = comments_to_html(text) if text else ''
self.textbox.wyswyg_dirtied()
# self.textbox.setTabChangesFocus(True)
if column_name:
self.setWindowTitle(_('Edit "{0}"').format(column_name))
geom = gprefs.get('comments_dialog_geom', None)
if geom is not None:
QApplication.instance().safe_restore_geometry(self, geom)
else:
self.resize(self.sizeHint())
def sizeHint(self):
return QSize(650, 600)
def save_geometry(self):
gprefs.set('comments_dialog_geom', bytearray(self.saveGeometry()))
def accept(self):
self.save_geometry()
QDialog.accept(self)
def reject(self):
self.save_geometry()
QDialog.reject(self)
def closeEvent(self, ev):
self.save_geometry()
return QDialog.closeEvent(self, ev)
class PlainTextDialog(Dialog):
def __init__(self, parent, text, column_name=None):
title = _('Edit "{0}"').format(column_name) if column_name else _('Edit text')
Dialog.__init__(self, title, 'edit-plain-text-dialog', parent=parent)
self.text = text
def setup_ui(self):
self.l = l = QVBoxLayout(self)
self._text = QPlainTextEdit(self)
l.addWidget(self._text)
l.addWidget(self.bb)
@property
def text(self):
return self._text.toPlainText()
@text.setter
def text(self, val):
self._text.setPlainText(val or '')
def sizeHint(self):
return QSize(600, 400)
if __name__ == '__main__':
app = Application([])
d = CommentsDialog(None, 'testing', 'Comments')
d.exec()
del d
del app