Improves cheat-sheet usability

This commit is contained in:
Olivier Keshavjee 2016-02-09 16:47:17 +01:00
parent a5aa2fdd07
commit d10fc7d4d2
3 changed files with 62 additions and 22 deletions

View file

@ -28,10 +28,12 @@ class cheatSheet(QWidget, Ui_cheatSheet):
self.listDelegate = listCompleterDelegate(self)
self.list.setItemDelegate(self.listDelegate)
self.list.itemActivated.connect(self.showInfos)
self.list.hide()
self.hideList()
self.list.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.view.linkActivated.connect(self.openLink)
self.view.linkHovered.connect(self.linkHovered)
self.btnShowList.toggled.connect(self.list.setVisible)
self.line.hide()
self.outlineModel = None
self.persoModel = None
@ -64,10 +66,14 @@ class cheatSheet(QWidget, Ui_cheatSheet):
def textChanged(self, text):
if not text:
self.list.hide()
self.hideList()
else:
self.list.show()
def hideList(self):
if not self.btnShowList.isChecked():
self.list.hide()
def populate(self):
if self.persoModel:
d = []
@ -125,7 +131,8 @@ class cheatSheet(QWidget, Ui_cheatSheet):
def updateListFromData(self):
self.list.clear()
for cat in self.data:
filtered = [i for i in self.data[cat] if self.txtFilter.text().lower() in i[0].lower()]
filtered = [i for i in self.data[cat] if self.txtFilter.text().lower() in i[0].lower() or
self.txtFilter.text().lower() in cat[0].lower()]
if filtered:
self.addCategory(cat[0])
for item in filtered:
@ -137,7 +144,7 @@ class cheatSheet(QWidget, Ui_cheatSheet):
self.list.setCurrentRow(1)
def showInfos(self):
self.list.hide()
self.hideList()
i = self.list.currentItem()
ref = i.data(Qt.UserRole)
if ref:

View file

@ -2,8 +2,7 @@
# Form implementation generated from reading ui file 'manuskript/ui/cheatSheet_ui.ui'
#
# Created: Mon Feb 8 10:48:00 2016
# by: PyQt5 UI code generator 5.2.1
# Created by: PyQt5 UI code generator 5.4.2
#
# WARNING! All changes made in this file will be lost!
@ -14,19 +13,30 @@ class Ui_cheatSheet(object):
cheatSheet.setObjectName("cheatSheet")
cheatSheet.resize(400, 344)
self.verticalLayout_2 = QtWidgets.QVBoxLayout(cheatSheet)
self.verticalLayout_2.setSpacing(0)
self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_2.setSpacing(0)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setSpacing(0)
self.horizontalLayout.setObjectName("horizontalLayout")
self.txtFilter = QtWidgets.QLineEdit(cheatSheet)
self.txtFilter.setFrame(False)
self.txtFilter.setClearButtonEnabled(True)
self.txtFilter.setObjectName("txtFilter")
self.verticalLayout_2.addWidget(self.txtFilter)
self.horizontalLayout.addWidget(self.txtFilter)
self.btnShowList = QtWidgets.QPushButton(cheatSheet)
self.btnShowList.setText("")
icon = QtGui.QIcon.fromTheme("go-bottom")
self.btnShowList.setIcon(icon)
self.btnShowList.setCheckable(True)
self.btnShowList.setFlat(True)
self.btnShowList.setObjectName("btnShowList")
self.horizontalLayout.addWidget(self.btnShowList)
self.verticalLayout_2.addLayout(self.horizontalLayout)
self.line = QtWidgets.QFrame(cheatSheet)
self.line.setFrameShadow(QtWidgets.QFrame.Plain)
self.line.setLineWidth(0)
self.line.setFrameShape(QtWidgets.QFrame.HLine)
self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line.setObjectName("line")
self.verticalLayout_2.addWidget(self.line)
self.splitter = QtWidgets.QSplitter(cheatSheet)
@ -46,11 +56,11 @@ class Ui_cheatSheet(object):
self.scrollArea.setWidgetResizable(True)
self.scrollArea.setObjectName("scrollArea")
self.scrollAreaWidgetContents = QtWidgets.QWidget()
self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 400, 68))
self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 400, 70))
self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
self.verticalLayout = QtWidgets.QVBoxLayout(self.scrollAreaWidgetContents)
self.verticalLayout.setSpacing(0)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setSpacing(0)
self.verticalLayout.setObjectName("verticalLayout")
self.view = QtWidgets.QLabel(self.scrollAreaWidgetContents)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)

View file

@ -30,17 +30,40 @@
<number>0</number>
</property>
<item>
<widget class="QLineEdit" name="txtFilter">
<property name="frame">
<bool>false</bool>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="placeholderText">
<string>Filter (type the name of anything in your project)</string>
</property>
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
<item>
<widget class="QLineEdit" name="txtFilter">
<property name="frame">
<bool>false</bool>
</property>
<property name="placeholderText">
<string>Filter (type the name of anything in your project)</string>
</property>
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnShowList">
<property name="text">
<string/>
</property>
<property name="icon">
<iconset theme="go-bottom"/>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="flat">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line">
@ -87,7 +110,7 @@
<x>0</x>
<y>0</y>
<width>400</width>
<height>68</height>
<height>70</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">