Add a standard button generator

This commit is contained in:
Veronica Berglyd Olsen
2025-10-25 20:47:32 +02:00
parent ba5b2af394
commit 096686457d
4 changed files with 85 additions and 31 deletions
+9 -23
View File
@@ -35,15 +35,15 @@ from PyQt6.QtCore import (
from PyQt6.QtGui import QAction, QCloseEvent, QFont, QPainter, QPaintEvent, QPen, QShortcut
from PyQt6.QtWidgets import (
QApplication, QFileDialog, QFormLayout, QHBoxLayout, QLabel, QLineEdit,
QListView, QMenu, QPushButton, QScrollArea, QStackedWidget,
QStyledItemDelegate, QStyleOptionViewItem, QVBoxLayout, QWidget
QListView, QMenu, QScrollArea, QStackedWidget, QStyledItemDelegate,
QStyleOptionViewItem, QVBoxLayout, QWidget
)
from novelwriter import CONFIG, SHARED
from novelwriter.common import formatInt, makeFileNameSafe, qtAddAction, qtLambda
from novelwriter.constants import nwFiles
from novelwriter.core.coretools import ProjectBuilder
from novelwriter.enum import nwItemClass
from novelwriter.enum import nwItemClass, nwStandardButton
from novelwriter.extensions.configlayout import NWrappedWidgetBox
from novelwriter.extensions.modified import NDialog, NIconToolButton, NSpinBox
from novelwriter.extensions.switch import NSwitch
@@ -75,8 +75,6 @@ class GuiWelcome(NDialog):
self.setMinimumHeight(450)
self.resize(*CONFIG.welcomeWinSize)
btnIconSize = SHARED.theme.buttonIconSize
# Elements
# ========
@@ -104,34 +102,22 @@ class GuiWelcome(NDialog):
# Buttons
# =======
self.btnList = QPushButton(self.tr("List"), self)
self.btnList.setIcon(SHARED.theme.getIcon("list", "blue"))
self.btnList.setIconSize(btnIconSize)
self.btnList = SHARED.theme.getStandardButton(nwStandardButton.LIST, self)
self.btnList.clicked.connect(self._showOpenProjectPage)
self.btnNew = QPushButton(self.tr("New"), self)
self.btnNew.setIcon(SHARED.theme.getIcon("add", "green"))
self.btnNew.setIconSize(btnIconSize)
self.btnNew = SHARED.theme.getStandardButton(nwStandardButton.NEW, self)
self.btnNew.clicked.connect(self._showNewProjectPage)
self.btnBrowse = QPushButton(self.tr("Browse"), self)
self.btnBrowse.setIcon(SHARED.theme.getIcon("browse", "yellow"))
self.btnBrowse.setIconSize(btnIconSize)
self.btnBrowse = SHARED.theme.getStandardButton(nwStandardButton.BROWSE, self)
self.btnBrowse.clicked.connect(self._browseForProject)
self.btnCancel = QPushButton(self.tr("Cancel"), self)
self.btnCancel.setIcon(SHARED.theme.getIcon("cancel", "red"))
self.btnCancel.setIconSize(btnIconSize)
self.btnCancel = SHARED.theme.getStandardButton(nwStandardButton.CANCEL, self)
self.btnCancel.clicked.connect(qtLambda(self.close))
self.btnCreate = QPushButton(self.tr("Create"), self)
self.btnCreate.setIcon(SHARED.theme.getIcon("star", "yellow"))
self.btnCreate.setIconSize(btnIconSize)
self.btnCreate = SHARED.theme.getStandardButton(nwStandardButton.CREATE, self)
self.btnCreate.clicked.connect(self.tabNew.createNewProject)
self.btnOpen = QPushButton(self.tr("Open"), self)
self.btnOpen.setIcon(SHARED.theme.getIcon("open", "blue"))
self.btnOpen.setIconSize(btnIconSize)
self.btnOpen = SHARED.theme.getStandardButton(nwStandardButton.OPEN, self)
self.btnOpen.clicked.connect(self._openSelectedItem)
self.btnBox = QHBoxLayout()