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

View File

@ -2,6 +2,9 @@
<ui version="4.0"> <ui version="4.0">
<class>presetmanager</class> <class>presetmanager</class>
<widget class="QWidget" name="presetmanager"> <widget class="QWidget" name="presetmanager">
<property name="windowModality">
<enum>Qt::ApplicationModal</enum>
</property>
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
@ -22,7 +25,7 @@
<string/> <string/>
</property> </property>
<property name="placeholderText"> <property name="placeholderText">
<string>Search</string> <string>Filter by name</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -48,6 +51,9 @@
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
<property name="tabKeyNavigation">
<bool>true</bool>
</property>
</widget> </widget>
</item> </item>
</layout> </layout>
@ -98,6 +104,24 @@
</property> </property>
</widget> </widget>
</item> </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> </layout>
</item> </item>
</layout> </layout>

View File

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