Example #1
0
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();
}
Example #2
0
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);
    });
    
}