┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/dolphindockwidget.cpp
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2010-12-31 10:59:46 +0000
committerPeter Penz <[email protected]>2010-12-31 10:59:46 +0000
commit94815093253e5db99aa100f0834cd6c74c96a91a (patch)
tree725cbfd9d8b412198a143153cbadf06f0ee724c9 /src/dolphindockwidget.cpp
parentf7bbe21b5b2d3bc85dcba1d03494879aac9e37c7 (diff)
Lock panels per default and allow to unlock them like in Amarok.
BUG: 229811 FIXED-IN: 4.7.0 svn path=/trunk/KDE/kdebase/apps/; revision=1210424
Diffstat (limited to 'src/dolphindockwidget.cpp')
-rw-r--r--src/dolphindockwidget.cpp82
1 files changed, 82 insertions, 0 deletions
diff --git a/src/dolphindockwidget.cpp b/src/dolphindockwidget.cpp
new file mode 100644
index 000000000..f7ee16fdc
--- /dev/null
+++ b/src/dolphindockwidget.cpp
@@ -0,0 +1,82 @@
+/***************************************************************************
+ * Copyright (C) 2010 by Peter Penz <[email protected]> *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
+ ***************************************************************************/
+
+#include "dolphindockwidget.h"
+
+#include <QStyle>
+
+ // Empty titlebar for the dock widgets when "Lock Layout" has been activated.
+class DolphinDockTitleBar : public QWidget
+{
+public:
+ DolphinDockTitleBar(QWidget* parent = 0) : QWidget(parent) {}
+ virtual ~DolphinDockTitleBar() {}
+
+ virtual QSize minimumSizeHint() const
+ {
+ const int border = style()->pixelMetric(QStyle::PM_DockWidgetTitleBarButtonMargin);
+ return QSize(border, border);
+ }
+
+ virtual QSize sizeHint() const
+ {
+ return minimumSizeHint();
+ }
+};
+
+DolphinDockWidget::DolphinDockWidget(const QString& title, QWidget* parent, Qt::WindowFlags flags) :
+ QDockWidget(title, parent, flags),
+ m_locked(false),
+ m_dockTitleBar(0)
+{
+}
+
+DolphinDockWidget::DolphinDockWidget(QWidget* parent, Qt::WindowFlags flags) :
+ QDockWidget(parent, flags),
+ m_locked(false),
+ m_dockTitleBar(0)
+{
+}
+
+DolphinDockWidget::~DolphinDockWidget()
+{
+}
+
+void DolphinDockWidget::setLocked(bool lock)
+{
+ if (lock != m_locked) {
+ m_locked = lock;
+
+ if (lock) {
+ if (m_dockTitleBar == 0) {
+ m_dockTitleBar = new DolphinDockTitleBar(this);
+ }
+ setTitleBarWidget(m_dockTitleBar);
+ } else {
+ setTitleBarWidget(0);
+ }
+ }
+}
+
+bool DolphinDockWidget::isLocked() const
+{
+ return m_locked;
+}
+
+#include "dolphindockwidget.moc"