forked from qt-creator/qt-creator
Meson: Inline toolssettingswidget.ui
Change-Id: Iaacc703195fe66200fe64a95f704ba90b7e66504 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -10,7 +10,6 @@ add_qtc_plugin(MesonProjectManager
|
|||||||
mesonactionsmanager/mesonactionsmanager.cpp
|
mesonactionsmanager/mesonactionsmanager.cpp
|
||||||
settings/tools/toolsmodel.cpp
|
settings/tools/toolsmodel.cpp
|
||||||
settings/tools/toolssettingswidget.h
|
settings/tools/toolssettingswidget.h
|
||||||
settings/tools/toolssettingswidget.ui
|
|
||||||
settings/tools/toolssettingswidget.cpp
|
settings/tools/toolssettingswidget.cpp
|
||||||
settings/tools/toolssettingspage.cpp
|
settings/tools/toolssettingspage.cpp
|
||||||
settings/tools/toolssettingspage.h
|
settings/tools/toolssettingspage.h
|
||||||
|
|||||||
@@ -96,7 +96,6 @@ Project {
|
|||||||
"settings/tools/toolssettingspage.h",
|
"settings/tools/toolssettingspage.h",
|
||||||
"settings/tools/toolssettingswidget.cpp",
|
"settings/tools/toolssettingswidget.cpp",
|
||||||
"settings/tools/toolssettingswidget.h",
|
"settings/tools/toolssettingswidget.h",
|
||||||
"settings/tools/toolssettingswidget.ui",
|
|
||||||
"settings/tools/tooltreeitem.cpp",
|
"settings/tools/tooltreeitem.cpp",
|
||||||
"settings/tools/tooltreeitem.h",
|
"settings/tools/tooltreeitem.h",
|
||||||
"versionhelper.h",
|
"versionhelper.h",
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "exewrappers/mesontools.h"
|
#include "exewrappers/mesontools.h"
|
||||||
#include "toolssettingspage.h"
|
|
||||||
|
|
||||||
#include <utils/treemodel.h>
|
#include <utils/treemodel.h>
|
||||||
|
|
||||||
|
|||||||
@@ -5,47 +5,80 @@
|
|||||||
|
|
||||||
#include "toolsmodel.h"
|
#include "toolsmodel.h"
|
||||||
#include "tooltreeitem.h"
|
#include "tooltreeitem.h"
|
||||||
#include "ui_toolssettingswidget.h"
|
|
||||||
|
|
||||||
namespace MesonProjectManager {
|
#include <utils/detailswidget.h>
|
||||||
namespace Internal {
|
#include <utils/layoutbuilder.h>
|
||||||
|
|
||||||
|
#include <QHeaderView>
|
||||||
|
#include <QPushButton>
|
||||||
|
#include <QTreeView>
|
||||||
|
|
||||||
|
using namespace Utils;
|
||||||
|
|
||||||
|
namespace MesonProjectManager::Internal {
|
||||||
|
|
||||||
ToolsSettingsWidget::ToolsSettingsWidget()
|
ToolsSettingsWidget::ToolsSettingsWidget()
|
||||||
: Core::IOptionsPageWidget()
|
: Core::IOptionsPageWidget()
|
||||||
, ui(new Ui::ToolsSettingsWidget)
|
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
m_mesonList = new QTreeView;
|
||||||
ui->mesonDetails->setState(Utils::DetailsWidget::NoSummary);
|
m_mesonList->setModel(&m_model);
|
||||||
ui->mesonDetails->setVisible(false);
|
m_mesonList->expandAll();
|
||||||
|
m_mesonList->header()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
|
||||||
|
m_mesonList->header()->setSectionResizeMode(1, QHeaderView::Stretch);
|
||||||
|
|
||||||
m_itemSettings = new ToolItemSettings;
|
m_itemSettings = new ToolItemSettings;
|
||||||
ui->mesonDetails->setWidget(m_itemSettings);
|
|
||||||
|
|
||||||
ui->mesonList->setModel(&m_model);
|
m_mesonDetails = new DetailsWidget;
|
||||||
ui->mesonList->expandAll();
|
m_mesonDetails->setState(DetailsWidget::NoSummary);
|
||||||
ui->mesonList->header()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
|
m_mesonDetails->setVisible(false);
|
||||||
ui->mesonList->header()->setSectionResizeMode(1, QHeaderView::Stretch);
|
m_mesonDetails->setWidget(m_itemSettings);
|
||||||
|
|
||||||
connect(ui->mesonList->selectionModel(),
|
auto addButton = new QPushButton(tr("Add"));
|
||||||
&QItemSelectionModel::currentChanged,
|
|
||||||
this,
|
m_cloneButton = new QPushButton(tr("Clone"));
|
||||||
&ToolsSettingsWidget::currentMesonToolChanged);
|
m_cloneButton->setEnabled(false);
|
||||||
|
|
||||||
|
m_removeButton = new QPushButton(tr("Remove"));
|
||||||
|
m_removeButton->setEnabled(false);
|
||||||
|
|
||||||
|
auto makeDefaultButton = new QPushButton(tr("Make Default"));
|
||||||
|
makeDefaultButton->setEnabled(false);
|
||||||
|
makeDefaultButton->setVisible(false);
|
||||||
|
makeDefaultButton->setToolTip(tr("Set as the default Meson executable to use "
|
||||||
|
"when creating a new kit or when no value is set."));
|
||||||
|
|
||||||
|
using namespace Layouting;
|
||||||
|
|
||||||
|
Row {
|
||||||
|
Column {
|
||||||
|
m_mesonList,
|
||||||
|
m_mesonDetails
|
||||||
|
},
|
||||||
|
Column {
|
||||||
|
addButton,
|
||||||
|
m_cloneButton,
|
||||||
|
m_removeButton,
|
||||||
|
makeDefaultButton,
|
||||||
|
st
|
||||||
|
}
|
||||||
|
}.attachTo(this);
|
||||||
|
|
||||||
|
connect(m_mesonList->selectionModel(), &QItemSelectionModel::currentChanged,
|
||||||
|
this, &ToolsSettingsWidget::currentMesonToolChanged);
|
||||||
connect(m_itemSettings, &ToolItemSettings::applyChanges, &m_model, &ToolsModel::updateItem);
|
connect(m_itemSettings, &ToolItemSettings::applyChanges, &m_model, &ToolsModel::updateItem);
|
||||||
|
|
||||||
connect(ui->addButton, &QPushButton::clicked, &m_model, QOverload<>::of(&ToolsModel::addMesonTool));
|
connect(addButton, &QPushButton::clicked, &m_model, QOverload<>::of(&ToolsModel::addMesonTool));
|
||||||
connect(ui->cloneButton, &QPushButton::clicked, this, &ToolsSettingsWidget::cloneMesonTool);
|
connect(m_cloneButton, &QPushButton::clicked, this, &ToolsSettingsWidget::cloneMesonTool);
|
||||||
connect(ui->removeButton, &QPushButton::clicked, this, &ToolsSettingsWidget::removeMesonTool);
|
connect(m_removeButton, &QPushButton::clicked, this, &ToolsSettingsWidget::removeMesonTool);
|
||||||
}
|
}
|
||||||
|
|
||||||
ToolsSettingsWidget::~ToolsSettingsWidget()
|
ToolsSettingsWidget::~ToolsSettingsWidget() = default;
|
||||||
{
|
|
||||||
delete ui;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ToolsSettingsWidget::cloneMesonTool()
|
void ToolsSettingsWidget::cloneMesonTool()
|
||||||
{
|
{
|
||||||
if (m_currentItem) {
|
if (m_currentItem) {
|
||||||
auto newItem = m_model.cloneMesonTool(m_currentItem);
|
auto newItem = m_model.cloneMesonTool(m_currentItem);
|
||||||
ui->mesonList->setCurrentIndex(newItem->index());
|
m_mesonList->setCurrentIndex(newItem->index());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,9 +93,9 @@ void ToolsSettingsWidget::currentMesonToolChanged(const QModelIndex &newCurrent)
|
|||||||
{
|
{
|
||||||
m_currentItem = m_model.mesoneToolTreeItem(newCurrent);
|
m_currentItem = m_model.mesoneToolTreeItem(newCurrent);
|
||||||
m_itemSettings->load(m_currentItem);
|
m_itemSettings->load(m_currentItem);
|
||||||
ui->mesonDetails->setVisible(m_currentItem);
|
m_mesonDetails->setVisible(m_currentItem);
|
||||||
ui->cloneButton->setEnabled(m_currentItem);
|
m_cloneButton->setEnabled(m_currentItem);
|
||||||
ui->removeButton->setEnabled(m_currentItem && !m_currentItem->isAutoDetected());
|
m_removeButton->setEnabled(m_currentItem && !m_currentItem->isAutoDetected());
|
||||||
}
|
}
|
||||||
|
|
||||||
void ToolsSettingsWidget::apply()
|
void ToolsSettingsWidget::apply()
|
||||||
@@ -70,5 +103,4 @@ void ToolsSettingsWidget::apply()
|
|||||||
m_model.apply();
|
m_model.apply();
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Internal
|
} // MesonProjectManager::Internal
|
||||||
} // namespace MesonProjectManager
|
|
||||||
|
|||||||
@@ -3,19 +3,16 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "exewrappers/mesonwrapper.h"
|
|
||||||
#include "toolitemsettings.h"
|
#include "toolitemsettings.h"
|
||||||
#include "toolsmodel.h"
|
#include "toolsmodel.h"
|
||||||
|
|
||||||
#include <coreplugin/dialogs/ioptionspage.h>
|
#include <coreplugin/dialogs/ioptionspage.h>
|
||||||
|
|
||||||
#include <QCoreApplication>
|
#include <QCoreApplication>
|
||||||
#include <QTabWidget>
|
|
||||||
|
|
||||||
namespace MesonProjectManager {
|
namespace Utils { class DetailsWidget; }
|
||||||
namespace Internal {
|
|
||||||
|
|
||||||
namespace Ui { class ToolsSettingsWidget; }
|
namespace MesonProjectManager::Internal {
|
||||||
|
|
||||||
class ToolTreeItem;
|
class ToolTreeItem;
|
||||||
class ToolsSettingsWidget final : public Core::IOptionsPageWidget
|
class ToolsSettingsWidget final : public Core::IOptionsPageWidget
|
||||||
@@ -31,11 +28,15 @@ private:
|
|||||||
void cloneMesonTool();
|
void cloneMesonTool();
|
||||||
void removeMesonTool();
|
void removeMesonTool();
|
||||||
void currentMesonToolChanged(const QModelIndex &newCurrent);
|
void currentMesonToolChanged(const QModelIndex &newCurrent);
|
||||||
Ui::ToolsSettingsWidget *ui;
|
|
||||||
ToolsModel m_model;
|
ToolsModel m_model;
|
||||||
ToolItemSettings *m_itemSettings;
|
ToolItemSettings *m_itemSettings;
|
||||||
ToolTreeItem *m_currentItem = nullptr;
|
ToolTreeItem *m_currentItem = nullptr;
|
||||||
|
|
||||||
|
QTreeView *m_mesonList;
|
||||||
|
Utils::DetailsWidget *m_mesonDetails;
|
||||||
|
QPushButton *m_cloneButton;
|
||||||
|
QPushButton *m_removeButton;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // MesonProjectManager::Internal
|
||||||
} // namespace MesonProjectManager
|
|
||||||
|
|||||||
@@ -1,93 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>MesonProjectManager::Internal::ToolsSettingsWidget</class>
|
|
||||||
<widget class="QWidget" name="MesonProjectManager::Internal::ToolSettingsWidget">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>625</width>
|
|
||||||
<height>349</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
|
||||||
<item>
|
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
|
||||||
<item>
|
|
||||||
<widget class="QTreeView" name="mesonList"/>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="Utils::DetailsWidget" name="mesonDetails" native="true"/>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="addButton">
|
|
||||||
<property name="text">
|
|
||||||
<string>Add</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="cloneButton">
|
|
||||||
<property name="enabled">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Clone</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="removeButton">
|
|
||||||
<property name="enabled">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Remove</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="makeDefaultButton">
|
|
||||||
<property name="enabled">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="toolTip">
|
|
||||||
<string>Set as the default Meson executable to use when creating a new kit or when no value is set.</string>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Make Default</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<spacer name="verticalSpacer">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Vertical</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>20</width>
|
|
||||||
<height>40</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<customwidgets>
|
|
||||||
<customwidget>
|
|
||||||
<class>Utils::DetailsWidget</class>
|
|
||||||
<extends>QWidget</extends>
|
|
||||||
<header location="global">utils/detailswidget.h</header>
|
|
||||||
<container>1</container>
|
|
||||||
</customwidget>
|
|
||||||
</customwidgets>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
||||||
Reference in New Issue
Block a user