def __init__(self, parent=None): super(PresetWindow, self).__init__(parent) self.mainWindow = parent self.setWindowTitle("Presets") self.setMinimumWidth(700) self.setMinimumHeight(600) #layout layout = QVBoxLayout(self) self.setLayout(layout) #loading indicator self.loadingLock = threading.Lock() self.loadingIndicator = QLabel('Loading...please wait a second.') self.loadingIndicator.hide() layout.addWidget(self.loadingIndicator) #Middle central = QSplitter(self) layout.addWidget(central, 1) #list view self.presetList = QTreeWidget(self) self.presetList.setHeaderHidden(True) self.presetList.setColumnCount(1) self.presetList.setIndentation(15) self.presetList.itemSelectionChanged.connect(self.currentChanged) central.addWidget(self.presetList) central.setStretchFactor(0, 0) #detail view self.detailView = QScrollArea() self.detailView.setWidgetResizable(True) self.detailWidget = QWidget() self.detailWidget.setAutoFillBackground(True) self.detailWidget.setStyleSheet("background-color: rgb(255,255,255);") #self.detailView.setFrameStyle(QFrame.Box) self.detailLayout = QVBoxLayout() self.detailWidget.setLayout(self.detailLayout) self.detailView.setWidget(self.detailWidget) central.addWidget(self.detailView) central.setStretchFactor(1, 2) self.detailName = QLabel('') self.detailName.setWordWrap(True) self.detailName.setStyleSheet("QLabel {font-size:15pt;}") self.detailLayout.addWidget(self.detailName) self.detailDescription = TextViewer() self.detailLayout.addWidget(self.detailDescription) self.detailForm = QFormLayout() self.detailForm.setRowWrapPolicy(QFormLayout.DontWrapRows) self.detailForm.setFieldGrowthPolicy(QFormLayout.AllNonFixedFieldsGrow) self.detailForm.setFormAlignment(Qt.AlignLeft | Qt.AlignTop) self.detailForm.setLabelAlignment(Qt.AlignLeft) self.detailLayout.addLayout(self.detailForm, 1) # Module self.detailModule = QLabel('') self.detailForm.addRow('<b>Module</b>', self.detailModule) #Options self.detailOptionsLabel = QLabel('<b>Options</b>') self.detailOptionsLabel.setStyleSheet("QLabel {height:25px;}") self.detailOptions = TextViewer() self.detailForm.addRow(self.detailOptionsLabel, self.detailOptions) # Columns self.detailColumnsLabel = QLabel('<b>Columns</b>') self.detailColumnsLabel.setStyleSheet("QLabel {height:25px;}") self.detailColumns = TextViewer() self.detailForm.addRow(self.detailColumnsLabel, self.detailColumns) # Speed self.detailSpeed = QLabel('') self.detailForm.addRow('<b>Speed</b>', self.detailSpeed) self.detailHeaders = QLabel('') self.detailForm.addRow('<b>Header nodes</b>', self.detailHeaders) # Buttons buttons = QHBoxLayout() #QDialogButtonBox() self.saveButton = QPushButton('New preset') self.saveButton.clicked.connect(self.newPreset) self.saveButton.setToolTip( wraptip( "Create a new preset using the current tab and parameters")) #buttons.addButton(self.saveButton,QDialogButtonBox.ActionRole) buttons.addWidget(self.saveButton) self.overwriteButton = QPushButton('Edit preset') self.overwriteButton.clicked.connect(self.overwritePreset) self.overwriteButton.setToolTip(wraptip("Edit the selected preset.")) #buttons.addButton(self.overwriteButton,QDialogButtonBox.ActionRole) buttons.addWidget(self.overwriteButton) self.deleteButton = QPushButton('Delete preset') self.deleteButton.clicked.connect(self.deletePreset) self.deleteButton.setToolTip( wraptip( "Delete the selected preset. Default presets can not be deleted." )) #buttons.addButton(self.deleteButton,QDialogButtonBox.ActionRole) buttons.addWidget(self.deleteButton) #layout.addWidget(buttons,1) buttons.addStretch() self.reloadButton = QPushButton('Reload') self.reloadButton.clicked.connect(self.reloadPresets) self.reloadButton.setToolTip(wraptip("Reload all preset files.")) buttons.addWidget(self.reloadButton) self.rejectButton = QPushButton('Cancel') self.rejectButton.clicked.connect(self.close) self.rejectButton.setToolTip(wraptip("Close the preset dialog.")) buttons.addWidget(self.rejectButton) self.applyButton = QPushButton('Apply') self.applyButton.setDefault(True) self.applyButton.clicked.connect(self.loadPreset) self.applyButton.setToolTip(wraptip("Load the selected preset.")) #buttons.addButton(self.applyButton,QDialogButtonBox.AcceptRole) buttons.addWidget(self.applyButton) #buttons.addButton(QDialogButtonBox.Cancel) #buttons.rejected.connect(self.close) #layout.addWidget(buttons,0) layout.addLayout(buttons) #status bar self.statusbar = QStatusBar() #self.folderLabel = QLabel("") self.folderButton = QPushButton("") self.folderButton.setFlat(True) self.folderButton.clicked.connect(self.statusBarClicked) self.statusbar.insertWidget(0, self.folderButton) layout.addWidget(self.statusbar) #self.presetFolder = os.path.join(os.path.dirname(self.mainWindow.settings.fileName()),'presets') self.presetFolder = os.path.join(os.path.expanduser("~"), 'Facepager', 'Presets') self.presetFolderDefault = os.path.join(os.path.expanduser("~"), 'Facepager', 'DefaultPresets') self.folderButton.setText(self.presetFolder) self.presetsDownloaded = False self.presetSuffix = ['.3_9.json', '.3_10.json'] self.lastSelected = None
def __init__(self, parent=None): super(PresetWindow,self).__init__(parent) self.mainWindow = parent self.setWindowTitle("Presets") self.setMinimumWidth(800); self.setMinimumHeight(600); #layout layout = QVBoxLayout(self) self.setLayout(layout) #loading indicator self.loadingLock = threading.Lock() self.loadingIndicator = QLabel('Loading...please wait a second.') self.loadingIndicator.hide() layout.addWidget(self.loadingIndicator) #Middle central = QSplitter(self) layout.addWidget(central,1) #list view self.presetList = QTreeWidget(self) self.presetList.setHeaderHidden(True) self.presetList.setColumnCount(1) self.presetList.setIndentation(15) self.presetList.itemSelectionChanged.connect(self.currentChanged) central.addWidget(self.presetList) central.setStretchFactor(0, 0) # category / pipeline self.categoryWidget = QWidget() p = self.categoryWidget.palette() p.setColor(self.categoryWidget.backgroundRole(), Qt.white) self.categoryWidget.setPalette(p) self.categoryWidget.setAutoFillBackground(True) self.categoryLayout=QVBoxLayout() #self.categoryLayout.setContentsMargins(0, 0, 0, 0) self.categoryWidget.setLayout(self.categoryLayout) self.categoryView=QScrollArea() self.categoryView.setWidgetResizable(True) self.categoryView.setWidget(self.categoryWidget) central.addWidget(self.categoryView) central.setStretchFactor(1, 2) # Pipeline header self.pipelineName = QLabel('') self.pipelineName.setWordWrap(True) self.pipelineName.setStyleSheet("QLabel {font-size:15pt;}") self.categoryLayout.addWidget(self.pipelineName) # Pipeline items # self.pipelineWidget = QTreeWidget() # self.pipelineWidget.setIndentation(0) # self.pipelineWidget.setUniformRowHeights(True) # self.pipelineWidget.setColumnCount(4) # self.pipelineWidget.setHeaderLabels(['Name','Module','Basepath','Resource']) # self.categoryLayout.addWidget(self.pipelineWidget) # preset widget self.presetWidget = QWidget() p = self.presetWidget.palette() p.setColor(self.presetWidget.backgroundRole(), Qt.white) self.presetWidget.setPalette(p) self.presetWidget.setAutoFillBackground(True) #self.presetWidget.setStyleSheet("background-color: rgb(255,255,255);") self.presetView=QScrollArea() self.presetView.setWidgetResizable(True) self.presetView.setWidget(self.presetWidget) central.addWidget(self.presetView) central.setStretchFactor(2, 2) #self.detailView.setFrameStyle(QFrame.Box) self.presetLayout=QVBoxLayout() self.presetWidget.setLayout(self.presetLayout) self.detailName = QLabel('') self.detailName.setWordWrap(True) self.detailName.setStyleSheet("QLabel {font-size:15pt;}") self.presetLayout.addWidget(self.detailName) self.detailDescription = TextViewer() self.presetLayout.addWidget(self.detailDescription) self.presetForm=QFormLayout() self.presetForm.setRowWrapPolicy(QFormLayout.DontWrapRows); self.presetForm.setFieldGrowthPolicy(QFormLayout.AllNonFixedFieldsGrow); self.presetForm.setFormAlignment(Qt.AlignLeft | Qt.AlignTop); self.presetForm.setLabelAlignment(Qt.AlignLeft); self.presetLayout.addLayout(self.presetForm, 1) # Module self.detailModule = QLabel('') self.presetForm.addRow('<b>Module</b>', self.detailModule) #Options self.detailOptionsLabel = QLabel('<b>Options</b>') self.detailOptionsLabel.setStyleSheet("QLabel {height:25px;}") self.detailOptions = TextViewer() self.presetForm.addRow(self.detailOptionsLabel, self.detailOptions) # Columns self.detailColumnsLabel = QLabel('<b>Columns</b>') self.detailColumnsLabel.setStyleSheet("QLabel {height:25px;}") self.detailColumns = TextViewer() self.presetForm.addRow(self.detailColumnsLabel, self.detailColumns) # Speed self.detailSpeed = QLabel('') self.presetForm.addRow('<b>Speed</b>', self.detailSpeed) # Timeout self.detailTimeout = QLabel('') self.presetForm.addRow('<b>Timeout</b>', self.detailTimeout) # Max size self.detailMaxsize = QLabel('') self.presetForm.addRow('<b>Maximum size</b>', self.detailMaxsize) # Headers self.detailHeaders = QLabel('') self.presetForm.addRow('<b>Header nodes</b>', self.detailHeaders) # Buttons buttons= QHBoxLayout() #QDialogButtonBox() self.saveButton = QPushButton('New preset') self.saveButton.clicked.connect(self.newPreset) self.saveButton.setToolTip(wraptip("Create a new preset using the current tab and parameters")) #buttons.addButton(self.saveButton,QDialogButtonBox.ActionRole) buttons.addWidget(self.saveButton) self.overwriteButton = QPushButton('Edit preset') self.overwriteButton.clicked.connect(self.overwritePreset) self.overwriteButton.setToolTip(wraptip("Edit the selected preset.")) #buttons.addButton(self.overwriteButton,QDialogButtonBox.ActionRole) buttons.addWidget(self.overwriteButton) self.deleteButton = QPushButton('Delete preset') self.deleteButton.clicked.connect(self.deletePreset) self.deleteButton.setToolTip(wraptip("Delete the selected preset. Default presets can not be deleted.")) #buttons.addButton(self.deleteButton,QDialogButtonBox.ActionRole) buttons.addWidget(self.deleteButton) #layout.addWidget(buttons,1) buttons.addStretch() self.reloadButton=QPushButton('Reload') self.reloadButton.clicked.connect(self.reloadPresets) self.reloadButton.setToolTip(wraptip("Reload all preset files.")) buttons.addWidget(self.reloadButton) self.rejectButton=QPushButton('Cancel') self.rejectButton.clicked.connect(self.close) self.rejectButton.setToolTip(wraptip("Close the preset dialog.")) buttons.addWidget(self.rejectButton) self.columnsButton=QPushButton('Add Columns') self.columnsButton.setDefault(True) self.columnsButton.clicked.connect(self.addColumns) self.columnsButton.setToolTip(wraptip("Add the columns of the selected preset to the column setup.")) buttons.addWidget(self.columnsButton) self.applyButton=QPushButton('Apply') self.applyButton.setDefault(True) self.applyButton.clicked.connect(self.applyPreset) self.applyButton.setToolTip(wraptip("Load the selected preset.")) buttons.addWidget(self.applyButton) layout.addLayout(buttons) #status bar self.statusbar = QStatusBar() #self.folderLabel = QLabel("") self.folderButton = QPushButton("") self.folderButton.setFlat(True) self.folderButton.clicked.connect(self.statusBarClicked) self.statusbar.insertWidget(0,self.folderButton) layout.addWidget(self.statusbar) #self.presetFolder = os.path.join(os.path.dirname(self.mainWindow.settings.fileName()),'presets') self.presetFolder = os.path.join(os.path.expanduser("~"),'Facepager','Presets') self.presetFolderDefault = os.path.join(os.path.expanduser("~"),'Facepager','DefaultPresets') self.folderButton.setText(self.presetFolder) self.presetsDownloaded = False self.presetSuffix = ['.3_9.json','.3_10.json','.fp4.json'] self.lastSelected = None # Progress bar (sync with download thread by signals self.progress = ProgressBar("Downloading default presets from GitHub...", self, hidden=True) self.progressStart.connect(self.setProgressStart) self.progressShow.connect(self.setProgressShow) self.progressMax.connect(self.setProgressMax) self.progressStep.connect(self.setProgressStep) self.progressStop.connect(self.setProgressStop)