TextEditor: inline codestyleselectorwidget.ui

Change-Id: Id545fbee532e463fa41cdc4f8dfc2b9bcd807186
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
hjk
2022-07-25 16:27:34 +02:00
parent 4397282fe6
commit 23075ca2f0
5 changed files with 81 additions and 131 deletions

View File

@@ -42,7 +42,7 @@ add_qtc_plugin(TextEditor
codeassist/textdocumentmanipulatorinterface.h codeassist/textdocumentmanipulatorinterface.h
codestyleeditor.cpp codestyleeditor.h codestyleeditor.cpp codestyleeditor.h
codestylepool.cpp codestylepool.h codestylepool.cpp codestylepool.h
codestyleselectorwidget.cpp codestyleselectorwidget.h codestyleselectorwidget.ui codestyleselectorwidget.cpp codestyleselectorwidget.h
colorpreviewhoverhandler.cpp colorpreviewhoverhandler.h colorpreviewhoverhandler.cpp colorpreviewhoverhandler.h
colorscheme.cpp colorscheme.h colorscheme.cpp colorscheme.h
colorschemeedit.cpp colorschemeedit.h colorschemeedit.ui colorschemeedit.cpp colorschemeedit.h colorschemeedit.ui

View File

@@ -24,23 +24,26 @@
****************************************************************************/ ****************************************************************************/
#include "codestyleselectorwidget.h" #include "codestyleselectorwidget.h"
#include "ui_codestyleselectorwidget.h"
#include "icodestylepreferences.h" #include "icodestylepreferences.h"
#include "icodestylepreferencesfactory.h" #include "icodestylepreferencesfactory.h"
#include "codestylepool.h" #include "codestylepool.h"
#include "tabsettings.h" #include "tabsettings.h"
#include <utils/fileutils.h> #include <utils/fileutils.h>
#include <utils/layoutbuilder.h>
#include <QPushButton> #include <QApplication>
#include <QDialogButtonBox> #include <QBoxLayout>
#include <QComboBox>
#include <QDebug>
#include <QDialog> #include <QDialog>
#include <QDialogButtonBox>
#include <QFileDialog>
#include <QInputDialog> #include <QInputDialog>
#include <QLabel> #include <QLabel>
#include <QMessageBox> #include <QMessageBox>
#include <QFileDialog> #include <QPushButton>
#include <QDebug>
using namespace TextEditor; using namespace TextEditor;
using namespace Utils; using namespace Utils;
@@ -165,30 +168,57 @@ CodeStyleSelectorWidget::CodeStyleSelectorWidget(ICodeStylePreferencesFactory *f
: QWidget(parent) : QWidget(parent)
, m_factory(factory) , m_factory(factory)
, m_project(project) , m_project(project)
, m_ui(new Internal::Ui::CodeStyleSelectorWidget)
{ {
m_ui->setupUi(this); resize(536, 59);
m_ui->importButton->setEnabled(false);
m_ui->exportButton->setEnabled(false);
connect(m_ui->delegateComboBox, QOverload<int>::of(&QComboBox::activated), m_delegateComboBox = new QComboBox(this);
m_delegateComboBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
auto copyButton = new QPushButton(tr("Copy..."));
auto editButton = new QPushButton(tr("Edit..."));
m_removeButton = new QPushButton(tr("Remove"));
m_exportButton = new QPushButton(tr("Export..."));
m_exportButton->setEnabled(false);
m_importButton = new QPushButton(tr("Import..."));
m_importButton->setEnabled(false);
using namespace Utils::Layouting;
Column {
Grid {
tr("Current settings:"),
m_delegateComboBox,
copyButton,
editButton,
m_removeButton,
m_exportButton,
br,
Span(5, Space(1)),
m_importButton
},
}.attachTo(this, false);
connect(m_delegateComboBox, &QComboBox::activated,
this, &CodeStyleSelectorWidget::slotComboBoxActivated); this, &CodeStyleSelectorWidget::slotComboBoxActivated);
connect(m_ui->copyButton, &QAbstractButton::clicked, connect(copyButton, &QAbstractButton::clicked,
this, &CodeStyleSelectorWidget::slotCopyClicked); this, &CodeStyleSelectorWidget::slotCopyClicked);
connect(m_ui->editButton, &QAbstractButton::clicked, connect(editButton, &QAbstractButton::clicked,
this, &CodeStyleSelectorWidget::slotEditClicked); this, &CodeStyleSelectorWidget::slotEditClicked);
connect(m_ui->removeButton, &QAbstractButton::clicked, connect(m_removeButton, &QAbstractButton::clicked,
this, &CodeStyleSelectorWidget::slotRemoveClicked); this, &CodeStyleSelectorWidget::slotRemoveClicked);
connect(m_ui->importButton, &QAbstractButton::clicked, connect(m_importButton, &QAbstractButton::clicked,
this, &CodeStyleSelectorWidget::slotImportClicked); this, &CodeStyleSelectorWidget::slotImportClicked);
connect(m_ui->exportButton, &QAbstractButton::clicked, connect(m_exportButton, &QAbstractButton::clicked,
this, &CodeStyleSelectorWidget::slotExportClicked); this, &CodeStyleSelectorWidget::slotExportClicked);
} }
CodeStyleSelectorWidget::~CodeStyleSelectorWidget() CodeStyleSelectorWidget::~CodeStyleSelectorWidget() = default;
{
delete m_ui;
}
void CodeStyleSelectorWidget::setCodeStyle(ICodeStylePreferences *codeStyle) void CodeStyleSelectorWidget::setCodeStyle(ICodeStylePreferences *codeStyle)
{ {
@@ -207,9 +237,9 @@ void CodeStyleSelectorWidget::setCodeStyle(ICodeStylePreferences *codeStyle)
disconnect(m_codeStyle, &ICodeStylePreferences::currentDelegateChanged, disconnect(m_codeStyle, &ICodeStylePreferences::currentDelegateChanged,
this, &CodeStyleSelectorWidget::slotCurrentDelegateChanged); this, &CodeStyleSelectorWidget::slotCurrentDelegateChanged);
m_ui->exportButton->setEnabled(false); m_exportButton->setEnabled(false);
m_ui->importButton->setEnabled(false); m_importButton->setEnabled(false);
m_ui->delegateComboBox->clear(); m_delegateComboBox->clear();
} }
m_codeStyle = codeStyle; m_codeStyle = codeStyle;
// fillup new // fillup new
@@ -223,8 +253,8 @@ void CodeStyleSelectorWidget::setCodeStyle(ICodeStylePreferences *codeStyle)
this, &CodeStyleSelectorWidget::slotCodeStyleAdded); this, &CodeStyleSelectorWidget::slotCodeStyleAdded);
connect(codeStylePool, &CodeStylePool::codeStyleRemoved, connect(codeStylePool, &CodeStylePool::codeStyleRemoved,
this, &CodeStyleSelectorWidget::slotCodeStyleRemoved); this, &CodeStyleSelectorWidget::slotCodeStyleRemoved);
m_ui->exportButton->setEnabled(true); m_exportButton->setEnabled(true);
m_ui->importButton->setEnabled(true); m_importButton->setEnabled(true);
} }
for (int i = 0; i < delegates.count(); i++) for (int i = 0; i < delegates.count(); i++)
@@ -242,9 +272,9 @@ void CodeStyleSelectorWidget::slotComboBoxActivated(int index)
if (m_ignoreChanges.isLocked()) if (m_ignoreChanges.isLocked())
return; return;
if (index < 0 || index >= m_ui->delegateComboBox->count()) if (index < 0 || index >= m_delegateComboBox->count())
return; return;
auto delegate = m_ui->delegateComboBox->itemData(index).value<ICodeStylePreferences *>(); auto delegate = m_delegateComboBox->itemData(index).value<ICodeStylePreferences *>();
QSignalBlocker blocker(this); QSignalBlocker blocker(this);
m_codeStyle->setCurrentDelegate(delegate); m_codeStyle->setCurrentDelegate(delegate);
@@ -254,11 +284,12 @@ void CodeStyleSelectorWidget::slotCurrentDelegateChanged(ICodeStylePreferences *
{ {
{ {
const GuardLocker locker(m_ignoreChanges); const GuardLocker locker(m_ignoreChanges);
m_ui->delegateComboBox->setCurrentIndex(m_ui->delegateComboBox->findData(QVariant::fromValue(delegate))); m_delegateComboBox->setCurrentIndex(m_delegateComboBox->findData(QVariant::fromValue(delegate)));
m_ui->delegateComboBox->setToolTip(m_ui->delegateComboBox->currentText()); m_delegateComboBox->setToolTip(m_delegateComboBox->currentText());
} }
const bool removeEnabled = delegate && !delegate->isReadOnly() && !delegate->currentDelegate(); const bool removeEnabled = delegate && !delegate->isReadOnly() && !delegate->currentDelegate();
m_ui->removeButton->setEnabled(removeEnabled); m_removeButton->setEnabled(removeEnabled);
} }
void CodeStyleSelectorWidget::slotCopyClicked() void CodeStyleSelectorWidget::slotCopyClicked()
@@ -369,8 +400,8 @@ void CodeStyleSelectorWidget::slotCodeStyleAdded(ICodeStylePreferences *codeStyl
const QVariant data = QVariant::fromValue(codeStylePreferences); const QVariant data = QVariant::fromValue(codeStylePreferences);
const QString name = displayName(codeStylePreferences); const QString name = displayName(codeStylePreferences);
m_ui->delegateComboBox->addItem(name, data); m_delegateComboBox->addItem(name, data);
m_ui->delegateComboBox->setItemData(m_ui->delegateComboBox->count() - 1, name, Qt::ToolTipRole); m_delegateComboBox->setItemData(m_delegateComboBox->count() - 1, name, Qt::ToolTipRole);
connect(codeStylePreferences, &ICodeStylePreferences::displayNameChanged, connect(codeStylePreferences, &ICodeStylePreferences::displayNameChanged,
this, [this, codeStylePreferences] { slotUpdateName(codeStylePreferences); }); this, [this, codeStylePreferences] { slotUpdateName(codeStylePreferences); });
if (codeStylePreferences->delegatingPool()) { if (codeStylePreferences->delegatingPool()) {
@@ -382,7 +413,7 @@ void CodeStyleSelectorWidget::slotCodeStyleAdded(ICodeStylePreferences *codeStyl
void CodeStyleSelectorWidget::slotCodeStyleRemoved(ICodeStylePreferences *codeStylePreferences) void CodeStyleSelectorWidget::slotCodeStyleRemoved(ICodeStylePreferences *codeStylePreferences)
{ {
const GuardLocker locker(m_ignoreChanges); const GuardLocker locker(m_ignoreChanges);
m_ui->delegateComboBox->removeItem(m_ui->delegateComboBox->findData( m_delegateComboBox->removeItem(m_delegateComboBox->findData(
QVariant::fromValue(codeStylePreferences))); QVariant::fromValue(codeStylePreferences)));
disconnect(codeStylePreferences, &ICodeStylePreferences::displayNameChanged, this, nullptr); disconnect(codeStylePreferences, &ICodeStylePreferences::displayNameChanged, this, nullptr);
if (codeStylePreferences->delegatingPool()) { if (codeStylePreferences->delegatingPool()) {
@@ -402,18 +433,18 @@ void CodeStyleSelectorWidget::slotUpdateName(ICodeStylePreferences *codeStylePre
updateName(codeStyle); updateName(codeStyle);
} }
m_ui->delegateComboBox->setToolTip(m_ui->delegateComboBox->currentText()); m_delegateComboBox->setToolTip(m_delegateComboBox->currentText());
} }
void CodeStyleSelectorWidget::updateName(ICodeStylePreferences *codeStyle) void CodeStyleSelectorWidget::updateName(ICodeStylePreferences *codeStyle)
{ {
const int idx = m_ui->delegateComboBox->findData(QVariant::fromValue(codeStyle)); const int idx = m_delegateComboBox->findData(QVariant::fromValue(codeStyle));
if (idx < 0) if (idx < 0)
return; return;
const QString name = displayName(codeStyle); const QString name = displayName(codeStyle);
m_ui->delegateComboBox->setItemText(idx, name); m_delegateComboBox->setItemText(idx, name);
m_ui->delegateComboBox->setItemData(idx, name, Qt::ToolTipRole); m_delegateComboBox->setItemData(idx, name, Qt::ToolTipRole);
} }
QString CodeStyleSelectorWidget::displayName(ICodeStylePreferences *codeStyle) const QString CodeStyleSelectorWidget::displayName(ICodeStylePreferences *codeStyle) const

View File

@@ -31,10 +31,14 @@
#include <QWidget> #include <QWidget>
namespace ProjectExplorer { class Project; } QT_BEGIN_NAMESPACE
namespace TextEditor { class QComboBox;
class QPushButton;
QT_END_NAMESPACE
namespace Internal { namespace Ui { class CodeStyleSelectorWidget; } } namespace ProjectExplorer { class Project; }
namespace TextEditor {
class ICodeStylePreferences; class ICodeStylePreferences;
class ICodeStylePreferencesFactory; class ICodeStylePreferencesFactory;
@@ -69,9 +73,12 @@ private:
QString displayName(ICodeStylePreferences *codeStyle) const; QString displayName(ICodeStylePreferences *codeStyle) const;
Internal::Ui::CodeStyleSelectorWidget *m_ui;
Utils::Guard m_ignoreChanges; Utils::Guard m_ignoreChanges;
QComboBox *m_delegateComboBox;
QPushButton *m_removeButton;
QPushButton *m_exportButton;
QPushButton *m_importButton;
}; };
} // namespace TextEditor } // namespace TextEditor

View File

@@ -1,87 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>TextEditor::Internal::CodeStyleSelectorWidget</class>
<widget class="QWidget" name="TextEditor::Internal::CodeStyleSelectorWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>536</width>
<height>59</height>
</rect>
</property>
<property name="windowTitle">
<string/>
</property>
<layout class="QGridLayout" name="gridLayout">
<property name="margin" stdset="0">
<number>0</number>
</property>
<item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Current settings:</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="delegateComboBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="copyButton">
<property name="text">
<string>Copy...</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="editButton">
<property name="text">
<string>Edit...</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QPushButton" name="removeButton">
<property name="text">
<string>Remove</string>
</property>
</widget>
</item>
<item row="0" column="4">
<widget class="QPushButton" name="exportButton">
<property name="text">
<string>Export...</string>
</property>
</widget>
</item>
<item row="1" column="4">
<widget class="QPushButton" name="importButton">
<property name="text">
<string>Import...</string>
</property>
</widget>
</item>
</layout>
</widget>
<tabstops>
<tabstop>delegateComboBox</tabstop>
<tabstop>copyButton</tabstop>
<tabstop>editButton</tabstop>
<tabstop>removeButton</tabstop>
<tabstop>exportButton</tabstop>
</tabstops>
<resources/>
<connections/>
</ui>

View File

@@ -44,7 +44,6 @@ Project {
"codestylepool.h", "codestylepool.h",
"codestyleselectorwidget.cpp", "codestyleselectorwidget.cpp",
"codestyleselectorwidget.h", "codestyleselectorwidget.h",
"codestyleselectorwidget.ui",
"colorpreviewhoverhandler.cpp", "colorpreviewhoverhandler.cpp",
"colorpreviewhoverhandler.h", "colorpreviewhoverhandler.h",
"colorscheme.cpp", "colorscheme.cpp",