diff --git a/addons/search/plugin_search.h b/addons/search/plugin_search.h --- a/addons/search/plugin_search.h +++ b/addons/search/plugin_search.h @@ -183,6 +183,8 @@ private: QTreeWidgetItem *rootFileItem(const QString &url, const QString &fName); QStringList filterFiles(const QStringList& files) const; + + void onResize(const QSize& size); Ui::SearchDialog m_ui; QWidget *m_toolView; @@ -199,6 +201,7 @@ bool m_searchDiskFilesDone; bool m_searchOpenFilesDone; bool m_isSearchAsYouType; + bool m_isLeftRight; QString m_resultBaseDir; QList m_matchRanges; QTimer m_changeTimer; @@ -209,7 +212,7 @@ * current project plugin view, if any */ QObject *m_projectPluginView; - + /** * our main window */ diff --git a/addons/search/plugin_search.cpp b/addons/search/plugin_search.cpp --- a/addons/search/plugin_search.cpp +++ b/addons/search/plugin_search.cpp @@ -222,6 +222,7 @@ m_searchDiskFilesDone(true), m_searchOpenFilesDone(true), m_isSearchAsYouType(false), +m_isLeftRight(false), m_projectPluginView(nullptr), m_mainWindow (mainWin) { @@ -1991,6 +1992,57 @@ searchPlaceChanged(); } +void KatePluginSearchView::onResize(const QSize& size) +{ + bool vertical = size.width() < size.height(); + + if(!m_isLeftRight && vertical) { + m_isLeftRight = true; + + m_ui.gridLayout->addWidget(m_ui.searchCombo, 0, 1, 1, 8); + m_ui.gridLayout->addWidget(m_ui.findLabel, 0, 0); + m_ui.gridLayout->addWidget(m_ui.searchButton, 1, 0, 1, 2); + m_ui.gridLayout->addWidget(m_ui.nextButton, 1, 2); + m_ui.gridLayout->addWidget(m_ui.searchPlaceCombo, 1, 3, 1, 3); + m_ui.gridLayout->addWidget(m_ui.displayOptions, 1, 6); + m_ui.gridLayout->addWidget(m_ui.matchCase, 1, 7); + m_ui.gridLayout->addWidget(m_ui.useRegExp, 1, 8); + + m_ui.gridLayout->addWidget(m_ui.replaceCombo, 2, 1, 1, 8); + m_ui.gridLayout->addWidget(m_ui.replaceLabel, 2, 0); + m_ui.gridLayout->addWidget(m_ui.replaceButton, 3, 0, 1, 2); + m_ui.gridLayout->addWidget(m_ui.replaceCheckedBtn, 3, 2); + m_ui.gridLayout->addWidget(m_ui.expandResults, 3, 7); + m_ui.gridLayout->addWidget(m_ui.newTabButton, 3, 8); + + m_ui.gridLayout->setColumnStretch(4, 2); + m_ui.gridLayout->setColumnStretch(2, 0); + } + else if(m_isLeftRight && !vertical) { + m_isLeftRight = false; + m_ui.gridLayout->addWidget(m_ui.searchCombo, 0, 2); + m_ui.gridLayout->addWidget(m_ui.findLabel, 0, 1); + m_ui.gridLayout->addWidget(m_ui.searchButton, 0, 3); + m_ui.gridLayout->addWidget(m_ui.nextButton, 0, 4); + m_ui.gridLayout->addWidget(m_ui.searchPlaceCombo, 0, 5, 1, 4); + m_ui.gridLayout->addWidget(m_ui.matchCase, 1, 5); + m_ui.gridLayout->addWidget(m_ui.useRegExp, 1, 6); + + m_ui.gridLayout->addWidget(m_ui.replaceCombo, 1, 2); + m_ui.gridLayout->addWidget(m_ui.replaceLabel, 1, 1); + m_ui.gridLayout->addWidget(m_ui.replaceButton, 1, 3); + m_ui.gridLayout->addWidget(m_ui.replaceCheckedBtn, 1, 4); + m_ui.gridLayout->addWidget(m_ui.expandResults, 1, 8); + m_ui.gridLayout->addWidget(m_ui.newTabButton, 0, 0); + m_ui.gridLayout->addWidget(m_ui.displayOptions, 1, 0); + + m_ui.gridLayout->setColumnStretch(4, 0); + m_ui.gridLayout->setColumnStretch(2, 2); + + m_ui.findLabel->setAlignment(Qt::AlignRight); + m_ui.replaceLabel->setAlignment(Qt::AlignRight); + } +} bool KatePluginSearchView::eventFilter(QObject *obj, QEvent *event) { @@ -2015,6 +2067,13 @@ } // NOTE: Qt::Key_Escape is handled by handleEsc } + if (event->type() == QEvent::Resize) { + QResizeEvent *re = static_cast(event); + if(obj == m_toolView) + { + onResize(re->size()); + } + } return QObject::eventFilter(obj, event); }