QMake: inline librarydetailswidget.ui

Change-Id: I9c2ff650c297eb6c707304efc6a650f287b734e7
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
hjk
2022-07-28 13:02:49 +02:00
parent 6f42aa5216
commit 41cadaadad
7 changed files with 165 additions and 302 deletions

View File

@@ -14,7 +14,6 @@ add_qtc_plugin(QmakeProjectManager
customwidgetwizard/pluginoptions.h
externaleditors.cpp externaleditors.h
librarydetailscontroller.cpp librarydetailscontroller.h
librarydetailswidget.ui
makefileparse.cpp makefileparse.h
profilecompletionassist.cpp profilecompletionassist.h
profileeditor.cpp profileeditor.h

View File

@@ -24,22 +24,27 @@
****************************************************************************/
#include "addlibrarywizard.h"
#include "ui_librarydetailswidget.h"
#include "librarydetailscontroller.h"
#include <utils/filepath.h>
#include <utils/hostosinfo.h>
#include <utils/fileutils.h>
#include <utils/layoutbuilder.h>
#include <utils/pathchooser.h>
#include <utils/stringutils.h>
#include <QFileInfo>
#include <QCheckBox>
#include <QComboBox>
#include <QGroupBox>
#include <QLabel>
#include <QLineEdit>
#include <QRadioButton>
#include <QRadioButton>
#include <QScrollArea>
#include <QTextStream>
#include <QVBoxLayout>
namespace QmakeProjectManager {
namespace Internal {
namespace QmakeProjectManager::Internal {
const char qt_file_dialog_filter_reg_exp[] =
"^(.*)\\(([a-zA-Z0-9_.*? +;#\\-\\[\\]@\\{\\}/!<>\\$%&=^~:\\|]*)\\)$";
@@ -190,8 +195,8 @@ AddLibraryWizard::LibraryKind LibraryTypePage::libraryKind() const
DetailsPage::DetailsPage(AddLibraryWizard *parent)
: QWizardPage(parent), m_libraryWizard(parent)
{
m_libraryDetailsWidget = new Ui::LibraryDetailsWidget();
m_libraryDetailsWidget->setupUi(this);
m_libraryDetailsWidget = new LibraryDetailsWidget(this);
resize(456, 438);
Utils::PathChooser * const libPathChooser = m_libraryDetailsWidget->libraryPathChooser;
libPathChooser->setHistoryCompleter("Qmake.LibDir.History");
@@ -316,5 +321,88 @@ QString SummaryPage::snippet() const
return m_snippet;
}
} // Internal
} // QmakeProjectManager
LibraryDetailsWidget::LibraryDetailsWidget(QWidget *parent)
{
includePathChooser = new Utils::PathChooser(parent);
packageLineEdit = new QLineEdit(parent);
libraryPathChooser = new Utils::PathChooser(parent);
libraryComboBox = new QComboBox(parent);
libraryTypeComboBox = new QComboBox(parent);
platformGroupBox = new QGroupBox(tr("Platform:"));
platformGroupBox->setFlat(true);
linkageGroupBox = new QGroupBox(tr("Linkage:"));
linkageGroupBox->setFlat(true);
macGroupBox = new QGroupBox(tr("Mac:"));
macGroupBox->setFlat(true);
winGroupBox = new QGroupBox(tr("Windows:"));
winGroupBox->setFlat(true);
linCheckBox = new QCheckBox(tr("Linux"));
linCheckBox->setChecked(true);
macCheckBox = new QCheckBox(tr("Mac"));
macCheckBox->setChecked(true);
winCheckBox = new QCheckBox(tr("Windows"));
winCheckBox->setChecked(true);
dynamicRadio = new QRadioButton(tr("Dynamic"), linkageGroupBox);
staticRadio = new QRadioButton(tr("Static"), linkageGroupBox);
libraryRadio = new QRadioButton(tr("Library"), macGroupBox);
frameworkRadio = new QRadioButton(tr("Framework"), macGroupBox);
useSubfoldersCheckBox = new QCheckBox(tr("Library inside \"debug\" or \"release\" subfolder"),
winGroupBox);
useSubfoldersCheckBox->setChecked(true);
addSuffixCheckBox = new QCheckBox(tr("Add \"d\" suffix for debug version"), winGroupBox);
removeSuffixCheckBox = new QCheckBox(tr("Remove \"d\" suffix for release version"), winGroupBox);
using namespace Utils::Layouting;
Column { linCheckBox, macCheckBox, winCheckBox, st }.attachTo(platformGroupBox);
Row { dynamicRadio, staticRadio }.attachTo(linkageGroupBox);
Row { libraryRadio, frameworkRadio }.attachTo(macGroupBox);
Column { useSubfoldersCheckBox, addSuffixCheckBox, removeSuffixCheckBox }.attachTo(winGroupBox);
libraryLabel = new QLabel(tr("Library:"));
libraryFileLabel = new QLabel(tr("Library file:"));
libraryTypeLabel = new QLabel(tr("Library type:"));
packageLabel = new QLabel(tr("Package:"));
includeLabel = new QLabel(tr("Include path:"));
Column {
Form {
libraryLabel, libraryComboBox, br,
libraryTypeLabel, libraryTypeComboBox, br,
libraryFileLabel, libraryPathChooser, br,
packageLabel, packageLineEdit, br,
includeLabel, includePathChooser
},
Row {
platformGroupBox,
Column {
linkageGroupBox,
macGroupBox,
winGroupBox,
}
},
st
}.attachTo(parent);
}
} // QmakeProjectManager::Internal

View File

@@ -28,21 +28,59 @@
#include <utils/wizard.h>
#include <utils/pathchooser.h>
#include <QCoreApplication>
QT_BEGIN_NAMESPACE
class QCheckBox;
class QComboBox;
class QGroupBox;
class QRadioButton;
class QLabel;
QT_END_NAMESPACE
namespace QmakeProjectManager {
namespace Internal {
namespace Utils { class PathChooser; }
namespace QmakeProjectManager::Internal {
class LibraryDetailsWidget;
class LibraryDetailsController;
class LibraryTypePage;
class DetailsPage;
class SummaryPage;
namespace Ui { class LibraryDetailsWidget; }
class LibraryDetailsWidget
{
Q_DECLARE_TR_FUNCTIONS(QmakeProjectManager::Internal::LibraryDetailsWidget)
public:
explicit LibraryDetailsWidget(QWidget *parent);
public:
QGroupBox *platformGroupBox;
QGroupBox *linkageGroupBox;
QGroupBox *macGroupBox;
QGroupBox *winGroupBox;
Utils::PathChooser *includePathChooser;
QLineEdit *packageLineEdit;
Utils::PathChooser *libraryPathChooser;
QComboBox *libraryComboBox;
QComboBox *libraryTypeComboBox;
QLabel *libraryLabel;
QLabel *libraryFileLabel;
QLabel *libraryTypeLabel;
QLabel *packageLabel;
QLabel *includeLabel;
QCheckBox *linCheckBox;
QCheckBox *macCheckBox;
QCheckBox *winCheckBox;
QRadioButton *dynamicRadio;
QRadioButton *staticRadio;
QRadioButton *libraryRadio;
QRadioButton *frameworkRadio;
QCheckBox *useSubfoldersCheckBox;
QCheckBox *addSuffixCheckBox;
QCheckBox *removeSuffixCheckBox;
};
class AddLibraryWizard : public Utils::Wizard
{
@@ -115,7 +153,7 @@ public:
private:
AddLibraryWizard *m_libraryWizard;
Ui::LibraryDetailsWidget *m_libraryDetailsWidget = nullptr;
LibraryDetailsWidget *m_libraryDetailsWidget = nullptr;
LibraryDetailsController *m_libraryDetailsController = nullptr;
};
@@ -133,7 +171,6 @@ private:
QString m_snippet;
};
} // namespace Internal
} // namespace QmakeProjectManager
} // QmakeProjectManager::Internal
Q_DECLARE_OPERATORS_FOR_FLAGS(QmakeProjectManager::Internal::AddLibraryWizard::Platforms)

