/** * @brief MainWindow::createDirectoryBoxes * Creates a group box widget containing a source directy widget. */ void MainWindow::createDirectoryBoxes() { sourceDirectoryWidget = new SourceDirectoryWidget(); QVBoxLayout* sourceDirectoryBoxLayout = new QVBoxLayout; sourceDirectoryBoxLayout->setContentsMargins(0, 0, 0, 0); sourceDirectoryBoxLayout->setSizeConstraint(QLayout::SetMinimumSize); sourceDirectoryBoxLayout->addWidget(sourceDirectoryWidget); sourceDirectoryBoxLayout->setAlignment(sourceDirectoryWidget, Qt::AlignTop); sourceDirectoryBox = new QGroupBox("Source directory"); sourceDirectoryBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); sourceDirectoryBox->setLayout(sourceDirectoryBoxLayout); verifyDirectoryWidget = new SourceDirectoryWidget(); QVBoxLayout* verifyDirectoryBoxLayout = new QVBoxLayout; verifyDirectoryBoxLayout->setContentsMargins(0, 0, 0, 0); verifyDirectoryBoxLayout->setSizeConstraint(QLayout::SetMinimumSize); verifyDirectoryBoxLayout->addWidget(verifyDirectoryWidget); verifyDirectoryBoxLayout->setAlignment(verifyDirectoryWidget, Qt::AlignTop); verifyDirectoryBox = new QGroupBox("Verify directory"); verifyDirectoryBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); verifyDirectoryBox->setLayout(verifyDirectoryBoxLayout); sourceDirectoryWidget->setDirNode(mainproject->getSourceDirectory()); verifyDirectoryWidget->setDirNode(mainproject->getVerifyDirectory()); connect(sourceDirectoryWidget, SIGNAL(pathStatusSignal()), this, SLOT(pathStatusChanged())); connect(verifyDirectoryWidget, SIGNAL(pathStatusSignal()), this, SLOT(pathStatusChanged())); }
/** * @brief SourceDirectory::setPath * @param newpath The new path to be used. */ void SourceDirectory::setPath(QString newpath) { if (newpath == path) { return; } path = newpath; emit pathChanged(newpath); QDir dir(newpath); if (dir.exists() != validpath) { validpath = !validpath; emit pathStatusChanged(validpath); } }
/** * @brief SourceDirectoryWidget::setDirNode * @param newNode The new SourceDirectory instance to be managed by this instance. */ void SourceDirectoryWidget::setDirNode(SourceDirectory* newNode) { if (!newNode || newNode == dirNode) { return; } if (dirNode) { lineedit->disconnect(dirNode); dirNode->disconnect(this); } dirNode = newNode; connect(dirNode, SIGNAL(pathChanged(QString)), this, SLOT(setDir(QString))); connect(lineedit, SIGNAL(textChanged(QString)), newNode, SLOT(setPath(QString))); connect(newNode, SIGNAL(pathStatusChanged(bool)), this, SLOT(pathStatusChanged(bool))); this->setDir(newNode->getPath()); pathStatusChanged(newNode->isValid()); }