Some more UI tweaks

This commit is contained in:
Olivier Keshavjee 2016-04-11 23:54:47 +02:00
parent 282e976aa1
commit 7f9ea9e513
12 changed files with 526 additions and 399 deletions

View file

@ -12,6 +12,7 @@ FORMS += ../manuskript/ui/editors/textFormat_ui.ui
FORMS += ../manuskript/ui/editors/locker_ui.ui FORMS += ../manuskript/ui/editors/locker_ui.ui
FORMS += ../manuskript/ui/editors/completer_ui.ui FORMS += ../manuskript/ui/editors/completer_ui.ui
FORMS += ../manuskript/ui/editors/mainEditor_ui.ui FORMS += ../manuskript/ui/editors/mainEditor_ui.ui
FORMS += ../manuskript/ui/editors/tabSplitter_ui.ui
FORMS += ../manuskript/ui/views/propertiesView_ui.ui FORMS += ../manuskript/ui/views/propertiesView_ui.ui
FORMS += ../manuskript/ui/views/metadataView_ui.ui FORMS += ../manuskript/ui/views/metadataView_ui.ui
@ -39,6 +40,7 @@ SOURCES += ../manuskript/ui/editors/fullScreenEditor.py
SOURCES += ../manuskript/ui/editors/locker.py SOURCES += ../manuskript/ui/editors/locker.py
SOURCES += ../manuskript/ui/editors/mainEditor.py SOURCES += ../manuskript/ui/editors/mainEditor.py
SOURCES += ../manuskript/ui/editors/textFormat.py SOURCES += ../manuskript/ui/editors/textFormat.py
SOURCES += ../manuskript/ui/editors/tabSplitter.py
SOURCES += ../manuskript/ui/helpLabel.py SOURCES += ../manuskript/ui/helpLabel.py
SOURCES += ../manuskript/ui/revisions.py SOURCES += ../manuskript/ui/revisions.py
SOURCES += ../manuskript/ui/search.py SOURCES += ../manuskript/ui/search.py

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -8,6 +8,7 @@ from manuskript.enums import Character
from manuskript.enums import Plot from manuskript.enums import Plot
from manuskript.functions import lightBlue from manuskript.functions import lightBlue
from manuskript.functions import mainWindow from manuskript.functions import mainWindow
from manuskript.ui import style
from manuskript.ui.cheatSheet_ui import Ui_cheatSheet from manuskript.ui.cheatSheet_ui import Ui_cheatSheet
from manuskript.models import references as Ref from manuskript.models import references as Ref
from manuskript.ui.editors.completer import completer from manuskript.ui.editors.completer import completer
@ -19,6 +20,7 @@ class cheatSheet(QWidget, Ui_cheatSheet):
def __init__(self, parent=None): def __init__(self, parent=None):
QWidget.__init__(self, parent) QWidget.__init__(self, parent)
self.setupUi(self) self.setupUi(self)
self.txtFilter.setStyleSheet(style.lineEditSS())
self.splitter.setStretchFactor(0, 5) self.splitter.setStretchFactor(0, 5)
self.splitter.setStretchFactor(1, 70) self.splitter.setStretchFactor(1, 70)

View file

@ -9,7 +9,7 @@ from PyQt5.QtWidgets import QWidget, qApp
from manuskript import settings from manuskript import settings
from manuskript.enums import Outline from manuskript.enums import Outline
from manuskript.functions import AUC, mainWindow, drawProgress from manuskript.functions import AUC, mainWindow, drawProgress, appPath
from manuskript.ui import style from manuskript.ui import style
from manuskript.ui.editors.editorWidget import editorWidget from manuskript.ui.editors.editorWidget import editorWidget
from manuskript.ui.editors.fullScreenEditor import fullScreenEditor from manuskript.ui.editors.fullScreenEditor import fullScreenEditor
@ -49,11 +49,11 @@ class mainEditor(QWidget, Ui_mainEditor):
# Cf. https://github.com/qtproject/qtbase/commit/a8621a3f85e64f1252a80ae81a6e22554f7b3f44 # Cf. https://github.com/qtproject/qtbase/commit/a8621a3f85e64f1252a80ae81a6e22554f7b3f44
# Since those are important, we provide fallback. # Since those are important, we provide fallback.
self.btnRedacFolderCork.setIcon(QIcon.fromTheme("view-cards", self.btnRedacFolderCork.setIcon(QIcon.fromTheme("view-cards",
QIcon("../icons/NumixMsk/256x256/actions/view-cards.svg"))) QIcon(appPath("icons/NumixMsk/256x256/actions/view-cards.svg"))))
self.btnRedacFolderOutline.setIcon(QIcon.fromTheme("view-outline", self.btnRedacFolderOutline.setIcon(QIcon.fromTheme("view-outline",
QIcon("../icons/NumixMsk/256x256/actions/view-outline.svg"))) QIcon(appPath("icons/NumixMsk/256x256/actions/view-outline.svg"))))
self.btnRedacFolderText.setIcon(QIcon.fromTheme("view-text", self.btnRedacFolderText.setIcon(QIcon.fromTheme("view-text",
QIcon("../icons/NumixMsk/256x256/actions/view-text.svg"))) QIcon(appPath("icons/NumixMsk/256x256/actions/view-text.svg"))))
for btn in [self.btnRedacFolderCork, self.btnRedacFolderText, self.btnRedacFolderOutline]: for btn in [self.btnRedacFolderCork, self.btnRedacFolderText, self.btnRedacFolderOutline]:
btn.setToolTip(btn.text()) btn.setToolTip(btn.text())