View File

@@ -24,7 +24,7 @@
****************************************************************************/
#include "librarydetailscontroller.h"
#include "ui_librarydetailswidget.h"
#include "qmakebuildconfiguration.h"
#include "qmakeparsernodes.h"
#include "qmakeproject.h"
@@ -37,8 +37,12 @@
#include <utils/qtcassert.h>
#include <utils/qtcprocess.h>
#include <QFileInfo>
#include <QCheckBox>
#include <QComboBox>
#include <QDir>
#include <QFileInfo>
#include <QGroupBox>
#include <QRadioButton>
#include <QTextStream>
using namespace ProjectExplorer;
@@ -58,7 +62,7 @@ static void fillLibraryPlatformTypes(QComboBox *comboBox)
}
LibraryDetailsController::LibraryDetailsController(
Ui::LibraryDetailsWidget *libraryDetails,
LibraryDetailsWidget *libraryDetails,
const FilePath &proFile, QObject *parent) :
QObject(parent),
m_proFile(proFile),
@@ -92,7 +96,7 @@ LibraryDetailsController::LibraryDetailsController(
this, &LibraryDetailsController::slotPlatformChanged);
}
Ui::LibraryDetailsWidget *LibraryDetailsController::libraryDetailsWidget() const
LibraryDetailsWidget *LibraryDetailsController::libraryDetailsWidget() const
{
return m_libraryDetailsWidget;
}
@@ -187,7 +191,7 @@ void LibraryDetailsController::updateGui()
// we use it as a hacky solution to the above issue.
// For reference please see: QTBUG-88666
if (!m_wizard) {
QWidget *widget = libraryDetailsWidget()->detailsLayout->parentWidget();
QWidget *widget = libraryDetailsWidget()->platformGroupBox->parentWidget();
while (widget) {
QWizard *wizard = qobject_cast<QWizard *>(widget);
if (wizard) {
@@ -612,8 +616,7 @@ static QString generatePreTargetDepsSnippet(AddLibraryWizard::Platforms platform
return snippetMessage;
}
NonInternalLibraryDetailsController::NonInternalLibraryDetailsController(
Ui::LibraryDetailsWidget *libraryDetails,
NonInternalLibraryDetailsController::NonInternalLibraryDetailsController(LibraryDetailsWidget *libraryDetails,
const FilePath &proFile, QObject *parent) :
LibraryDetailsController(libraryDetails, proFile, parent)
{
@@ -850,8 +853,7 @@ QString NonInternalLibraryDetailsController::snippet() const
/////////////
PackageLibraryDetailsController::PackageLibraryDetailsController(
Ui::LibraryDetailsWidget *libraryDetails,
PackageLibraryDetailsController::PackageLibraryDetailsController(LibraryDetailsWidget *libraryDetails,
const FilePath &proFile, QObject *parent)
: NonInternalLibraryDetailsController(libraryDetails, proFile, parent)
{
@@ -910,7 +912,7 @@ bool PackageLibraryDetailsController::isLinkPackageGenerated() const
/////////////
SystemLibraryDetailsController::SystemLibraryDetailsController(
Ui::LibraryDetailsWidget *libraryDetails,
LibraryDetailsWidget *libraryDetails,
const FilePath &proFile, QObject *parent)
: NonInternalLibraryDetailsController(libraryDetails, proFile, parent)
{
@@ -923,7 +925,7 @@ SystemLibraryDetailsController::SystemLibraryDetailsController(
/////////////
ExternalLibraryDetailsController::ExternalLibraryDetailsController(
Ui::LibraryDetailsWidget *libraryDetails,
LibraryDetailsWidget *libraryDetails,
const FilePath &proFile, QObject *parent)
: NonInternalLibraryDetailsController(libraryDetails, proFile, parent)
{
@@ -958,7 +960,7 @@ void ExternalLibraryDetailsController::updateWindowsOptionsEnablement()
/////////////
InternalLibraryDetailsController::InternalLibraryDetailsController(Ui::LibraryDetailsWidget *libraryDetails,
InternalLibraryDetailsController::InternalLibraryDetailsController(LibraryDetailsWidget *libraryDetails,
const FilePath &proFile, QObject *parent)
: LibraryDetailsController(libraryDetails, proFile, parent)
{

View File

@@ -31,15 +31,16 @@
namespace QmakeProjectManager {
class QmakeProFile;
namespace Internal {
namespace Ui { class LibraryDetailsWidget; }
class LibraryDetailsWidget;
class LibraryDetailsController : public QObject
{
Q_OBJECT
public:
explicit LibraryDetailsController(Ui::LibraryDetailsWidget *libraryDetails,
explicit LibraryDetailsController(LibraryDetailsWidget *libraryDetails,
const Utils::FilePath &proFile,
QObject *parent = nullptr);
virtual bool isComplete() const = 0;
@@ -49,7 +50,7 @@ signals:
void completeChanged();
protected:
Ui::LibraryDetailsWidget *libraryDetailsWidget() const;
LibraryDetailsWidget *libraryDetailsWidget() const;
AddLibraryWizard::Platforms platforms() const;
AddLibraryWizard::LinkageType linkageType() const;
@@ -109,7 +110,7 @@ private:
bool m_includePathVisible = true;
bool m_windowsGroupVisible = true;
Ui::LibraryDetailsWidget *m_libraryDetailsWidget;
LibraryDetailsWidget *m_libraryDetailsWidget;
QWizard *m_wizard = nullptr;
};
@@ -117,7 +118,7 @@ class NonInternalLibraryDetailsController : public LibraryDetailsController
{
Q_OBJECT
public:
explicit NonInternalLibraryDetailsController(Ui::LibraryDetailsWidget *libraryDetails,
explicit NonInternalLibraryDetailsController(LibraryDetailsWidget *libraryDetails,
const Utils::FilePath &proFile,
QObject *parent = nullptr);
bool isComplete() const override;
@@ -142,7 +143,7 @@ class PackageLibraryDetailsController : public NonInternalLibraryDetailsControll
{
Q_OBJECT
public:
explicit PackageLibraryDetailsController(Ui::LibraryDetailsWidget *libraryDetails,
explicit PackageLibraryDetailsController(LibraryDetailsWidget *libraryDetails,
const Utils::FilePath &proFile,
QObject *parent = nullptr);
bool isComplete() const override;
@@ -159,7 +160,7 @@ class SystemLibraryDetailsController : public NonInternalLibraryDetailsControlle
{
Q_OBJECT
public:
explicit SystemLibraryDetailsController(Ui::LibraryDetailsWidget *libraryDetails,
explicit SystemLibraryDetailsController(LibraryDetailsWidget *libraryDetails,
const Utils::FilePath &proFile,
QObject *parent = nullptr);
protected:
@@ -172,7 +173,7 @@ class ExternalLibraryDetailsController : public NonInternalLibraryDetailsControl
{
Q_OBJECT
public:
explicit ExternalLibraryDetailsController(Ui::LibraryDetailsWidget *libraryDetails,
explicit ExternalLibraryDetailsController(LibraryDetailsWidget *libraryDetails,
const Utils::FilePath &proFile,
QObject *parent = nullptr);
protected:
@@ -183,7 +184,7 @@ class InternalLibraryDetailsController : public LibraryDetailsController
{
Q_OBJECT
public:
explicit InternalLibraryDetailsController(Ui::LibraryDetailsWidget *libraryDetails,
explicit InternalLibraryDetailsController(LibraryDetailsWidget *libraryDetails,
const Utils::FilePath &proFile,
QObject *parent = nullptr);
bool isComplete() const override;

View File

@@ -1,263 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>QmakeProjectManager::Internal::LibraryDetailsWidget</class>
<widget class="QWidget" name="QmakeProjectManager::Internal::LibraryDetailsWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>456</width>
<height>438</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<property name="sizeConstraint">
<enum>QLayout::SetMinimumSize</enum>
</property>
<item row="0" column="0" colspan="2">
<layout class="QGridLayout" name="gridLayout">
<item row="2" column="0">
<widget class="QLabel" name="libraryFileLabel">
<property name="text">
<string>Library file:</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="libraryLabel">
<property name="text">
<string>Library:</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="includeLabel">
<property name="text">
<string>Include path:</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="Utils::PathChooser" name="includePathChooser" native="true"/>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="packageLineEdit"/>
</item>
<item row="3" column="0">
<widget class="QLabel" name="packageLabel">
<property name="text">
<string>Package:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="Utils::PathChooser" name="libraryPathChooser" native="true"/>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="libraryComboBox"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="libraryTypeLabel">
<property name="text">
<string>Library type:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="libraryTypeComboBox"/>
</item>
</layout>
</item>
<item row="1" column="0">
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QGroupBox" name="platformGroupBox">
<property name="title">
<string>Platform</string>
</property>
<property name="flat">
<bool>true</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QCheckBox" name="linCheckBox">
<property name="text">
<string>Linux</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="macCheckBox">
<property name="text">
<string>Mac</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="winCheckBox">
<property name="text">
<string>Windows</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="1" column="1">
<layout class="QVBoxLayout" name="detailsLayout">
<property name="sizeConstraint">
<enum>QLayout::SetMinimumSize</enum>
</property>
<item>
<widget class="QGroupBox" name="linkageGroupBox">
<property name="title">
<string>Linkage:</string>
</property>
<property name="flat">
<bool>true</bool>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QRadioButton" name="dynamicRadio">
<property name="text">
<string>Dynamic</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="staticRadio">
<property name="text">
<string>Static</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="macGroupBox">
<property name="title">
<string>Mac:</string>
</property>
<property name="flat">
<bool>true</bool>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QRadioButton" name="libraryRadio">
<property name="text">
<string>Library</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="frameworkRadio">
<property name="text">
<string>Framework</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="winGroupBox">
<property name="title">
<string>Windows:</string>
</property>
<property name="flat">
<bool>true</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QCheckBox" name="useSubfoldersCheckBox">
<property name="text">
<string>Library inside &quot;debug&quot; or &quot;release&quot; subfolder</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="addSuffixCheckBox">
<property name="text">
<string>Add &quot;d&quot; suffix for debug version</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="removeSuffixCheckBox">
<property name="text">
<string>Remove &quot;d&quot; suffix for release version</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>17</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="2" column="0" colspan="2">
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>55</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>Utils::PathChooser</class>
<extends>QWidget</extends>
<header location="global">utils/pathchooser.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

View File

@@ -22,7 +22,6 @@ Project {
"addlibrarywizard.cpp", "addlibrarywizard.h",
"externaleditors.cpp", "externaleditors.h",
"librarydetailscontroller.cpp", "librarydetailscontroller.h",
"librarydetailswidget.ui",
"makefileparse.cpp", "makefileparse.h",
"profilecompletionassist.cpp", "profilecompletionassist.h",
"profileeditor.cpp", "profileeditor.h",