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,33 @@ searchPlaceChanged(); } +void KatePluginSearchView::onResize(const QSize& size) +{ + bool vertical = size.width() < size.height(); + // empty last column index + const int col = 10; + + if(!m_isLeftRight && vertical) { + m_isLeftRight = true; + // move widgets to their own row + m_ui.gridLayout->addWidget(m_ui.findLabel, 2, 0); + m_ui.gridLayout->addWidget(m_ui.searchCombo, 2, 1, 1, col); + m_ui.gridLayout->addWidget(m_ui.replaceLabel, 3, 0); + m_ui.gridLayout->addWidget(m_ui.replaceCombo, 3, 1, 1, col); + m_ui.gridLayout->setColumnStretch(col, 2); + m_ui.gridLayout->setColumnStretch(2, 0); + } + else if(m_isLeftRight && !vertical) { + m_isLeftRight = false; + // move widgets back to their original place + m_ui.gridLayout->addWidget(m_ui.findLabel, 0, 1); + m_ui.gridLayout->addWidget(m_ui.searchCombo, 0, 2); + m_ui.gridLayout->addWidget(m_ui.replaceLabel, 1, 1); + m_ui.gridLayout->addWidget(m_ui.replaceCombo, 1, 2); + m_ui.gridLayout->setColumnStretch(col, 0); + m_ui.gridLayout->setColumnStretch(2, 2); + } +} bool KatePluginSearchView::eventFilter(QObject *obj, QEvent *event) { @@ -2015,6 +2043,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); }