View file

@ -6,7 +6,7 @@ from PyQt5.QtCore import QModelIndex, QRect, QPoint, Qt, QObject, QSize
from PyQt5.QtGui import QIcon, QPalette from PyQt5.QtGui import QIcon, QPalette
from PyQt5.QtWidgets import QWidget, QPushButton, qApp from PyQt5.QtWidgets import QWidget, QPushButton, qApp
from manuskript.functions import mainWindow from manuskript.functions import mainWindow, appPath
from manuskript.ui import style from manuskript.ui import style
from manuskript.ui.editors.tabSplitter_ui import Ui_tabSplitter from manuskript.ui.editors.tabSplitter_ui import Ui_tabSplitter
@ -42,6 +42,7 @@ class tabSplitter(QWidget, Ui_tabSplitter):
self.btnTarget.setFlat(True) self.btnTarget.setFlat(True)
self.btnTarget.setObjectName("btnTarget") self.btnTarget.setObjectName("btnTarget")
self.btnTarget.clicked.connect(self.setTarget) self.btnTarget.clicked.connect(self.setTarget)
self.btnTarget.setToolTip(self.tr("Open selected items in that view."))
self.updateTargetIcon(self.isTarget) self.updateTargetIcon(self.isTarget)
self.mainEditor = mainEditor or parent self.mainEditor = mainEditor or parent
@ -89,8 +90,8 @@ class tabSplitter(QWidget, Ui_tabSplitter):
def restoreOpenIndexes(self, openIndexes): def restoreOpenIndexes(self, openIndexes):
try: try:
if openIndexes[1]:
self.split(state=openIndexes[0]) self.split(state=openIndexes[0])
for i in openIndexes[1]: for i in openIndexes[1]:
idx = mainWindow().mdlOutline.getIndexByID(i) idx = mainWindow().mdlOutline.getIndexByID(i)
@ -114,7 +115,7 @@ class tabSplitter(QWidget, Ui_tabSplitter):
self.updateTargetIcon(self.isTarget) self.updateTargetIcon(self.isTarget)
def updateTargetIcon(self, val): def updateTargetIcon(self, val):
icon = QIcon.fromTheme("set-target", QIcon("../icons/NumixMsk/256x256/actions/set-target.svg")) icon = QIcon.fromTheme("set-target", QIcon(appPath("icons/NumixMsk/256x256/actions/set-target.svg")))
if not val: if not val:
icon = QIcon(icon.pixmap(128, 128, icon.Disabled)) icon = QIcon(icon.pixmap(128, 128, icon.Disabled))
self.btnTarget.setIcon(icon) self.btnTarget.setIcon(icon)
@ -211,16 +212,22 @@ class tabSplitter(QWidget, Ui_tabSplitter):
def eventFilter(self, object, event): def eventFilter(self, object, event):
if object == self.btnSplit and event.type() == event.HoverEnter: if object == self.btnSplit and event.type() == event.HoverEnter:
self.setAutoFillBackground(True) # self.setAutoFillBackground(True)
# self.setBackgroundRole(QPalette.Highlight)
# self.splitter.setAutoFillBackground(True) # self.splitter.setAutoFillBackground(True)
# self.splitter.setStyleSheet("""QSplitter#{}{{ # self.splitter.setStyleSheet("""QSplitter#{}{{
# border:1px solid darkblue; # border:1px solid darkblue;
# }}""".format(self.splitter.objectName())) # }}""".format(self.splitter.objectName()))
self.setBackgroundRole(QPalette.Highlight)
self.setStyleSheet(style.mainEditorTabSS() + "QWidget{{background:{};}}".format(style.bgHover))
elif object == self.btnSplit and event.type() == event.HoverLeave: elif object == self.btnSplit and event.type() == event.HoverLeave:
self.setAutoFillBackground(False) # self.setAutoFillBackground(False)
# self.setBackgroundRole(QPalette.Window)
# self.splitter.setStyleSheet("""QSplitter#{}{{ # self.splitter.setStyleSheet("""QSplitter#{}{{
# border: 1px solid transparent; # border: 1px solid transparent;
# }}""".format(self.splitter.objectName())) # }}""".format(self.splitter.objectName()))
self.setBackgroundRole(QPalette.Window)
self.setStyleSheet(style.mainEditorTabSS())
return QWidget.eventFilter(self, object, event) return QWidget.eventFilter(self, object, event)

