forked from qt-creator/qt-creator
Find/replace tool bar wasn't usable in very small width editors.
E.g. in split editors with small main window. We now have line edits with a minimum size and use a flow layout for the replace buttons (which will reduce width when necessary by laying out vertically). Flow layout is taken from the Qt examples. Task-number: QTCREATORBUG-3279 Change-Id: Ic07d4d3e75e3d928d6b53534adb42481ce26256b Reviewed-on: http://codereview.qt.nokia.com/666 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
This commit is contained in:
@@ -35,18 +35,18 @@
|
|||||||
#include <QtCore/QRect>
|
#include <QtCore/QRect>
|
||||||
#include <QtGui/QWidgetItem>
|
#include <QtGui/QWidgetItem>
|
||||||
|
|
||||||
using namespace Core::Internal;
|
using namespace Utils;
|
||||||
|
|
||||||
FlowLayout::FlowLayout(QWidget *parent, int margin, int spacing)
|
FlowLayout::FlowLayout(QWidget *parent, int margin, int hSpacing, int vSpacing)
|
||||||
: QLayout(parent)
|
: QLayout(parent), m_hSpace(hSpacing), m_vSpace(vSpacing)
|
||||||
{
|
{
|
||||||
setMargin(margin);
|
setContentsMargins(margin, margin, margin, margin);
|
||||||
setSpacing(spacing);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
FlowLayout::FlowLayout(int spacing)
|
FlowLayout::FlowLayout(int margin, int hSpacing, int vSpacing)
|
||||||
|
: m_hSpace(hSpacing), m_vSpace(vSpacing)
|
||||||
{
|
{
|
||||||
setSpacing(spacing);
|
setContentsMargins(margin, margin, margin, margin);
|
||||||
}
|
}
|
||||||
|
|
||||||
FlowLayout::~FlowLayout()
|
FlowLayout::~FlowLayout()
|
||||||
@@ -61,6 +61,24 @@ void FlowLayout::addItem(QLayoutItem *item)
|
|||||||
itemList.append(item);
|
itemList.append(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int FlowLayout::horizontalSpacing() const
|
||||||
|
{
|
||||||
|
if (m_hSpace >= 0) {
|
||||||
|
return m_hSpace;
|
||||||
|
} else {
|
||||||
|
return smartSpacing(QStyle::PM_LayoutHorizontalSpacing);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int FlowLayout::verticalSpacing() const
|
||||||
|
{
|
||||||
|
if (m_vSpace >= 0) {
|
||||||
|
return m_vSpace;
|
||||||
|
} else {
|
||||||
|
return smartSpacing(QStyle::PM_LayoutVerticalSpacing);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int FlowLayout::count() const
|
int FlowLayout::count() const
|
||||||
{
|
{
|
||||||
return itemList.size();
|
return itemList.size();
|
||||||
@@ -109,7 +127,8 @@ QSize FlowLayout::sizeHint() const
|
|||||||
QSize FlowLayout::minimumSize() const
|
QSize FlowLayout::minimumSize() const
|
||||||
{
|
{
|
||||||
QSize size;
|
QSize size;
|
||||||
foreach (QLayoutItem *item, itemList)
|
QLayoutItem *item;
|
||||||
|
foreach (item, itemList)
|
||||||
size = size.expandedTo(item->minimumSize());
|
size = size.expandedTo(item->minimumSize());
|
||||||
|
|
||||||
size += QSize(2*margin(), 2*margin());
|
size += QSize(2*margin(), 2*margin());
|
||||||
@@ -118,16 +137,29 @@ QSize FlowLayout::minimumSize() const
|
|||||||
|
|
||||||
int FlowLayout::doLayout(const QRect &rect, bool testOnly) const
|
int FlowLayout::doLayout(const QRect &rect, bool testOnly) const
|
||||||
{
|
{
|
||||||
int x = rect.x();
|
int left, top, right, bottom;
|
||||||
int y = rect.y();
|
getContentsMargins(&left, &top, &right, &bottom);
|
||||||
|
QRect effectiveRect = rect.adjusted(+left, +top, -right, -bottom);
|
||||||
|
int x = effectiveRect.x();
|
||||||
|
int y = effectiveRect.y();
|
||||||
int lineHeight = 0;
|
int lineHeight = 0;
|
||||||
|
|
||||||
foreach (QLayoutItem *item, itemList) {
|
QLayoutItem *item;
|
||||||
int nextX = x + item->sizeHint().width() + spacing();
|
foreach (item, itemList) {
|
||||||
if (nextX - spacing() > rect.right() && lineHeight > 0) {
|
QWidget *wid = item->widget();
|
||||||
x = rect.x();
|
int spaceX = horizontalSpacing();
|
||||||
y = y + lineHeight + spacing();
|
if (spaceX == -1)
|
||||||
nextX = x + item->sizeHint().width() + spacing();
|
spaceX = wid->style()->layoutSpacing(
|
||||||
|
QSizePolicy::PushButton, QSizePolicy::PushButton, Qt::Horizontal);
|
||||||
|
int spaceY = verticalSpacing();
|
||||||
|
if (spaceY == -1)
|
||||||
|
spaceY = wid->style()->layoutSpacing(
|
||||||
|
QSizePolicy::PushButton, QSizePolicy::PushButton, Qt::Vertical);
|
||||||
|
int nextX = x + item->sizeHint().width() + spaceX;
|
||||||
|
if (nextX - spaceX > effectiveRect.right() && lineHeight > 0) {
|
||||||
|
x = effectiveRect.x();
|
||||||
|
y = y + lineHeight + spaceY;
|
||||||
|
nextX = x + item->sizeHint().width() + spaceX;
|
||||||
lineHeight = 0;
|
lineHeight = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -137,5 +169,17 @@ int FlowLayout::doLayout(const QRect &rect, bool testOnly) const
|
|||||||
x = nextX;
|
x = nextX;
|
||||||
lineHeight = qMax(lineHeight, item->sizeHint().height());
|
lineHeight = qMax(lineHeight, item->sizeHint().height());
|
||||||
}
|
}
|
||||||
return y + lineHeight - rect.y() + margin();
|
return y + lineHeight - rect.y() + bottom;
|
||||||
|
}
|
||||||
|
int FlowLayout::smartSpacing(QStyle::PixelMetric pm) const
|
||||||
|
{
|
||||||
|
QObject *parent = this->parent();
|
||||||
|
if (!parent) {
|
||||||
|
return -1;
|
||||||
|
} else if (parent->isWidgetType()) {
|
||||||
|
QWidget *pw = static_cast<QWidget *>(parent);
|
||||||
|
return pw->style()->pixelMetric(pm, 0, pw);
|
||||||
|
} else {
|
||||||
|
return static_cast<QLayout *>(parent)->spacing();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -33,19 +33,24 @@
|
|||||||
#ifndef FLOWLAYOUT_H
|
#ifndef FLOWLAYOUT_H
|
||||||
#define FLOWLAYOUT_H
|
#define FLOWLAYOUT_H
|
||||||
|
|
||||||
|
#include "utils_global.h"
|
||||||
|
|
||||||
#include <QtGui/QLayout>
|
#include <QtGui/QLayout>
|
||||||
|
#include <QtGui/QWidget>
|
||||||
|
#include <QtGui/QStyle>
|
||||||
|
|
||||||
namespace Core {
|
namespace Utils {
|
||||||
namespace Internal {
|
|
||||||
|
|
||||||
class FlowLayout : public QLayout
|
class QTCREATOR_UTILS_EXPORT FlowLayout : public QLayout
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit FlowLayout(QWidget *parent, int margin = 0, int spacing = -1);
|
explicit FlowLayout(QWidget *parent, int margin = -1, int hSpacing = -1, int vSpacing = -1);
|
||||||
FlowLayout(int spacing = -1);
|
FlowLayout(int margin = -1, int hSpacing = -1, int vSpacing = -1);
|
||||||
~FlowLayout();
|
~FlowLayout();
|
||||||
|
|
||||||
void addItem(QLayoutItem *item);
|
void addItem(QLayoutItem *item);
|
||||||
|
int horizontalSpacing() const;
|
||||||
|
int verticalSpacing() const;
|
||||||
Qt::Orientations expandingDirections() const;
|
Qt::Orientations expandingDirections() const;
|
||||||
bool hasHeightForWidth() const;
|
bool hasHeightForWidth() const;
|
||||||
int heightForWidth(int) const;
|
int heightForWidth(int) const;
|
||||||
@@ -58,11 +63,13 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
int doLayout(const QRect &rect, bool testOnly) const;
|
int doLayout(const QRect &rect, bool testOnly) const;
|
||||||
|
int smartSpacing(QStyle::PixelMetric pm) const;
|
||||||
|
|
||||||
QList<QLayoutItem *> itemList;
|
QList<QLayoutItem *> itemList;
|
||||||
|
int m_hSpace;
|
||||||
|
int m_vSpace;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Utils
|
||||||
} // namespace Core
|
|
||||||
|
|
||||||
#endif // FLOWLAYOUT_H
|
#endif // FLOWLAYOUT_H
|
||||||
@@ -87,7 +87,8 @@ SOURCES += $$PWD/environment.cpp \
|
|||||||
$$PWD/ssh/sftpchannel.cpp \
|
$$PWD/ssh/sftpchannel.cpp \
|
||||||
$$PWD/ssh/sshremoteprocessrunner.cpp \
|
$$PWD/ssh/sshremoteprocessrunner.cpp \
|
||||||
$$PWD/ssh/sshconnectionmanager.cpp \
|
$$PWD/ssh/sshconnectionmanager.cpp \
|
||||||
$$PWD/outputformatter.cpp
|
$$PWD/outputformatter.cpp \
|
||||||
|
$$PWD/flowlayout.cpp
|
||||||
|
|
||||||
win32 {
|
win32 {
|
||||||
SOURCES += \
|
SOURCES += \
|
||||||
@@ -187,7 +188,8 @@ HEADERS += $$PWD/environment.h \
|
|||||||
$$PWD/ssh/sshpseudoterminal.h \
|
$$PWD/ssh/sshpseudoterminal.h \
|
||||||
$$PWD/statuslabel.h \
|
$$PWD/statuslabel.h \
|
||||||
$$PWD/outputformatter.h \
|
$$PWD/outputformatter.h \
|
||||||
$$PWD/outputformat.h
|
$$PWD/outputformat.h \
|
||||||
|
$$PWD/flowlayout.h
|
||||||
|
|
||||||
FORMS += $$PWD/filewizardpage.ui \
|
FORMS += $$PWD/filewizardpage.ui \
|
||||||
$$PWD/projectintropage.ui \
|
$$PWD/projectintropage.ui \
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ SOURCES += mainwindow.cpp \
|
|||||||
tabpositionindicator.cpp \
|
tabpositionindicator.cpp \
|
||||||
fancyactionbar.cpp \
|
fancyactionbar.cpp \
|
||||||
fancytabwidget.cpp \
|
fancytabwidget.cpp \
|
||||||
flowlayout.cpp \
|
|
||||||
generalsettings.cpp \
|
generalsettings.cpp \
|
||||||
filemanager.cpp \
|
filemanager.cpp \
|
||||||
uniqueidmanager.cpp \
|
uniqueidmanager.cpp \
|
||||||
@@ -99,7 +98,6 @@ HEADERS += mainwindow.h \
|
|||||||
tabpositionindicator.h \
|
tabpositionindicator.h \
|
||||||
fancyactionbar.h \
|
fancyactionbar.h \
|
||||||
fancytabwidget.h \
|
fancytabwidget.h \
|
||||||
flowlayout.h \
|
|
||||||
generalsettings.h \
|
generalsettings.h \
|
||||||
filemanager.h \
|
filemanager.h \
|
||||||
uniqueidmanager.h \
|
uniqueidmanager.h \
|
||||||
|
|||||||
@@ -46,6 +46,7 @@
|
|||||||
#include <extensionsystem/pluginmanager.h>
|
#include <extensionsystem/pluginmanager.h>
|
||||||
|
|
||||||
#include <utils/stylehelper.h>
|
#include <utils/stylehelper.h>
|
||||||
|
#include <utils/flowlayout.h>
|
||||||
|
|
||||||
#include <QtCore/QDebug>
|
#include <QtCore/QDebug>
|
||||||
#include <QtCore/QSettings>
|
#include <QtCore/QSettings>
|
||||||
@@ -87,6 +88,14 @@ FindToolBar::FindToolBar(FindPlugin *plugin, CurrentDocumentFind *currentDocumen
|
|||||||
{
|
{
|
||||||
//setup ui
|
//setup ui
|
||||||
m_ui.setupUi(this);
|
m_ui.setupUi(this);
|
||||||
|
// compensate for a vertically expanding spacer below the label
|
||||||
|
m_ui.replaceLabel->setMinimumHeight(m_ui.replaceEdit->sizeHint().height());
|
||||||
|
delete m_ui.replaceButtonsWidget->layout();
|
||||||
|
Utils::FlowLayout *flowlayout = new Utils::FlowLayout(m_ui.replaceButtonsWidget, 0, 3, 3);
|
||||||
|
flowlayout->addWidget(m_ui.replaceButton);
|
||||||
|
flowlayout->addWidget(m_ui.replaceNextButton);
|
||||||
|
flowlayout->addWidget(m_ui.replaceAllButton);
|
||||||
|
m_ui.replaceButtonsWidget->setLayout(flowlayout);
|
||||||
setFocusProxy(m_ui.findEdit);
|
setFocusProxy(m_ui.findEdit);
|
||||||
setProperty("topBorder", true);
|
setProperty("topBorder", true);
|
||||||
setSingleRow(false);
|
setSingleRow(false);
|
||||||
@@ -348,9 +357,7 @@ void FindToolBar::updateToolBar()
|
|||||||
m_ui.replaceLabel->setEnabled(replaceEnabled);
|
m_ui.replaceLabel->setEnabled(replaceEnabled);
|
||||||
m_ui.replaceEdit->setVisible(replaceEnabled);
|
m_ui.replaceEdit->setVisible(replaceEnabled);
|
||||||
m_ui.replaceLabel->setVisible(replaceEnabled);
|
m_ui.replaceLabel->setVisible(replaceEnabled);
|
||||||
m_ui.replaceButton->setVisible(replaceEnabled);
|
m_ui.replaceButtonsWidget->setVisible(replaceEnabled);
|
||||||
m_ui.replaceNextButton->setVisible(replaceEnabled);
|
|
||||||
m_ui.replaceAllButton->setVisible(replaceEnabled);
|
|
||||||
m_ui.advancedButton->setVisible(replaceEnabled);
|
m_ui.advancedButton->setVisible(replaceEnabled);
|
||||||
layout()->invalidate();
|
layout()->invalidate();
|
||||||
|
|
||||||
|
|||||||
@@ -6,14 +6,14 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>603</width>
|
<width>681</width>
|
||||||
<height>90</height>
|
<height>88</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>Find</string>
|
<string>Find</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<layout class="QGridLayout" name="gridLayout_2">
|
||||||
<property name="leftMargin">
|
<property name="leftMargin">
|
||||||
<number>5</number>
|
<number>5</number>
|
||||||
</property>
|
</property>
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
<number>2</number>
|
<number>2</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="horizontalSpacing">
|
<property name="horizontalSpacing">
|
||||||
<number>5</number>
|
<number>3</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="verticalSpacing">
|
<property name="verticalSpacing">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
@@ -40,13 +40,24 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="1">
|
<item row="0" column="1">
|
||||||
<widget class="Utils::FilterLineEdit" name="findEdit"/>
|
<widget class="Utils::FilterLineEdit" name="findEdit">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="2">
|
<item row="0" column="2">
|
||||||
|
<widget class="QWidget" name="findButtonsWidget" native="true">
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||||
<property name="spacing">
|
<property name="spacing">
|
||||||
<number>3</number>
|
<number>3</number>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="margin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QToolButton" name="findPreviousButton">
|
<widget class="QToolButton" name="findPreviousButton">
|
||||||
<property name="focusPolicy">
|
<property name="focusPolicy">
|
||||||
@@ -91,22 +102,88 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0">
|
<item row="1" column="0">
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
<widget class="QLabel" name="replaceLabel">
|
<widget class="QLabel" name="replaceLabel">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Replace with:</string>
|
<string>Replace with:</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer_2">
|
||||||
|
<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>
|
||||||
|
</item>
|
||||||
<item row="1" column="1">
|
<item row="1" column="1">
|
||||||
<widget class="Utils::FilterLineEdit" name="replaceEdit"/>
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="Utils::FilterLineEdit" name="replaceEdit">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</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>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="2">
|
<item row="1" column="2">
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
|
<property name="horizontalSpacing">
|
||||||
|
<number>3</number>
|
||||||
|
</property>
|
||||||
|
<property name="verticalSpacing">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QWidget" name="replaceButtonsWidget" native="true">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="replaceButtonsLayout">
|
||||||
<property name="spacing">
|
<property name="spacing">
|
||||||
<number>3</number>
|
<number>3</number>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="margin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QToolButton" name="replaceButton">
|
<widget class="QToolButton" name="replaceButton">
|
||||||
<property name="focusPolicy">
|
<property name="focusPolicy">
|
||||||
@@ -155,19 +232,14 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
</layout>
|
||||||
<spacer name="replaceSpacer">
|
</widget>
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>40</width>
|
|
||||||
<height>0</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QToolButton" name="advancedButton">
|
<widget class="QToolButton" name="advancedButton">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@@ -178,14 +250,34 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer_3">
|
||||||
|
<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>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<customwidgets>
|
<customwidgets>
|
||||||
<customwidget>
|
<customwidget>
|
||||||
<class>Utils::FilterLineEdit</class>
|
<class>Utils::FancyLineEdit</class>
|
||||||
<extends>QLineEdit</extends>
|
<extends>QLineEdit</extends>
|
||||||
|
<header location="global">utils/fancylineedit.h</header>
|
||||||
|
</customwidget>
|
||||||
|
<customwidget>
|
||||||
|
<class>Utils::FilterLineEdit</class>
|
||||||
|
<extends>Utils::FancyLineEdit</extends>
|
||||||
<header location="global">utils/filterlineedit.h</header>
|
<header location="global">utils/filterlineedit.h</header>
|
||||||
</customwidget>
|
</customwidget>
|
||||||
</customwidgets>
|
</customwidgets>
|
||||||
|
|||||||
Reference in New Issue
Block a user