Merge pull request #285 from glutanimate/addons-gui-tweaks

Further tweaks to the add-on manager and config editor UI
This commit is contained in:
Damien Elmes 2019-02-24 15:09:07 +10:00 committed by GitHub
commit 5bac787a5d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 33 additions and 12 deletions

View file

@ -11,7 +11,8 @@ from send2trash import send2trash
from aqt.qt import * from aqt.qt import *
from aqt.utils import showInfo, openFolder, isWin, openLink, \ from aqt.utils import showInfo, openFolder, isWin, openLink, \
askUser, restoreGeom, saveGeom, showWarning, tooltip, getFile askUser, restoreGeom, saveGeom, restoreSplitter, saveSplitter, \
showWarning, tooltip, getFile
from zipfile import ZipFile from zipfile import ZipFile
import aqt.forms import aqt.forms
import aqt import aqt
@ -452,14 +453,22 @@ class AddonsDialog(QDialog):
return QDialog.reject(self) return QDialog.reject(self)
def redrawAddons(self): def redrawAddons(self):
self.addons = [(self.annotatedName(d), d) for d in self.mgr.allAddons()] addonList = self.form.addonList
self.addons.sort() mgr = self.mgr
self.form.addonList.clear()
self.form.addonList.addItems([r[0] for r in self.addons])
if self.addons:
self.form.addonList.setCurrentRow(0)
self.form.addonList.repaint() self.addons = [(self.annotatedName(d), d) for d in mgr.allAddons()]
self.addons.sort()
selected = set(self.selectedAddons())
addonList.clear()
for name, dir in self.addons:
item = QListWidgetItem(name, addonList)
if not mgr.isEnabled(dir):
item.setForeground(Qt.gray)
if dir in selected:
item.setSelected(True)
addonList.repaint()
def _onAddonItemSelected(self, row_int): def _onAddonItemSelected(self, row_int):
try: try:
@ -469,9 +478,8 @@ class AddonsDialog(QDialog):
self.form.viewPage.setEnabled(bool (re.match(r"^\d+$", addon))) self.form.viewPage.setEnabled(bool (re.match(r"^\d+$", addon)))
def annotatedName(self, dir): def annotatedName(self, dir):
meta = self.mgr.addonMeta(dir)
buf = self.mgr.addonName(dir) buf = self.mgr.addonName(dir)
if meta.get('disabled'): if not self.mgr.isEnabled(dir):
buf += _(" (disabled)") buf += _(" (disabled)")
return buf return buf
@ -640,14 +648,18 @@ class ConfigEditor(QDialog):
self.setupFonts() self.setupFonts()
self.updateHelp() self.updateHelp()
self.updateText(self.conf) self.updateText(self.conf)
restoreGeom(self, "addonconf")
restoreSplitter(self.form.splitter, "addonconf")
self.show() self.show()
def onRestoreDefaults(self): def onRestoreDefaults(self):
default_conf = self.mgr.addonConfigDefaults(self.addon) default_conf = self.mgr.addonConfigDefaults(self.addon)
self.updateText(default_conf) self.updateText(default_conf)
tooltip(_("Restored defaults"), parent=self)
def setupFonts(self): def setupFonts(self):
font_mono = QFontDatabase.systemFont(QFontDatabase.FixedFont) font_mono = QFontDatabase.systemFont(QFontDatabase.FixedFont)
font_mono.setPointSize(font_mono.pointSize() + 1)
self.form.editor.setFont(font_mono) self.form.editor.setFont(font_mono)
def updateHelp(self): def updateHelp(self):
@ -662,6 +674,14 @@ class ConfigEditor(QDialog):
json.dumps(conf, ensure_ascii=False, sort_keys=True, json.dumps(conf, ensure_ascii=False, sort_keys=True,
indent=4, separators=(',', ': '))) indent=4, separators=(',', ': ')))
def onClose(self):
saveGeom(self, "addonconf")
saveSplitter(self.form.splitter, "addonconf")
def reject(self):
self.onClose()
super().reject()
def accept(self): def accept(self):
txt = self.form.editor.toPlainText() txt = self.form.editor.toPlainText()
try: try:
@ -681,4 +701,5 @@ class ConfigEditor(QDialog):
if act: if act:
act(new_conf) act(new_conf)
self.onClose()
super().accept() super().accept()

View file

@ -57,7 +57,7 @@
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_2"> <layout class="QVBoxLayout" name="verticalLayout_2">
<property name="leftMargin"> <property name="leftMargin">
<number>4</number> <number>6</number>
</property> </property>
<property name="topMargin"> <property name="topMargin">
<number>0</number> <number>0</number>

View file

@ -32,7 +32,7 @@
<item> <item>
<widget class="QListWidget" name="addonList"> <widget class="QListWidget" name="addonList">
<property name="selectionMode"> <property name="selectionMode">
<enum>QAbstractItemView::ContiguousSelection</enum> <enum>QAbstractItemView::ExtendedSelection</enum>
</property> </property>
</widget> </widget>
</item> </item>