View file

@ -2,8 +2,7 @@
# Form implementation generated from reading ui file 'manuskript/ui/mainWindow.ui' # Form implementation generated from reading ui file 'manuskript/ui/mainWindow.ui'
# #
# Created: Fri Apr 8 18:22:09 2016 # Created by: PyQt5 UI code generator 5.4.2
# by: PyQt5 UI code generator 5.2.1
# #
# WARNING! All changes made in this file will be lost! # WARNING! All changes made in this file will be lost!
@ -17,8 +16,8 @@ class Ui_MainWindow(object):
self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget") self.centralwidget.setObjectName("centralwidget")
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.centralwidget) self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.centralwidget)
self.horizontalLayout_2.setSpacing(0)
self.horizontalLayout_2.setContentsMargins(0, 1, 0, 0) self.horizontalLayout_2.setContentsMargins(0, 1, 0, 0)
self.horizontalLayout_2.setSpacing(0)
self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.stack = QtWidgets.QStackedWidget(self.centralwidget) self.stack = QtWidgets.QStackedWidget(self.centralwidget)
self.stack.setObjectName("stack") self.stack.setObjectName("stack")
@ -822,7 +821,6 @@ class Ui_MainWindow(object):
self.layoutWidget = QtWidgets.QWidget(self.splitterOutlineH) self.layoutWidget = QtWidgets.QWidget(self.splitterOutlineH)
self.layoutWidget.setObjectName("layoutWidget") self.layoutWidget.setObjectName("layoutWidget")
self.verticalLayout_14 = QtWidgets.QVBoxLayout(self.layoutWidget) self.verticalLayout_14 = QtWidgets.QVBoxLayout(self.layoutWidget)
self.verticalLayout_14.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_14.setObjectName("verticalLayout_14") self.verticalLayout_14.setObjectName("verticalLayout_14")
self.splitterOutlineV = QtWidgets.QSplitter(self.layoutWidget) self.splitterOutlineV = QtWidgets.QSplitter(self.layoutWidget)
self.splitterOutlineV.setOrientation(QtCore.Qt.Vertical) self.splitterOutlineV.setOrientation(QtCore.Qt.Vertical)
@ -1326,18 +1324,18 @@ class Ui_MainWindow(object):
self.actCompile.setShortcut(_translate("MainWindow", "F6")) self.actCompile.setShortcut(_translate("MainWindow", "F6"))
self.actToolFrequency.setText(_translate("MainWindow", "&Frequency Analyzer")) self.actToolFrequency.setText(_translate("MainWindow", "&Frequency Analyzer"))
from manuskript.ui.cheatSheet import cheatSheet
from manuskript.ui.editors.mainEditor import mainEditor
from manuskript.ui.search import search
from manuskript.ui.views.basicItemView import basicItemView
from manuskript.ui.views.characterTreeView import characterTreeView
from manuskript.ui.views.lineEditView import lineEditView
from manuskript.ui.views.metadataView import metadataView
from manuskript.ui.views.outlineView import outlineView
from manuskript.ui.views.plotTreeView import plotTreeView from manuskript.ui.views.plotTreeView import plotTreeView
from manuskript.ui.views.sldImportance import sldImportance from manuskript.ui.views.sldImportance import sldImportance
from manuskript.ui.views.metadataView import metadataView
from manuskript.ui.search import search
from manuskript.ui.views.lineEditView import lineEditView
from manuskript.ui.views.basicItemView import basicItemView
from manuskript.ui.views.textEditView import textEditView
from manuskript.ui.welcome import welcome
from manuskript.ui.editors.mainEditor import mainEditor
from manuskript.ui.views.storylineView import storylineView from manuskript.ui.views.storylineView import storylineView
from manuskript.ui.views.textEditCompleter import textEditCompleter from manuskript.ui.views.textEditCompleter import textEditCompleter
from manuskript.ui.views.textEditView import textEditView
from manuskript.ui.views.treeView import treeView from manuskript.ui.views.treeView import treeView
from manuskript.ui.views.characterTreeView import characterTreeView from manuskript.ui.welcome import welcome
from manuskript.ui.views.outlineView import outlineView
from manuskript.ui.cheatSheet import cheatSheet

