void ServerWidget::setupGUI(){ filesTable = new QTableWidget(0,2,this); textEdit = new QTextEdit(this); inputWidget = new QWidget(this); labelStartclock = new QLabel(tr("Startclock"), inputWidget); labelPlayclock = new QLabel(tr("Playclock"), inputWidget); lineEditStartclock = new QLineEdit("10", inputWidget); lineEditPlayclock = new QLineEdit("10", inputWidget); playersWidget = new QWidget(inputWidget); // Starts empty pingButton = new QPushButton("Ping", inputWidget); startButton = new QPushButton("Start", inputWidget); abortButton = new QPushButton("Abort", inputWidget); pingButton->setDisabled(true); startButton->setDisabled(true); abortButton->setDisabled(true); // Input area QVBoxLayout * inputLayout = new QVBoxLayout(); QHBoxLayout * clockLayout = new QHBoxLayout(); QHBoxLayout * buttonLayout = new QHBoxLayout(); // If a layout is not top level, it must be added to its parent layout before using it inputLayout->addLayout(clockLayout); inputLayout->addWidget(playersWidget); inputLayout->addLayout(buttonLayout); inputWidget->setLayout(inputLayout); clockLayout->addWidget(labelStartclock); clockLayout->addWidget(lineEditStartclock); clockLayout->addWidget(labelPlayclock); clockLayout->addWidget(lineEditPlayclock); playersWidgetLayout = new QGridLayout(playersWidget); playersWidget->setLayout(playersWidgetLayout); buttonLayout->addWidget(pingButton); buttonLayout->addWidget(startButton); buttonLayout->addWidget(abortButton); // Global layout QGridLayout * layout = new QGridLayout(this); layout->addWidget(filesTable,0,0,2,1); layout->addWidget(inputWidget,0,1,1,1); layout->addWidget(textEdit,1,1,1,1); layout->setColumnStretch(0,2); layout->setColumnStretch(1,3); setLayout(layout); setupFilesTable(); findAndDisplayFiles(); }
AutoImportWindow::AutoImportWindow(QWidget* parent) : QWidget(parent) { resultsTable_ = setupFilesTable(); fileNameParser_ = new FileNameParserDialog(this); filePatternLabel_ = new QLabel(); safeIntervalBox = new QSpinBox(); safeIntervalBox->setMinimum(30); safeIntervalBox->setMaximum(84600); safeIntervalBox->setValue(ProjectPreferences().importSafeInterval()); statusLabel_ = new QLabel(this); statusLabel_->setWordWrap(true); QFont font = statusLabel_->font(); font.setBold(true); statusLabel_->setFont(font); deleteLabel_ = new QLabel("Original images will be DELETED after import! If not intended, change the option on left."); deleteLabel_->setWordWrap(true); deleteLabel_->hide(); QPalette pal = deleteLabel_->palette(); pal.setColor(QPalette::WindowText, Qt::red); deleteLabel_->setPalette(pal); importButton_ = new QPushButton(ApplicationData::icon("play"), tr("Start Import")); importButton_->setCheckable(true); importButton_->setChecked(false); connect(importButton_, &QAbstractButton::clicked, this, &AutoImportWindow::executeImport); refreshButton_ = new QPushButton(ApplicationData::icon("refresh"), tr("Rescan Import Folder")); connect(refreshButton_, &QAbstractButton::clicked, this, &AutoImportWindow::analyzeImport); priorityQueueOption_ = new QCheckBox("Prioritize the processing of imported images"); priorityQueueOption_->setChecked(true); continuous = new QCheckBox("Continuously import new images in the import folder"); continuous->setChecked(false); connect(continuous, &QCheckBox::toggled, [ = ] (bool check){ if(check) timer_.start(safeIntervalBox->value()*1000); else timer_.stop(); }); inputContiner_ = setupInputContainer(); QSplitter* mainSplitter = new QSplitter(Qt::Horizontal); mainSplitter->setHandleWidth(4); mainSplitter->addWidget(inputContiner_); mainSplitter->addWidget(setupStatusContinaer()); mainSplitter->setStretchFactor(0, 1); mainSplitter->setStretchFactor(1, 1); int width = mainSplitter->width(); mainSplitter->setSizes(QList<int>() << width/2 << width/2); QGridLayout* mainLayout = new QGridLayout; mainLayout->setMargin(0); mainLayout->setSpacing(0); mainLayout->addWidget(mainSplitter); setLayout(mainLayout); analyzeImport(); if(ProjectPreferences().importRestartCheck()) executeImport(true); connect(&process_, static_cast<void(QProcess::*)(int)>(&QProcess::finished), this, &AutoImportWindow::continueExecution); connect(&watcher_, &QFileSystemWatcher::directoryChanged, [=] { analyzeImport(); if(continuous->isChecked()) executeImport(true); }); connect(&timer_, &QTimer::timeout, [=] { analyzeImport(); if(continuous->isChecked()) executeImport(true); }); }