Author: lmontel
Date: Thu Feb 8 10:41:21 2007
New Revision: 117642
Added:
packages/cooker/kdebase/current/SOURCES/kdebase-3.5.6-rubberband.patch
Removed:
packages/cooker/kdebase/current/SOURCES/kdebase-3.5.1-rubberband.patch
Modified:
packages/cooker/kdebase/current/SPECS/kdebase.spec
Log:
Reapply this patch
Added: packages/cooker/kdebase/current/SOURCES/kdebase-3.5.6-rubberband.patch
==============================================================================
--- (empty file)
+++ packages/cooker/kdebase/current/SOURCES/kdebase-3.5.6-rubberband.patch
Thu Feb 8 10:41:21 2007
@@ -0,0 +1,393 @@
+--- kdebase-3.5.6/kdesktop/kfileividesktop.cpp.rubberband 2007-01-15
12:32:10.000000000 +0100
++++ kdebase-3.5.6/kdesktop/kfileividesktop.cpp 2007-02-08 10:36:24.000000000
+0100
+@@ -100,7 +100,13 @@
+
+ // draw the pixmap as in KIconViewItem::paintItem(...)
+ paintPixmap(p, colors);
+-
++ if ( isSelected() ) {
++ p->setBrush( QBrush( cg.highlight() ) );
++ p->setPen( QPen( cg.highlight() ) );
++ p->drawRoundRect( textRect( FALSE ),
++ 1000 / textRect( FALSE ).width(),
++ 1000 / textRect( FALSE ).height() );
++ }
+ //
+ // Paint the text as shadowed if the shadow is available
+ //
+@@ -167,7 +173,7 @@
+
+ void KFileIVIDesktop::drawShadowedText( QPainter *p, const QColorGroup &cg )
+ {
+- int textX = textRect( FALSE ).x() + 2;
++ int textX = textRect( FALSE ).x() + 4;
+ int textY = textRect( FALSE ).y();
+ int align = ((KIconView *) iconView())->itemTextPos() == QIconView::Bottom
+ ? AlignHCenter : AlignAuto;
+@@ -184,12 +190,15 @@
+ int spread = shadowThickness();
+
+ if ( isSelected() && settings->selectionType() !=
KShadowSettings::InverseVideoOnSelection ) {
+- // select using a filled rect
+ text = cg.highlightedText();
+ QRect rect = textRect( false );
+ rect.setRight( rect.right() - spread );
+ rect.setBottom( rect.bottom() - spread + 1 );
+- p->fillRect( rect, cg.highlight() );
++ p->setBrush( QBrush( cg.highlight() ) );
++ p->setPen( QPen( cg.highlight() ) );
++ p->drawRoundRect( rect,
++ 1000 / rect.width(),
++ 1000 / rect.height() );
+ }
+ else {
+ // use shadow
+--- kdebase-3.5.6/kdesktop/kfileividesktop.h.rubberband 2005-10-10
17:04:11.000000000 +0200
++++ kdebase-3.5.6/kdesktop/kfileividesktop.h 2007-02-08 10:31:45.000000000
+0100
+@@ -80,12 +80,6 @@
+ virtual void paintItem(QPainter *p, const QColorGroup &cg);
+
+ /**
+- * Reimplements QIconView::paintFocus() to take the shadow
+- * metrics into account();
+- */
+- virtual void paintFocus( QPainter *p, const QColorGroup &cg );
+-
+- /**
+ * Draws the shadow text.
+ * @param p the painter for drawing the item
+ * @param cg the base color group
+@@ -101,6 +95,8 @@
+ */
+ virtual QImage *buildShadow(QPainter *p, const int align, QColor
&shadowColor);
+
++ void paintFocus(QPainter*, const QColorGroup&);
++
+ protected:
+ void setNormalImage(QImage *newImage) { delete m_normalImage;
m_normalImage = newImage; };
+ void setSelectedImage(QImage *newImage) { delete m_selectedImage;
m_selectedImage = newImage; };
+--- kdebase-3.5.6/konqueror/listview/konq_listviewwidget.cc.rubberband
2006-10-01 19:32:03.000000000 +0200
++++ kdebase-3.5.6/konqueror/listview/konq_listviewwidget.cc 2007-02-08
10:31:45.000000000 +0100
+@@ -405,7 +405,6 @@
+ {
+ if ( m_rubber )
+ {
+- drawRubber();
+ delete m_rubber;
+ m_rubber = 0;
+ }
+@@ -417,14 +416,17 @@
+ KonqBaseListViewItem* item = isExecuteArea( vp ) ?
+ static_cast<KonqBaseListViewItem*>( itemAt( vp ) ) : 0L;
+
+- if ( item )
++ if ( item ) {
+ KListView::contentsMousePressEvent( e );
++ }
+ else {
+ if ( e->button() == LeftButton )
+ {
+ if ( !( e->state() & ControlButton ) )
+ setSelected( itemAt( vp ), false );
+ m_rubber = new QRect( e->x(), e->y(), 0, 0 );
++ clearSelection();
++ emit selectionChanged();
+ m_fileTip->setItem( 0 );
+ }
+ if ( e->button() != RightButton )
+@@ -440,9 +442,10 @@
+ {
+ if ( m_rubber )
+ {
+- drawRubber();
++ QRect r( m_rubber->normalize() );
+ delete m_rubber;
+ m_rubber = 0;
++ repaintContents( r, FALSE );
+ }
+
+ if ( m_scrollTimer )
+@@ -534,23 +537,21 @@
+ KListView::leaveEvent( e );
+ }
+
+-void KonqBaseListViewWidget::drawRubber()
++void KonqBaseListViewWidget::drawRubber( QPainter *p )
+ {
+ if ( !m_rubber )
+ return;
+
+- QPainter p;
+- p.begin( viewport() );
+- p.setRasterOp( NotROP );
+- p.setPen( QPen( color0, 1 ) );
+- p.setBrush( NoBrush );
++ p->setRasterOp( NotROP );
++ p->setPen( QPen( color0, 1 ) );
++ p->setBrush( NoBrush );
+
+ QPoint pt( m_rubber->x(), m_rubber->y() );
+ pt = contentsToViewport( pt );
+- style().drawPrimitive( QStyle::PE_FocusRect, &p,
++ style().drawPrimitive( QStyle::PE_FocusRect, p,
+ QRect( pt.x(), pt.y(), m_rubber->width(),
m_rubber->height() ),
+ colorGroup(), QStyle::Style_Default,
colorGroup().base() );
+- p.end();
++ p->end();
+ }
+
+ void KonqBaseListViewWidget::slotAutoScroll()
+@@ -566,10 +567,11 @@
+ if ( vc == m_rubber->bottomRight() )
+ return;
+
++ QRect oldRubber = *m_rubber;
++
+ const int oldTop = m_rubber->normalize().top();
+ const int oldBottom = m_rubber->normalize().bottom();
+
+- drawRubber();
+ m_rubber->setBottomRight( vc );
+
+ QListViewItem *cur = itemAt( QPoint(0,0) );
+@@ -577,10 +579,19 @@
+ bool block = signalsBlocked();
+ blockSignals( true );
+
++ QRect rr;
+ QRect nr = m_rubber->normalize();
++ bool changed = FALSE;
+ if ( cur )
+ {
+- QRect rect = itemRect( cur );
++ QRect rect;
++ if ( allColumnsShowFocus() )
++ rect = itemRect( cur );
++ else {
++ rect = itemRect( cur );
++ rect.setWidth( executeArea( cur ) );
++ }
++
+ if ( !allColumnsShowFocus() )
+ rect.setWidth( executeArea( cur ) );
+
+@@ -606,10 +617,25 @@
+ if ( rect.intersects( nr ) )
+ {
+ if ( !cur->isSelected() && cur->isSelectable() )
++ {
+ setSelected( cur, true );
+- } else if ( !m_selected || !m_selected->contains(
(KonqBaseListViewItem*)cur ) )
+- setSelected( cur, false );
+-
++ changed=TRUE;
++ rr = rr.unite( itemRect( cur ) );
++ }
++ }
++ else
++ {
++ if ( cur->isSelected() )
++ {
++ changed = TRUE;
++ rr = rr.unite( itemRect( cur ) );
++ }
++
++ if ( !m_selected || !m_selected->contains(
(KonqBaseListViewItem*)cur ) )
++ {
++ setSelected( cur, false );
++ }
++ }
+ cur = cur->itemBelow();
+ if (cur && !allColumnsShowFocus())
+ rect.setWidth( executeArea( cur ) );
+@@ -625,9 +651,22 @@
+ if ( rect.intersects( nr ) )
+ {
+ if ( !cur->isSelected() && cur->isSelectable() )
++ {
+ setSelected( cur, true );
+- } else if ( !m_selected || !m_selected->contains(
(KonqBaseListViewItem*)cur ) )
+- setSelected( cur, false );
++ changed = TRUE;
++ rr = rr.unite( itemRect( cur ) );
++ }
++ }
++ else
++ {
++ if ( cur->isSelected() )
++ {
++ changed = TRUE;
++ rr = rr.unite( itemRect( cur ) );
++ }
++ if ( !m_selected || !m_selected->contains(
(KonqBaseListViewItem*)cur ) )
++ setSelected( cur, false );
++ }
+
+ cur = cur->itemAbove();
+ if (cur && !allColumnsShowFocus())
+@@ -639,7 +678,31 @@
+ blockSignals( block );
+ emit selectionChanged();
+
+- drawRubber();
++ QRect allRect = oldRubber.normalize();
++ if ( changed )
++ {
++ allRect |= rr.normalize();
++ }
++ allRect |= m_rubber->normalize();
++ QPoint point = contentsToViewport( allRect.topLeft() );
++ allRect = QRect( point.x(), point.y(), allRect.width(), allRect.height() );
++ allRect &= viewport()->rect();
++ allRect.addCoords( -2, -2, 2, 2 );
++
++ QPixmap backrubber( viewport()->rect().size() );
++ backrubber.fill( viewport(), viewport()->rect().topLeft() );
++
++ QPainter p( &backrubber );
++ p.save();
++ drawContentsOffset( &p,
++ contentsX(),
++ contentsY(),
++ contentsX() + allRect.left(), contentsY() + allRect.top(),
++ allRect.width(), allRect.height() );
++ p.restore();
++ drawRubber( &p );
++ p.end();
++ bitBlt( viewport(), allRect.topLeft(), &backrubber, allRect );
+
+ const int scroll_margin = 40;
+ ensureVisible( vc.x(), vc.y(), scroll_margin, scroll_margin );
+@@ -669,9 +732,11 @@
+
+ void KonqBaseListViewWidget::viewportPaintEvent( QPaintEvent *e )
+ {
+- drawRubber();
+ KListView::viewportPaintEvent( e );
+- drawRubber();
++
++ QPainter p( viewport() );
++ drawRubber( &p );
++ p.end();
+ }
+
+ void KonqBaseListViewWidget::viewportResizeEvent(QResizeEvent * e)
+--- kdebase-3.5.6/konqueror/listview/konq_listviewwidget.h.rubberband
2005-10-10 17:04:14.000000000 +0200
++++ kdebase-3.5.6/konqueror/listview/konq_listviewwidget.h 2007-02-08
10:31:45.000000000 +0100
+@@ -206,7 +206,7 @@
+ virtual void viewportPaintEvent( QPaintEvent *e );
+ virtual void viewportResizeEvent( QResizeEvent *e );
+
+- virtual void drawRubber();
++ virtual void drawRubber( QPainter * );
+ virtual void contentsMousePressEvent( QMouseEvent *e );
+ virtual void contentsMouseReleaseEvent( QMouseEvent *e );
+ virtual void contentsMouseMoveEvent( QMouseEvent *e );
+@@ -246,6 +246,7 @@
+ QColor m_itemColor;
+
+ QRect *m_rubber;
++ QPixmap *m_backrubber;
+
+ bool m_bTopLevelComplete:1;
+ bool m_showIcons:1;
+--- kdebase-3.5.6/konqueror/sidebar/konqsidebar.cpp.rubberband 2005-09-10
10:25:47.000000000 +0200
++++ kdebase-3.5.6/konqueror/sidebar/konqsidebar.cpp 2007-02-08
10:31:45.000000000 +0100
+@@ -56,7 +56,8 @@
+ return true;
+ }
+
+-bool KonqSidebar::openURL(const KURL &url) {
++bool KonqSidebar::openURL(const KURL &url)
++{
+ if (m_widget)
+ return m_widget->openURL(url);
+ else return false;
+@@ -73,8 +74,6 @@
+ }
+ }
+
+-
+-
+ // It's usually safe to leave the factory code alone.. with the
+ // notable exception of the KAboutData data
+ #include <kaboutdata.h>
+--- kdebase-3.5.6/konqueror/sidebar/konqsidebartng.rc.rubberband
2005-09-10 10:25:47.000000000 +0200
++++ kdebase-3.5.6/konqueror/sidebar/konqsidebartng.rc 2007-02-08
10:31:45.000000000 +0100
+@@ -1,7 +1,12 @@
+ [filemanagement]
++[filemanagement]
+ OpenViews=home.desktop
+ SingleWidgetMode=true
+
+ [webbrowsing]
+ OpenViews=bookmarks.desktop
+ SingleWidgetMode=true
++
++[webbrowsing]
++OpenViews=bookmarks.desktop
++SingleWidgetMode=true
+--- kdebase-3.5.6/konqueror/sidebar/konqsidebartng.upd.rubberband
2005-09-10 10:25:47.000000000 +0200
++++ kdebase-3.5.6/konqueror/sidebar/konqsidebartng.upd 2007-02-08
10:31:45.000000000 +0100
+@@ -10,3 +10,15 @@
+
+ Id=konqsidebartng_entries
+ Script=move_konqsidebartng_entries.sh,sh
++Id=konqsidebartng_rc
++File=konqsidebartng.rc
++Group=<default>,webbrowsing
++Options=Copy
++AllKeys
++Group=<default>,filemanagement
++Options=Copy
++AllKeys
++RemoveGroup=<default>
++
++Id=konqsidebartng_entries
++Script=move_konqsidebartng_entries.sh,sh
+--- kdebase-3.5.6/konqueror/sidebar/move_konqsidebartng_entries.sh.rubberband
2005-09-10 10:25:47.000000000 +0200
++++ kdebase-3.5.6/konqueror/sidebar/move_konqsidebartng_entries.sh
2007-02-08 10:31:45.000000000 +0100
+@@ -16,3 +16,21 @@
+ done
+
+ rm -rf $source/entries
++#!/bin/sh
++
++prefix=$(kde-config --localprefix)
++source="$prefix/share/apps/konqsidebartng"
++
++[ -d "$source/entries" ] || exit 0
++
++profiles="filemanagement webbrowsing"
++for profile in $profiles; do
++ dest="$source/$profile/entries"
++ if [ ! -d "$dest" ]; then
++ mkdir -p "$dest" || exit 1
++ cp $source/entries/.version $dest/
++ cp $source/entries/* $dest/
++ fi
++done
++
++rm -rf $source/entries
+--- kdebase-3.5.6/konqueror/sidebar/sidebar_widget.cpp.rubberband
2006-05-22 20:12:52.000000000 +0200
++++ kdebase-3.5.6/konqueror/sidebar/sidebar_widget.cpp 2007-02-08
10:31:45.000000000 +0100
+@@ -14,6 +14,7 @@
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
++
+ #include <config.h>
+
+ #include <limits.h>
+@@ -25,6 +26,11 @@
+ #include <qwhatsthis.h>
+ #include <qlayout.h>
+ #include <qstringlist.h>
++#include <qdockwindow.h>
++#include <qlabel.h>
++#include <qtoolbox.h>
++#include <qpainter.h>
++#include <kpushbutton.h>
+
+ #include <klocale.h>
+ #include <ksimpleconfig.h>
Modified: packages/cooker/kdebase/current/SPECS/kdebase.spec
==============================================================================
--- packages/cooker/kdebase/current/SPECS/kdebase.spec (original)
+++ packages/cooker/kdebase/current/SPECS/kdebase.spec Thu Feb 8 10:41:21 2007
@@ -41,7 +41,7 @@
Name: kdebase
Summary: K Desktop Environment - Core files
Version: 3.5.6
-Release: %mkrel 5
+Release: %mkrel 6
Epoch: 1
Group: Graphical desktop/KDE
License: GPL
@@ -232,7 +232,7 @@
# Post 3.5.4 release
Patch96: kdebase-3.5.3-fix-kthememanager-enable-button.patch
Patch101: kdebase-3.5.3-show-specific-kde-desktop-file-only-kde.patch
-Patch125: kdebase-3.5.1-rubberband.patch
+Patch125: kdebase-3.5.6-rubberband.patch
Patch126: kdebase-3.5.4-rubberband-kcmstyle.patch
Patch145: kdebase-3.3.2-fix-kdm-theme-mdk.patch
Patch147: kdebase-3.4.2-fix-kdm-server-args.patch
@@ -1632,7 +1632,7 @@
%patch93 -p1 -b .crypto
%patch96 -p1 -b .fix_kthemenamager_disable_button
%patch101 -p1 -b .only_show_desktop_under_kde
-#%patch125 -p1 -b .rubberband
+%patch125 -p1 -b .rubberband
%patch126 -p1 -b .rubberbandkcm
%patch145 -p1 -b .fix_kdm_theme
%patch147 -p1 -b .fix_kdm_server_args