@@ -119,6 +119,8 @@ ProjectFileDialog::ProjectFileDialog(ProjectFile *projectFile, bool premium, QWi
119119 setWindowTitle (title);
120120 loadSettings ();
121121
122+ mUI ->premiumLicense ->setVisible (premium);
123+
122124 // Checkboxes for the libraries..
123125 const QString applicationFilePath = QCoreApplication::applicationFilePath ();
124126 const QString appPath = QFileInfo (applicationFilePath).canonicalPath ();
@@ -245,6 +247,7 @@ ProjectFileDialog::ProjectFileDialog(ProjectFile *projectFile, bool premium, QWi
245247 connect (mUI ->mListSuppressions , &QListWidget::doubleClicked, this , &ProjectFileDialog::editSuppression);
246248 connect (mUI ->mBtnBrowseMisraFile , &QPushButton::clicked, this , &ProjectFileDialog::browseMisraFile);
247249 connect (mUI ->mChkAllVsConfigs , &QCheckBox::clicked, this , &ProjectFileDialog::checkAllVSConfigs);
250+ connect (mUI ->mBtnBrowseLicense , &QPushButton::clicked, this , &ProjectFileDialog::browseLicenseFile);
248251 loadFromProjectFile (projectFile);
249252}
250253
@@ -435,6 +438,7 @@ void ProjectFileDialog::loadFromProjectFile(const ProjectFile *projectFile)
435438 mUI ->mToolClangTidy ->setEnabled (false );
436439 }
437440 mUI ->mEditTags ->setText (projectFile->getTags ().join (' ;' ));
441+ mUI ->mEditLicenseFile ->setText (projectFile->getLicenseFile ());
438442 updatePathsAndDefines ();
439443}
440444
@@ -512,6 +516,8 @@ void ProjectFileDialog::saveToProjectFile(ProjectFile *projectFile) const
512516 projectFile->setBughunting (mUI ->mBughunting ->isChecked ());
513517 projectFile->setClangAnalyzer (mUI ->mToolClangAnalyzer ->isChecked ());
514518 projectFile->setClangTidy (mUI ->mToolClangTidy ->isChecked ());
519+ if (mPremium )
520+ projectFile->setLicenseFile (mUI ->mEditLicenseFile ->text ());
515521#if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
516522 projectFile->setTags (mUI ->mEditTags ->text ().split (" ;" , Qt::SkipEmptyParts));
517523#else
@@ -529,17 +535,17 @@ void ProjectFileDialog::ok()
529535QString ProjectFileDialog::getExistingDirectory (const QString &caption, bool trailingSlash)
530536{
531537 const QFileInfo inf (mProjectFile ->getFilename ());
532- const QString rootpath = inf.absolutePath ();
538+ const QString projectPath = inf.absolutePath ();
533539 QString selectedDir = QFileDialog::getExistingDirectory (this ,
534540 caption,
535- rootpath );
541+ projectPath );
536542
537543 if (selectedDir.isEmpty ())
538544 return QString ();
539545
540546 // Check if the path is relative to project file's path and if so
541547 // make it a relative path instead of absolute path.
542- const QDir dir (rootpath );
548+ const QDir dir (projectPath );
543549 const QString relpath (dir.relativeFilePath (selectedDir));
544550 if (!relpath.startsWith (" ../.." ))
545551 selectedDir = relpath;
@@ -949,3 +955,16 @@ void ProjectFileDialog::browseMisraFile()
949955 updateAddonCheckBox (mUI ->mMisraC , nullptr , getDataDir (), ADDON_MISRA);
950956 }
951957}
958+
959+ void ProjectFileDialog::browseLicenseFile ()
960+ {
961+ const QFileInfo inf (mProjectFile ->getFilename ());
962+ const QString projectPath = inf.absolutePath ();
963+
964+ const QString fileName = QFileDialog::getOpenFileName (this , tr (" Select license file" ), projectPath, tr (" License file (%1)" ).arg (" *.lic" ));
965+ if (fileName.isEmpty ())
966+ return ;
967+
968+ const QDir dir (projectPath);
969+ mUI ->mEditLicenseFile ->setText (dir.relativeFilePath (fileName));
970+ }
0 commit comments