diff --git a/manuskript/mainWindow.py b/manuskript/mainWindow.py index d1d1a6e..b25dfa0 100644 --- a/manuskript/mainWindow.py +++ b/manuskript/mainWindow.py @@ -17,6 +17,7 @@ from manuskript.models.outlineModel import outlineModel from manuskript.models.plotModel import plotModel from manuskript.models.worldModel import worldModel from manuskript.settingsWindow import settingsWindow +from manuskript.ui import style from manuskript.ui.collapsibleDockWidgets import collapsibleDockWidgets from manuskript.ui.compileDialog import compileDialog from manuskript.ui.helpLabel import helpLabel @@ -756,40 +757,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): def setupMoreUi(self): - self.setStyleSheet(""" - QMenuBar#menubar{border:none;} - - QToolButton{ - background: none; - border: none; - } - QPushButton:flat:hover, QToolButton:hover{ - border: 1px solid darkgray; - border-radius: 3px; - background: darkgray; - } - - """) - - # Custon palette? - p = qApp.palette() - c = p.color(p.Window) - # p.setColor(p.Base, c.lighter(115)) - p.setColor(p.Base, QColor("#EEE")) - qApp.setPalette(p) - - p = self.treeRedacOutline.palette() - c = p.color(p.Window) - # p.setBrush(p.Base, Qt.red) # That doesn't work, why? - # p.setBrush(p.Window, Qt.green) - # self.treeRedacOutline.setPalette(p) - # self.treeRedacOutline.setStyleSheet("background: {};".format(c.name())) - self.treeRedacOutline.setStyleSheet(""" - QTreeView{ - background: transparent; - margin-top: 30px; - } - """) + style.styleMainWindow(self) # Tool bar on the right self.toolbar = collapsibleDockWidgets(Qt.RightDockWidgetArea, self) diff --git a/manuskript/ui/collapsibleDockWidgets.py b/manuskript/ui/collapsibleDockWidgets.py index 292aa44..1d3bf2c 100644 --- a/manuskript/ui/collapsibleDockWidgets.py +++ b/manuskript/ui/collapsibleDockWidgets.py @@ -4,6 +4,8 @@ from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QToolBar, QDockWidget, QAction, QToolButton, QSizePolicy, QStylePainter, \ QStyleOptionButton, QStyle +from manuskript.ui import style + class collapsibleDockWidgets(QToolBar): """ @@ -39,17 +41,7 @@ class collapsibleDockWidgets(QToolBar): b.setDefaultAction(d.toggleViewAction()) # d.setStyleSheet("QDockWidget::title{background-color: red;}") # d.setTitleBarWidget(QLabel(d.windowTitle())) - d.setStyleSheet(""" - QDockWidget::title { - text-align: left; /* align the text to the left */ - background: lightBlue; - padding: 5px; - } - - QDockWidget::close-button, QDockWidget::float-button { - background: lightBlue; - } - """) + d.setStyleSheet(style.dockSS()) a = self.addWidget(b) self._dockToButtonAction[d] = a @@ -59,16 +51,7 @@ class collapsibleDockWidgets(QToolBar): self.otherWidgets = [] self.currentGroup = None - self.setStyleSheet(""" - QToolBar{ - background:transparent; - border: none; - spacing: 0px; - } - QToolBar:separator{ - border: none; - } - """) + self.setStyleSheet(style.toolBarSS()) def _dockWidgets(self): mw = self.parent() @@ -128,33 +111,7 @@ class verticalButton(QToolButton): QToolButton.__init__(self, parent) self.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Minimum) - self.setStyleSheet(""" - QToolButton{ - border: none; - border-radius: 0px; - background: transparent; - margin: 0px; - padding: 3px; - } - /*QToolButton:checked{ - border: 0px solid darkgray; - background: transparent; - color: darkblue; - } - QToolButton:hover{ - border: 0px solid darkgray; - color: darkblue; - }*/ - QToolButton:checked{ - border: 0px solid darkgray; - background: #bbbbbb; - } - QToolButton:hover{ - border: 0px solid darkgray; - background: #cccccc; - } - - """) + self.setStyleSheet(style.verticalToolButtonSS()) def sizeHint(self): return QToolButton.sizeHint(self).transposed() diff --git a/manuskript/ui/collapsibleGroupBox2.py b/manuskript/ui/collapsibleGroupBox2.py index dcba689..9bb6c7a 100644 --- a/manuskript/ui/collapsibleGroupBox2.py +++ b/manuskript/ui/collapsibleGroupBox2.py @@ -4,6 +4,7 @@ from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QWidget, QFrame, QPushButton, QVBoxLayout, QSizePolicy, qApp from manuskript.functions import lightBlue +from manuskript.ui import style class collapsibleGroupBox2(QWidget): @@ -17,34 +18,7 @@ class collapsibleGroupBox2(QWidget): self.vPolicy = None # self.button.setStyleSheet("background-color: lightBlue;") - s1 = """ - QPushButton{ - background-color: #BBB; - border: none; - padding: 2px; - } - QPushButton:checked, QPushButton:hover{ - font-style:italic; - background-color:lightBlue; - }""" - - # p = qApp.palette() - # c = p.color(p.Window) - - s2 = """ - QPushButton{ - background-color: transparent; - border: none; - border-top: 1px solid darkgray; - padding: 4px 0px; - font-weight: bold; - } - QPushButton:hover{ - background-color:#cccccc; - } - """ - - self.button.setStyleSheet(s2) + self.button.setStyleSheet(style.collapsibleGroupBoxButton()) def resizeEvent(self, event): if not self.switched: diff --git a/manuskript/ui/editors/mainEditor.py b/manuskript/ui/editors/mainEditor.py index 7a26066..637a5ad 100644 --- a/manuskript/ui/editors/mainEditor.py +++ b/manuskript/ui/editors/mainEditor.py @@ -11,6 +11,7 @@ from PyQt5.QtWidgets import qApp from manuskript import settings from manuskript.enums import Outline from manuskript.functions import AUC, mainWindow, drawProgress +from manuskript.ui import style from manuskript.ui.editors.editorWidget import editorWidget from manuskript.ui.editors.fullScreenEditor import fullScreenEditor from manuskript.ui.editors.mainEditor_ui import Ui_mainEditor @@ -51,34 +52,7 @@ class mainEditor(QWidget, Ui_mainEditor): self.showFullScreen, AUC) self.tab.setDocumentMode(False) - self.tab.setStyleSheet(""" - QTabWidget::pane{ - margin-top: -1px; - border: 1px solid #999; - } - QTabWidget::tab-bar{ - left:10px; - } - QTabBar{ - background: transparent; - border-radius: 0; - border: 0px; - } - QTabBar::tab{ - margin: 2px 0 0 0; - padding: 2px 9px; - border: 1px solid #999; - border-bottom: 0px; - margin-top: 3px; - } - QTabBar::tab:selected{ - border: 1px solid #999; - background: white; - border-bottom: 0px; - margin-top: 0px; - } - - """) + self.tab.setStyleSheet(style.mainEditorTabSS()) ############################################################################### # TABS diff --git a/manuskript/ui/style.py b/manuskript/ui/style.py new file mode 100644 index 0000000..9a3daed --- /dev/null +++ b/manuskript/ui/style.py @@ -0,0 +1,166 @@ +#!/usr/bin/env python +# --!-- coding: utf8 --!-- + + +# default window color (linux): +from PyQt5.QtGui import QColor +from PyQt5.QtWidgets import qApp + +window = "#d6d2d0" #"#eee" + +bgHover = "#ccc" +bgChecked = "#bbb" +borderColor = "darkGray" + +def mainWindowSS(): + return """ + QMenuBar#menubar{{border:none;}} + + QToolButton{{ + background: none; + border: none; + }} + QPushButton:flat:hover, QToolButton:hover{{ + border: 1px solid {borderColor}; + border-radius: 3px; + background: {bgHover}; + }} + """.format( + bgHover=bgHover, + borderColor=borderColor + ) + +def styleMainWindow(mw): + mw.setStyleSheet(mainWindowSS()) + + # Custon palette? + qApp.setPalette(appPalette()) + + mw.treeRedacOutline.setStyleSheet(""" + QTreeView{ + background: transparent; + margin-top: 30px; + }""") + + +def appPalette(): + p = qApp.palette() + c = p.color(p.Window) + # p.setColor(p.Window, QColor(window)) + # p.setColor(p.Base, c.lighter(115)) + # p.setColor(p.Base, QColor("#FFF")) + return p + + +def collapsibleGroupBoxButton(): + s1 = """ + QPushButton{ + background-color: #BBB; + border: none; + padding: 2px; + } + QPushButton:checked, QPushButton:hover{ + font-style:italic; + background-color:lightBlue; + }""" + + s2 = """ + QPushButton{{ + background-color: transparent; + border: none; + border-top: 1px solid {bgChecked}; + padding: 4px 0px; + font-weight: bold; + }} + QPushButton:hover{{ + background-color:{bgHover}; + }} + """.format( + bgHover=bgHover, + bgChecked=bgChecked + ) + + return s2 + + +def mainEditorTabSS(): + return """ + QTabWidget::pane{ + margin-top: -1px; + border: 1px solid #999; + } + QTabWidget::tab-bar{ + left:10px; + } + QTabBar{ + background: transparent; + border-radius: 0; + border: 0px; + } + QTabBar::tab{ + margin: 2px 0 0 0; + padding: 2px 9px; + border: 1px solid #999; + border-bottom: 0px; + margin-top: 3px; + } + QTabBar::tab:selected{ + border: 1px solid #999; + background: white; + border-bottom: 0px; + margin-top: 0px; + } + QTabBar::tab:!selected:hover{ + background:#ddd; + } + """ + +def toolBarSS(): + return """ + QToolBar{ + background:transparent; + border: 0; + border-left: 1px solid darkgray; + spacing: 0px; + } + QToolBar:separator{ + border: none; + } + """ + +def verticalToolButtonSS(): + return """ + QToolButton{{ + border: none; + border-radius: 0px; + background: transparent; + margin: 0px; + padding: 4px 8px; + }} + QToolButton:checked{{ + border: 0px solid {borderColor}; + background: {bgChecked}; + }} + QToolButton:hover{{ + border: 0px solid {borderColor}; + background: {bgHover}; + }} + """.format( + borderColor=borderColor, + bgChecked=bgChecked, + bgHover=bgHover + ) + + +def dockSS(): + return """ + QDockWidget::title { + text-align: left; /* align the text to the left */ + background: lightBlue; + padding: 5px; + } + + QDockWidget::close-button, QDockWidget::float-button { + background: lightBlue; + } + """