1 /****************************************************************************
3 ** Copyright (C) Qxt Foundation. Some rights reserved.
5 ** This file is part of the QxtGui module of the Qt eXTension library
7 ** This library is free software; you can redistribute it and/or modify it
8 ** under the terms of th Common Public License, version 1.0, as published by
11 ** This file is provided "AS IS", without WARRANTIES OR CONDITIONS OF ANY
12 ** KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY
13 ** WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR
14 ** FITNESS FOR A PARTICULAR PURPOSE.
16 ** You should have received a copy of the CPL along with this file.
17 ** See the LICENSE file and the cpl1.0.txt file included with the source
18 ** distribution for more information. If you did not receive a copy of the
19 ** license, contact the Qxt Foundation.
21 ** <http://libqxt.sourceforge.net> <foundation@libqxt.org>
23 ****************************************************************************/
24 #include "qxtdockwidget.h"
27 class QxtDockWidgetPrivate : public QxtPrivate<QxtDockWidget>
30 QXT_DECLARE_PUBLIC(QxtDockWidget);
32 QSize contentsSize() const;
36 QSize QxtDockWidgetPrivate::contentsSize() const
38 QSize contents = qxt_p().size();
39 int fw = qxt_p().style()->pixelMetric(QStyle::PM_DockWidgetFrameWidth);
40 QSize frame(2 * fw, fw);
49 \class QxtDockWidget QxtDockWidget
51 \brief An extended QDockWidget that remembers its size.
53 QxtDockWidget fills in the gap in QDockWidget and makes the dock
54 widget to remember its size while toggling visibility off and on.
56 \note 146752 - QDockWidget should remember its size when hidden/shown.<br>
57 http://www.trolltech.com/developer/task-tracker/index_html?method=entry&id=146752
61 Constructs a new QxtDockWidget with \a title, \a parent and \a flags.
63 QxtDockWidget::QxtDockWidget(const QString& title, QWidget* parent, Qt::WindowFlags flags)
64 : QDockWidget(title, parent, flags)
66 QXT_INIT_PRIVATE(QxtDockWidget);
70 Constructs a new QxtDockWidget with \a title, \a parent and \a flags.
72 QxtDockWidget::QxtDockWidget(QWidget* parent, Qt::WindowFlags flags)
73 : QDockWidget(parent, flags)
75 QXT_INIT_PRIVATE(QxtDockWidget);
79 Destructs the dock widget.
81 QxtDockWidget::~QxtDockWidget()
84 QSize QxtDockWidget::sizeHint() const
87 if (qxt_d().prev.isValid() && !isFloating())
90 size = QDockWidget::sizeHint();
94 void QxtDockWidget::setVisible(bool visible)
96 if (!visible && !isFloating())
97 qxt_d().prev = qxt_d().contentsSize();
98 QDockWidget::setVisible(visible);