Hello community, here is the log from the commit of package kdebase3 for openSUSE:Factory checked in at 2011-11-28 12:53:35 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kdebase3 (Old) and /work/SRC/openSUSE:Factory/.kdebase3.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdebase3", Maintainer is "[email protected]" Changes: -------- --- /work/SRC/openSUSE:Factory/kdebase3/kdebase3.changes 2011-10-13 16:26:27.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.kdebase3.new/kdebase3.changes 2011-11-28 12:53:40.000000000 +0100 @@ -1,0 +2,13 @@ +Sat Nov 26 02:43:55 UTC 2011 - [email protected] + + +- add one patch from trinity and four from pardus corporate: + trinity: + * add smooth scrolling option to konqueror settings dialog + pardus corporate: + * double click on window caption maximizes it by default + * fix for windows list + * allow users to mount media when using hal + * exclude /proc and /sys from search + +------------------------------------------------------------------- New: ---- kdebase-pardus-dbl-clicl-default-maximize.patch kdebase-pardus-exclude-proc-sys-from-search.patch kdebase-pardus-hal-add-user-mount.patch kdebase-pardus-window-list-fix.patch kdebase-trinity-add-smooth-scrolling-option-r1260417.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kdebase3.spec ++++++ --- /var/tmp/diff_new_pack.MshM6j/_old 2011-11-28 12:53:44.000000000 +0100 +++ /var/tmp/diff_new_pack.MshM6j/_new 2011-11-28 12:53:44.000000000 +0100 @@ -236,6 +236,11 @@ Patch246: kdebase-trinity-1239915-fix-currency-symbols.dif Patch247: kdebase-trinity-launch-ksysguard-optionr1107589.diff Patch248: kdebase-trinity-r1255714-nsplugin-fix-port-from-kde4.diff +Patch249: kdebase-trinity-add-smooth-scrolling-option-r1260417.diff +Patch250: kdebase-pardus-dbl-clicl-default-maximize.patch +Patch251: kdebase-pardus-window-list-fix.patch +Patch252: kdebase-pardus-hal-add-user-mount.patch +Patch254: kdebase-pardus-exclude-proc-sys-from-search.patch %description This package contains kdebase, one of the basic packages of the K @@ -492,6 +497,7 @@ %patch0 %patch3 %patch5 +%patch252 -p1 # causes hangs (bnc#158239) #%patch6 #%patch100 @@ -644,6 +650,10 @@ %patch246 -p1 %patch247 -p1 %patch248 -p1 +%patch249 -p1 +%patch250 -p1 +%patch251 -p1 +%patch254 -p1 rm -rf kappfinder rm pics/crystalsvg/cr??-*emacs.png ++++++ kdebase-pardus-dbl-clicl-default-maximize.patch ++++++ >From 937d4bd530e7d4f8745f1975210fc6a139a1fc01 Mon Sep 17 00:00:00 2001 From: =?utf-8?q?Ozan=20=C3=87a=C4=9Flayan?= <[email protected]> Date: Fri, 24 Jun 2011 09:40:02 +0000 Subject: [PATCH] kwin: Double click defaults to maximize --- kwin/kcmkwin/kwinoptions/mouse.cpp | 2 +- kwin/options.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/kwin/kcmkwin/kwinoptions/mouse.cpp b/kwin/kcmkwin/kwinoptions/mouse.cpp index f220bbf..067741b 100644 --- a/kwin/kcmkwin/kwinoptions/mouse.cpp +++ b/kwin/kcmkwin/kwinoptions/mouse.cpp @@ -530,7 +530,7 @@ const char* KTitleBarActionsConfig::functionMax( int i ) void KTitleBarActionsConfig::load() { config->setGroup("Windows"); - setComboText(coTiDbl, config->readEntry("TitlebarDoubleClickCommand","Shade").ascii()); + setComboText(coTiDbl,config->readEntry("TitlebarDoubleClickCommand","Maximize").ascii()); for (int t = 0; t < 3; ++t) setComboText(coMax[t],config->readEntry(cnf_Max[t], tbl_Max[t]).ascii()); diff --git a/kwin/options.cpp b/kwin/options.cpp index 690266f..a2742c2 100644 --- a/kwin/options.cpp +++ b/kwin/options.cpp @@ -124,7 +124,7 @@ unsigned long Options::updateSettings() electric_borders = config->readNumEntry("ElectricBorders", 0); electric_border_delay = config->readNumEntry("ElectricBorderDelay", 150); - OpTitlebarDblClick = windowOperation( config->readEntry("TitlebarDoubleClickCommand", "Shade"), true ); + OpTitlebarDblClick = windowOperation(config->readEntry("TitlebarDoubleClickCommand", "Maximize"), true ); d->OpMaxButtonLeftClick = windowOperation( config->readEntry("MaximizeButtonLeftClickCommand", "Maximize"), true ); d->OpMaxButtonMiddleClick = windowOperation( config->readEntry("MaximizeButtonMiddleClickCommand", "Maximize (vertical only)"), true ); d->OpMaxButtonRightClick = windowOperation( config->readEntry("MaximizeButtonRightClickCommand", "Maximize (horizontal only)"), true ); -- 1.6.1 ++++++ kdebase-pardus-exclude-proc-sys-from-search.patch ++++++ >From 5d1fa1f0676d795488af6442de919c0913d4d804 Mon Sep 17 00:00:00 2001 From: =?utf-8?q?Ozan=20=C3=87a=C4=9Flayan?= <[email protected]> Date: Fri, 24 Jun 2011 09:43:25 +0000 Subject: [PATCH] kfind: Don't search /proc, /sys and /dev --- kfind/kquery.cpp | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/kfind/kquery.cpp b/kfind/kquery.cpp index 5d5446f..cf58eaa 100644 --- a/kfind/kquery.cpp +++ b/kfind/kquery.cpp @@ -252,7 +252,7 @@ void KQuery::processQuery( KFileItem* file) bool foundmeta=false; QString filename = file->url().path(); - if(filename.startsWith("/dev/")) + if(filename.startsWith("/dev/") || filename.startsWith("/proc/") || filename.startsWith("/sys/")) return; KFileMetaInfo metadatas(filename); -- 1.6.1 ++++++ kdebase-pardus-hal-add-user-mount.patch ++++++ diff -wruN kdebase-3.5.10.orig/kioslave/media/mediamanager/halbackend.cpp kdebase-3.5.10/kioslave/media/mediamanager/halbackend.cpp --- kdebase-3.5.10.orig/kioslave/media/mediamanager/halbackend.cpp 2008-08-19 22:16:59.000000000 +0400 +++ kdebase-3.5.10/kioslave/media/mediamanager/halbackend.cpp 2011-11-25 20:16:04.368253552 +0400 @@ -20,6 +20,7 @@ #include "linuxcdpolling.h" #include <stdlib.h> +#include <locale.h> #include <kapplication.h> #include <qeventloop.h> @@ -34,6 +35,8 @@ #include <kmessagebox.h> #include <kio/job.h> #include <kprotocolinfo.h> +#include <kstandarddirs.h> +#include <kprocess.h> #define MOUNT_SUFFIX (libhal_volume_is_mounted(halVolume) ? QString("_mounted") : QString("_unmounted")) #define MOUNT_ICON_SUFFIX (libhal_volume_is_mounted(halVolume) ? QString("_mount") : QString("_unmount")) @@ -958,6 +961,94 @@ return true; } +static QString startKdeSuProcess(const QString& kdesuPath, const QString& command) +{ + KProcess kdesuProcess; + + kdesuProcess << kdesuPath + << "-d" + << "--noignorebutton" + << "-i" + << "hdd_mount" + << "-c" << command; + + // @todo handle kdesu output + kdesuProcess.start(KProcess::Block); + + return QString(); +} + +static QString startPrivilegedProcess(const QString& command) +{ + QString error; + + QString kdesuPath = KStandardDirs::findExe("kdesu"); + + if (kdesuPath.isEmpty()) + error = QString::fromLatin1("kdesu not found"); + else + error = startKdeSuProcess(kdesuPath, command); + + return error; +} + +static QString privilegedMount(const char* udi, const char* mountPoint, const char** options, int numberOfOptions) +{ + QString error; + + kdDebug() << "run privileged mount for " << udi << endl; + + QString dbusSendPath = KStandardDirs::findExe("dbus-send"); + + // @todo return error message + if (dbusSendPath.isEmpty()) + return QString::fromLatin1("dbus-send not found"); + + QString mountOptions; + QTextOStream optionsStream(&mountOptions); + for (int optionIndex = 0; optionIndex < numberOfOptions; optionIndex++) { + optionsStream << options[optionIndex]; + if (optionIndex < numberOfOptions - 1) + optionsStream << ","; + } + + QString command; + QTextOStream(&command) << dbusSendPath + << " --system --print-reply --dest=org.freedesktop.Hal " << udi + << " org.freedesktop.Hal.Device.Volume.Mount string:" << mountPoint + << " string: array:string:" << mountOptions; + + kdDebug() << "command: " << command << endl; + + error = startPrivilegedProcess(command); + + return error; +} + +static QString privilegedUnmount(const char* udi) +{ + QString error; + + kdDebug() << "run privileged unmount for " << udi << endl; + + QString dbusSendPath = KStandardDirs::findExe("dbus-send"); + + // @todo return error message + if (dbusSendPath.isEmpty()) + return QString(); + + QString command; + QTextOStream(&command) << dbusSendPath + << " --system --print-reply --dest=org.freedesktop.Hal " << udi + << " org.freedesktop.Hal.Device.Volume.Unmount array:string:force"; + + kdDebug() << "command: " << command << endl; + + error = startPrivilegedProcess(command); + + return error; +} + static QString mount_priv(const char *udi, const char *mount_point, const char **poptions, int noptions, DBusConnection *dbus_connection) { @@ -992,6 +1083,8 @@ qerror = i18n("Invalid filesystem type"); else if ( !strcmp(error.name, "org.freedesktop.Hal.Device.Volume.PermissionDenied")) qerror = i18n("Permissions denied"); + else if ( !strcmp(error.name, "org.freedesktop.Hal.Device.PermissionDeniedByPolicy")) + qerror = privilegedMount(udi, mount_point, poptions, noptions); else if ( !strcmp(error.name, "org.freedesktop.Hal.Device.Volume.AlreadyMounted")) qerror = i18n("Device is already mounted."); else if ( !strcmp(error.name, "org.freedesktop.Hal.Device.Volume.InvalidMountpoint") && strlen(mount_point)) { @@ -1148,7 +1241,7 @@ if (valids["flush"] == "true") soptions << "flush"; - if (valids["uid"] == "true") + if ((valids["uid"] == "true") && (medium->fsType() == "vfat" || medium->fsType() == "iso9660" || medium->fsType() == "hfs" || medium->fsType() == "udf")) { soptions << QString("uid=%1").arg(getuid()); } @@ -1301,6 +1394,18 @@ { QString qerror, reason; + if (!strcmp(error.name, "org.freedesktop.Hal.Device.PermissionDeniedByPolicy")) { + qerror = privilegedUnmount(udi); + + if (qerror.isEmpty()) { + dbus_message_unref(dmesg); + dbus_error_free(&error); + return QString(); + } + + // @todo handle unmount error message + } + kdDebug() << "unmount failed for " << udi << ": " << error.name << " " << error.message << endl; qerror = "<qt>"; qerror += "<p>" + i18n("Unfortunately, the device <b>%1</b> (%2) named <b>'%3'</b> and " ++++++ kdebase-pardus-window-list-fix.patch ++++++ >From 7902c0c8a09abcdc0904fe352b30e352a404ebd5 Mon Sep 17 00:00:00 2001 From: =?utf-8?q?Ozan=20=C3=87a=C4=9Flayan?= <[email protected]> Date: Fri, 24 Jun 2011 09:37:32 +0000 Subject: [PATCH] kicker: windowlistbutton fix --- kicker/kicker/buttons/windowlistbutton.cpp | 17 +++++++++++++++++ kicker/kicker/buttons/windowlistbutton.h | 9 +++++++++ kicker/libkicker/panelbutton.cpp | 8 ++++++++ kicker/libkicker/panelbutton.h | 1 + 4 files changed, 35 insertions(+), 0 deletions(-) diff --git a/kicker/kicker/buttons/windowlistbutton.cpp b/kicker/kicker/buttons/windowlistbutton.cpp index 8a60ca5..0e7db23 100644 --- a/kicker/kicker/buttons/windowlistbutton.cpp +++ b/kicker/kicker/buttons/windowlistbutton.cpp @@ -25,6 +25,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include <kwindowlistmenu.h> #include <klocale.h> +#include <kwinmodule.h> #include "windowlistbutton.h" #include "windowlistbutton.moc" @@ -39,9 +40,25 @@ WindowListButton::WindowListButton( QWidget* parent ) setTitle(i18n("Window List")); QToolTip::add(this, i18n("Window list")); setIcon("window_list"); + + m_winModule = new KWinModule(); + + connect( m_winModule, SIGNAL(activeWindowChanged(WId)), + this, SLOT(activeWindowChanged(WId)) ); } void WindowListButton::initPopup() { topMenu->init(); } + +void WindowListButton::activeWindowChanged( WId win ) +{ + int size = preferredIconSize(); + QImage img (KWin::icon( win ).convertToImage()); + img = img.smoothScale( size, size ); + + QPixmap pix( img ); + setIcon( pix ); +} + diff --git a/kicker/kicker/buttons/windowlistbutton.h b/kicker/kicker/buttons/windowlistbutton.h index 23dc26c..ed83f8e 100644 --- a/kicker/kicker/buttons/windowlistbutton.h +++ b/kicker/kicker/buttons/windowlistbutton.h @@ -25,8 +25,10 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define __windowlistbutton_h__ #include "panelbutton.h" +#include "kwin.h" class KWindowListMenu; +class KWinModule; /** * Button that contains a windowlist menu @@ -38,11 +40,18 @@ class WindowListButton : public PanelPopupButton public: WindowListButton( QWidget* parent ); +protected slots: + void activeWindowChanged( WId win ); + protected: virtual QString tileName() { return "WindowList"; } virtual void initPopup(); KWindowListMenu* topMenu; + +private: + KWinModule* m_winModule; + }; #endif diff --git a/kicker/libkicker/panelbutton.cpp b/kicker/libkicker/panelbutton.cpp index bf47e09..2de4ad4 100644 --- a/kicker/libkicker/panelbutton.cpp +++ b/kicker/libkicker/panelbutton.cpp @@ -343,6 +343,14 @@ void PanelButton::setIcon(const QString& icon) emit iconChanged(); } +void PanelButton::setIcon(const QPixmap& pix) +{ + m_icon = pix; + m_iconh = pix; + m_iconz = pix; + update(); +} + QString PanelButton::icon() const { return m_iconName; diff --git a/kicker/libkicker/panelbutton.h b/kicker/libkicker/panelbutton.h index c32cc7a..7325711 100644 --- a/kicker/libkicker/panelbutton.h +++ b/kicker/libkicker/panelbutton.h @@ -131,6 +131,7 @@ public: * @param icon the path to the button's icon */ void setIcon(const QString& icon); + void setIcon(const QPixmap&); /** * @return the button's icon -- 1.6.1 ++++++ kdebase-trinity-add-smooth-scrolling-option-r1260417.diff ++++++ Index: kdebase/kcontrol/konqhtml/htmlopts.h =================================================================== --- kdebase/kcontrol/konqhtml/htmlopts.h (revision 1260416) +++ kdebase/kcontrol/konqhtml/htmlopts.h (revision 1260417) @@ -20,6 +20,7 @@ // Change cursor over links // Underline links // AutoLoad Images +// Smooth Scrolling // ... there is room for others :)) @@ -51,6 +52,7 @@ QComboBox* m_pUnderlineCombo; QComboBox* m_pAnimationsCombo; + QComboBox* m_pSmoothScrollingCombo; QCheckBox* m_cbCursor; QCheckBox* m_pAutoLoadImagesCheckBox; QCheckBox* m_pUnfinishedImageFrameCheckBox; Index: kdebase/kcontrol/konqhtml/htmlopts.cpp =================================================================== --- kdebase/kcontrol/konqhtml/htmlopts.cpp (revision 1260416) +++ kdebase/kcontrol/konqhtml/htmlopts.cpp (revision 1260417) @@ -29,6 +29,7 @@ enum UnderlineLinkType { UnderlineAlways=0, UnderlineNever=1, UnderlineHover=2 }; enum AnimationsType { AnimationsAlways=0, AnimationsNever=1, AnimationsLoopOnce=2 }; +enum SmoothScrollingType { SmoothScrollingAlways=0, SmoothScrollingNever=1, SmoothScrollingWhenEfficient=2 }; //----------------------------------------------------------------------------- KMiscHTMLOptions::KMiscHTMLOptions(KConfig *config, QString group, QWidget *parent, const char *) @@ -187,11 +188,30 @@ whatsThis = i18n("Controls how Konqueror shows animated images:<br>" "<ul><li><b>Enabled</b>: Show all animations completely.</li>" "<li><b>Disabled</b>: Never show animations, show the start image only.</li>" - "<li><b>Show only once</b>: Show all animations completely but do not repeat them.</li>"); + "<li><b>Show only once</b>: Show all animations completely but do not repeat them.</li></ul>"); QWhatsThis::add( label, whatsThis); QWhatsThis::add( m_pAnimationsCombo, whatsThis); connect(m_pAnimationsCombo, SIGNAL(activated(int)), SLOT(slotChanged())); + label = new QLabel( i18n("Sm&ooth scrolling"), this); + m_pSmoothScrollingCombo = new QComboBox( false, this ); + label->setBuddy(m_pSmoothScrollingCombo); + m_pSmoothScrollingCombo->insertItem(i18n("SmoothScrolling","Enabled"), SmoothScrollingAlways); + m_pSmoothScrollingCombo->insertItem(i18n("SmoothScrolling","Disabled"), SmoothScrollingNever); + // not implemented: m_pSmoothScrollingCombo->insertItem(i18n("SmoothScrolling","WhenEfficient"), SmoothScrollingWhenEfficient); + lay->addWidget(label, row, 0); + lay->addWidget(m_pSmoothScrollingCombo, row, 1); + row++; + whatsThis = i18n("Determines whether Konqueror should use smooth steps to scroll HTML pages, or whole steps:<br>" + "<ul><li><b>Always</b>: Always use smooth steps when scrolling.</li>" + "<li><b>Never</b>: Never use smooth scrolling, scroll with whole steps instead.</li>" + // not implemented: "<li><b>When Efficient</b>: Only use smooth scrolling on pages where it can be achieved with moderate usage of system resources.</li>" + "</ul>"); + QWhatsThis::add( label, whatsThis); + QWhatsThis::add( m_pSmoothScrollingCombo, whatsThis); + connect(m_pSmoothScrollingCombo, SIGNAL(activated(int)), SLOT(slotChanged())); + + lay->setRowStretch(row, 1); load(); @@ -276,6 +296,15 @@ m_pAdvancedAddBookmarkCheckBox->setChecked( config.readBoolEntry("AdvancedAddBookmarkDialog", false) ); m_pOnlyMarkedBookmarksCheckBox->setChecked( config.readBoolEntry("FilteredToolbar", false) ); + KConfig kdeglobals("kdeglobals", true, false); + kdeglobals.setReadDefaults( useDefaults ); + kdeglobals.setGroup("KDE"); + bool smoothScrolling = kdeglobals.readBoolEntry("SmoothScroll", DEFAULT_SMOOTHSCROLL); + if (smoothScrolling) + m_pSmoothScrollingCombo->setCurrentItem( SmoothScrollingAlways ); + else + m_pSmoothScrollingCombo->setCurrentItem( SmoothScrollingNever ); + emit changed( useDefaults ); #undef READ_ENTRY @@ -340,6 +369,22 @@ config.writeEntry("FilteredToolbar", m_pOnlyMarkedBookmarksCheckBox->isChecked()); config.sync(); + KConfig kdeglobals("kdeglobals", false, false); + kdeglobals.setGroup("KDE"); + switch(m_pSmoothScrollingCombo->currentItem()) + { + case SmoothScrollingAlways: + kdeglobals.writeEntry( "SmoothScroll", true ); + break; + case SmoothScrollingNever: + kdeglobals.writeEntry( "SmoothScroll", false ); + break; + // case SmoothScrollingWhenEfficient: + // kdeglobals.writeEntry( "SmoothScroll", somethingelse ); + // break; + } + kdeglobals.sync(); + QByteArray data; if ( !kapp->dcopClient()->isAttached() ) kapp->dcopClient()->attach(); Index: kdebase/libkonq/konq_defaults.h =================================================================== --- kdebase/libkonq/konq_defaults.h (revision 1260416) +++ kdebase/libkonq/konq_defaults.h (revision 1260417) @@ -24,6 +24,7 @@ // appearance tab #define DEFAULT_UNDERLINELINKS false +#define DEFAULT_SMOOTHSCROLL false #define DEFAULT_WORDWRAPTEXT true // kfm-like, sorry Reggie :-) #define DEFAULT_TEXTHEIGHT 2 #define DEFAULT_TEXTWIDTH 0 // 0 = automatic (font depending) -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
