ResourceEditor: inline qrceditor.ui

Change-Id: Ie8ec4a7c333287c1ad6e94691ca2d988547d419c
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Alessandro Portale
2022-08-16 14:39:43 +02:00
parent 62bb8b9686
commit 708df011b4
5 changed files with 80 additions and 175 deletions

View File

@@ -2,7 +2,7 @@ add_qtc_plugin(ResourceEditor
DEPENDS Qt5::Xml DEPENDS Qt5::Xml
PLUGIN_DEPENDS Core ProjectExplorer PLUGIN_DEPENDS Core ProjectExplorer
SOURCES SOURCES
qrceditor/qrceditor.cpp qrceditor/qrceditor.h qrceditor/qrceditor.ui qrceditor/qrceditor.cpp qrceditor/qrceditor.h
qrceditor/resourcefile.cpp qrceditor/resourcefile_p.h qrceditor/resourcefile.cpp qrceditor/resourcefile_p.h
qrceditor/resourceview.cpp qrceditor/resourceview.h qrceditor/resourceview.cpp qrceditor/resourceview.h
qrceditor/undocommands.cpp qrceditor/undocommands_p.h qrceditor/undocommands.cpp qrceditor/undocommands_p.h

View File

@@ -28,12 +28,16 @@
#include <aggregation/aggregate.h> #include <aggregation/aggregate.h>
#include <coreplugin/find/itemviewfind.h> #include <coreplugin/find/itemviewfind.h>
#include <utils/layoutbuilder.h>
#include <QDebug> #include <QDebug>
#include <QScopedPointer>
#include <QMenu>
#include <QFileDialog> #include <QFileDialog>
#include <QLabel>
#include <QLineEdit>
#include <QMenu>
#include <QMessageBox> #include <QMessageBox>
#include <QPushButton>
#include <QScopedPointer>
using namespace ResourceEditor; using namespace ResourceEditor;
using namespace ResourceEditor::Internal; using namespace ResourceEditor::Internal;
@@ -44,14 +48,46 @@ QrcEditor::QrcEditor(RelativeResourceModel *model, QWidget *parent)
{ {
addWidget(m_treeview); addWidget(m_treeview);
auto widget = new QWidget; auto widget = new QWidget;
m_ui.setupUi(widget);
addWidget(widget); addWidget(widget);
m_treeview->setFrameStyle(QFrame::NoFrame); m_treeview->setFrameStyle(QFrame::NoFrame);
m_treeview->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Minimum);
connect(m_ui.addPrefixButton, &QAbstractButton::clicked, this, &QrcEditor::onAddPrefix); auto addPrefixButton = new QPushButton(tr("Add Prefix"));
connect(m_ui.addFilesButton, &QAbstractButton::clicked, this, &QrcEditor::onAddFiles); m_addFilesButton = new QPushButton(tr("Add Files"));
connect(m_ui.removeButton, &QAbstractButton::clicked, this, &QrcEditor::onRemove); m_removeButton = new QPushButton(tr("Remove"));
connect(m_ui.removeNonExistingButton, &QPushButton::clicked, m_removeNonExistingButton = new QPushButton(tr("Remove Missing Files"));
m_aliasLabel = new QLabel(tr("Alias:"));
m_aliasText = new QLineEdit;
m_prefixLabel = new QLabel(tr("Prefix:"));
m_prefixText = new QLineEdit;
m_languageLabel = new QLabel(tr("Language:"));
m_languageText = new QLineEdit;
using namespace Utils::Layouting;
Column {
Row {
addPrefixButton,
m_addFilesButton,
m_removeButton,
m_removeNonExistingButton,
st,
},
Group {
title(tr("Properties")),
Form {
m_aliasLabel, m_aliasText, br,
m_prefixLabel, m_prefixText, br,
m_languageLabel, m_languageText, br,
}
},
st,
}.attachTo(widget);
connect(addPrefixButton, &QAbstractButton::clicked, this, &QrcEditor::onAddPrefix);
connect(m_addFilesButton, &QAbstractButton::clicked, this, &QrcEditor::onAddFiles);
connect(m_removeButton, &QAbstractButton::clicked, this, &QrcEditor::onRemove);
connect(m_removeNonExistingButton, &QPushButton::clicked,
this, &QrcEditor::onRemoveNonExisting); this, &QrcEditor::onRemoveNonExisting);
connect(m_treeview, &ResourceView::removeItem, this, &QrcEditor::onRemove); connect(m_treeview, &ResourceView::removeItem, this, &QrcEditor::onRemove);
@@ -61,9 +97,9 @@ QrcEditor::QrcEditor(RelativeResourceModel *model, QWidget *parent)
connect(m_treeview, &ResourceView::contextMenuShown, this, &QrcEditor::showContextMenu); connect(m_treeview, &ResourceView::contextMenuShown, this, &QrcEditor::showContextMenu);
m_treeview->setFocus(); m_treeview->setFocus();
connect(m_ui.aliasText, &QLineEdit::textEdited, this, &QrcEditor::onAliasChanged); connect(m_aliasText, &QLineEdit::textEdited, this, &QrcEditor::onAliasChanged);
connect(m_ui.prefixText, &QLineEdit::textEdited, this, &QrcEditor::onPrefixChanged); connect(m_prefixText, &QLineEdit::textEdited, this, &QrcEditor::onPrefixChanged);
connect(m_ui.languageText, &QLineEdit::textEdited, this, &QrcEditor::onLanguageChanged); connect(m_languageText, &QLineEdit::textEdited, this, &QrcEditor::onLanguageChanged);
// Prevent undo command merging after a switch of focus: // Prevent undo command merging after a switch of focus:
// (0) The initial text is "Green". // (0) The initial text is "Green".
@@ -73,11 +109,11 @@ QrcEditor::QrcEditor(RelativeResourceModel *model, QWidget *parent)
// --> text now is "Red is a color." // --> text now is "Red is a color."
// (4) The user hits undo --> text now is "Green is a color." // (4) The user hits undo --> text now is "Green is a color."
// Without calling advanceMergeId() it would have been "Green", instead. // Without calling advanceMergeId() it would have been "Green", instead.
connect(m_ui.aliasText, &QLineEdit::editingFinished, connect(m_aliasText, &QLineEdit::editingFinished,
m_treeview, &ResourceView::advanceMergeId); m_treeview, &ResourceView::advanceMergeId);
connect(m_ui.prefixText, &QLineEdit::editingFinished, connect(m_prefixText, &QLineEdit::editingFinished,
m_treeview, &ResourceView::advanceMergeId); m_treeview, &ResourceView::advanceMergeId);
connect(m_ui.languageText, &QLineEdit::editingFinished, connect(m_languageText, &QLineEdit::editingFinished,
m_treeview, &ResourceView::advanceMergeId); m_treeview, &ResourceView::advanceMergeId);
connect(&m_history, &QUndoStack::canRedoChanged, this, &QrcEditor::updateHistoryControls); connect(&m_history, &QUndoStack::canRedoChanged, this, &QrcEditor::updateHistoryControls);
@@ -116,23 +152,23 @@ void QrcEditor::updateCurrent()
const bool isPrefix = m_treeview->isPrefix(m_treeview->currentIndex()) && isValid; const bool isPrefix = m_treeview->isPrefix(m_treeview->currentIndex()) && isValid;
const bool isFile = !isPrefix && isValid; const bool isFile = !isPrefix && isValid;
m_ui.aliasLabel->setEnabled(isFile); m_aliasLabel->setEnabled(isFile);
m_ui.aliasText->setEnabled(isFile); m_aliasText->setEnabled(isFile);
m_currentAlias = m_treeview->currentAlias(); m_currentAlias = m_treeview->currentAlias();
m_ui.aliasText->setText(m_currentAlias); m_aliasText->setText(m_currentAlias);
m_ui.prefixLabel->setEnabled(isPrefix); m_prefixLabel->setEnabled(isPrefix);
m_ui.prefixText->setEnabled(isPrefix); m_prefixText->setEnabled(isPrefix);
m_currentPrefix = m_treeview->currentPrefix(); m_currentPrefix = m_treeview->currentPrefix();
m_ui.prefixText->setText(m_currentPrefix); m_prefixText->setText(m_currentPrefix);
m_ui.languageLabel->setEnabled(isPrefix); m_languageLabel->setEnabled(isPrefix);
m_ui.languageText->setEnabled(isPrefix); m_languageText->setEnabled(isPrefix);
m_currentLanguage = m_treeview->currentLanguage(); m_currentLanguage = m_treeview->currentLanguage();
m_ui.languageText->setText(m_currentLanguage); m_languageText->setText(m_currentLanguage);
m_ui.addFilesButton->setEnabled(isValid); m_addFilesButton->setEnabled(isValid);
m_ui.removeButton->setEnabled(isValid); m_removeButton->setEnabled(isValid);
} }
void QrcEditor::updateHistoryControls() void QrcEditor::updateHistoryControls()
@@ -391,8 +427,8 @@ void QrcEditor::onAddPrefix()
QUndoCommand * const addEmptyPrefixCommand = new AddEmptyPrefixCommand(m_treeview); QUndoCommand * const addEmptyPrefixCommand = new AddEmptyPrefixCommand(m_treeview);
m_history.push(addEmptyPrefixCommand); m_history.push(addEmptyPrefixCommand);
updateHistoryControls(); updateHistoryControls();
m_ui.prefixText->selectAll(); m_prefixText->selectAll();
m_ui.prefixText->setFocus(); m_prefixText->setFocus();
} }
// Slot for 'Undo' button // Slot for 'Undo' button

