preset searchbar works, ui experimentally changed

closebutton where I keep expecting it to be
This commit is contained in:
tassaron 2017-06-08 22:31:02 -04:00
parent 4fc73f1e09
commit c51d86dd74
3 changed files with 48 additions and 33 deletions

View File

@ -8,7 +8,7 @@ import core
class PresetManager(QtGui.QDialog):
def __init__(self, window, parent):
super().__init__()
super().__init__(parent.window)
self.parent = parent
self.core = self.parent.core
self.presetDir = self.core.presetDir
@ -20,27 +20,30 @@ class PresetManager(QtGui.QDialog):
# connect button signals
self.window.pushButton_delete.clicked.connect(self.openDeletePresetDialog)
self.window.pushButton_rename.clicked.connect(self.openRenamePresetDialog)
self.window.pushButton_close.clicked.connect(self.close)
# create filter box and preset list
self.drawFilterList()
self.window.comboBox_filter.currentIndexChanged.connect(
lambda: self.drawPresetList(self.window.comboBox_filter.currentText())
lambda: self.drawPresetList(
self.window.comboBox_filter.currentText(), self.window.lineEdit_search.text()
)
)
self.drawPresetList('*')
# make auto-completion for search bar
self.autocomplete = QtGui.QStringListModel()
completer = QtGui.QCompleter()
completer.setModel(self.autocomplete)
self.window.lineEdit_search.setCompleter(completer)
self.window.lineEdit_search.textChanged.connect(
lambda: self.drawPresetList(
self.window.comboBox_filter.currentText(), self.window.lineEdit_search.text()
)
)
self.drawPresetList('*')
def show(self):
'''Open a new preset manager window from the mainwindow'''
presetNames = []
for presetList in self.presets.values():
for preset in presetList:
presetNames.append(preset[1])
self.autocomplete.setStringList(presetNames)
self.findPresets()
self.drawFilterList()
self.drawPresetList('*')
@ -70,19 +73,23 @@ class PresetManager(QtGui.QDialog):
for compName, _, __ in parseList \
}
def drawPresetList(self, filter=None):
def drawPresetList(self, compFilter=None, presetFilter=''):
self.window.listWidget_presets.clear()
if filter:
self.lastFilter = str(filter)
if compFilter:
self.lastFilter = str(compFilter)
else:
filter = str(self.lastFilter)
compFilter = str(self.lastFilter)
self.presetRows = []
presetNames = []
for component, presets in self.presets.items():
if filter != '*' and component != filter:
if compFilter != '*' and component != compFilter:
continue
for vers, preset in presets:
self.window.listWidget_presets.addItem('%s: %s' % (component, preset))
self.presetRows.append((component, vers, preset))
if not presetFilter or presetFilter in preset:
self.window.listWidget_presets.addItem('%s: %s' % (component, preset))
self.presetRows.append((component, vers, preset))
presetNames.append(preset)
self.autocomplete.setStringList(presetNames)
def drawFilterList(self):
self.window.comboBox_filter.clear()
@ -224,19 +231,3 @@ class PresetManager(QtGui.QDialog):
self.findPresets()
self.drawPresetList()
break

View File

@ -2,6 +2,9 @@
<ui version="4.0">
<class>presetmanager</class>
<widget class="QWidget" name="presetmanager">
<property name="windowModality">
<enum>Qt::ApplicationModal</enum>
</property>
<property name="geometry">
<rect>
<x>0</x>
@ -22,7 +25,7 @@
<string/>
</property>
<property name="placeholderText">
<string>Search</string>
<string>Filter by name</string>
</property>
</widget>
</item>
@ -48,6 +51,9 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="tabKeyNavigation">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
@ -98,6 +104,24 @@
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_close">
<property name="text">
<string>Close</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item alignment="Qt::AlignRight">
<widget class="QLabel" name="label">
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Right-click components in the list to create presets.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>

View File

@ -26,7 +26,7 @@ class Worker(QtCore.QObject):
QtCore.QObject.__init__(self)
self.core = core.Core()
self.core.settings = parent.settings
self.modules = parent.modules
self.modules = parent.core.modules
self.stackedWidget = parent.window.stackedWidget
self.parent = parent
parent.videoTask.connect(self.createVideo)