author | Pierre Schmitz
<pierre@archlinux.org> 2009-03-10 12:24:31 UTC |
committer | Pierre Schmitz
<pierre@archlinux.org> 2009-03-10 12:24:31 UTC |
parent | 8807ec5f1e0f84cd7bf97d971a10f7b4f11b142a |
PKGBUILD | +9 | -4 |
lancelot.patch | +263 | -0 |
diff --git a/PKGBUILD b/PKGBUILD index 9234354..fc36e16 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -3,7 +3,7 @@ pkgname=kdeplasma-addons pkgver=4.2.1 -pkgrel=1 +pkgrel=2 pkgdesc="KDE Plasma addons" arch=('i686' 'x86_64') url='http://www.kde.org' @@ -14,11 +14,16 @@ replaces=('kdeaddons' 'lancelot') makedepends=('pkgconfig' 'cmake' 'automoc4') options=('docs') install='kdeplasma-addons.install' -source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2") -md5sums=('55219414d52924cb22ea2953cd2ae78b') +source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2" 'lancelot.patch') +md5sums=('55219414d52924cb22ea2953cd2ae78b' + 'fa07578e1781c61b62c818955c5c5087') build() { - cd $srcdir + cd $srcdir/${pkgname}-${pkgver} + # workaround for Lancelot when using Qt 4.5 + # see http://ivan.fomentgroup.org/blog/2009/03/09/patch-for-lancelot-and-qt4/ + patch -p0 -i $srcdir/lancelot.patch || return 1 + cd ../ mkdir build cd build cmake ../${pkgname}-${pkgver} \ diff --git a/lancelot.patch b/lancelot.patch new file mode 100644 index 0000000..b1c9887 --- /dev/null +++ b/lancelot.patch @@ -0,0 +1,263 @@ +--- applets/lancelot/libs/lancelot/Global.cpp~ 2008-12-21 20:20:19.000000000 +0000 ++++ applets/lancelot/libs/lancelot/Global.cpp 2009-02-14 20:57:06.000000000 +0000 +@@ -326,8 +326,11 @@ + + d->confMain = new KConfig("lancelot" + app + "rc"); + ++ Plasma::Theme::defaultTheme()->setUseGlobalSettings(true); ++ qDebug() << "What is the plasma theme: " << Plasma::Theme::defaultTheme()->themeName(); + QString search = "desktoptheme/" + Plasma::Theme::defaultTheme()->themeName() + "/lancelot/" + app + "theme.config"; + kDebug() << search; ++ qDebug() << "Trying:" << search; + + QString path = KStandardDirs::locate( "data", search ); + if (path == "") { +@@ -338,6 +341,8 @@ + path = "lancelotrc"; + } + kDebug() << path; ++ ++ qDebug() << "Using theme:" << path; + d->confTheme = new KConfig(path); + + Instance::Private::activeInstance = this; +--- applets/lancelot/libs/lancelot/widgets/PassagewayView.cpp~ 2009-01-06 17:23:55.000000000 +0000 ++++ applets/lancelot/libs/lancelot/widgets/PassagewayView.cpp 2009-02-14 21:35:13.000000000 +0000 +@@ -20,6 +20,10 @@ + #include "PassagewayView.h" + + #include <QWidget> ++#include <QGraphicsSceneMouseEvent> ++#include <QGraphicsView> ++#include <QApplication> ++#include <climits> + + namespace Lancelot { + +@@ -65,6 +69,8 @@ + : layout(NULL), buttonsLayout(NULL), listsLayout(NULL), parent(p), focusIndex(0) + { + parent->setLayout(layout = new NodeLayout()); ++ layout->setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding)); ++ layout->setMaximumSize(INT_MAX, INT_MAX); + + layout->addItem( + buttonsLayout = new QGraphicsLinearLayout(Qt::Horizontal), +@@ -72,6 +78,9 @@ + NodeLayout::NodeCoordinate(1, 0, 0, 32) + ); + ++ buttonsLayout->setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding)); ++ buttonsLayout->setMaximumSize(INT_MAX, INT_MAX); ++ + ExtenderButton * spacer = + new ExtenderButton(parent); + spacer->setGroupByName("PassagewayView-Spacer"); +@@ -88,6 +97,9 @@ + + listsLayout->setSizer(new PassagewayViewSizer()); + ++ listsLayout->setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding)); ++ listsLayout->setMaximumSize(INT_MAX, INT_MAX); ++ + buttonsLayout->setSpacing(0.0); + + next(Step("", QIcon(), entranceModel)); +@@ -161,7 +173,11 @@ + path.takeLast(); + + buttonsLayout->removeItem(button); +- layout->activate(); ++ ++ // This really shouldn't be needed :( ++ buttonsLayout->setGeometry(buttonsLayout->geometry()); ++ ++ + listsLayout->pop(); + + button->deleteLater(); +@@ -196,19 +212,18 @@ + list->setCategoriesGroupByName("ActionListView-CategoriesPass"); + list->setCategoriesActivable(true); + +- // if (lists.count() > 0) { +- // lists.last()->clearSelection(); +- // } +- + focusIndex = lists.count(); + lists.append(list); + +- // list->initialSelection(); + path.append(step); + + buttonsLayout->addItem(button); + listsLayout->push(list); + ++ // This really shouldn't be needed :( ++ buttonsLayout->setGeometry(buttonsLayout->geometry()); ++ listsLayout->setGeometry(listsLayout->geometry()); ++ + QObject::connect( + list, SIGNAL(activated(int)), + parent, SLOT(listItemActivated(int)) +--- applets/lancelot/app/src/models/ContactsKopete.cpp 2009/02/14 16:58:48 926097 ++++ applets/lancelot/app/src/models/ContactsKopete.cpp 2009/02/15 10:37:30 926398 +@@ -22,7 +22,7 @@ + #include <KStandardDirs> + #include <KDebug> + +-#define UPDATE_INTERVAL 30000 ++#define UPDATE_INTERVAL 15000 + #define CHECK_RUNNING_INTERVAL 5000 + + namespace Models { +--- applets/lancelot/libs/lancelot/layouts/CardLayout.cpp 2008/08/16 21:14:21 848082 ++++ applets/lancelot/libs/lancelot/layouts/CardLayout.cpp 2009/02/15 10:37:30 926398 +@@ -31,6 +31,35 @@ + { + } + ++ void _hide(QGraphicsWidget * widget) { ++ // since Qt has some strange bug (or it ++ // just doesn't behave as it should, ++ // this is a temporary solution ++ // so instead of hiding the item, ++ // we are moving it somewhere ++ // out of bounds ++ // this is a very dirty hack! ++ ++ QRectF g = widget->geometry(); ++ if (g.left() < 0) { ++ return; ++ } ++ g.moveRight(- g.left()); ++ widget->setGeometry(g); ++ } ++ ++ void _show(QGraphicsWidget * widget) { ++ // see the comment in _hide ++ ++ QRectF g = widget->geometry(); ++ if (g.left() >= 0) { ++ return; ++ } ++ ++ g.moveLeft(- g.right()); ++ widget->setGeometry(g); ++ } ++ + void relayout() + { + QRectF g = q->geometry(); +@@ -40,9 +69,11 @@ + } + + foreach (QGraphicsWidget * l, widgets) { +- l->show(); ++ _show(l); + l->setGeometry(g); +- if (shown != l) l->hide(); ++ if (shown != l) { ++ _hide(l); ++ } + } + } + +@@ -107,6 +138,7 @@ + if (widget) { + d->widgets[id] = widget; + // widget->hide(); // BUGS in QT ++ d->_hide(widget); + } else { + d->removeItem(id); + } +@@ -142,17 +174,17 @@ + if (!d->widgets.contains(id)) return; + if (d->shown == d->widgets[id]) return; + if (d->shown) { +- d->shown->hide(); ++ d->_hide(d->shown); + } + d->shown = d->widgets[id]; + d->shown->setGeometry(geometry()); +- d->shown->show(); ++ d->_show(d->shown); + } + + void CardLayout::hideAll() + { + if (!d->shown) return; +- d->shown->hide(); ++ d->_hide(d->shown); + d->shown = NULL; + } + +--- applets/lancelot/libs/lancelot/layouts/FullBorderLayout.cpp 2008/11/24 16:25:50 888490 ++++ applets/lancelot/libs/lancelot/layouts/FullBorderLayout.cpp 2009/02/15 10:37:30 926398 +@@ -41,10 +41,10 @@ + { + } + +- QMap< FullBorderLayout::Place, QGraphicsLayoutItem * > itemPositions; +- QMap< FullBorderLayout::Border, qreal > sizes; ++ QMap < FullBorderLayout::Place, QGraphicsLayoutItem * > itemPositions; ++ QMap < FullBorderLayout::Border, qreal > sizes; + +- void calculateBorderSizes(qreal & top, qreal & bottom, qreal & left, qreal & right) const ++ void calculateBorderSizes(qreal & top, qreal & bottom, qreal & left, qreal & right) // const + { + // top + top = sizes[FullBorderLayout::TopBorder]; +@@ -121,7 +121,8 @@ + void FullBorderLayout::setGeometry(const QRectF & rect) + { + QGraphicsLayout::setGeometry(rect); +- kDebug() << rect; ++ // WHATA HELL!? ++ qDebug() << "FullBorderLayout::setGeometry()"; + + QRectF effectiveRect = geometry(); + qreal left = 0, top = 0, right = 0, bottom = 0; +@@ -158,7 +159,6 @@ + itemRect.setHeight(effectiveRect.height() - topBorder - bottomBorder); + + if (d->itemPositions[Right]) { +- kDebug() << "right" << itemRect; + d->itemPositions[Right]->setGeometry(itemRect); + } + +@@ -197,7 +197,6 @@ + ); + + if (d->itemPositions[Center]) { +- kDebug() << "center" << itemRect; + d->itemPositions[Center]->setGeometry(itemRect); + } + } +--- applets/lancelot/libs/lancelot/widgets/CustomListView.cpp 2009/02/08 10:49:35 923110 ++++ applets/lancelot/libs/lancelot/widgets/CustomListView.cpp 2009/02/15 10:37:30 926398 +@@ -163,9 +163,9 @@ + QGraphicsWidget * item = itemForIndex(i); + QRectF itemGeometry = item->geometry(); + if (viewport.intersects(itemGeometry)) { +- if (q->isVisible()) { ++ //if (q->isVisible()) { + item->show(); +- } ++ //} + transform.reset(); + if (!viewport.contains(itemGeometry)) { + QRectF clip = viewport.intersect(itemGeometry); +--- applets/lancelot/libs/lancelot/widgets/ScrollPane.cpp 2009/01/18 18:26:08 913061 ++++ applets/lancelot/libs/lancelot/widgets/ScrollPane.cpp 2009/02/15 10:37:30 926398 +@@ -229,8 +229,10 @@ + + void ScrollPane::setGeometry(const QRectF & rect) //> + { ++ QRectF old_geometry = geometry(); + Widget::setGeometry(rect); + ++ if (rect == old_geometry) return ; + scrollableWidgetSizeUpdateNeeded(); + } //< +