Added populate project page, and two more dummy pages
This commit is contained in:
+131
-4
@@ -33,7 +33,7 @@ from os import path
|
|||||||
from PyQt5.QtGui import QPixmap, QColor
|
from PyQt5.QtGui import QPixmap, QColor
|
||||||
from PyQt5.QtWidgets import (
|
from PyQt5.QtWidgets import (
|
||||||
QWizard, QWizardPage, QLabel, QVBoxLayout, QLineEdit, QPlainTextEdit,
|
QWizard, QWizardPage, QLabel, QVBoxLayout, QLineEdit, QPlainTextEdit,
|
||||||
QPushButton, QFileDialog, QHBoxLayout, QLayout
|
QPushButton, QFileDialog, QHBoxLayout, QLayout, QRadioButton
|
||||||
)
|
)
|
||||||
|
|
||||||
from nw.common import makeFileNameSafe
|
from nw.common import makeFileNameSafe
|
||||||
@@ -41,6 +41,12 @@ from nw.gui.custom import QSwitch, QConfigLayout
|
|||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
PAGE_INTRO = 0
|
||||||
|
PAGE_STORE = 1
|
||||||
|
PAGE_POP = 2
|
||||||
|
PAGE_CUSTOM = 3
|
||||||
|
PAGE_FINAL = 4
|
||||||
|
|
||||||
class GuiProjectWizard(QWizard):
|
class GuiProjectWizard(QWizard):
|
||||||
|
|
||||||
def __init__(self, theParent):
|
def __init__(self, theParent):
|
||||||
@@ -60,9 +66,15 @@ class GuiProjectWizard(QWizard):
|
|||||||
|
|
||||||
self.introPage = ProjWizardIntroPage(self.theParent)
|
self.introPage = ProjWizardIntroPage(self.theParent)
|
||||||
self.storagePage = ProjWizardFolderPage(self.theParent)
|
self.storagePage = ProjWizardFolderPage(self.theParent)
|
||||||
|
self.popPage = ProjWizardPopulatePage(self.theParent)
|
||||||
|
self.customPage = ProjWizardCustomPage(self.theParent)
|
||||||
|
self.finalPage = ProjWizardFinalPage(self.theParent)
|
||||||
|
|
||||||
self.addPage(self.introPage)
|
self.setPage(PAGE_INTRO, self.introPage)
|
||||||
self.addPage(self.storagePage)
|
self.setPage(PAGE_STORE, self.storagePage)
|
||||||
|
self.setPage(PAGE_POP, self.popPage)
|
||||||
|
self.setPage(PAGE_CUSTOM, self.customPage)
|
||||||
|
self.setPage(PAGE_FINAL, self.finalPage)
|
||||||
|
|
||||||
self.setOption(QWizard.NoBackButtonOnStartPage, True)
|
self.setOption(QWizard.NoBackButtonOnStartPage, True)
|
||||||
|
|
||||||
@@ -156,7 +168,6 @@ class ProjWizardFolderPage(QWizardPage):
|
|||||||
self.theText.setWordWrap(True)
|
self.theText.setWordWrap(True)
|
||||||
|
|
||||||
xW = self.mainConf.pxInt(300)
|
xW = self.mainConf.pxInt(300)
|
||||||
# xH = self.mainConf.pxInt(100)
|
|
||||||
vS = self.mainConf.pxInt(12)
|
vS = self.mainConf.pxInt(12)
|
||||||
fS = self.mainConf.pxInt(4)
|
fS = self.mainConf.pxInt(4)
|
||||||
|
|
||||||
@@ -212,3 +223,119 @@ class ProjWizardFolderPage(QWizardPage):
|
|||||||
return
|
return
|
||||||
|
|
||||||
# END Class ProjWizardFolderPage
|
# END Class ProjWizardFolderPage
|
||||||
|
|
||||||
|
class ProjWizardPopulatePage(QWizardPage):
|
||||||
|
|
||||||
|
def __init__(self, theParent):
|
||||||
|
QWizardPage.__init__(self)
|
||||||
|
|
||||||
|
self.mainConf = nw.CONFIG
|
||||||
|
self.theParent = theParent
|
||||||
|
self.theTheme = theParent.theTheme
|
||||||
|
|
||||||
|
self.setTitle("Populate Project")
|
||||||
|
self.theText = QLabel(
|
||||||
|
"Choose how to pre-fill the project. Either with a minimal set of "
|
||||||
|
"starter items, a sample project explaining and showing many of "
|
||||||
|
"the features, or show further custom options on the next page."
|
||||||
|
)
|
||||||
|
self.theText.setWordWrap(True)
|
||||||
|
|
||||||
|
vS = self.mainConf.pxInt(12)
|
||||||
|
fS = self.mainConf.pxInt(4)
|
||||||
|
|
||||||
|
self.popSample = QRadioButton("Fill the project with sample files")
|
||||||
|
self.popMinimal = QRadioButton("Fill the project with a minimal set of items")
|
||||||
|
self.popCustom = QRadioButton("Show detailed options for filling the project")
|
||||||
|
self.popMinimal.setChecked(True)
|
||||||
|
|
||||||
|
self.popBox = QVBoxLayout()
|
||||||
|
self.popBox.setSpacing(fS)
|
||||||
|
self.popBox.addWidget(self.popMinimal)
|
||||||
|
self.popBox.addWidget(self.popSample)
|
||||||
|
self.popBox.addWidget(self.popCustom)
|
||||||
|
|
||||||
|
self.registerField("popSample", self.popSample)
|
||||||
|
self.registerField("popMinimal", self.popMinimal)
|
||||||
|
self.registerField("popCustom", self.popCustom)
|
||||||
|
|
||||||
|
# Assemble
|
||||||
|
self.outerBox = QVBoxLayout()
|
||||||
|
self.outerBox.setSpacing(vS)
|
||||||
|
self.outerBox.addWidget(self.theText)
|
||||||
|
self.outerBox.addLayout(self.popBox)
|
||||||
|
self.outerBox.addStretch(1)
|
||||||
|
self.setLayout(self.outerBox)
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
def nextId(self):
|
||||||
|
"""Overload the nextID function to skip further pages if custom
|
||||||
|
is not selected.
|
||||||
|
"""
|
||||||
|
if self.popCustom.isChecked():
|
||||||
|
return PAGE_CUSTOM
|
||||||
|
else:
|
||||||
|
return PAGE_FINAL
|
||||||
|
|
||||||
|
# END Class ProjWizardPopulatePage
|
||||||
|
|
||||||
|
class ProjWizardCustomPage(QWizardPage):
|
||||||
|
|
||||||
|
def __init__(self, theParent):
|
||||||
|
QWizardPage.__init__(self)
|
||||||
|
|
||||||
|
self.mainConf = nw.CONFIG
|
||||||
|
self.theParent = theParent
|
||||||
|
self.theTheme = theParent.theTheme
|
||||||
|
|
||||||
|
self.setTitle("Custom Project Options")
|
||||||
|
self.theText = QLabel(
|
||||||
|
"Text"
|
||||||
|
)
|
||||||
|
self.theText.setWordWrap(True)
|
||||||
|
|
||||||
|
vS = self.mainConf.pxInt(12)
|
||||||
|
fS = self.mainConf.pxInt(4)
|
||||||
|
|
||||||
|
# Assemble
|
||||||
|
self.outerBox = QVBoxLayout()
|
||||||
|
self.outerBox.setSpacing(vS)
|
||||||
|
self.outerBox.addWidget(self.theText)
|
||||||
|
# self.outerBox.addLayout(self.popBox)
|
||||||
|
self.outerBox.addStretch(1)
|
||||||
|
self.setLayout(self.outerBox)
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
# END Class ProjWizardCustomPage
|
||||||
|
|
||||||
|
class ProjWizardFinalPage(QWizardPage):
|
||||||
|
|
||||||
|
def __init__(self, theParent):
|
||||||
|
QWizardPage.__init__(self)
|
||||||
|
|
||||||
|
self.mainConf = nw.CONFIG
|
||||||
|
self.theParent = theParent
|
||||||
|
self.theTheme = theParent.theTheme
|
||||||
|
|
||||||
|
self.setTitle("Overview")
|
||||||
|
self.theText = QLabel(
|
||||||
|
"Text"
|
||||||
|
)
|
||||||
|
self.theText.setWordWrap(True)
|
||||||
|
|
||||||
|
vS = self.mainConf.pxInt(12)
|
||||||
|
fS = self.mainConf.pxInt(4)
|
||||||
|
|
||||||
|
# Assemble
|
||||||
|
self.outerBox = QVBoxLayout()
|
||||||
|
self.outerBox.setSpacing(vS)
|
||||||
|
self.outerBox.addWidget(self.theText)
|
||||||
|
# self.outerBox.addLayout(self.popBox)
|
||||||
|
self.outerBox.addStretch(1)
|
||||||
|
self.setLayout(self.outerBox)
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
# END Class ProjWizardFinalPage
|
||||||
|
|||||||
Reference in New Issue
Block a user