Skip to content

Commit 17db69a

Browse files
authored
Updates to UI (#32)
* updates * bump version 0.1.8 * bump version 0.1.8 * bump version 0.1.8 * updated ci/cd
1 parent 39464f4 commit 17db69a

File tree

9 files changed

+205
-85
lines changed

9 files changed

+205
-85
lines changed

.github/workflows/ubuntu.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ jobs:
66
runs-on: ubuntu-latest
77
strategy:
88
matrix:
9-
python-version: ['3.7', '3.8', '3.9', '3.10']
9+
python-version: ['3.7', '3.8', '3.9', '3.10', ]
1010

1111
steps:
1212
- uses: actions/checkout@v3
@@ -24,4 +24,10 @@ jobs:
2424
sudo apt-get install libglx0 libglx-mesa0 libegl-mesa0 libegl1 -y
2525
- name: Run Tests
2626
run: |
27-
tox
27+
tox -e pylint
28+
tox -e pycodestyle
29+
tox -e security
30+
tox -e format
31+
tox -e pyroma
32+
tox -e twinecheck
33+
tox -e flake8

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# QStyler CHANGELOG
22

3+
## Version 0.1.8
4+
5+
- Added new tool button that allows the user to extend screen so they can watch the effects of edits while editing.
6+
- Added unittests for the new expansion.
7+
38
## Version 0.1.7
49

510
- Major update to UI

QStyler/icons/extend-left.png

780 Bytes
Loading

QStyler/icons/extend-right.png

765 Bytes
Loading

QStyler/styler.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,12 +179,14 @@ class ToolBar(QToolBar):
179179
"""Tool bar widget for themes."""
180180

181181
imported = Signal(str)
182+
extend = Signal(bool)
182183
themes_dir = Path(__file__).parent / "themes"
183184

184185
def __init__(self):
185186
"""Construct tool bar."""
186187
super().__init__()
187188
self.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextUnderIcon)
189+
self.extended_state = False
188190
self.live_action = QAction(get_icon("live"), "live view", self)
189191
self.preview_action = QAction(get_icon("preview"), "preview", self)
190192
self.load_action = QAction(get_icon("confirm"), "load", self)
@@ -194,6 +196,7 @@ def __init__(self):
194196
self.live_action.setChecked(True)
195197
self.preview_action.setCheckable(True)
196198
self.preview_action.setChecked(False)
199+
self.preview_action.setEnabled(False)
197200
self.addActions(
198201
[
199202
self.live_action,
@@ -230,12 +233,27 @@ def __init__(self):
230233
)
231234
self.addSeparator()
232235
self.addAction(self.github_action)
236+
self.addSeparator()
237+
self.extend_action = QAction(get_icon("extend-right"), "extend", self)
238+
self.addAction(self.extend_action)
233239
self.github_action.triggered.connect(open_github_browser)
234240
self.live_action.triggered.connect(self.activate_load)
235241
self.rename_action.triggered.connect(self.rename_theme)
236242
self.new_action.triggered.connect(self.new_dialog)
237243
self.delete_action.triggered.connect(self.delete_theme)
238244
self.import_action.triggered.connect(self.import_theme)
245+
self.extend_action.triggered.connect(self.on_extended)
246+
247+
def on_extended(self):
248+
"""Triggers extending the screen to view widgets while styling them."""
249+
if not self.extended_state:
250+
self.extend_action.setIcon(get_icon("extend-left"))
251+
self.extended_state = True
252+
self.extend.emit(True)
253+
else:
254+
self.extend_action.setIcon(get_icon("extend-right"))
255+
self.extended_state = False
256+
self.extend.emit(False)
239257

240258
def delete_theme(self):
241259
"""Delete the current theme in combo box."""
@@ -248,8 +266,10 @@ def activate_load(self, state):
248266
"""Activate or deactivate load button."""
249267
if state:
250268
self.load_action.setDisabled(True)
269+
self.preview_action.setDisabled(True)
251270
else:
252271
self.load_action.setDisabled(False)
272+
self.preview_action.setDisabled(False)
253273

254274
def set_theme_name(self, new, old):
255275
"""Set the new name for current theme."""
@@ -303,6 +323,8 @@ def import_theme(self): # pragma: nocover
303323
class StylerTab(QWidget):
304324
"""Styler Widget."""
305325

326+
extend = Signal(bool)
327+
306328
def __init__(self, parent=None):
307329
"""Construct styler widget."""
308330
super().__init__(parent)
@@ -367,6 +389,7 @@ def __init__(self, parent=None):
367389
self.toolbar.themes_combo.currentTextChanged.connect(
368390
self.set_current_theme
369391
)
392+
self.toolbar.extend.connect(self.extend.emit)
370393

371394
def save_sheet(self):
372395
"""Save the current content of the editor to theme doc."""
@@ -492,3 +515,15 @@ def parse_changes(self):
492515
except ParsingError as err: # pragma: nocover
493516
a = str(err)
494517
self.window().statusBar().showMessage(f"Error near line {a}", 2000)
518+
519+
def export_theme(self): # pragma: nocover
520+
"""Export current editor contents to qss file."""
521+
current_theme = self.editor.text()
522+
path = QFileDialog.getSaveFileName(self, caption="Save Path")
523+
if path and not os.path.exists(path):
524+
if not path.lower().endswith(".qss"):
525+
path += ".qss"
526+
with open(path, "wt", encoding="utf8") as fd:
527+
fd.write(current_theme)
528+
else:
529+
self.window().statusBar().showMessage(f"Error saving to {path}")

QStyler/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,4 @@
1818
##############################################################################
1919
"""Version File."""
2020

21-
__version__ = "0.1.7"
21+
__version__ = "0.1.8"

QStyler/window.py

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
import sys
2222
from typing import Optional
2323

24-
from PySide6.QtWidgets import (QApplication, QMainWindow, QTabWidget,
25-
QTextBrowser, QVBoxLayout, QWidget)
24+
from PySide6.QtWidgets import (QApplication, QHBoxLayout, QMainWindow,
25+
QTabWidget, QVBoxLayout, QWidget)
2626

2727
from QStyler.collectionsTab import CollectionsTab
2828
from QStyler.editorTab import EditorsTab
@@ -48,13 +48,19 @@ def __init__(self, parent: Optional[QWidget] = None) -> None:
4848
"""Initialize main window."""
4949
super().__init__(parent=parent)
5050
self.setWindowTitle("QStyler")
51+
self.widget = QWidget()
52+
self.layout = QHBoxLayout(self.widget)
53+
self.leftWidget = QWidget()
54+
self.leftLayout = QVBoxLayout(self.leftWidget)
5155
self.tabWidget = QTabWidget()
52-
self.setCentralWidget(self.tabWidget)
56+
self.leftWidget.setHidden(True)
57+
self.setCentralWidget(self.widget)
58+
self.layout.addWidget(self.leftWidget)
59+
self.layout.addWidget(self.tabWidget)
5360
self.setObjectName("MainWindow")
5461
self.resize(900, 700)
5562
self.setWindowIcon(get_icon("QStylerIcon.png"))
5663
self.menubar = MenuBar(self)
57-
self.menubar.displayStyles.connect(self.showStyles)
5864
self.statusbar = self.statusBar()
5965
self.setMenuBar(self.menubar)
6066
self.add_widgets()
@@ -69,18 +75,24 @@ def add_widgets(self):
6975
self.tabWidget.addTab(self.widgets, "Widgets")
7076
self.tabWidget.addTab(self.editors, "Editors")
7177
self.tabWidget.addTab(self.collections, "Collections")
72-
73-
def showStyles(self): # pragma: nocover
74-
"""Show the current stylesheet in a separate widget."""
75-
sheet = QApplication.instance().styleSheet()
76-
self.dialog = QWidget()
77-
self.dialog.resize(300, 400)
78-
layout = QVBoxLayout(self.dialog)
79-
self.dialog.setWindowTitle("Current Style Sheet Theme")
80-
textEdit = QTextBrowser(parent=self.dialog)
81-
textEdit.setPlainText(sheet)
82-
layout.addWidget(textEdit)
83-
self.dialog.show()
78+
self.styler.extend.connect(self.on_extend)
79+
80+
def on_extend(self, state):
81+
"""Extend the window."""
82+
if state:
83+
self.tabWidget.removeTab(0)
84+
self.leftLayout.addWidget(self.styler)
85+
self.styler.show()
86+
self.leftWidget.setHidden(False)
87+
self.resize(self.width() + 450, self.height())
88+
else:
89+
self.leftWidget.hide()
90+
self.leftLayout.takeAt(0)
91+
self.tabWidget.insertTab(0, self.styler, "Style")
92+
self.styler.show()
93+
self.tabWidget.setCurrentWidget(self.styler)
94+
self.tabWidget.show()
95+
self.resize(self.width() - 450, self.height())
8496

8597

8698
class Application(QApplication):

0 commit comments

Comments
 (0)