[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs/kdeui/paged
From: Tobias Koenig <tokoe () kde ! org>
Date: 2007-10-01 0:32:03
Message-ID: 1191198723.824695.20490.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 719346 by tokoe:
Add support for a 'default widget' which will be shown
whenever an item is selected that has no own widget set.
Fixed viewPosition() to be virtual, otherwise it's difficult
to reimplement it ;)
M +23 -1 kpageview.cpp
M +7 -1 kpageview.h
M +1 -0 kpageview_p.h
--- trunk/KDE/kdelibs/kdeui/paged/kpageview.cpp #719345:719346
@@ -213,7 +213,7 @@
stack->setCurrentWidget( widget );
} else {
- //d->stack->setCurrentWidget( d->emptyWidget );
+ stack->setCurrentWidget( defaultWidget );
}
updateTitleWidget(index);
@@ -268,6 +268,9 @@
layout->addWidget(titleWidget, 1, 1);
layout->addWidget(stack, 2, 1);
+ defaultWidget = new QWidget(q);
+ stack->addWidget(defaultWidget);
+
// stack should use most space
layout->setColumnStretch(1, 1);
layout->setRowStretch(2, 1);
@@ -370,7 +373,26 @@
return 0;
}
+void KPageView::setDefaultWidget( QWidget *widget )
+{
+ Q_D(KPageView);
+ Q_ASSERT(widget);
+
+ bool isCurrent = (d->stack->currentIndex() == d->stack->indexOf( d->defaultWidget ));
+
+ // remove old default widget
+ d->stack->removeWidget( d->defaultWidget );
+ delete d->defaultWidget;
+
+ // add new default widget
+ d->defaultWidget = widget;
+ d->stack->addWidget(d->defaultWidget);
+
+ if (isCurrent)
+ d->stack->setCurrentWidget(d->defaultWidget);
+}
+
QAbstractItemView* KPageView::createView()
{
Q_D(KPageView);
--- trunk/KDE/kdelibs/kdeui/paged/kpageview.h #719345:719346
@@ -146,6 +146,12 @@
*/
QAbstractItemDelegate* itemDelegate() const;
+ /**
+ * Sets the @p widget which will be shown when a page is selected
+ * that has no own widget set.
+ */
+ void setDefaultWidget( QWidget *widget );
+
Q_SIGNALS:
/**
* This signal is emitted whenever the current page changes.
@@ -178,7 +184,7 @@
* This method can be reimplemented for adapting custom
* views.
*/
- Qt::Alignment viewPosition() const;
+ virtual Qt::Alignment viewPosition() const;
KPageView(KPageViewPrivate &dd, QWidget *parent);
KPageViewPrivate *const d_ptr;
--- trunk/KDE/kdelibs/kdeui/paged/kpageview_p.h #719345:719346
@@ -71,6 +71,7 @@
QGridLayout *layout;
KPageStackedWidget *stack;
KTitleWidget *titleWidget;
+ QWidget *defaultWidget;
QAbstractItemView *view;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic