diff --git a/src/plugins/find/finddialog.ui b/src/plugins/find/finddialog.ui
index 4a57a70787f..d77ad32132a 100644
--- a/src/plugins/find/finddialog.ui
+++ b/src/plugins/find/finddialog.ui
@@ -7,7 +7,7 @@
0
0
673
- 210
+ 240
@@ -17,28 +17,53 @@
- -
-
-
-
- 0
- 0
-
-
-
-
- 80
- 0
-
-
+
+ QLayout::SetFixedSize
+
+
-
+
+
-
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ &Search
+
+
+ true
+
+
+
+ -
+
+
+ Search && &Replace
+
+
+
+
+
+ -
+
- Sco&pe:
+ Sear&ch for:
Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
- filterList
+ searchTerm
@@ -77,22 +102,6 @@
- -
-
-
- Sear&ch for:
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
- searchTerm
-
-
-
- -
-
-
-
@@ -136,6 +145,34 @@
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 80
+ 0
+
+
+
+ Sco&pe:
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+ filterList
+
+
+
+ -
+
+
-
@@ -146,53 +183,6 @@
- -
-
-
-
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
- -
-
-
- &Search
-
-
- true
-
-
-
- -
-
-
- Search && &Replace
-
-
-
-
-
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 40
-
-
-
-
diff --git a/src/plugins/find/findtoolwindow.cpp b/src/plugins/find/findtoolwindow.cpp
index f2c284a1652..1aecc9f9751 100644
--- a/src/plugins/find/findtoolwindow.cpp
+++ b/src/plugins/find/findtoolwindow.cpp
@@ -40,6 +40,7 @@
#include
#include
#include
+#include
using namespace Find;
using namespace Find::Internal;
@@ -186,6 +187,19 @@ void FindToolWindow::setCurrentFilter(int index)
configWidget->setParent(0);
}
}
+ QWidget *w = m_ui.configWidget;
+ while (w) {
+ QScrollArea *sa = qobject_cast(w);
+ if (sa) {
+ sa->updateGeometry();
+ break;
+ }
+ w = w->parentWidget();
+ }
+ for (w = m_configWidget ? m_configWidget : m_ui.configWidget; w; w = w->parentWidget()) {
+ if (w->layout())
+ w->layout()->activate();
+ }
}
void FindToolWindow::acceptAndGetParameters(QString *term, IFindFilter **filter)
diff --git a/src/plugins/find/searchresultwindow.cpp b/src/plugins/find/searchresultwindow.cpp
index aed3329cfcc..37ddce4371d 100644
--- a/src/plugins/find/searchresultwindow.cpp
+++ b/src/plugins/find/searchresultwindow.cpp
@@ -58,7 +58,28 @@ namespace Find {
namespace Internal {
- class SearchResultWindowPrivate : public QObject {
+ class InternalScrollArea : public QScrollArea
+ {
+ Q_OBJECT
+ public:
+ explicit InternalScrollArea(QWidget *parent)
+ : QScrollArea(parent)
+ {
+ setFrameStyle(QFrame::NoFrame);
+ setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
+ setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
+ }
+
+ QSize sizeHint() const
+ {
+ if (widget())
+ return widget()->size();
+ return QScrollArea::sizeHint();
+ }
+ };
+
+ class SearchResultWindowPrivate : public QObject
+ {
Q_OBJECT
public:
SearchResultWindowPrivate(SearchResultWindow *window);
@@ -210,8 +231,7 @@ SearchResultWindow::SearchResultWindow(QWidget *newSearchPanel)
d->m_widget = new QStackedWidget;
d->m_widget->setWindowTitle(displayName());
- QScrollArea *newSearchArea = new QScrollArea(d->m_widget);
- newSearchArea->setFrameStyle(QFrame::NoFrame);
+ InternalScrollArea *newSearchArea = new InternalScrollArea(d->m_widget);
newSearchArea->setWidget(newSearchPanel);
newSearchArea->setFocusProxy(newSearchPanel);
d->m_widget->addWidget(newSearchArea);