View File

@@ -25,12 +25,17 @@
#pragma once #pragma once
#include "ui_qrceditor.h"
#include "resourceview.h" #include "resourceview.h"
#include <coreplugin/minisplitter.h> #include <coreplugin/minisplitter.h>
#include <QUndoStack> #include <QUndoStack>
QT_BEGIN_NAMESPACE
class QLabel;
class QLineEdit;
class QPushButton;
QT_END_NAMESPACE
namespace ResourceEditor { namespace ResourceEditor {
namespace Internal { namespace Internal {
@@ -76,13 +81,22 @@ private:
void onAddFiles(); void onAddFiles();
void onAddPrefix(); void onAddPrefix();
Ui::QrcEditor m_ui;
QUndoStack m_history; QUndoStack m_history;
ResourceView *m_treeview; ResourceView *m_treeview;
QString m_currentAlias; QString m_currentAlias;
QString m_currentPrefix; QString m_currentPrefix;
QString m_currentLanguage; QString m_currentLanguage;
QPushButton *m_addFilesButton;
QPushButton *m_removeButton;
QPushButton *m_removeNonExistingButton;
QLabel *m_aliasLabel;
QLineEdit *m_aliasText;
QLabel *m_prefixLabel;
QLineEdit *m_prefixText;
QLabel *m_languageLabel;
QLineEdit *m_languageText;
}; };
} // namespace Internal } // namespace Internal

View File

@@ -1,145 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>QrcEditor</class>
<widget class="QWidget" name="QrcEditor">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>521</width>
<height>180</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="addPrefixButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Add Prefix</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="addFilesButton">
<property name="text">
<string>Add Files</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="removeButton">
<property name="text">
<string>Remove</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="removeNonExistingButton">
<property name="text">
<string>Remove Missing Files</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Properties</string>
</property>
<layout class="QFormLayout" name="formLayout">
<property name="sizeConstraint">
<enum>QLayout::SetMinAndMaxSize</enum>
</property>
<property name="fieldGrowthPolicy">
<enum>QFormLayout::ExpandingFieldsGrow</enum>
</property>
<item row="0" column="0">
<widget class="QLabel" name="aliasLabel">
<property name="text">
<string>Alias:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="aliasText"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="prefixLabel">
<property name="text">
<string>Prefix:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="prefixText"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="languageLabel">
<property name="text">
<string>Language:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="languageText"/>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -28,7 +28,7 @@ Project {
name: "QRC Editor" name: "QRC Editor"
prefix: "qrceditor/" prefix: "qrceditor/"
files: [ files: [
"qrceditor.cpp", "qrceditor.h", "qrceditor.ui", "qrceditor.cpp", "qrceditor.h",
"resourcefile.cpp", "resourcefile_p.h", "resourcefile.cpp", "resourcefile_p.h",
"resourceview.cpp", "resourceview.h", "resourceview.cpp", "resourceview.h",
"undocommands.cpp", "undocommands_p.h", "undocommands.cpp", "undocommands_p.h",