View file

@ -6,6 +6,7 @@ from PyQt5.QtWidgets import QWidget, QMenu, QAction, qApp, QListWidgetItem, QSty
from manuskript.enums import Outline from manuskript.enums import Outline
from manuskript.functions import mainWindow from manuskript.functions import mainWindow
from manuskript.ui import style
from manuskript.ui.search_ui import Ui_search from manuskript.ui.search_ui import Ui_search
from manuskript.models import references as Ref from manuskript.models import references as Ref
@ -34,6 +35,9 @@ class search(QWidget, Ui_search):
self.result.setItemDelegate(self.delegate) self.result.setItemDelegate(self.delegate)
self.result.itemActivated.connect(self.openItem) self.result.itemActivated.connect(self.openItem)
self.result.setStyleSheet(style.searchResultSS())
self.text.setStyleSheet(style.lineEditSS())
def generateOptionMenu(self): def generateOptionMenu(self):
self.menu = QMenu(self) self.menu = QMenu(self)
a = QAction(self.tr("Search in:"), self.menu) a = QAction(self.tr("Search in:"), self.menu)

View file

@ -2,8 +2,7 @@
# Form implementation generated from reading ui file 'manuskript/ui/search_ui.ui' # Form implementation generated from reading ui file 'manuskript/ui/search_ui.ui'
# #
# Created: Fri Apr 8 18:15:49 2016 # Created by: PyQt5 UI code generator 5.4.2
# by: PyQt5 UI code generator 5.2.1
# #
# WARNING! All changes made in this file will be lost! # WARNING! All changes made in this file will be lost!
@ -14,13 +13,14 @@ class Ui_search(object):
search.setObjectName("search") search.setObjectName("search")
search.resize(400, 300) search.resize(400, 300)
self.verticalLayout = QtWidgets.QVBoxLayout(search) self.verticalLayout = QtWidgets.QVBoxLayout(search)
self.verticalLayout.setSpacing(0)
self.verticalLayout.setContentsMargins(0, 0, 0, 0) self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setSpacing(0)
self.verticalLayout.setObjectName("verticalLayout") self.verticalLayout.setObjectName("verticalLayout")
self.horizontalLayout = QtWidgets.QHBoxLayout() self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setSpacing(0) self.horizontalLayout.setSpacing(0)
self.horizontalLayout.setObjectName("horizontalLayout") self.horizontalLayout.setObjectName("horizontalLayout")
self.text = QtWidgets.QLineEdit(search) self.text = QtWidgets.QLineEdit(search)
self.text.setInputMask("")
self.text.setFrame(False) self.text.setFrame(False)
self.text.setClearButtonEnabled(True) self.text.setClearButtonEnabled(True)
self.text.setObjectName("text") self.text.setObjectName("text")
@ -45,4 +45,5 @@ class Ui_search(object):
def retranslateUi(self, search): def retranslateUi(self, search):
_translate = QtCore.QCoreApplication.translate _translate = QtCore.QCoreApplication.translate
search.setWindowTitle(_translate("search", "Form")) search.setWindowTitle(_translate("search", "Form"))
self.text.setPlaceholderText(_translate("search", "Search for..."))

View file

