summaryrefslogtreecommitdiffstats
path: root/src/gui/widgets
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2009-03-25 16:08:30 (GMT)
committerSimon Hausmann <simon.hausmann@nokia.com>2009-03-25 16:08:30 (GMT)
commit5dcf29ec09bd9741bb48449a07831987a75bf42a (patch)
treecd0c3ecdc33bb93075e3a7d9b2593382e2768948 /src/gui/widgets
parent9b40f0275043566a6e1f1471e1f608dd66929b81 (diff)
parent2ab5d8db650118312bfe9b1e60c4ac60229b229f (diff)
downloadQt-5dcf29ec09bd9741bb48449a07831987a75bf42a.zip
Qt-5dcf29ec09bd9741bb48449a07831987a75bf42a.tar.gz
Qt-5dcf29ec09bd9741bb48449a07831987a75bf42a.tar.bz2
Merge branch '4.5' of git@scm.dev.nokia.troll.no:qt/qt
Diffstat (limited to 'src/gui/widgets')
-rw-r--r--src/gui/widgets/qcombobox.cpp24
-rw-r--r--src/gui/widgets/qdockarealayout.cpp2
-rw-r--r--src/gui/widgets/qdockwidget.cpp12
-rw-r--r--src/gui/widgets/qmainwindowlayout.cpp3
4 files changed, 29 insertions, 12 deletions
diff --git a/src/gui/widgets/qcombobox.cpp b/src/gui/widgets/qcombobox.cpp
index 9a0c404..c7e2590 100644
--- a/src/gui/widgets/qcombobox.cpp
+++ b/src/gui/widgets/qcombobox.cpp
@@ -61,6 +61,7 @@
#endif
#include <private/qcombobox_p.h>
#include <private/qabstractitemmodel_p.h>
+#include <private/qabstractscrollarea_p.h>
#include <qdebug.h>
#ifdef Q_WS_X11
@@ -2273,7 +2274,6 @@ void QComboBox::showPopup()
bool boundToScreen = !window()->testAttribute(Qt::WA_DontShowOnScreen);
const bool usePopup = style->styleHint(QStyle::SH_ComboBox_Popup, &opt, this);
-
{
int listHeight = 0;
int count = 0;
@@ -2305,11 +2305,23 @@ void QComboBox::showPopup()
listRect.setHeight(listHeight);
}
- // add the frame size to the height. (+the spacing for the top and the bottom item)
- int marginTop, marginBottom;
- view()->getContentsMargins(0, &marginTop, 0, &marginBottom);
- listRect.setHeight(listRect.height() + 2*container->spacing()
- + marginTop + marginBottom);
+ {
+ // add the spacing for the grid on the top and the bottom;
+ int heightMargin = 2*container->spacing();
+
+ // add the frame of the container
+ int marginTop, marginBottom;
+ container->getContentsMargins(0, &marginTop, 0, &marginBottom);
+ heightMargin += marginTop + marginBottom;
+
+ //add the frame of the view
+ view()->getContentsMargins(0, &marginTop, 0, &marginBottom);
+ marginTop += static_cast<QAbstractScrollAreaPrivate *>(QObjectPrivate::get(view()))->top;
+ marginBottom += static_cast<QAbstractScrollAreaPrivate *>(QObjectPrivate::get(view()))->bottom;
+ heightMargin += marginTop + marginBottom;
+
+ listRect.setHeight(listRect.height() + heightMargin);
+ }
// Add space for margin at top and bottom if the style wants it.
if (usePopup)
diff --git a/src/gui/widgets/qdockarealayout.cpp b/src/gui/widgets/qdockarealayout.cpp
index 9261c63..4f0ec1e 100644
--- a/src/gui/widgets/qdockarealayout.cpp
+++ b/src/gui/widgets/qdockarealayout.cpp
@@ -579,7 +579,7 @@ void QDockAreaLayoutInfo::fitItems()
QLayoutStruct &ls = layout_struct_list[j++];
ls.init();
ls.empty = false;
- if (gap || (item.flags & QDockAreaLayoutItem::KeepSize)) {
+ if (item.flags & QDockAreaLayoutItem::KeepSize) {
ls.minimumSize = ls.maximumSize = ls.sizeHint = item.size;
ls.expansive = false;
ls.stretch = 0;
diff --git a/src/gui/widgets/qdockwidget.cpp b/src/gui/widgets/qdockwidget.cpp
index 865b19c..a5be5f8 100644
--- a/src/gui/widgets/qdockwidget.cpp
+++ b/src/gui/widgets/qdockwidget.cpp
@@ -406,10 +406,14 @@ int QDockWidgetLayout::minimumTitleWidth() const
QSize closeSize(0, 0);
QSize floatSize(0, 0);
- if (QLayoutItem *item = item_list[CloseButton])
- closeSize = item->sizeHint();
- if (QLayoutItem *item = item_list[FloatButton])
- floatSize = item->sizeHint();
+ if (hasFeature(q, QDockWidget::DockWidgetClosable)) {
+ if (QLayoutItem *item = item_list[CloseButton])
+ closeSize = item->widget()->sizeHint();
+ }
+ if (hasFeature(q, QDockWidget::DockWidgetFloatable)) {
+ if (QLayoutItem *item = item_list[FloatButton])
+ floatSize = item->widget()->sizeHint();
+ }
int titleHeight = this->titleHeight();
diff --git a/src/gui/widgets/qmainwindowlayout.cpp b/src/gui/widgets/qmainwindowlayout.cpp
index 768446e..eade633 100644
--- a/src/gui/widgets/qmainwindowlayout.cpp
+++ b/src/gui/widgets/qmainwindowlayout.cpp
@@ -1542,8 +1542,8 @@ bool QMainWindowLayout::plug(QLayoutItem *widgetItem)
if (!previousPath.isEmpty())
layoutState.remove(previousPath);
+ pluggingWidget = widget;
if (dockOptions & QMainWindow::AnimatedDocks) {
- pluggingWidget = widget;
QRect globalRect = currentGapRect;
globalRect.moveTopLeft(parentWidget()->mapToGlobal(globalRect.topLeft()));
#ifndef QT_NO_DOCKWIDGET
@@ -1575,6 +1575,7 @@ bool QMainWindowLayout::plug(QLayoutItem *widgetItem)
#endif
currentGapPos.clear();
updateGapIndicator();
+ pluggingWidget = 0;
}
return true;