Improve layout of qrc editor

Replace the toplevel horizontal layout with vertical splitter

Change-Id: Ia02cb0fb23ff4cb9775ea68e70d7b6e0edfcd7f7
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Tasuku Suzuki
2019-07-31 23:09:06 +09:00
parent c6f00e1dd2
commit c54db06a50
5 changed files with 115 additions and 146 deletions

View File

@@ -92,8 +92,8 @@ MiniSplitter::MiniSplitter(QWidget *parent, SplitterStyle style)
setProperty("minisplitter", true); setProperty("minisplitter", true);
} }
MiniSplitter::MiniSplitter(Qt::Orientation orientation, SplitterStyle style) MiniSplitter::MiniSplitter(Qt::Orientation orientation, QWidget *parent, SplitterStyle style)
: QSplitter(orientation), : QSplitter(orientation, parent),
m_style(style) m_style(style)
{ {
setHandleWidth(1); setHandleWidth(1);

View File

@@ -42,7 +42,7 @@ public:
enum SplitterStyle {Dark, Light}; enum SplitterStyle {Dark, Light};
MiniSplitter(QWidget *parent = nullptr, SplitterStyle style = Dark); MiniSplitter(QWidget *parent = nullptr, SplitterStyle style = Dark);
MiniSplitter(Qt::Orientation orientation, SplitterStyle style = Dark); MiniSplitter(Qt::Orientation orientation, QWidget *parent = nullptr, SplitterStyle style = Dark);
protected: protected:
QSplitterHandle *createHandle() override; QSplitterHandle *createHandle() override;

View File

@@ -39,29 +39,21 @@ using namespace ResourceEditor;
using namespace ResourceEditor::Internal; using namespace ResourceEditor::Internal;
QrcEditor::QrcEditor(RelativeResourceModel *model, QWidget *parent) QrcEditor::QrcEditor(RelativeResourceModel *model, QWidget *parent)
: QWidget(parent), : Core::MiniSplitter(Qt::Vertical, parent),
m_treeview(new ResourceView(model, &m_history)) m_treeview(new ResourceView(model, &m_history))
{ {
m_ui.setupUi(this); addWidget(m_treeview);
auto layout = new QHBoxLayout; auto widget = new QWidget;
layout->setSpacing(0); m_ui.setupUi(widget);
layout->setMargin(0); addWidget(widget);
m_ui.centralWidget->setLayout(layout);
m_treeview->setFrameStyle(QFrame::NoFrame); m_treeview->setFrameStyle(QFrame::NoFrame);
layout->addWidget(m_treeview);
connect(m_ui.addPrefixButton, &QAbstractButton::clicked, this, &QrcEditor::onAddPrefix);
connect(m_ui.addFilesButton, &QAbstractButton::clicked, this, &QrcEditor::onAddFiles);
connect(m_ui.removeButton, &QAbstractButton::clicked, this, &QrcEditor::onRemove); connect(m_ui.removeButton, &QAbstractButton::clicked, this, &QrcEditor::onRemove);
connect(m_ui.removeNonExistingButton, &QPushButton::clicked, connect(m_ui.removeNonExistingButton, &QPushButton::clicked,
this, &QrcEditor::onRemoveNonExisting); this, &QrcEditor::onRemoveNonExisting);
// 'Add' button with menu
auto addMenu = new QMenu(this);
m_addFileAction = addMenu->addAction(tr("Add Files"));
connect(m_addFileAction, &QAction::triggered, this, &QrcEditor::onAddFiles);
connect(addMenu->addAction(tr("Add Prefix")), &QAction::triggered,
this, &QrcEditor::onAddPrefix);
m_ui.addButton->setMenu(addMenu);
connect(m_treeview, &ResourceView::removeItem, this, &QrcEditor::onRemove); connect(m_treeview, &ResourceView::removeItem, this, &QrcEditor::onRemove);
connect(m_treeview->selectionModel(), &QItemSelectionModel::currentChanged, connect(m_treeview->selectionModel(), &QItemSelectionModel::currentChanged,
this, &QrcEditor::updateCurrent); this, &QrcEditor::updateCurrent);
@@ -139,8 +131,7 @@ void QrcEditor::updateCurrent()
m_currentLanguage = m_treeview->currentLanguage(); m_currentLanguage = m_treeview->currentLanguage();
m_ui.languageText->setText(m_currentLanguage); m_ui.languageText->setText(m_currentLanguage);
m_ui.addButton->setEnabled(true); m_ui.addFilesButton->setEnabled(isValid);
m_addFileAction->setEnabled(isValid);
m_ui.removeButton->setEnabled(isValid); m_ui.removeButton->setEnabled(isValid);
} }

View File

@@ -28,13 +28,13 @@
#include "ui_qrceditor.h" #include "ui_qrceditor.h"
#include "resourceview.h" #include "resourceview.h"
#include <QWidget> #include <coreplugin/minisplitter.h>
#include <QUndoStack> #include <QUndoStack>
namespace ResourceEditor { namespace ResourceEditor {
namespace Internal { namespace Internal {
class QrcEditor : public QWidget class QrcEditor : public Core::MiniSplitter
{ {
Q_OBJECT Q_OBJECT
@@ -79,7 +79,6 @@ private:
Ui::QrcEditor m_ui; Ui::QrcEditor m_ui;
QUndoStack m_history; QUndoStack m_history;
ResourceView *m_treeview; ResourceView *m_treeview;
QAction *m_addFileAction = nullptr;
QString m_currentAlias; QString m_currentAlias;
QString m_currentPrefix; QString m_currentPrefix;

View File

@@ -6,14 +6,17 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>491</width> <width>521</width>
<height>381</height> <height>180</height>
</rect> </rect>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout"> <property name="sizePolicy">
<property name="spacing"> <sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<number>0</number> <horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="leftMargin"> <property name="leftMargin">
<number>0</number> <number>0</number>
</property> </property>
@@ -27,50 +30,9 @@
<number>0</number> <number>0</number>
</property> </property>
<item> <item>
<widget class="QWidget" name="centralWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>1</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">color: #666666</string>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QWidget" name="widget" native="true">
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>6</number>
</property>
<property name="topMargin">
<number>6</number>
</property>
<property name="rightMargin">
<number>6</number>
</property>
<item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout"> <layout class="QHBoxLayout" name="horizontalLayout">
<item> <item>
<widget class="QPushButton" name="addButton"> <widget class="QPushButton" name="addPrefixButton">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed"> <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch> <horstretch>0</horstretch>
@@ -78,7 +40,14 @@
</sizepolicy> </sizepolicy>
</property> </property>
<property name="text"> <property name="text">
<string>Add</string> <string>Add Prefix</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="addFilesButton">
<property name="text">
<string>Add Files</string>
</property> </property>
</widget> </widget>
</item> </item>
@@ -111,7 +80,7 @@
</item> </item>
</layout> </layout>
</item> </item>
<item row="1" column="0"> <item>
<widget class="QGroupBox" name="groupBox"> <widget class="QGroupBox" name="groupBox">
<property name="title"> <property name="title">
<string>Properties</string> <string>Properties</string>
@@ -156,8 +125,18 @@
</layout> </layout>
</widget> </widget>
</item> </item>
</layout> <item>
</widget> <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> </item>
</layout> </layout>
</widget> </widget>