@ -36,9 +36,15 @@
</property> </property>
<item> <item>
<widget class="QLineEdit" name="text"> <widget class="QLineEdit" name="text">
<property name="inputMask">
<string/>
</property>
<property name="frame"> <property name="frame">
<bool>false</bool> <bool>false</bool>
</property> </property>
<property name="placeholderText">
<string>Search for...</string>
</property>
<property name="clearButtonEnabled"> <property name="clearButtonEnabled">
<bool>true</bool> <bool>true</bool>
</property> </property>

View file

@ -9,11 +9,13 @@ from PyQt5.QtWidgets import qApp
from manuskript import settings from manuskript import settings
window = "#d6d2d0" #"#eee" / #eff0f1 # window = "#d6d2d0" #"#eee" / #eff0f1
window = qApp.palette().color(QPalette.Window).name()
bgHover = "#ccc" bgHover = "#ccc"
bgChecked = "#bbb" bgChecked = "#bbb"
borderColor = "darkGray" borderColor = "darkGray"
blue = "#268bd2"
def mainWindowSS(): def mainWindowSS():
return """ return """
@ -89,7 +91,7 @@ def collapsibleGroupBoxButton():
QPushButton{{ QPushButton{{
background-color: transparent; background-color: transparent;
border: none; border: none;
border-top: 1px solid {bgChecked}; border-top: 1px solid darkGray;
padding: 4px 0px; padding: 4px 0px;
font-weight: bold; font-weight: bold;
}} }}
@ -119,11 +121,10 @@ def mainEditorTabSS():
border: 0px; border: 0px;
}} }}
QTabBar::tab{{ QTabBar::tab{{
margin: 2px 0 0 0; margin: 3px 0 -3px 0;
padding: 2px 9px; padding: 2px 9px;
border: 1px solid #999; border: 1px solid #999;
border-bottom: 0px; border-bottom: 0px;
margin-top: 3px;
}} }}
QTabBar::tab:selected{{ QTabBar::tab:selected{{
border: 1px solid #999; border: 1px solid #999;
@ -201,13 +202,45 @@ def verticalToolButtonSS():
def dockSS(): def dockSS():
return """ return """
QDockWidget::title { QDockWidget::title {{
text-align: left; /* align the text to the left */ text-align: left; /* align the text to the left */
background: lightBlue; background: {bgChecked};
padding: 5px; padding: 5px;
} }}
QDockWidget::close-button, QDockWidget::float-button { QDockWidget::close-button, QDockWidget::float-button {{
background: lightBlue; background: {bgChecked};
} }}
""" """.format(
bgChecked=bgChecked
)
def searchResultSS():
return """
QListWidget{{
background: {window};
}}
""".format(
window=window
)
def lineEditSS():
# return "border-radius: 6px;"
return """QLineEdit{{
border: none;
border-bottom: 1px solid {checked};
background:{window};
}}
QLineEdit:focus{{
border-bottom: 1px solid {blue};
}}
""".format(window=window,
checked=bgChecked,
blue=blue)
def transparentSS():
return """background: transparent;
border:none;"""

View file

@ -4,7 +4,7 @@ from PyQt5.QtWidgets import QWidget, QAbstractItemView
from manuskript.enums import Outline from manuskript.enums import Outline
from manuskript.ui.views.metadataView_ui import Ui_metadataView from manuskript.ui.views.metadataView_ui import Ui_metadataView
from manuskript.ui import style
class metadataView(QWidget, Ui_metadataView): class metadataView(QWidget, Ui_metadataView):
def __init__(self, parent=None): def __init__(self, parent=None):
@ -15,6 +15,10 @@ class metadataView(QWidget, Ui_metadataView):
self.txtSummaryFull.setColumn(Outline.summaryFull.value) self.txtSummaryFull.setColumn(Outline.summaryFull.value)
self.txtNotes.setColumn(Outline.notes.value) self.txtNotes.setColumn(Outline.notes.value)
self.revisions.setEnabled(False) self.revisions.setEnabled(False)
self.txtSummarySentence.setStyleSheet(style.lineEditSS())
self.txtSummaryFull.setStyleSheet(style.transparentSS())
self.txtNotes.setStyleSheet(style.transparentSS())
def setModels(self, mdlOutline, mdlCharacter, mdlLabels, mdlStatus): def setModels(self, mdlOutline, mdlCharacter, mdlLabels, mdlStatus):
self.properties.setModels(mdlOutline, mdlCharacter, mdlLabels, mdlStatus) self.properties.setModels(mdlOutline, mdlCharacter, mdlLabels, mdlStatus)