This commit is contained in:
Kovid Goyal 2012-06-24 12:34:28 +05:30
parent a6df18b4d2
commit e127d1a5e1

View File

@ -6,14 +6,12 @@ Miscellaneous widgets used in the GUI
import re, traceback, os import re, traceback, os
from PyQt4.Qt import (QIcon, QFont, QLabel, QListWidget, QAction, from PyQt4.Qt import (QIcon, QFont, QLabel, QListWidget, QAction,
QListWidgetItem, QTextCharFormat, QApplication, QListWidgetItem, QTextCharFormat, QApplication, QSyntaxHighlighter,
QSyntaxHighlighter, QCursor, QColor, QWidget, QCursor, QColor, QWidget, QPixmap, QSplitterHandle, QToolButton,
QPixmap, QSplitterHandle, QToolButton, QAbstractListModel, QVariant, Qt, SIGNAL, pyqtSignal, QRegExp, QSize,
QAbstractListModel, QVariant, Qt, SIGNAL, pyqtSignal, QSplitter, QPainter, QLineEdit, QComboBox, QPen, QGraphicsScene, QMenu,
QRegExp, QSettings, QSize, QSplitter, QStringListModel, QCompleter, QStringList, QTimer, QRect,
QPainter, QLineEdit, QComboBox, QPen, QGraphicsScene, QFontDatabase, QGraphicsView, QByteArray)
QMenu, QStringListModel, QCompleter, QStringList,
QTimer, QRect, QFontDatabase, QGraphicsView)
from calibre.constants import iswindows from calibre.constants import iswindows
from calibre.gui2 import (NONE, error_dialog, pixmap_to_data, gprefs, from calibre.gui2 import (NONE, error_dialog, pixmap_to_data, gprefs,
@ -803,69 +801,29 @@ class PythonHighlighter(QSyntaxHighlighter): # {{{
@classmethod @classmethod
def loadConfig(cls): def loadConfig(cls):
Config = cls.Config Config = cls.Config
settings = QSettings()
def setDefaultString(name, default):
value = settings.value(name).toString()
if value.isEmpty():
value = default
Config[name] = value
for name in ("window", "shell"): for name in ("window", "shell"):
Config["%swidth" % name] = settings.value("%swidth" % name, Config["%swidth" % name] = QVariant(QApplication.desktop().availableGeometry().width() / 2).toInt()[0]
QVariant(QApplication.desktop() \ Config["%sheight" % name] = QVariant(QApplication.desktop().availableGeometry().height() / 2).toInt()[0]
.availableGeometry().width() / 2)).toInt()[0] Config["%sy" % name] = QVariant(0).toInt()[0]
Config["%sheight" % name] = settings.value("%sheight" % name, Config["toolbars"] = QByteArray(b'')
QVariant(QApplication.desktop() \ Config["splitter"] = QByteArray(b'')
.availableGeometry().height() / 2)).toInt()[0] Config["shellx"] = QVariant(0).toInt()[0]
Config["%sy" % name] = settings.value("%sy" % name, Config["windowx"] = QVariant(QApplication.desktop().availableGeometry().width() / 2).toInt()[0]
QVariant(0)).toInt()[0] Config["remembergeometry"] = QVariant(True).toBool()
Config["toolbars"] = settings.value("toolbars").toByteArray() Config["startwithshell"] = QVariant(True).toBool()
Config["splitter"] = settings.value("splitter").toByteArray() Config["showwindowinfo"] = QVariant(True).toBool()
Config["shellx"] = settings.value("shellx", QVariant(0)).toInt()[0] Config["backupsuffix"] = QVariant(".bak").toString()
Config["windowx"] = settings.value("windowx", QVariant(QApplication \ Config["cwd"] = QVariant(".").toString()
.desktop().availableGeometry().width() / 2)).toInt()[0] Config["tooltipsize"] = QVariant(150).toInt()[0]
Config["remembergeometry"] = settings.value("remembergeometry", Config["maxlinestoscan"] = QVariant(5000).toInt()[0]
QVariant(True)).toBool() Config["pythondocpath"] = QVariant("http://docs.python.org").toString()
Config["startwithshell"] = settings.value("startwithshell", Config["autohidefinddialog"] = QVariant(True).toBool()
QVariant(True)).toBool() Config["findcasesensitive"] = QVariant(False).toBool()
Config["showwindowinfo"] = settings.value("showwindowinfo", Config["findwholewords"] = QVariant(False).toBool()
QVariant(True)).toBool() Config["tabwidth"] = QVariant(4).toInt()[0]
setDefaultString("shellstartup", """\ Config["fontfamily"] = QVariant("monospace").toString()
from __future__ import division Config["fontsize"] = QVariant(10).toInt()[0]
import codecs
import sys
sys.stdin = codecs.getreader("UTF8")(sys.stdin)
sys.stdout = codecs.getwriter("UTF8")(sys.stdout)""")
setDefaultString("newfile", """\
#!/usr/bin/env python
from __future__ import division
import sys
""")
Config["backupsuffix"] = settings.value("backupsuffix",
QVariant(".bak")).toString()
setDefaultString("beforeinput", "#>>>")
setDefaultString("beforeoutput", "#---")
Config["cwd"] = settings.value("cwd", QVariant(".")).toString()
Config["tooltipsize"] = settings.value("tooltipsize",
QVariant(150)).toInt()[0]
Config["maxlinestoscan"] = settings.value("maxlinestoscan",
QVariant(5000)).toInt()[0]
Config["pythondocpath"] = settings.value("pythondocpath",
QVariant("http://docs.python.org")).toString()
Config["autohidefinddialog"] = settings.value("autohidefinddialog",
QVariant(True)).toBool()
Config["findcasesensitive"] = settings.value("findcasesensitive",
QVariant(False)).toBool()
Config["findwholewords"] = settings.value("findwholewords",
QVariant(False)).toBool()
Config["tabwidth"] = settings.value("tabwidth",
QVariant(4)).toInt()[0]
Config["fontfamily"] = settings.value("fontfamily",
QVariant("monospace")).toString()
Config["fontsize"] = settings.value("fontsize",
QVariant(10)).toInt()[0]
for name, color, bold, italic in ( for name, color, bold, italic in (
("normal", "#000000", False, False), ("normal", "#000000", False, False),
("keyword", "#000080", True, False), ("keyword", "#000080", True, False),
@ -877,12 +835,9 @@ class PythonHighlighter(QSyntaxHighlighter): # {{{
("number", "#924900", False, False), ("number", "#924900", False, False),
("error", "#FF0000", False, False), ("error", "#FF0000", False, False),
("pyqt", "#50621A", False, False)): ("pyqt", "#50621A", False, False)):
Config["%sfontcolor" % name] = settings.value( Config["%sfontcolor" % name] = QVariant(color).toString()
"%sfontcolor" % name, QVariant(color)).toString() Config["%sfontbold" % name] = QVariant(bold).toBool()
Config["%sfontbold" % name] = settings.value( Config["%sfontitalic" % name] = QVariant(italic).toBool()
"%sfontbold" % name, QVariant(bold)).toBool()
Config["%sfontitalic" % name] = settings.value(
"%sfontitalic" % name, QVariant(italic)).toBool()
@classmethod @classmethod