forked from qt-creator/qt-creator
Tweaks to the project page.
This commit is contained in:
@@ -24,9 +24,9 @@ DetailsButton::DetailsButton(QWidget *parent)
|
|||||||
void DetailsButton::onClicked()
|
void DetailsButton::onClicked()
|
||||||
{
|
{
|
||||||
m_checked = !m_checked;
|
m_checked = !m_checked;
|
||||||
if (m_checked) {
|
}
|
||||||
setText(tr("Hide Details"));
|
|
||||||
} else {
|
bool DetailsButton::isToggled()
|
||||||
setText(tr("Show Details"));
|
{
|
||||||
}
|
return m_checked;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ class QTCREATOR_UTILS_EXPORT DetailsButton
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
DetailsButton(QWidget *parent=0);
|
DetailsButton(QWidget *parent=0);
|
||||||
|
bool isToggled();
|
||||||
public slots:
|
public slots:
|
||||||
void onClicked();
|
void onClicked();
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -34,7 +34,8 @@ SOURCES += reloadpromptutils.cpp \
|
|||||||
stylehelper.cpp \
|
stylehelper.cpp \
|
||||||
welcomemodetreewidget.cpp \
|
welcomemodetreewidget.cpp \
|
||||||
fancymainwindow.cpp \
|
fancymainwindow.cpp \
|
||||||
detailsbutton.cpp
|
detailsbutton.cpp \
|
||||||
|
detailswidget.cpp
|
||||||
win32 {
|
win32 {
|
||||||
SOURCES += abstractprocess_win.cpp \
|
SOURCES += abstractprocess_win.cpp \
|
||||||
consoleprocess_win.cpp \
|
consoleprocess_win.cpp \
|
||||||
@@ -76,7 +77,8 @@ HEADERS += utils_global.h \
|
|||||||
stylehelper.h \
|
stylehelper.h \
|
||||||
welcomemodetreewidget.h \
|
welcomemodetreewidget.h \
|
||||||
fancymainwindow.h \
|
fancymainwindow.h \
|
||||||
detailsbutton.h
|
detailsbutton.h \
|
||||||
|
detailswidget.h
|
||||||
FORMS += filewizardpage.ui \
|
FORMS += filewizardpage.ui \
|
||||||
projectintropage.ui \
|
projectintropage.ui \
|
||||||
newclasswidget.ui \
|
newclasswidget.ui \
|
||||||
|
|||||||
@@ -53,16 +53,10 @@ CMakeBuildEnvironmentWidget::CMakeBuildEnvironmentWidget(CMakeProject *project)
|
|||||||
|
|
||||||
connect(m_buildEnvironmentWidget, SIGNAL(userChangesUpdated()),
|
connect(m_buildEnvironmentWidget, SIGNAL(userChangesUpdated()),
|
||||||
this, SLOT(environmentModelUserChangesUpdated()));
|
this, SLOT(environmentModelUserChangesUpdated()));
|
||||||
connect(m_buildEnvironmentWidget, SIGNAL(detailsVisibleChanged(bool)),
|
|
||||||
this, SLOT(layoutFixup()));
|
|
||||||
connect(m_clearSystemEnvironmentCheckBox, SIGNAL(toggled(bool)),
|
connect(m_clearSystemEnvironmentCheckBox, SIGNAL(toggled(bool)),
|
||||||
this, SLOT(clearSystemEnvironmentCheckBoxClicked(bool)));
|
this, SLOT(clearSystemEnvironmentCheckBoxClicked(bool)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMakeBuildEnvironmentWidget::layoutFixup()
|
|
||||||
{
|
|
||||||
fixupLayout(m_buildEnvironmentWidget->detailsWidget());
|
|
||||||
}
|
|
||||||
|
|
||||||
QString CMakeBuildEnvironmentWidget::displayName() const
|
QString CMakeBuildEnvironmentWidget::displayName() const
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -56,7 +56,6 @@ public:
|
|||||||
private slots:
|
private slots:
|
||||||
void environmentModelUserChangesUpdated();
|
void environmentModelUserChangesUpdated();
|
||||||
void clearSystemEnvironmentCheckBoxClicked(bool checked);
|
void clearSystemEnvironmentCheckBoxClicked(bool checked);
|
||||||
void layoutFixup();
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ProjectExplorer::EnvironmentWidget *m_buildEnvironmentWidget;
|
ProjectExplorer::EnvironmentWidget *m_buildEnvironmentWidget;
|
||||||
|
|||||||
@@ -96,6 +96,8 @@ BuildSettingsSubWidgets::~BuildSettingsSubWidgets()
|
|||||||
|
|
||||||
void BuildSettingsSubWidgets::addWidget(const QString &name, QWidget *widget)
|
void BuildSettingsSubWidgets::addWidget(const QString &name, QWidget *widget)
|
||||||
{
|
{
|
||||||
|
QSpacerItem *item = new QSpacerItem(1, 10, QSizePolicy::Fixed, QSizePolicy::Fixed);
|
||||||
|
|
||||||
QLabel *label = new QLabel(this);
|
QLabel *label = new QLabel(this);
|
||||||
label->setText(name);
|
label->setText(name);
|
||||||
QFont f = label->font();
|
QFont f = label->font();
|
||||||
@@ -103,6 +105,7 @@ void BuildSettingsSubWidgets::addWidget(const QString &name, QWidget *widget)
|
|||||||
f.setPointSizeF(f.pointSizeF() *1.2);
|
f.setPointSizeF(f.pointSizeF() *1.2);
|
||||||
label->setFont(f);
|
label->setFont(f);
|
||||||
|
|
||||||
|
layout()->addItem(item);
|
||||||
layout()->addWidget(label);
|
layout()->addWidget(label);
|
||||||
layout()->addWidget(widget);
|
layout()->addWidget(widget);
|
||||||
|
|
||||||
@@ -112,6 +115,9 @@ void BuildSettingsSubWidgets::addWidget(const QString &name, QWidget *widget)
|
|||||||
|
|
||||||
void BuildSettingsSubWidgets::clear()
|
void BuildSettingsSubWidgets::clear()
|
||||||
{
|
{
|
||||||
|
foreach(QSpacerItem *item, m_spacerItems)
|
||||||
|
layout()->removeItem(item);
|
||||||
|
qDeleteAll(m_spacerItems);
|
||||||
qDeleteAll(m_widgets);
|
qDeleteAll(m_widgets);
|
||||||
qDeleteAll(m_labels);
|
qDeleteAll(m_labels);
|
||||||
m_widgets.clear();
|
m_widgets.clear();
|
||||||
|
|||||||
@@ -37,6 +37,7 @@
|
|||||||
#include <QtGui/QPushButton>
|
#include <QtGui/QPushButton>
|
||||||
#include <QtGui/QLabel>
|
#include <QtGui/QLabel>
|
||||||
#include <QtGui/QGroupBox>
|
#include <QtGui/QGroupBox>
|
||||||
|
#include <QtGui/QSpacerItem>
|
||||||
|
|
||||||
namespace ProjectExplorer {
|
namespace ProjectExplorer {
|
||||||
|
|
||||||
@@ -56,6 +57,7 @@ public:
|
|||||||
private:
|
private:
|
||||||
QList<QWidget *> m_widgets;
|
QList<QWidget *> m_widgets;
|
||||||
QList<QLabel *> m_labels;
|
QList<QLabel *> m_labels;
|
||||||
|
QList<QSpacerItem *> m_spacerItems;
|
||||||
};
|
};
|
||||||
|
|
||||||
class BuildSettingsPanelFactory : public IPanelFactory
|
class BuildSettingsPanelFactory : public IPanelFactory
|
||||||
|
|||||||
@@ -134,20 +134,6 @@ bool BuildStep::immutable() const
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BuildConfigWidget::fixupLayout(QWidget *widget)
|
|
||||||
{
|
|
||||||
QWidget *parent = widget;
|
|
||||||
QStack<QWidget *> widgets;
|
|
||||||
while((parent = parent->parentWidget()) && parent && parent->layout()) {
|
|
||||||
widgets.push(parent);
|
|
||||||
parent->layout()->update();
|
|
||||||
}
|
|
||||||
|
|
||||||
while(!widgets.isEmpty()) {
|
|
||||||
widgets.pop()->layout()->activate();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
IBuildStepFactory::IBuildStepFactory()
|
IBuildStepFactory::IBuildStepFactory()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|||||||
@@ -169,9 +169,6 @@ public:
|
|||||||
:QWidget(0)
|
:QWidget(0)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
// This function iterates all parents and relayouts
|
|
||||||
// This is a hack to work around flickering
|
|
||||||
void fixupLayout(QWidget *widget);
|
|
||||||
virtual QString displayName() const = 0;
|
virtual QString displayName() const = 0;
|
||||||
|
|
||||||
// This is called to set up the config widget before showing it
|
// This is called to set up the config widget before showing it
|
||||||
|
|||||||
@@ -34,13 +34,13 @@
|
|||||||
#include <coreplugin/coreconstants.h>
|
#include <coreplugin/coreconstants.h>
|
||||||
#include <extensionsystem/pluginmanager.h>
|
#include <extensionsystem/pluginmanager.h>
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
#include <utils/detailsbutton.h>
|
|
||||||
|
|
||||||
#include <QtGui/QLabel>
|
#include <QtGui/QLabel>
|
||||||
#include <QtGui/QPushButton>
|
#include <QtGui/QPushButton>
|
||||||
#include <QtGui/QMenu>
|
#include <QtGui/QMenu>
|
||||||
#include <QtGui/QVBoxLayout>
|
#include <QtGui/QVBoxLayout>
|
||||||
#include <QtGui/QHBoxLayout>
|
#include <QtGui/QHBoxLayout>
|
||||||
|
#include <QtGui/QToolButton>
|
||||||
|
|
||||||
using namespace ProjectExplorer;
|
using namespace ProjectExplorer;
|
||||||
using namespace ProjectExplorer::Internal;
|
using namespace ProjectExplorer::Internal;
|
||||||
@@ -51,7 +51,7 @@ BuildStepsPage::BuildStepsPage(Project *project, bool clean) :
|
|||||||
m_clean(clean)
|
m_clean(clean)
|
||||||
{
|
{
|
||||||
m_vbox = new QVBoxLayout(this);
|
m_vbox = new QVBoxLayout(this);
|
||||||
m_vbox->setContentsMargins(20, 0, 0, 0);
|
m_vbox->setContentsMargins(0, 0, 0, 0);
|
||||||
const QList<BuildStep *> &steps = m_clean ? m_pro->cleanSteps() : m_pro->buildSteps();
|
const QList<BuildStep *> &steps = m_clean ? m_pro->cleanSteps() : m_pro->buildSteps();
|
||||||
foreach (BuildStep *bs, steps) {
|
foreach (BuildStep *bs, steps) {
|
||||||
addBuildStepWidget(-1, bs);
|
addBuildStepWidget(-1, bs);
|
||||||
@@ -92,36 +92,19 @@ BuildStepsPage::BuildStepsPage(Project *project, bool clean) :
|
|||||||
BuildStepsPage::~BuildStepsPage()
|
BuildStepsPage::~BuildStepsPage()
|
||||||
{
|
{
|
||||||
foreach(BuildStepsWidgetStruct s, m_buildSteps) {
|
foreach(BuildStepsWidgetStruct s, m_buildSteps) {
|
||||||
delete s.detailsLabel;
|
|
||||||
delete s.upButton;
|
|
||||||
delete s.downButton;
|
|
||||||
delete s.detailsButton;
|
|
||||||
delete s.hbox;
|
|
||||||
delete s.widget;
|
delete s.widget;
|
||||||
|
delete s.detailsWidget;
|
||||||
}
|
}
|
||||||
m_buildSteps.clear();
|
m_buildSteps.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void BuildStepsPage::toggleDetails()
|
|
||||||
{
|
|
||||||
QAbstractButton *button = qobject_cast<QAbstractButton *>(sender());
|
|
||||||
if (button) {
|
|
||||||
foreach(const BuildStepsWidgetStruct &s, m_buildSteps) {
|
|
||||||
if (s.detailsButton == button) {
|
|
||||||
s.widget->setVisible(!s.widget->isVisible());
|
|
||||||
fixupLayout(s.widget);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void BuildStepsPage::updateSummary()
|
void BuildStepsPage::updateSummary()
|
||||||
{
|
{
|
||||||
BuildStepConfigWidget *widget = qobject_cast<BuildStepConfigWidget *>(sender());
|
BuildStepConfigWidget *widget = qobject_cast<BuildStepConfigWidget *>(sender());
|
||||||
if (widget)
|
if (widget)
|
||||||
foreach(const BuildStepsWidgetStruct &s, m_buildSteps)
|
foreach(const BuildStepsWidgetStruct &s, m_buildSteps)
|
||||||
if (s.widget == widget)
|
if (s.widget == widget)
|
||||||
s.detailsLabel->setText(widget->summaryText());
|
s.detailsWidget->setSummaryText(widget->summaryText());
|
||||||
}
|
}
|
||||||
|
|
||||||
QString BuildStepsPage::displayName() const
|
QString BuildStepsPage::displayName() const
|
||||||
@@ -136,7 +119,7 @@ void BuildStepsPage::init(const QString &buildConfiguration)
|
|||||||
// make sure widget is updated
|
// make sure widget is updated
|
||||||
foreach(BuildStepsWidgetStruct s, m_buildSteps) {
|
foreach(BuildStepsWidgetStruct s, m_buildSteps) {
|
||||||
s.widget->init(m_configuration);
|
s.widget->init(m_configuration);
|
||||||
s.detailsLabel->setText(s.widget->summaryText());
|
s.detailsWidget->setSummaryText(s.widget->summaryText());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -174,8 +157,10 @@ void BuildStepsPage::addBuildStepWidget(int pos, BuildStep *step)
|
|||||||
// create everything
|
// create everything
|
||||||
BuildStepsWidgetStruct s;
|
BuildStepsWidgetStruct s;
|
||||||
s.widget = step->createConfigWidget();
|
s.widget = step->createConfigWidget();
|
||||||
s.detailsLabel = new QLabel(this);
|
s.detailsWidget = new Utils::DetailsWidget(this);
|
||||||
s.detailsLabel->setText(s.widget->summaryText());
|
s.detailsWidget->setSummaryText(s.widget->summaryText());
|
||||||
|
s.detailsWidget->setWidget(s.widget);
|
||||||
|
|
||||||
s.upButton = new QToolButton(this);
|
s.upButton = new QToolButton(this);
|
||||||
s.upButton->setArrowType(Qt::UpArrow);
|
s.upButton->setArrowType(Qt::UpArrow);
|
||||||
s.downButton = new QToolButton(this);
|
s.downButton = new QToolButton(this);
|
||||||
@@ -184,14 +169,14 @@ void BuildStepsPage::addBuildStepWidget(int pos, BuildStep *step)
|
|||||||
s.upButton->setIconSize(QSize(10, 10));
|
s.upButton->setIconSize(QSize(10, 10));
|
||||||
s.downButton->setIconSize(QSize(10, 10));
|
s.downButton->setIconSize(QSize(10, 10));
|
||||||
#endif
|
#endif
|
||||||
s.detailsButton = new Utils::DetailsButton(this);
|
|
||||||
|
|
||||||
// layout
|
// layout
|
||||||
s.hbox = new QHBoxLayout();
|
QWidget *toolWidget = new QWidget(s.detailsWidget);
|
||||||
s.hbox->addWidget(s.detailsLabel);
|
toolWidget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
||||||
|
s.hbox = new QHBoxLayout(toolWidget);
|
||||||
|
s.hbox->setMargin(0);
|
||||||
s.hbox->addWidget(s.upButton);
|
s.hbox->addWidget(s.upButton);
|
||||||
s.hbox->addWidget(s.downButton);
|
s.hbox->addWidget(s.downButton);
|
||||||
s.hbox->addWidget(s.detailsButton);
|
s.detailsWidget->setToolWidget(toolWidget);
|
||||||
|
|
||||||
if (pos == -1)
|
if (pos == -1)
|
||||||
m_buildSteps.append(s);
|
m_buildSteps.append(s);
|
||||||
@@ -199,17 +184,10 @@ void BuildStepsPage::addBuildStepWidget(int pos, BuildStep *step)
|
|||||||
m_buildSteps.insert(pos, s);
|
m_buildSteps.insert(pos, s);
|
||||||
|
|
||||||
if (pos == -1) {
|
if (pos == -1) {
|
||||||
m_vbox->addLayout(s.hbox);
|
m_vbox->addWidget(s.detailsWidget);
|
||||||
m_vbox->addWidget(s.widget);
|
|
||||||
} else {
|
} else {
|
||||||
m_vbox->insertLayout(pos *2, s.hbox);
|
m_vbox->insertWidget(pos, s.detailsWidget);
|
||||||
m_vbox->insertWidget(pos *2 + 1, s.widget);
|
|
||||||
}
|
}
|
||||||
s.widget->hide();
|
|
||||||
|
|
||||||
// connect
|
|
||||||
connect(s.detailsButton, SIGNAL(clicked()),
|
|
||||||
this, SLOT(toggleDetails()));
|
|
||||||
|
|
||||||
connect(s.widget, SIGNAL(updateSummary()),
|
connect(s.widget, SIGNAL(updateSummary()),
|
||||||
this, SLOT(updateSummary()));
|
this, SLOT(updateSummary()));
|
||||||
@@ -231,7 +209,7 @@ void BuildStepsPage::addBuildStep()
|
|||||||
addBuildStepWidget(pos, newStep);
|
addBuildStepWidget(pos, newStep);
|
||||||
const BuildStepsWidgetStruct s = m_buildSteps.at(pos);
|
const BuildStepsWidgetStruct s = m_buildSteps.at(pos);
|
||||||
s.widget->init(m_configuration);
|
s.widget->init(m_configuration);
|
||||||
s.detailsLabel->setText(s.widget->summaryText());
|
s.detailsWidget->setSummaryText(s.widget->summaryText());
|
||||||
}
|
}
|
||||||
updateBuildStepButtonsState();
|
updateBuildStepButtonsState();
|
||||||
}
|
}
|
||||||
@@ -260,12 +238,8 @@ void BuildStepsPage::removeBuildStep()
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
BuildStepsWidgetStruct s = m_buildSteps.at(pos);
|
BuildStepsWidgetStruct s = m_buildSteps.at(pos);
|
||||||
delete s.detailsLabel;
|
|
||||||
delete s.upButton;
|
|
||||||
delete s.downButton;
|
|
||||||
delete s.detailsButton;
|
|
||||||
delete s.hbox;
|
|
||||||
delete s.widget;
|
delete s.widget;
|
||||||
|
delete s.detailsWidget;
|
||||||
m_buildSteps.removeAt(pos);
|
m_buildSteps.removeAt(pos);
|
||||||
m_clean ? m_pro->removeCleanStep(pos) : m_pro->removeBuildStep(pos);
|
m_clean ? m_pro->removeCleanStep(pos) : m_pro->removeBuildStep(pos);
|
||||||
}
|
}
|
||||||
@@ -316,9 +290,7 @@ void BuildStepsPage::stepMoveUp(int pos)
|
|||||||
{
|
{
|
||||||
m_clean ? m_pro->moveCleanStepUp(pos) : m_pro->moveBuildStepUp(pos);
|
m_clean ? m_pro->moveCleanStepUp(pos) : m_pro->moveBuildStepUp(pos);
|
||||||
|
|
||||||
m_buildSteps.at(pos).hbox->setParent(0);
|
m_vbox->insertWidget(pos - 1, m_buildSteps.at(pos).detailsWidget);
|
||||||
m_vbox->insertLayout((pos - 1) * 2, m_buildSteps.at(pos).hbox);
|
|
||||||
m_vbox->insertWidget((pos - 1) * 2 + 1, m_buildSteps.at(pos).widget);
|
|
||||||
|
|
||||||
BuildStepsWidgetStruct tmp = m_buildSteps.at(pos -1);
|
BuildStepsWidgetStruct tmp = m_buildSteps.at(pos -1);
|
||||||
m_buildSteps[pos -1] = m_buildSteps.at(pos);
|
m_buildSteps[pos -1] = m_buildSteps.at(pos);
|
||||||
|
|||||||
@@ -31,6 +31,7 @@
|
|||||||
#define BUILDSTEPSPAGE_H
|
#define BUILDSTEPSPAGE_H
|
||||||
|
|
||||||
#include "buildstep.h"
|
#include "buildstep.h"
|
||||||
|
#include <utils/detailswidget.h>
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
class QTreeWidgetItem;
|
class QTreeWidgetItem;
|
||||||
@@ -55,8 +56,7 @@ namespace Ui {
|
|||||||
struct BuildStepsWidgetStruct
|
struct BuildStepsWidgetStruct
|
||||||
{
|
{
|
||||||
BuildStepConfigWidget *widget;
|
BuildStepConfigWidget *widget;
|
||||||
QLabel *detailsLabel;
|
Utils::DetailsWidget *detailsWidget;
|
||||||
QAbstractButton *detailsButton;
|
|
||||||
QToolButton *upButton;
|
QToolButton *upButton;
|
||||||
QToolButton *downButton;
|
QToolButton *downButton;
|
||||||
QHBoxLayout *hbox;
|
QHBoxLayout *hbox;
|
||||||
|
|||||||
@@ -94,23 +94,14 @@ CustomExecutableConfigurationWidget::CustomExecutableConfigurationWidget(CustomE
|
|||||||
layout->addRow(QString(), m_useTerminalCheck);
|
layout->addRow(QString(), m_useTerminalCheck);
|
||||||
|
|
||||||
QVBoxLayout *vbox = new QVBoxLayout(this);
|
QVBoxLayout *vbox = new QVBoxLayout(this);
|
||||||
vbox->setContentsMargins(0, -1, 0, -1);
|
vbox->setMargin(0);
|
||||||
|
|
||||||
m_summaryLabel = new QLabel(this);
|
m_detailsContainer = new Utils::DetailsWidget(this);
|
||||||
|
vbox->addWidget(m_detailsContainer);
|
||||||
|
|
||||||
m_detailsButton = new Utils::DetailsButton(this);
|
QWidget *detailsWidget = new QWidget(m_detailsContainer);
|
||||||
connect(m_detailsButton, SIGNAL(clicked()),
|
m_detailsContainer->setWidget(detailsWidget);
|
||||||
this, SLOT(toggleDetails()));
|
detailsWidget->setLayout(layout);
|
||||||
|
|
||||||
QHBoxLayout *hbox = new QHBoxLayout();
|
|
||||||
hbox->addWidget(m_summaryLabel);
|
|
||||||
hbox->addWidget(m_detailsButton);
|
|
||||||
vbox->addLayout(hbox);
|
|
||||||
|
|
||||||
m_detailsWidget = new QWidget(this);
|
|
||||||
m_detailsWidget->setLayout(layout);
|
|
||||||
vbox->addWidget(m_detailsWidget);
|
|
||||||
m_detailsWidget->setVisible(false);
|
|
||||||
|
|
||||||
QLabel *environmentLabel = new QLabel(this);
|
QLabel *environmentLabel = new QLabel(this);
|
||||||
environmentLabel->setText(tr("Run Environment"));
|
environmentLabel->setText(tr("Run Environment"));
|
||||||
@@ -165,11 +156,6 @@ CustomExecutableConfigurationWidget::CustomExecutableConfigurationWidget(CustomE
|
|||||||
this, SLOT(userEnvironmentChangesChanged()));
|
this, SLOT(userEnvironmentChangesChanged()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void CustomExecutableConfigurationWidget::toggleDetails()
|
|
||||||
{
|
|
||||||
m_detailsWidget->setVisible(!m_detailsWidget->isVisible());
|
|
||||||
}
|
|
||||||
|
|
||||||
void CustomExecutableConfigurationWidget::userChangesUpdated()
|
void CustomExecutableConfigurationWidget::userChangesUpdated()
|
||||||
{
|
{
|
||||||
m_runConfiguration->setUserEnvironmentChanges(m_environmentWidget->userChanges());
|
m_runConfiguration->setUserEnvironmentChanges(m_environmentWidget->userChanges());
|
||||||
@@ -242,7 +228,7 @@ void CustomExecutableConfigurationWidget::changed()
|
|||||||
arg(executable,
|
arg(executable,
|
||||||
ProjectExplorer::Environment::joinArgumentList(m_runConfiguration->commandLineArguments()));
|
ProjectExplorer::Environment::joinArgumentList(m_runConfiguration->commandLineArguments()));
|
||||||
|
|
||||||
m_summaryLabel->setText(text);
|
m_detailsContainer->setSummaryText(text);
|
||||||
// We triggered the change, don't update us
|
// We triggered the change, don't update us
|
||||||
if (m_ignoreChange)
|
if (m_ignoreChange)
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -31,9 +31,10 @@
|
|||||||
#define CUSTOMEXECUTABLERUNCONFIGURATION_H
|
#define CUSTOMEXECUTABLERUNCONFIGURATION_H
|
||||||
|
|
||||||
#include "applicationrunconfiguration.h"
|
#include "applicationrunconfiguration.h"
|
||||||
|
#include <utils/detailswidget.h>
|
||||||
#include <QtGui/QWidget>
|
#include <QtGui/QWidget>
|
||||||
|
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
class QCheckBox;
|
class QCheckBox;
|
||||||
class QLineEdit;
|
class QLineEdit;
|
||||||
@@ -166,7 +167,6 @@ private slots:
|
|||||||
void baseEnvironmentChanged();
|
void baseEnvironmentChanged();
|
||||||
void userEnvironmentChangesChanged();
|
void userEnvironmentChangesChanged();
|
||||||
void baseEnvironmentComboBoxChanged(int index);
|
void baseEnvironmentComboBoxChanged(int index);
|
||||||
void toggleDetails();
|
|
||||||
private:
|
private:
|
||||||
bool m_ignoreChange;
|
bool m_ignoreChange;
|
||||||
CustomExecutableRunConfiguration *m_runConfiguration;
|
CustomExecutableRunConfiguration *m_runConfiguration;
|
||||||
@@ -177,9 +177,7 @@ private:
|
|||||||
QCheckBox *m_useTerminalCheck;
|
QCheckBox *m_useTerminalCheck;
|
||||||
ProjectExplorer::EnvironmentWidget *m_environmentWidget;
|
ProjectExplorer::EnvironmentWidget *m_environmentWidget;
|
||||||
QComboBox *m_baseEnvironmentComboBox;
|
QComboBox *m_baseEnvironmentComboBox;
|
||||||
QWidget *m_detailsWidget;
|
Utils::DetailsWidget *m_detailsContainer;
|
||||||
QLabel *m_summaryLabel;
|
|
||||||
QAbstractButton *m_detailsButton;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|||||||
@@ -227,29 +227,18 @@ DependenciesWidget::DependenciesWidget(SessionManager *session,
|
|||||||
{
|
{
|
||||||
QVBoxLayout *vbox = new QVBoxLayout(this);
|
QVBoxLayout *vbox = new QVBoxLayout(this);
|
||||||
vbox->setContentsMargins(0, 0, 0, 0);
|
vbox->setContentsMargins(0, 0, 0, 0);
|
||||||
|
m_detailsContainer = new Utils::DetailsWidget(this);
|
||||||
|
vbox->addWidget(m_detailsContainer);
|
||||||
|
|
||||||
QHBoxLayout *hbox = new QHBoxLayout();
|
QWidget *detailsWidget = new QWidget(m_detailsContainer);
|
||||||
m_titleLabel = new QLabel(this);
|
m_detailsContainer->setWidget(detailsWidget);
|
||||||
m_titleLabel->setText("Dummy Text");
|
QHBoxLayout *layout = new QHBoxLayout(detailsWidget);
|
||||||
hbox->addWidget(m_titleLabel);
|
|
||||||
|
|
||||||
QAbstractButton *detailsButton = new Utils::DetailsButton(this);
|
|
||||||
connect(detailsButton, SIGNAL(clicked()),
|
|
||||||
this, SLOT(toggleDetails()));
|
|
||||||
|
|
||||||
hbox->addWidget(detailsButton);
|
|
||||||
vbox->addLayout(hbox);
|
|
||||||
|
|
||||||
m_detailsWidget = new QWidget(this);
|
|
||||||
QHBoxLayout *layout = new QHBoxLayout(m_detailsWidget);
|
|
||||||
layout->setContentsMargins(0, -1, 0, -1);
|
layout->setContentsMargins(0, -1, 0, -1);
|
||||||
DependenciesView *treeView = new DependenciesView(this);
|
DependenciesView *treeView = new DependenciesView(this);
|
||||||
treeView->setModel(m_model);
|
treeView->setModel(m_model);
|
||||||
treeView->setHeaderHidden(true);
|
treeView->setHeaderHidden(true);
|
||||||
layout->addWidget(treeView);
|
layout->addWidget(treeView);
|
||||||
layout->addSpacerItem(new QSpacerItem(0, 0 , QSizePolicy::Expanding, QSizePolicy::Fixed));
|
layout->addSpacerItem(new QSpacerItem(0, 0 , QSizePolicy::Expanding, QSizePolicy::Fixed));
|
||||||
vbox->addWidget(m_detailsWidget);
|
|
||||||
m_detailsWidget->setVisible(false);
|
|
||||||
|
|
||||||
updateDetails();
|
updateDetails();
|
||||||
|
|
||||||
@@ -264,11 +253,6 @@ DependenciesWidget::DependenciesWidget(SessionManager *session,
|
|||||||
this, SLOT(updateDetails()));
|
this, SLOT(updateDetails()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void DependenciesWidget::toggleDetails()
|
|
||||||
{
|
|
||||||
m_detailsWidget->setVisible(!m_detailsWidget->isVisible());
|
|
||||||
}
|
|
||||||
|
|
||||||
void DependenciesWidget::updateDetails()
|
void DependenciesWidget::updateDetails()
|
||||||
{
|
{
|
||||||
QStringList dependsOn;
|
QStringList dependsOn;
|
||||||
@@ -286,7 +270,7 @@ void DependenciesWidget::updateDetails()
|
|||||||
} else {
|
} else {
|
||||||
text = tr("%1 depends on: %2.").arg(m_project->name(), dependsOn.join(QLatin1String(", ")));
|
text = tr("%1 depends on: %2.").arg(m_project->name(), dependsOn.join(QLatin1String(", ")));
|
||||||
}
|
}
|
||||||
m_titleLabel->setText(text);
|
m_detailsContainer->setSummaryText(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -31,6 +31,7 @@
|
|||||||
#define DEPENDENCIESDIALOG_H
|
#define DEPENDENCIESDIALOG_H
|
||||||
|
|
||||||
#include "iprojectproperties.h"
|
#include "iprojectproperties.h"
|
||||||
|
#include <utils/detailswidget.h>
|
||||||
|
|
||||||
#include <QtCore/QSize>
|
#include <QtCore/QSize>
|
||||||
#include <QtGui/QWidget>
|
#include <QtGui/QWidget>
|
||||||
@@ -119,15 +120,13 @@ public:
|
|||||||
DependenciesWidget(SessionManager *session, Project *project,
|
DependenciesWidget(SessionManager *session, Project *project,
|
||||||
QWidget *parent = 0);
|
QWidget *parent = 0);
|
||||||
private slots:
|
private slots:
|
||||||
void toggleDetails();
|
|
||||||
void updateDetails();
|
void updateDetails();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
SessionManager *m_session;
|
SessionManager *m_session;
|
||||||
Project *m_project;
|
Project *m_project;
|
||||||
DependenciesModel *m_model;
|
DependenciesModel *m_model;
|
||||||
QWidget *m_detailsWidget;
|
Utils::DetailsWidget *m_detailsContainer;
|
||||||
QLabel *m_titleLabel;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|||||||
@@ -444,25 +444,13 @@ EnvironmentWidget::EnvironmentWidget(QWidget *parent, QWidget *additionalDetails
|
|||||||
QVBoxLayout *vbox = new QVBoxLayout(this);
|
QVBoxLayout *vbox = new QVBoxLayout(this);
|
||||||
vbox->setContentsMargins(20, 0, 0, 0);
|
vbox->setContentsMargins(20, 0, 0, 0);
|
||||||
|
|
||||||
m_summaryText = new QLabel(this);
|
m_detailsContainer = new Utils::DetailsWidget(this);
|
||||||
m_summaryText->setText("");
|
|
||||||
|
|
||||||
QAbstractButton *detailsButton = new Utils::DetailsButton(this);
|
QWidget *details = new QWidget(m_detailsContainer);
|
||||||
|
m_detailsContainer->setWidget(details);
|
||||||
|
details->setVisible(false);
|
||||||
|
|
||||||
connect(detailsButton, SIGNAL(clicked()),
|
QVBoxLayout *vbox2 = new QVBoxLayout(details);
|
||||||
this, SLOT(toggleDetails()));
|
|
||||||
|
|
||||||
QHBoxLayout *hbox = new QHBoxLayout();
|
|
||||||
hbox->addWidget(m_summaryText);
|
|
||||||
hbox->addWidget(detailsButton);
|
|
||||||
hbox->setMargin(0);
|
|
||||||
|
|
||||||
vbox->addLayout(hbox);
|
|
||||||
|
|
||||||
m_details = new QWidget(this);
|
|
||||||
m_details->setVisible(false);
|
|
||||||
|
|
||||||
QVBoxLayout *vbox2 = new QVBoxLayout(m_details);
|
|
||||||
vbox2->setMargin(0);
|
vbox2->setMargin(0);
|
||||||
|
|
||||||
if (additionalDetailsWidget)
|
if (additionalDetailsWidget)
|
||||||
@@ -503,7 +491,7 @@ EnvironmentWidget::EnvironmentWidget(QWidget *parent, QWidget *additionalDetails
|
|||||||
horizontalLayout->addLayout(buttonLayout);
|
horizontalLayout->addLayout(buttonLayout);
|
||||||
vbox2->addLayout(horizontalLayout);
|
vbox2->addLayout(horizontalLayout);
|
||||||
|
|
||||||
vbox->addWidget(m_details);
|
vbox->addWidget(m_detailsContainer);
|
||||||
|
|
||||||
connect(m_model, SIGNAL(dataChanged(const QModelIndex&, const QModelIndex&)),
|
connect(m_model, SIGNAL(dataChanged(const QModelIndex&, const QModelIndex&)),
|
||||||
this, SLOT(updateButtons()));
|
this, SLOT(updateButtons()));
|
||||||
@@ -528,27 +516,6 @@ EnvironmentWidget::~EnvironmentWidget()
|
|||||||
m_model = 0;
|
m_model = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool EnvironmentWidget::detailsVisible() const
|
|
||||||
{
|
|
||||||
return m_details->isVisible();
|
|
||||||
}
|
|
||||||
|
|
||||||
void EnvironmentWidget::setDetailsVisible(bool b)
|
|
||||||
{
|
|
||||||
m_details->setVisible(b);
|
|
||||||
}
|
|
||||||
|
|
||||||
void EnvironmentWidget::toggleDetails()
|
|
||||||
{
|
|
||||||
m_details->setVisible(!m_details->isVisible());
|
|
||||||
emit detailsVisibleChanged(m_details->isVisible());
|
|
||||||
}
|
|
||||||
|
|
||||||
QWidget *EnvironmentWidget::detailsWidget() const
|
|
||||||
{
|
|
||||||
return m_details;
|
|
||||||
}
|
|
||||||
|
|
||||||
void EnvironmentWidget::setBaseEnvironment(const ProjectExplorer::Environment &env)
|
void EnvironmentWidget::setBaseEnvironment(const ProjectExplorer::Environment &env)
|
||||||
{
|
{
|
||||||
m_model->setBaseEnvironment(env);
|
m_model->setBaseEnvironment(env);
|
||||||
@@ -591,7 +558,7 @@ void EnvironmentWidget::updateSummaryText()
|
|||||||
}
|
}
|
||||||
if (text.isEmpty())
|
if (text.isEmpty())
|
||||||
text = tr("Summary: No changes to Environment");
|
text = tr("Summary: No changes to Environment");
|
||||||
m_summaryText->setText(text);
|
m_detailsContainer->setSummaryText(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnvironmentWidget::updateButtons()
|
void EnvironmentWidget::updateButtons()
|
||||||
|
|||||||
@@ -35,6 +35,7 @@
|
|||||||
#include <QtCore/QString>
|
#include <QtCore/QString>
|
||||||
#include <QtCore/QAbstractItemModel>
|
#include <QtCore/QAbstractItemModel>
|
||||||
#include <QtGui/QWidget>
|
#include <QtGui/QWidget>
|
||||||
|
#include <utils/detailswidget.h>
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
class QCheckBox;
|
class QCheckBox;
|
||||||
@@ -106,14 +107,8 @@ public:
|
|||||||
QList<EnvironmentItem> userChanges() const;
|
QList<EnvironmentItem> userChanges() const;
|
||||||
void setUserChanges(QList<EnvironmentItem> list);
|
void setUserChanges(QList<EnvironmentItem> list);
|
||||||
|
|
||||||
bool detailsVisible() const;
|
|
||||||
void setDetailsVisible(bool b);
|
|
||||||
|
|
||||||
QWidget *detailsWidget() const;
|
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void updateButtons();
|
void updateButtons();
|
||||||
void toggleDetails();
|
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void userChangesUpdated();
|
void userChangesUpdated();
|
||||||
@@ -129,8 +124,7 @@ private slots:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
EnvironmentModel *m_model;
|
EnvironmentModel *m_model;
|
||||||
QLabel *m_summaryText;
|
Utils::DetailsWidget *m_detailsContainer;
|
||||||
QWidget *m_details;
|
|
||||||
QTreeView *m_environmentTreeView;
|
QTreeView *m_environmentTreeView;
|
||||||
QPushButton *m_editButton;
|
QPushButton *m_editButton;
|
||||||
QPushButton *m_addButton;
|
QPushButton *m_addButton;
|
||||||
|
|||||||
@@ -99,6 +99,7 @@ PanelsWidget::~PanelsWidget()
|
|||||||
void PanelsWidget::addWidget(QWidget *widget)
|
void PanelsWidget::addWidget(QWidget *widget)
|
||||||
{
|
{
|
||||||
Panel p;
|
Panel p;
|
||||||
|
p.spacer = 0;
|
||||||
p.nameLabel = 0;
|
p.nameLabel = 0;
|
||||||
p.panelWidget = widget;
|
p.panelWidget = widget;
|
||||||
|
|
||||||
@@ -109,7 +110,10 @@ void PanelsWidget::addWidget(QWidget *widget)
|
|||||||
|
|
||||||
void PanelsWidget::addWidget(const QString &name, QWidget *widget)
|
void PanelsWidget::addWidget(const QString &name, QWidget *widget)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
Panel p;
|
Panel p;
|
||||||
|
p.spacer = new QSpacerItem(1, 10, QSizePolicy::Fixed, QSizePolicy::Fixed);
|
||||||
p.nameLabel = new QLabel(this);
|
p.nameLabel = new QLabel(this);
|
||||||
p.nameLabel->setText(name);
|
p.nameLabel->setText(name);
|
||||||
QFont f = p.nameLabel->font();
|
QFont f = p.nameLabel->font();
|
||||||
@@ -119,6 +123,7 @@ void PanelsWidget::addWidget(const QString &name, QWidget *widget)
|
|||||||
|
|
||||||
p.panelWidget = widget;
|
p.panelWidget = widget;
|
||||||
|
|
||||||
|
m_layout->insertSpacerItem(m_layout->count() - 1, p.spacer);
|
||||||
m_layout->insertWidget(m_layout->count() - 1, p.nameLabel);
|
m_layout->insertWidget(m_layout->count() - 1, p.nameLabel);
|
||||||
QHBoxLayout *hboxLayout = new QHBoxLayout();
|
QHBoxLayout *hboxLayout = new QHBoxLayout();
|
||||||
hboxLayout->setContentsMargins(20, 0, 0, 0);
|
hboxLayout->setContentsMargins(20, 0, 0, 0);
|
||||||
@@ -131,6 +136,10 @@ void PanelsWidget::addWidget(const QString &name, QWidget *widget)
|
|||||||
void PanelsWidget::clear()
|
void PanelsWidget::clear()
|
||||||
{
|
{
|
||||||
foreach(Panel p, m_panels) {
|
foreach(Panel p, m_panels) {
|
||||||
|
if (p.spacer) {
|
||||||
|
m_layout->removeItem(p.spacer);
|
||||||
|
delete p.spacer;
|
||||||
|
}
|
||||||
delete p.nameLabel;
|
delete p.nameLabel;
|
||||||
delete p.panelWidget;
|
delete p.panelWidget;
|
||||||
delete p.marginLayout;
|
delete p.marginLayout;
|
||||||
@@ -143,6 +152,10 @@ void PanelsWidget::removeWidget(QWidget *widget)
|
|||||||
for(int i=0; i<m_panels.count(); ++i) {
|
for(int i=0; i<m_panels.count(); ++i) {
|
||||||
const Panel & p = m_panels.at(i);
|
const Panel & p = m_panels.at(i);
|
||||||
if (p.panelWidget == widget) {
|
if (p.panelWidget == widget) {
|
||||||
|
if (p.spacer) {
|
||||||
|
m_layout->removeItem(p.spacer);
|
||||||
|
delete p.spacer;
|
||||||
|
}
|
||||||
if (p.marginLayout)
|
if (p.marginLayout)
|
||||||
p.marginLayout->removeWidget(p.panelWidget);
|
p.marginLayout->removeWidget(p.panelWidget);
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ class QTabWidget;
|
|||||||
class QHBoxLayout;
|
class QHBoxLayout;
|
||||||
class QComboBox;
|
class QComboBox;
|
||||||
class QMenu;
|
class QMenu;
|
||||||
|
class QSpacerItem;
|
||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
namespace ProjectExplorer {
|
namespace ProjectExplorer {
|
||||||
@@ -75,6 +76,7 @@ private:
|
|||||||
|
|
||||||
struct Panel
|
struct Panel
|
||||||
{
|
{
|
||||||
|
QSpacerItem *spacer;
|
||||||
QLabel *nameLabel;
|
QLabel *nameLabel;
|
||||||
QWidget *panelWidget;
|
QWidget *panelWidget;
|
||||||
QHBoxLayout *marginLayout;
|
QHBoxLayout *marginLayout;
|
||||||
|
|||||||
@@ -56,18 +56,10 @@ Qt4BuildEnvironmentWidget::Qt4BuildEnvironmentWidget(Qt4Project *project)
|
|||||||
connect(m_buildEnvironmentWidget, SIGNAL(userChangesUpdated()),
|
connect(m_buildEnvironmentWidget, SIGNAL(userChangesUpdated()),
|
||||||
this, SLOT(environmentModelUserChangesUpdated()));
|
this, SLOT(environmentModelUserChangesUpdated()));
|
||||||
|
|
||||||
connect(m_buildEnvironmentWidget, SIGNAL(detailsVisibleChanged(bool)),
|
|
||||||
this, SLOT(layoutFixup()));
|
|
||||||
|
|
||||||
connect(m_clearSystemEnvironmentCheckBox, SIGNAL(toggled(bool)),
|
connect(m_clearSystemEnvironmentCheckBox, SIGNAL(toggled(bool)),
|
||||||
this, SLOT(clearSystemEnvironmentCheckBoxClicked(bool)));
|
this, SLOT(clearSystemEnvironmentCheckBoxClicked(bool)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Qt4BuildEnvironmentWidget::layoutFixup()
|
|
||||||
{
|
|
||||||
fixupLayout(m_buildEnvironmentWidget->detailsWidget());
|
|
||||||
}
|
|
||||||
|
|
||||||
QString Qt4BuildEnvironmentWidget::displayName() const
|
QString Qt4BuildEnvironmentWidget::displayName() const
|
||||||
{
|
{
|
||||||
return tr("Build Environment");
|
return tr("Build Environment");
|
||||||
|
|||||||
@@ -58,7 +58,6 @@ public:
|
|||||||
private slots:
|
private slots:
|
||||||
void environmentModelUserChangesUpdated();
|
void environmentModelUserChangesUpdated();
|
||||||
void clearSystemEnvironmentCheckBoxClicked(bool checked);
|
void clearSystemEnvironmentCheckBoxClicked(bool checked);
|
||||||
void layoutFixup();
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ProjectExplorer::EnvironmentWidget *m_buildEnvironmentWidget;
|
ProjectExplorer::EnvironmentWidget *m_buildEnvironmentWidget;
|
||||||
|
|||||||
@@ -36,7 +36,6 @@
|
|||||||
#include "qt4projectmanager.h"
|
#include "qt4projectmanager.h"
|
||||||
#include "ui_qt4projectconfigwidget.h"
|
#include "ui_qt4projectconfigwidget.h"
|
||||||
|
|
||||||
#include <utils/detailsbutton.h>
|
|
||||||
#include <coreplugin/icore.h>
|
#include <coreplugin/icore.h>
|
||||||
#include <coreplugin/mainwindow.h>
|
#include <coreplugin/mainwindow.h>
|
||||||
#include <projectexplorer/projectexplorerconstants.h>
|
#include <projectexplorer/projectexplorerconstants.h>
|
||||||
@@ -56,41 +55,23 @@ Qt4ProjectConfigWidget::Qt4ProjectConfigWidget(Qt4Project *project)
|
|||||||
: BuildConfigWidget(),
|
: BuildConfigWidget(),
|
||||||
m_pro(project)
|
m_pro(project)
|
||||||
{
|
{
|
||||||
|
QVBoxLayout *vbox = new QVBoxLayout(this);
|
||||||
|
vbox->setMargin(0);
|
||||||
|
m_detailsContainer = new Utils::DetailsWidget(this);
|
||||||
|
vbox->addWidget(m_detailsContainer);
|
||||||
|
QWidget *details = new QWidget(m_detailsContainer);
|
||||||
|
m_detailsContainer->setWidget(details);
|
||||||
m_ui = new Ui::Qt4ProjectConfigWidget();
|
m_ui = new Ui::Qt4ProjectConfigWidget();
|
||||||
m_ui->setupUi(this);
|
m_ui->setupUi(details);
|
||||||
|
|
||||||
|
|
||||||
// fix the layout
|
|
||||||
m_browseButton = m_ui->shadowBuildDirEdit->buttonAtIndex(0);
|
m_browseButton = m_ui->shadowBuildDirEdit->buttonAtIndex(0);
|
||||||
#ifdef Q_OS_WIN
|
// TODO refix the layout
|
||||||
m_browseButton->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
|
||||||
#endif
|
|
||||||
m_ui->gridLayout->addWidget(m_browseButton, 4, 2);
|
|
||||||
int minimumHeight = qMax(m_ui->qtVersionComboBox->sizeHint().height(), m_ui->manageQtVersionPushButtons->sizeHint().height());
|
|
||||||
Qt::Alignment labelAlignment = Qt::Alignment(style()->styleHint(QStyle::SH_FormLayoutLabelAlignment));
|
|
||||||
for (int i = 0; i < m_ui->gridLayout->rowCount(); ++i) {
|
|
||||||
m_ui->gridLayout->setRowMinimumHeight(i, minimumHeight);
|
|
||||||
QLayoutItem *item = m_ui->gridLayout->itemAtPosition(i, 0);
|
|
||||||
if (item)
|
|
||||||
item->setAlignment(labelAlignment);
|
|
||||||
}
|
|
||||||
|
|
||||||
m_ui->shadowBuildDirEdit->setPromptDialogTitle(tr("Shadow Build Directory"));
|
m_ui->shadowBuildDirEdit->setPromptDialogTitle(tr("Shadow Build Directory"));
|
||||||
m_ui->shadowBuildDirEdit->setExpectedKind(Core::Utils::PathChooser::Directory);
|
m_ui->shadowBuildDirEdit->setExpectedKind(Core::Utils::PathChooser::Directory);
|
||||||
m_ui->invalidQtWarningLabel->setVisible(false);
|
m_ui->invalidQtWarningLabel->setVisible(false);
|
||||||
|
|
||||||
m_ui->detailsWidget->setVisible(false);
|
|
||||||
m_ui->titleLabel->setText("");
|
|
||||||
|
|
||||||
QAbstractButton *detailsButton = new Utils::DetailsButton(this);
|
|
||||||
QHBoxLayout *layout = new QHBoxLayout;
|
|
||||||
layout->setMargin(0);
|
|
||||||
layout->setSpacing(0);
|
|
||||||
layout->addWidget(detailsButton);
|
|
||||||
m_ui->detailsButtonWidget->setLayout(layout);
|
|
||||||
|
|
||||||
connect(detailsButton, SIGNAL(clicked()),
|
|
||||||
this, SLOT(toggleDetails()));
|
|
||||||
|
|
||||||
connect(m_ui->nameLineEdit, SIGNAL(textEdited(QString)),
|
connect(m_ui->nameLineEdit, SIGNAL(textEdited(QString)),
|
||||||
this, SLOT(changeConfigName(QString)));
|
this, SLOT(changeConfigName(QString)));
|
||||||
|
|
||||||
@@ -128,12 +109,6 @@ Qt4ProjectConfigWidget::~Qt4ProjectConfigWidget()
|
|||||||
delete m_ui;
|
delete m_ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Qt4ProjectConfigWidget::toggleDetails()
|
|
||||||
{
|
|
||||||
m_ui->detailsWidget->setVisible(!m_ui->detailsWidget->isVisible());
|
|
||||||
fixupLayout(m_ui->detailsWidget);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Qt4ProjectConfigWidget::updateDetails()
|
void Qt4ProjectConfigWidget::updateDetails()
|
||||||
{
|
{
|
||||||
ProjectExplorer::BuildConfiguration *bc = m_pro->buildConfiguration(m_buildConfiguration);
|
ProjectExplorer::BuildConfiguration *bc = m_pro->buildConfiguration(m_buildConfiguration);
|
||||||
@@ -147,7 +122,7 @@ void Qt4ProjectConfigWidget::updateDetails()
|
|||||||
versionString = tr("No Qt Version set");
|
versionString = tr("No Qt Version set");
|
||||||
}
|
}
|
||||||
// Qt Version, Build Directory and Toolchain
|
// Qt Version, Build Directory and Toolchain
|
||||||
m_ui->titleLabel->setText(tr("using Qt version: <b>%1</b><br>"
|
m_detailsContainer->setSummaryText(tr("using Qt version: <b>%1</b><br>"
|
||||||
"with tool chain <b>%2</b><br>"
|
"with tool chain <b>%2</b><br>"
|
||||||
"building in <b>%3</b>")
|
"building in <b>%3</b>")
|
||||||
.arg(versionString,
|
.arg(versionString,
|
||||||
|
|||||||
@@ -32,6 +32,7 @@
|
|||||||
|
|
||||||
#include <projectexplorer/buildstep.h>
|
#include <projectexplorer/buildstep.h>
|
||||||
#include <QtGui/QPushButton>
|
#include <QtGui/QPushButton>
|
||||||
|
#include <utils/detailswidget.h>
|
||||||
|
|
||||||
namespace Qt4ProjectManager {
|
namespace Qt4ProjectManager {
|
||||||
|
|
||||||
@@ -63,7 +64,6 @@ private slots:
|
|||||||
void qtVersionComboBoxCurrentIndexChanged(const QString &);
|
void qtVersionComboBoxCurrentIndexChanged(const QString &);
|
||||||
void manageQtVersions();
|
void manageQtVersions();
|
||||||
void selectToolChain(int index);
|
void selectToolChain(int index);
|
||||||
void toggleDetails();
|
|
||||||
void updateDetails();
|
void updateDetails();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@@ -74,6 +74,7 @@ private:
|
|||||||
QAbstractButton *m_browseButton;
|
QAbstractButton *m_browseButton;
|
||||||
Qt4Project *m_pro;
|
Qt4Project *m_pro;
|
||||||
QString m_buildConfiguration;
|
QString m_buildConfiguration;
|
||||||
|
Utils::DetailsWidget *m_detailsContainer;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|||||||
@@ -6,180 +6,133 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>557</width>
|
<width>455</width>
|
||||||
<height>237</height>
|
<height>201</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
<layout class="QFormLayout" name="formLayout">
|
||||||
<property name="spacing">
|
<item row="1" column="1">
|
||||||
<number>0</number>
|
<widget class="QLineEdit" name="nameLineEdit">
|
||||||
</property>
|
<property name="sizePolicy">
|
||||||
<property name="leftMargin">
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||||
<number>20</number>
|
<horstretch>100</horstretch>
|
||||||
</property>
|
<verstretch>0</verstretch>
|
||||||
<property name="topMargin">
|
</sizepolicy>
|
||||||
<number>0</number>
|
</property>
|
||||||
</property>
|
</widget>
|
||||||
<property name="rightMargin">
|
</item>
|
||||||
<number>0</number>
|
<item row="2" column="0">
|
||||||
</property>
|
<widget class="QLabel" name="qtVersionLabel">
|
||||||
<property name="bottomMargin">
|
<property name="sizePolicy">
|
||||||
<number>0</number>
|
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
||||||
</property>
|
<horstretch>0</horstretch>
|
||||||
<item>
|
<verstretch>0</verstretch>
|
||||||
<layout class="QGridLayout" name="gridLayout_2">
|
</sizepolicy>
|
||||||
<item row="0" column="0" rowspan="2">
|
</property>
|
||||||
<widget class="QLabel" name="titleLabel">
|
<property name="text">
|
||||||
<property name="text">
|
<string>Qt Version:</string>
|
||||||
<string>Multi
|
</property>
|
||||||
Line
|
</widget>
|
||||||
placeholder</string>
|
</item>
|
||||||
</property>
|
<item row="2" column="1">
|
||||||
</widget>
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
</item>
|
<property name="spacing">
|
||||||
<item row="0" column="1">
|
<number>4</number>
|
||||||
<widget class="QWidget" name="detailsButtonWidget" native="true">
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QComboBox" name="qtVersionComboBox">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="invalidQtWarningLabel">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>This Qt-Version is invalid.</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="manageQtVersionPushButtons">
|
||||||
|
<property name="text">
|
||||||
|
<string>Manage</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item row="6" column="0">
|
||||||
<widget class="QWidget" name="detailsWidget" native="true">
|
<widget class="QLabel" name="label">
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<property name="text">
|
||||||
<property name="margin">
|
<string>Shadow Build:</string>
|
||||||
<number>0</number>
|
</property>
|
||||||
</property>
|
</widget>
|
||||||
<item row="0" column="0">
|
</item>
|
||||||
<widget class="QLabel" name="nameLabel">
|
<item row="6" column="1">
|
||||||
<property name="text">
|
<widget class="QCheckBox" name="shadowBuildCheckBox">
|
||||||
<string>Configuration Name:</string>
|
<property name="text">
|
||||||
</property>
|
<string/>
|
||||||
</widget>
|
</property>
|
||||||
</item>
|
</widget>
|
||||||
<item row="0" column="1">
|
</item>
|
||||||
<widget class="QLineEdit" name="nameLineEdit">
|
<item row="7" column="0">
|
||||||
<property name="sizePolicy">
|
<widget class="QLabel" name="buildDirLabel">
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
<property name="sizePolicy">
|
||||||
<horstretch>100</horstretch>
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
<verstretch>0</verstretch>
|
<horstretch>0</horstretch>
|
||||||
</sizepolicy>
|
<verstretch>0</verstretch>
|
||||||
</property>
|
</sizepolicy>
|
||||||
</widget>
|
</property>
|
||||||
</item>
|
<property name="text">
|
||||||
<item row="1" column="0">
|
<string>Build Directory:</string>
|
||||||
<widget class="QLabel" name="qtVersionLabel">
|
</property>
|
||||||
<property name="sizePolicy">
|
</widget>
|
||||||
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
</item>
|
||||||
<horstretch>0</horstretch>
|
<item row="7" column="1">
|
||||||
<verstretch>0</verstretch>
|
<widget class="Core::Utils::PathChooser" name="shadowBuildDirEdit" native="true">
|
||||||
</sizepolicy>
|
<property name="sizePolicy">
|
||||||
</property>
|
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||||
<property name="text">
|
<horstretch>0</horstretch>
|
||||||
<string>Qt Version:</string>
|
<verstretch>0</verstretch>
|
||||||
</property>
|
</sizepolicy>
|
||||||
</widget>
|
</property>
|
||||||
</item>
|
</widget>
|
||||||
<item row="1" column="1">
|
</item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
<item row="8" column="1">
|
||||||
<property name="spacing">
|
<widget class="QLabel" name="importLabel">
|
||||||
<number>4</number>
|
<property name="text">
|
||||||
</property>
|
<string><a href="import">Import existing build</a></string>
|
||||||
<item>
|
</property>
|
||||||
<widget class="QComboBox" name="qtVersionComboBox">
|
<property name="textFormat">
|
||||||
<property name="sizePolicy">
|
<enum>Qt::RichText</enum>
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
</property>
|
||||||
<horstretch>0</horstretch>
|
</widget>
|
||||||
<verstretch>0</verstretch>
|
</item>
|
||||||
</sizepolicy>
|
<item row="1" column="0">
|
||||||
</property>
|
<widget class="QLabel" name="nameLabel">
|
||||||
</widget>
|
<property name="text">
|
||||||
</item>
|
<string>Configuration Name:</string>
|
||||||
<item>
|
</property>
|
||||||
<widget class="QLabel" name="invalidQtWarningLabel">
|
</widget>
|
||||||
<property name="sizePolicy">
|
</item>
|
||||||
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
<item row="5" column="1">
|
||||||
<horstretch>0</horstretch>
|
<widget class="QComboBox" name="toolChainComboBox"/>
|
||||||
<verstretch>0</verstretch>
|
</item>
|
||||||
</sizepolicy>
|
<item row="5" column="0">
|
||||||
</property>
|
<widget class="QLabel" name="label_2">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>This Qt-Version is invalid.</string>
|
<string>Tool Chain:</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="2">
|
|
||||||
<widget class="QPushButton" name="manageQtVersionPushButtons">
|
|
||||||
<property name="text">
|
|
||||||
<string>Manage</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="0">
|
|
||||||
<widget class="QLabel" name="label_2">
|
|
||||||
<property name="text">
|
|
||||||
<string>Tool Chain:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="1">
|
|
||||||
<widget class="QComboBox" name="toolChainComboBox"/>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="0">
|
|
||||||
<widget class="QLabel" name="label">
|
|
||||||
<property name="text">
|
|
||||||
<string>Shadow Build:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="1">
|
|
||||||
<widget class="QCheckBox" name="shadowBuildCheckBox">
|
|
||||||
<property name="text">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="0">
|
|
||||||
<widget class="QLabel" name="buildDirLabel">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Build Directory:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="1">
|
|
||||||
<widget class="Core::Utils::PathChooser" name="shadowBuildDirEdit" native="true">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="1">
|
|
||||||
<widget class="QLabel" name="importLabel">
|
|
||||||
<property name="text">
|
|
||||||
<string><a href="import">Import existing build</a></string>
|
|
||||||
</property>
|
|
||||||
<property name="textFormat">
|
|
||||||
<enum>Qt::RichText</enum>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
|||||||
@@ -42,7 +42,6 @@
|
|||||||
#include <projectexplorer/environmenteditmodel.h>
|
#include <projectexplorer/environmenteditmodel.h>
|
||||||
#include <projectexplorer/persistentsettings.h>
|
#include <projectexplorer/persistentsettings.h>
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
#include <utils/detailsbutton.h>
|
|
||||||
|
|
||||||
#include <QtGui/QFormLayout>
|
#include <QtGui/QFormLayout>
|
||||||
#include <QtGui/QInputDialog>
|
#include <QtGui/QInputDialog>
|
||||||
@@ -120,7 +119,14 @@ Qt4RunConfigurationWidget::Qt4RunConfigurationWidget(Qt4RunConfiguration *qt4Run
|
|||||||
m_usingDyldImageSuffix(0),
|
m_usingDyldImageSuffix(0),
|
||||||
m_isShown(false)
|
m_isShown(false)
|
||||||
{
|
{
|
||||||
QFormLayout *toplayout = new QFormLayout();
|
QVBoxLayout *vboxTopLayout = new QVBoxLayout(this);
|
||||||
|
vboxTopLayout->setMargin(0);
|
||||||
|
|
||||||
|
m_detailsContainer = new Utils::DetailsWidget(this);
|
||||||
|
vboxTopLayout->addWidget(m_detailsContainer);
|
||||||
|
QWidget *detailsWidget = new QWidget(m_detailsContainer);
|
||||||
|
m_detailsContainer->setWidget(detailsWidget);
|
||||||
|
QFormLayout *toplayout = new QFormLayout(detailsWidget);
|
||||||
toplayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow);
|
toplayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow);
|
||||||
toplayout->setMargin(0);
|
toplayout->setMargin(0);
|
||||||
|
|
||||||
@@ -164,27 +170,6 @@ Qt4RunConfigurationWidget::Qt4RunConfigurationWidget(Qt4RunConfiguration *qt4Run
|
|||||||
this, SLOT(usingDyldImageSuffixToggled(bool)));
|
this, SLOT(usingDyldImageSuffixToggled(bool)));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
m_detailsWidget = new QWidget(this);
|
|
||||||
m_detailsWidget->setVisible(false);
|
|
||||||
QVBoxLayout *vboxTopLayout = new QVBoxLayout(this);
|
|
||||||
vboxTopLayout->setMargin(0);
|
|
||||||
m_summaryLabel = new QLabel(this);
|
|
||||||
m_summaryLabel->setText("This is a summary");
|
|
||||||
QAbstractButton *detailsButton = new Utils::DetailsButton(this);
|
|
||||||
|
|
||||||
connect(detailsButton, SIGNAL(clicked()),
|
|
||||||
this, SLOT(toggleDetails()));
|
|
||||||
|
|
||||||
QHBoxLayout *detailsLayout = new QHBoxLayout();
|
|
||||||
detailsLayout->setMargin(0);
|
|
||||||
detailsLayout->addWidget(m_summaryLabel);
|
|
||||||
detailsLayout->addWidget(detailsButton);
|
|
||||||
|
|
||||||
vboxTopLayout->addLayout(detailsLayout);
|
|
||||||
|
|
||||||
vboxTopLayout->addWidget(m_detailsWidget);
|
|
||||||
m_detailsWidget->setLayout(toplayout);
|
|
||||||
|
|
||||||
QLabel *environmentLabel = new QLabel(this);
|
QLabel *environmentLabel = new QLabel(this);
|
||||||
environmentLabel->setText(tr("Run Environment"));
|
environmentLabel->setText(tr("Run Environment"));
|
||||||
QFont f = environmentLabel->font();
|
QFont f = environmentLabel->font();
|
||||||
@@ -252,11 +237,6 @@ Qt4RunConfigurationWidget::Qt4RunConfigurationWidget(Qt4RunConfiguration *qt4Run
|
|||||||
this, SLOT(baseEnvironmentChanged()));
|
this, SLOT(baseEnvironmentChanged()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Qt4RunConfigurationWidget::toggleDetails()
|
|
||||||
{
|
|
||||||
m_detailsWidget->setVisible(!m_detailsWidget->isVisible());
|
|
||||||
}
|
|
||||||
|
|
||||||
void Qt4RunConfigurationWidget::updateSummary()
|
void Qt4RunConfigurationWidget::updateSummary()
|
||||||
{
|
{
|
||||||
const QString &filename = QFileInfo(m_qt4RunConfiguration->executable()).fileName();
|
const QString &filename = QFileInfo(m_qt4RunConfiguration->executable()).fileName();
|
||||||
@@ -265,7 +245,7 @@ void Qt4RunConfigurationWidget::updateSummary()
|
|||||||
filename,
|
filename,
|
||||||
arguments,
|
arguments,
|
||||||
m_qt4RunConfiguration->runMode() == LocalApplicationRunConfiguration::Console ? tr("(in terminal)") : "");
|
m_qt4RunConfiguration->runMode() == LocalApplicationRunConfiguration::Console ? tr("(in terminal)") : "");
|
||||||
m_summaryLabel->setText(text);
|
m_detailsContainer->setSummaryText(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Qt4RunConfigurationWidget::baseEnvironmentComboBoxChanged(int index)
|
void Qt4RunConfigurationWidget::baseEnvironmentComboBoxChanged(int index)
|
||||||
|
|||||||
@@ -31,6 +31,7 @@
|
|||||||
#define QT4RUNCONFIGURATION_H
|
#define QT4RUNCONFIGURATION_H
|
||||||
|
|
||||||
#include <utils/pathchooser.h>
|
#include <utils/pathchooser.h>
|
||||||
|
#include <utils/detailswidget.h>
|
||||||
#include <projectexplorer/applicationrunconfiguration.h>
|
#include <projectexplorer/applicationrunconfiguration.h>
|
||||||
#include <projectexplorer/environment.h>
|
#include <projectexplorer/environment.h>
|
||||||
#include <projectexplorer/environmenteditmodel.h>
|
#include <projectexplorer/environmenteditmodel.h>
|
||||||
@@ -181,8 +182,7 @@ private:
|
|||||||
QCheckBox *m_usingDyldImageSuffix;
|
QCheckBox *m_usingDyldImageSuffix;
|
||||||
|
|
||||||
QComboBox *m_baseEnvironmentComboBox;
|
QComboBox *m_baseEnvironmentComboBox;
|
||||||
QWidget *m_detailsWidget;
|
Utils::DetailsWidget *m_detailsContainer;
|
||||||
QLabel *m_summaryLabel;
|
|
||||||
|
|
||||||
ProjectExplorer::EnvironmentWidget *m_environmentWidget;
|
ProjectExplorer::EnvironmentWidget *m_environmentWidget;
|
||||||
bool m_isShown;
|
bool m_isShown;
|
||||||
|
|||||||
Reference in New Issue
Block a user