Hello community, here is the log from the commit of package filelight for openSUSE:Factory checked in at 2013-07-08 07:31:35 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/filelight (Old) and /work/SRC/openSUSE:Factory/.filelight.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "filelight" Changes: -------- --- /work/SRC/openSUSE:Factory/filelight/filelight.changes 2013-06-11 09:27:00.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.filelight.new/filelight.changes 2013-07-08 07:31:50.000000000 +0200 @@ -1,0 +2,14 @@ +Thu Jun 27 18:22:57 UTC 2013 - [email protected] + +- Update to 4.10.90 + * KDE 4.11 Beta 1 release + * See http://www.kde.org/announcements/announce-4.11-beta2.php + +------------------------------------------------------------------- +Thu Jun 13 19:31:25 UTC 2013 - [email protected] + +- Update to 4.10.80 + * KDE 4.11 Beta 1 release + * See http://www.kde.org/announcements/announce-4.11-beta1.php + +------------------------------------------------------------------- Old: ---- filelight-4.10.4.tar.xz New: ---- filelight-4.10.90.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ filelight.spec ++++++ --- /var/tmp/diff_new_pack.MbevaG/_old 2013-07-08 07:31:51.000000000 +0200 +++ /var/tmp/diff_new_pack.MbevaG/_new 2013-07-08 07:31:51.000000000 +0200 @@ -17,7 +17,7 @@ Name: filelight -Version: 4.10.4 +Version: 4.10.90 Release: 0 Summary: Graphical disk usage viewer License: GPL-2.0 or GPL-3.0 @@ -57,7 +57,7 @@ %_kde4_modulesdir/filelightpart.so %_kde4_applicationsdir/filelight.desktop %_kde4_htmldir/en/filelight/ -%_kde4_iconsdir/hicolor/*/*/*.png +%_kde4_iconsdir/hicolor/*/*/*.* %_kde4_appsdir/filelight/ %_kde4_servicesdir/filelightpart.desktop %_kde4_appsdir/filelightpart/ ++++++ filelight-4.10.4.tar.xz -> filelight-4.10.90.tar.xz ++++++ Files old/filelight-4.10.4/doc/index.cache.bz2 and new/filelight-4.10.90/doc/index.cache.bz2 differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filelight-4.10.4/doc/index.docbook new/filelight-4.10.90/doc/index.docbook --- old/filelight-4.10.4/doc/index.docbook 2013-05-28 21:29:42.000000000 +0200 +++ new/filelight-4.10.90/doc/index.docbook 2013-06-10 20:53:41.000000000 +0200 @@ -28,8 +28,8 @@ <copyright><year>2009</year><holder>Martin Sandsmark</holder></copyright> <!-- Translators: put here the copyright notice of the translation --> <legalnotice>&FDLNotice;</legalnotice> - <date>2010-11-04</date> - <releaseinfo>1.9 (&kde; 4.6)</releaseinfo> + <date>2013-05-25</date> + <releaseinfo>1.20 (&kde; 4.11)</releaseinfo> <abstract><para>&filelight; creates an interactive map of concentric segmented-rings that helps visualize disk usage on your computer.</para></abstract> <!-- These may be used by search engines --> <keywordset> @@ -44,7 +44,7 @@ <chapter id="introduction"> <title>Introduction</title> <screenshot> - <screeninfo>&filelight; 1.9 Screenshot</screeninfo> + <screeninfo>&filelight; 1.20 Screenshot</screeninfo> <mediaobject> <imageobject><imagedata fileref="radial_map.png" format="PNG"/></imageobject> <textobject><phrase>Screenshot</phrase></textobject> @@ -173,7 +173,7 @@ </menuchoice></term> <listitem><para><action>Offers a folder selection dialog so you can choose a folder to scan.</action></para></listitem> </varlistentry> -<!-- shortcut not visible in the menu, why?--> +<!--FIXME shortcut not visible in the menu, why?--> <varlistentry> <term><menuchoice> <shortcut> @@ -193,7 +193,7 @@ <listitem><para><action>Starts a scan of the root folder.</action></para></listitem> </varlistentry> -<!--not in 4.6 +<!--not in 4.11 varlistentry> <term><menuchoice> <guimenu>Scan</guimenu> @@ -305,47 +305,11 @@ </variablelist> -<variablelist> -<title>The Settings Menu</title> - -<varlistentry> -<term><menuchoice> -<guimenu>Settings</guimenu> -<guisubmenu>Toolbars Shown</guisubmenu> -</menuchoice></term> -<listitem><para><action>Enables or disable the <guimenuitem>Main Toolbar</guimenuitem>, -<guimenuitem>Location Toolbar</guimenuitem> or <guimenuitem>View Toolbar</guimenuitem>.</action></para></listitem> -</varlistentry> - -<varlistentry> -<term><menuchoice> -<guimenu>Settings</guimenu> -<guimenuitem>Configure Shortcuts...</guimenuitem> -</menuchoice></term> -<listitem><para><action>Allows you to configure the &filelight; shortcuts.</action></para></listitem> -</varlistentry> - -<varlistentry> -<term><menuchoice> -<guimenu>Settings</guimenu> -<guimenuitem>Configure Toolbars...</guimenuitem> -</menuchoice></term> -<listitem><para><action>Allows you to configure and edit the &filelight; toolbar.</action></para></listitem> -</varlistentry> - -<varlistentry> -<term><menuchoice> -<guimenu>Settings</guimenu> -<guimenuitem>Configure Filelight...</guimenuitem> -</menuchoice></term> -<listitem><para><action>Starts the Configure &filelight; dialog.</action></para></listitem> -</varlistentry> - -</variablelist> - -<para>The Help Menu</para> - -&help.menu.documentation; +<para>Additionally &filelight; has the common &kde; <guimenu>Settings</guimenu> and <guimenu>Help</guimenu> +menu items, for more information read the sections about the <ulink url="help:/fundamentals/ui.html#menus-settings" +>Settings Menu</ulink> and <ulink url="help:/fundamentals/ui.html#menus-help">Help Menu</ulink> +of the &kde; Fundamentals. +</para> </chapter> @@ -353,8 +317,8 @@ <title>Credits and License</title> <sect1 id="kapp"> <title>&filelight;</title> - <para>Program copyright 2003 Max B. Howell <email>[email protected]</email></para> - <para>Program copyright 2009 Martin Sandsmark <email>[email protected]</email></para> + <para>Program copyright 2006 Max B. Howell <email>[email protected]</email></para> + <para>Program copyright 2008-2013 Martin Sandsmark <email>[email protected]</email></para> &underGPL; </sect1> <sect1 id="Documentation"> Files old/filelight-4.10.4/misc/hi16-app-filelight.png and new/filelight-4.10.90/misc/hi16-app-filelight.png differ Files old/filelight-4.10.4/misc/hi22-app-filelight.png and new/filelight-4.10.90/misc/hi22-app-filelight.png differ Files old/filelight-4.10.4/misc/hi32-app-filelight.png and new/filelight-4.10.90/misc/hi32-app-filelight.png differ Files old/filelight-4.10.4/misc/hi48-app-filelight.png and new/filelight-4.10.90/misc/hi48-app-filelight.png differ Files old/filelight-4.10.4/misc/hi64-app-filelight.png and new/filelight-4.10.90/misc/hi64-app-filelight.png differ Files old/filelight-4.10.4/misc/hisc-apps-filelight.svgz and new/filelight-4.10.90/misc/hisc-apps-filelight.svgz differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filelight-4.10.4/src/app/CMakeLists.txt new/filelight-4.10.90/src/app/CMakeLists.txt --- old/filelight-4.10.4/src/app/CMakeLists.txt 2013-05-30 23:48:03.000000000 +0200 +++ new/filelight-4.10.90/src/app/CMakeLists.txt 2013-06-10 20:53:41.000000000 +0200 @@ -20,8 +20,6 @@ set(filelight_SRCS historyAction.cpp mainWindow.cpp main.cpp) -kde4_add_app_icon(filelight_SRCS "../../misc/hi*-app-filelight.png") - kde4_add_executable(filelight ${filelight_SRCS}) target_link_libraries(filelight ${KDE4_KDECORE_LIBS} ${KDE4_KPARTS_LIBS} ${KDE4_KDEUI_LIBS}) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filelight-4.10.4/src/app/main.cpp new/filelight-4.10.90/src/app/main.cpp --- old/filelight-4.10.4/src/app/main.cpp 2013-05-28 21:29:42.000000000 +0200 +++ new/filelight-4.10.90/src/app/main.cpp 2013-06-10 20:53:41.000000000 +0200 @@ -31,11 +31,12 @@ static KAboutData about( APP_NAME, 0, - ki18n("Filelight"), + ki18n(APP_PRETTYNAME), APP_VERSION, ki18n("Graphical disk-usage information"), - KAboutData::License_GPL_V3, - ki18n("(C) 2006 Max Howell\n(C) 2008, 2009 Martin Sandsmark"), + KAboutData::License_GPL, + ki18n("(C) 2006 Max Howell\n\ + (C) 2008-2013 Martin Sandsmark"), KLocalizedString(), "http://utils.kde.org/projects/filelight"); @@ -49,11 +50,13 @@ about.addCredit(ki18n("Lukas Appelhans"), ki18n("Help and support")); about.addCredit(ki18n("Steffen Gerlach"), ki18n("Inspiration"), 0, "http://www.steffengerlach.de/"); about.addCredit(ki18n("Mike Diehl"), ki18n("Original documentation"), 0, 0); + about.addCredit(ki18n("Sune Vuorela"), ki18n("Icon"), 0, 0); + about.addCredit(ki18n("Nuno Pinheiro"), ki18n("Icon"), 0, 0); KCmdLineArgs::init(argc, argv, &about); KCmdLineOptions options; - KLocale *tmpLocale = new KLocale(QLatin1String("filelight")); + KLocale *tmpLocale = new KLocale(QLatin1String(APP_NAME)); options.add(ki18nc("Path in the file system to scan", "+[path]").toString(tmpLocale).toLocal8Bit(), ki18n("Scan 'path'")); delete tmpLocale; KCmdLineArgs::addCmdLineOptions(options); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filelight-4.10.4/src/define.h new/filelight-4.10.90/src/define.h --- old/filelight-4.10.4/src/define.h 2013-05-28 21:29:42.000000000 +0200 +++ new/filelight-4.10.90/src/define.h 2013-06-10 20:53:41.000000000 +0200 @@ -1,6 +1,6 @@ /*********************************************************************** * Copyright 2003-2004 Max Howell <[email protected]> -* Copyright 2008-2009 Martin Sandsmark <[email protected]> +* Copyright 2008-2013 Martin Sandsmark <[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 @@ -30,7 +30,7 @@ #undef PRETTYNAME #define APP_NAME "filelight" -#define APP_VERSION "1.13" +#define APP_VERSION "1.20" #define APP_PRETTYNAME "Filelight" #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filelight-4.10.4/src/part/part.cpp new/filelight-4.10.90/src/part/part.cpp --- old/filelight-4.10.4/src/part/part.cpp 2013-05-28 21:29:42.000000000 +0200 +++ new/filelight-4.10.90/src/part/part.cpp 2013-06-10 20:53:41.000000000 +0200 @@ -1,6 +1,6 @@ /*********************************************************************** * Copyright 2003-2004 Max Howell <[email protected]> -* Copyright 2008-2009 Martin Sandsmark <[email protected]> +* Copyright 2008-2013 Martin Sandsmark <[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 @@ -54,17 +54,17 @@ K_EXPORT_PLUGIN(filelightPartFactory(KAboutData( "filelightpart", 0, - ki18n("Filelight"), + ki18n(APP_PRETTYNAME), APP_VERSION, ki18n("Displays file usage in an easy to understand way."), KAboutData::License_GPL, ki18n("(c) 2002-2004 Max Howell\n\ - (c) 2008-2009 Martin T. Sandsmark"), + (c) 2008-2013 Martin T. Sandsmark"), KLocalizedString(), "http://utils.kde.org/projects/filelight", "[email protected]"). - setProgramIconName(QLatin1String( "filelight" )). - setCatalogName( "filelight" ))) + setProgramIconName(QLatin1String(APP_NAME)). + setCatalogName(APP_NAME))) BrowserExtension::BrowserExtension(Part *parent) : KParts::BrowserExtension(parent) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filelight-4.10.4/src/part/part.h new/filelight-4.10.90/src/part/part.h --- old/filelight-4.10.4/src/part/part.h 2013-05-28 21:29:42.000000000 +0200 +++ new/filelight-4.10.90/src/part/part.h 2013-06-10 20:53:41.000000000 +0200 @@ -43,7 +43,7 @@ class BrowserExtension : public KParts::BrowserExtension { public: - BrowserExtension(Part*); + explicit BrowserExtension(Part*); }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filelight-4.10.4/src/part/progressBox.cpp new/filelight-4.10.90/src/part/progressBox.cpp --- old/filelight-4.10.4/src/part/progressBox.cpp 2013-05-28 21:29:42.000000000 +0200 +++ new/filelight-4.10.90/src/part/progressBox.cpp 2013-06-10 20:53:41.000000000 +0200 @@ -29,22 +29,26 @@ #include <KLocale> #include <QtGui/QLabel> +#include <QPainter> +#include <QtCore/QDebug> + +#include <math.h> ProgressBox::ProgressBox(QWidget *parent, QObject *part, Filelight::ScanManager *m) - : QLabel(parent) + : QWidget(parent) , m_manager(m) { hide(); setObjectName(QLatin1String( "ProgressBox" )); - setAlignment(Qt::AlignCenter); setFont(KGlobalSettings::fixedFont()); setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed); setText(999999); - setMinimumWidth(sizeHint().width()); + setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + setMinimumSize(200, 200); connect(&m_timer, SIGNAL(timeout()), SLOT(report())); connect(part, SIGNAL(started(KIO::Job*)), SLOT(start())); @@ -64,6 +68,7 @@ ProgressBox::report() //slot { setText(m_manager->files()); + repaint(); } void @@ -83,7 +88,41 @@ void ProgressBox::setText(int files) { - QLabel::setText(i18np("%1 File", "%1 Files", files)); + m_text = i18np("%1 File", "%1 Files", files); + m_textWidth = fontMetrics().width(m_text); + m_textHeight = fontMetrics().height(); +} + +static const int pieces = 4; +static const float angleFactor[] = { -0.75, 0.5, 1.0, -0.3 }; +static const int length[] = { 30, 40, 50, 60 }; +static const int angleOffset[] = { 5760, 0, 0, -5760 }; +static const int aLength[] = { 300, 2000, 200, 2000 }; + +void ProgressBox::paintEvent(QPaintEvent*) +{ + QPainter paint(this); + paint.setRenderHint(QPainter::Antialiasing); + static int tick = 0; + tick+=16; + + for (int i=0; i<pieces; i++) { + const QRect rect(length[i]/2, length[i]/2, 200- length[i], 200-length[i]); + int angle = angleFactor[i] + tick*angleFactor[i]; + QRadialGradient gradient(rect.center(), sin(angle/160.0f) * 100); + gradient.setColorAt(0, QColor::fromHsv(abs(angle/16) % 360 , 160, 255)); + gradient.setColorAt(1, QColor::fromHsv(abs(angle/16) % 360 , 160, 128)); + QBrush brush(gradient); + paint.setBrush(brush); + paint.drawPie(QRect(rect), angle, aLength[i]); + } + + paint.setBrush(QColor(255,255,255,200)); + paint.translate(0.5, 0.5); + paint.drawRoundedRect(95-m_textWidth/2, 85, m_textWidth+10, m_textHeight+10, 5, 5); + paint.translate(-0.5, -0.5); + paint.drawText(100 - m_textWidth/2, 100, m_text); } + #include "progressBox.moc" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filelight-4.10.4/src/part/progressBox.h new/filelight-4.10.90/src/part/progressBox.h --- old/filelight-4.10.4/src/part/progressBox.h 2013-05-28 21:29:42.000000000 +0200 +++ new/filelight-4.10.90/src/part/progressBox.h 2013-06-10 20:53:41.000000000 +0200 @@ -29,7 +29,7 @@ class ScanManager; } -class ProgressBox : public QLabel +class ProgressBox : public QWidget { Q_OBJECT @@ -44,9 +44,15 @@ void stop(); void halt(); +protected: + void paintEvent(QPaintEvent *event); + private: QTimer m_timer; Filelight::ScanManager* m_manager; + QString m_text; + int m_textWidth; + int m_textHeight; }; #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filelight-4.10.4/src/part/radialMap/CMakeLists.txt new/filelight-4.10.90/src/part/radialMap/CMakeLists.txt --- old/filelight-4.10.4/src/part/radialMap/CMakeLists.txt 2013-05-28 21:29:42.000000000 +0200 +++ new/filelight-4.10.90/src/part/radialMap/CMakeLists.txt 2013-06-10 20:53:41.000000000 +0200 @@ -23,8 +23,7 @@ builder.cpp map.cpp widgetEvents.cpp - labels.cpp - segmentTip.cpp) + labels.cpp) kde4_add_library(radialmap STATIC ${radialmap_STAT_SRCS} ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filelight-4.10.4/src/part/radialMap/labels.cpp new/filelight-4.10.90/src/part/radialMap/labels.cpp --- old/filelight-4.10.4/src/part/radialMap/labels.cpp 2013-05-28 21:29:42.000000000 +0200 +++ new/filelight-4.10.90/src/part/radialMap/labels.cpp 2013-06-10 20:53:41.000000000 +0200 @@ -140,7 +140,7 @@ while (pos < list.size() - 1) { if (list[pos]->tooClose(list[pos+1]->angle)) - list.removeAt(pos+1); + delete list.takeAt(pos+1); else ++pos; } @@ -315,22 +315,25 @@ //5. Render labels - for (it = list.begin(); it != list.end(); ++it) { + foreach (Label *label, list) { if (varySizes) { //**** how much overhead in making new QFont each time? // (implicate sharing remember) QFont font = paint.font(); - font.setPointSize(sizes[(*it)->lvl]); + font.setPointSize(sizes[label->lvl]); paint.setFont(font); } - paint.drawEllipse((*it)->x1 - 3, (*it)->y1 - 3, 6, 6); //**** CPU intensive! better to use a pixmap - paint.drawLine((*it)->x1, (*it)->y1, (*it)->x2, (*it)->y2); - paint.drawLine((*it)->x2, (*it)->y2, (*it)->x3, (*it)->y2); + paint.drawEllipse(label->x1 - 3, label->y1 - 3, 6, 6); //**** CPU intensive! better to use a pixmap + paint.drawLine(label->x1, label->y1, label->x2, label->y2); + paint.drawLine(label->x2, label->y2, label->x3, label->y2); - paint.drawText((*it)->tx, (*it)->ty, (*it)->qs); + paint.drawText(label->tx, label->ty, label->qs); } + foreach(Label *label, list) { + delete label; + } delete [] sizes; } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filelight-4.10.4/src/part/radialMap/map.cpp new/filelight-4.10.90/src/part/radialMap/map.cpp --- old/filelight-4.10.4/src/part/radialMap/map.cpp 2013-05-28 21:29:42.000000000 +0200 +++ new/filelight-4.10.90/src/part/radialMap/map.cpp 2013-06-10 20:53:41.000000000 +0200 @@ -299,7 +299,7 @@ { int width = rect.width() / 2; //clever geometric trick to find largest angle that will give biggest arrow head - int a_max = int(acos((double)width / double((width + 5))) * (180*16 / M_PI)); + uint a_max = int(acos((double)width / double((width + 5))) * (180*16 / M_PI)); for (ConstIterator<Segment> it = m_signature[x].constIterator(); it != m_signature[x].end(); ++it) { @@ -313,7 +313,7 @@ //draw arrow head to indicate undisplayed files/directories QPolygon pts(3); QPoint pos, cpos = rect.center(); - int a[3] = { (*it)->start(), (*it)->length(), 0 }; + uint a[3] = { (*it)->start(), (*it)->length(), 0 }; a[2] = a[0] + (a[1] / 2); //assign to halfway between if (a[1] > a_max) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filelight-4.10.4/src/part/radialMap/map.h new/filelight-4.10.90/src/part/radialMap/map.h --- old/filelight-4.10.4/src/part/radialMap/map.h 2013-05-28 21:29:42.000000000 +0200 +++ new/filelight-4.10.90/src/part/radialMap/map.h 2013-06-10 20:53:41.000000000 +0200 @@ -36,7 +36,7 @@ class Map { public: - Map(bool summary); + explicit Map(bool summary); ~Map(); void make(const Folder *, bool = false); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filelight-4.10.4/src/part/radialMap/segmentTip.cpp new/filelight-4.10.90/src/part/radialMap/segmentTip.cpp --- old/filelight-4.10.4/src/part/radialMap/segmentTip.cpp 2013-05-28 21:29:42.000000000 +0200 +++ new/filelight-4.10.90/src/part/radialMap/segmentTip.cpp 1970-01-01 01:00:00.000000000 +0100 @@ -1,161 +0,0 @@ -/*********************************************************************** -* Copyright 2003-2004 Max Howell <[email protected]> -* Copyright 2008-2009 Martin Sandsmark <[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) version 3 or any later version -* accepted by the membership of KDE e.V. (or its successor approved -* by the membership of KDE e.V.), which shall act as a proxy -* defined in Section 14 of version 3 of the license. -* -* 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, see <http://www.gnu.org/licenses/>. -***********************************************************************/ - -#include "segmentTip.h" - -#include "part/fileTree.h" -#include "part/Config.h" - -#include <KApplication> //installing eventFilters -#include <KGlobal> -#include <KLocale> -#include <KWindowSystem> - -#include <QtGui/QPainter> -#include <QtGui/QToolTip> - -#include <cstdlib> - -namespace RadialMap { - -SegmentTip::SegmentTip(uint h) - : QWidget(0, Qt::FramelessWindowHint | Qt::Tool | Qt::WindowStaysOnTopHint | Qt::X11BypassWindowManagerHint) - , m_cursorHeight(-h) -{ -#if QT_VERSION >= 0x040500 - setAttribute(Qt::WA_TranslucentBackground); -#endif -} - -void -SegmentTip::moveTo(QPoint p, bool placeAbove) -{ - //**** this function is very slow and seems to be visibly influenced by operations like mapFromGlobal() (who knows why!) - // ** so any improvements are much desired - - //TODO uints could improve the class - p.rx() -= rect().center().x(); - p.ry() -= (placeAbove ? 8 + height() : m_cursorHeight - 8); - - const int x = p.x(); - const int y = p.y(); - - move(x, y); - show(); -} - -void -SegmentTip::updateTip(const File* const file, const Folder* const root) -{ - const QString s1 = file->fullPath(root); - QString s2 = file->humanReadableSize(); - KLocale *loc = KGlobal::locale(); - const uint MARGIN = 3; - const uint pc = 100 * file->size() / root->size(); - uint maxw = 0; - uint h = fontMetrics().height()*2 + 2*MARGIN; - - if (pc > 0) s2 += QString(QLatin1String( " (%1%)" )).arg(loc->formatNumber(pc, 0)); - - m_text = s1; - m_text += QLatin1Char( '\n' ); - m_text += s2; - - if (file->isFolder()) - { - int files = static_cast<const Folder*>(file)->children(); - const uint pc = uint((100 * files) / (double)root->children()); - QString s3 = i18np("File: %1", "Files: %1", files); - - if (pc > 0) s3 += QString(QLatin1String( " (%1%)" )).arg(loc->formatNumber(pc, 0)); - - maxw = fontMetrics().width(s3); - h += fontMetrics().height(); - m_text += QLatin1Char( '\n' ); - m_text += s3; - } - - uint - w = fontMetrics().width(s1); - if (w > maxw) maxw = w; - w = fontMetrics().width(s2); - if (w > maxw) maxw = w; - - resize(maxw + 2 * MARGIN, h); - - // Paint - m_pixmap = QPixmap(size()); - - QColor bg = QToolTip::palette().color(QPalette::Active, QPalette::Background); - const QColor fg = QToolTip::palette().color(QPalette::Active, QPalette::WindowText); - - if (KWindowSystem::compositingActive()) - bg.setAlpha(200); - - m_pixmap.fill(bg); - - QPainter paint(&m_pixmap); - if (Config::antialias) paint.setRenderHint(QPainter::Antialiasing); - - paint.setPen(fg); - paint.drawRect(rect()); - paint.drawText(rect(), Qt::AlignCenter, m_text); - - repaint(); //Bug in Qt? (If we don't change the size of the pixmap, and don't do this, we aren't redrawn) -} - -bool -SegmentTip::eventFilter(QObject*, QEvent *e) -{ - switch (e->type()) - { - case QEvent::Leave: - case QEvent::FocusOut: - case QEvent::Wheel: - hide(); //FALL THROUGH - case QEvent::FocusIn: - case QEvent::KeyPress: - case QEvent::KeyRelease: - default: - return false; //allow this event to passed to target - } -} - -void -SegmentTip::paintEvent(QPaintEvent*) -{ - QPainter(this).drawPixmap(0, 0, m_pixmap); -} - -void -SegmentTip::hideEvent(QHideEvent*) -{ - kapp->removeEventFilter(this); -} - -void -SegmentTip::showEvent(QShowEvent*) -{ - kapp->installEventFilter(this); -} - -} //namespace RadialMap - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filelight-4.10.4/src/part/radialMap/segmentTip.h new/filelight-4.10.90/src/part/radialMap/segmentTip.h --- old/filelight-4.10.4/src/part/radialMap/segmentTip.h 2013-05-28 21:29:42.000000000 +0200 +++ new/filelight-4.10.90/src/part/radialMap/segmentTip.h 1970-01-01 01:00:00.000000000 +0100 @@ -1,55 +0,0 @@ -/*********************************************************************** -* Copyright 2003-2004 Max Howell <[email protected]> -* Copyright 2008-2009 Martin Sandsmark <[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) version 3 or any later version -* accepted by the membership of KDE e.V. (or its successor approved -* by the membership of KDE e.V.), which shall act as a proxy -* defined in Section 14 of version 3 of the license. -* -* 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, see <http://www.gnu.org/licenses/>. -***********************************************************************/ - -#ifndef SEGMENTTIP_H -#define SEGMENTTIP_H - -#include <QtCore/QEvent> -#include <QtGui/QWidget> - -class File; -class Folder; - -namespace RadialMap -{ -class SegmentTip : public QWidget -{ -public: - SegmentTip(uint); - - void updateTip(const File*, const Folder*); - void moveTo(QPoint, bool); - -private: - virtual bool eventFilter(QObject*, QEvent*); - -protected: - void paintEvent(QPaintEvent *event); - void hideEvent(QHideEvent*); - void showEvent(QShowEvent*); - - uint m_cursorHeight; - QPixmap m_pixmap; - QString m_text; -}; -} - -#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filelight-4.10.4/src/part/radialMap/widget.cpp new/filelight-4.10.90/src/part/radialMap/widget.cpp --- old/filelight-4.10.4/src/part/radialMap/widget.cpp 2013-05-28 21:29:42.000000000 +0200 +++ new/filelight-4.10.90/src/part/radialMap/widget.cpp 2013-06-10 20:53:41.000000000 +0200 @@ -48,14 +48,17 @@ setAcceptDrops(true); setMinimumSize(350, 250); - const QBitmap *cursor = QCursor(Qt::PointingHandCursor).bitmap(); - m_tip = new SegmentTip(cursor ? cursor->height() : 16); - connect(this, SIGNAL(created(const Folder*)), SLOT(sendFakeMouseEvent())); connect(this, SIGNAL(created(const Folder*)), SLOT(update())); connect(&m_timer, SIGNAL(timeout()), SLOT(resizeTimeout())); } +RadialMap::Widget::~Widget() +{ + delete m_rootSegment; +} + + QString RadialMap::Widget::path() const { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filelight-4.10.4/src/part/radialMap/widget.h new/filelight-4.10.90/src/part/radialMap/widget.h --- old/filelight-4.10.4/src/part/radialMap/widget.h 2013-05-28 21:29:42.000000000 +0200 +++ new/filelight-4.10.90/src/part/radialMap/widget.h 2013-06-10 20:53:41.000000000 +0200 @@ -30,9 +30,9 @@ #include <QtGui/QMouseEvent> #include <QtGui/QPaintEvent> #include <QtGui/QResizeEvent> +#include <QtGui/QWidget> #include <QtCore/QTimer> -#include "segmentTip.h" #include "map.h" template <class T> class Chain; @@ -53,10 +53,7 @@ public: explicit Widget(QWidget* = 0, bool = false); - ~Widget() { - delete m_tip; - } - + virtual ~Widget(); QString path() const; KUrl url(File const * const = 0) const; @@ -117,7 +114,6 @@ QPoint m_offset; QTimer m_timer; Map m_map; - SegmentTip *m_tip; Segment *m_rootSegment; const bool m_isSummary; const Segment *m_toBeDeleted; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filelight-4.10.4/src/part/radialMap/widgetEvents.cpp new/filelight-4.10.90/src/part/radialMap/widgetEvents.cpp --- old/filelight-4.10.4/src/part/radialMap/widgetEvents.cpp 2013-05-28 21:29:42.000000000 +0200 +++ new/filelight-4.10.90/src/part/radialMap/widgetEvents.cpp 2013-06-10 20:53:41.000000000 +0200 @@ -47,6 +47,7 @@ #include <QtGui/QResizeEvent> #include <QtGui/QMouseEvent> #include <QtGui/QDragEnterEvent> +#include <QtGui/QToolTip> #include <cmath> //::segmentAt() @@ -141,23 +142,39 @@ m_focus = segmentAt(p); //NOTE p is passed by non-const reference - if (m_focus && m_focus->file() != m_tree) + if (m_focus) { if (m_focus != oldFocus) //if not same as last time { setCursor(Qt::PointingHandCursor); - m_tip->updateTip(m_focus->file(), m_tree); + QString string = m_focus->file()->fullPath(m_tree) + + QLatin1Char('\n') + + m_focus->file()->humanReadableSize() + + QLatin1Char('\n'); + + if (m_focus->file()->isFolder()) { + int files = static_cast<const Folder*>(m_focus->file())->children(); + const uint percent = uint((100 * files) / (double)m_tree->children()); + string += i18np("File: %1", "Files: %1", files); + + if (percent > 0) string += QString(QLatin1String( " (%1%)" )).arg(KGlobal::locale()->formatNumber(percent, 0)); + } + + const KUrl url = Widget::url(m_focus->file()); + if (m_focus == m_rootSegment && url != url.upUrl()) { + string += i18n("\nClick to go up to parent directory"); + } + + QToolTip::showText(e->globalPos(), string, this); emit mouseHover(m_focus->file()->fullPath()); update(); } - m_tip->moveTo(e->globalPos(), (p.y() < 0)); } else if (oldFocus && oldFocus->file() != m_tree) { unsetCursor(); - m_tip->hide(); update(); emit mouseHover(QString()); @@ -175,7 +192,9 @@ void RadialMap::Widget::mousePressEvent(QMouseEvent *e) { - //m_tip is hidden already by event filter + if (!isEnabled()) + return; + //m_focus is set correctly (I've been strict, I assure you it is correct!) if (m_focus && !m_focus->isFake()) @@ -245,6 +264,7 @@ job->ui()->setWindow(this); connect(job, SIGNAL(finished(KJob*)), this, SLOT(deleteJobFinished(KJob*))); QApplication::setOverrideCursor(Qt::BusyCursor); + setEnabled(false); } } else { //ensure m_focus is set for new mouse position @@ -256,8 +276,6 @@ section_two: const QRect rect(e->x() - 20, e->y() - 20, 40, 40); - m_tip->hide(); // user expects this - if (!isDir || e->button() == Qt::MidButton) { // KIconEffect::visualActivate(this, rect); // TODO: recreate this new KRun(url, this, true); //FIXME see above @@ -267,7 +285,7 @@ emit activated(url); //activate first, this will cause UI to prepare itself createFromCache((Folder *)m_focus->file()); } - else + else if (url.upUrl() != url) emit giveMeTreeFor(url.upUrl()); } } @@ -276,15 +294,14 @@ void RadialMap::Widget::deleteJobFinished(KJob *job) { QApplication::restoreOverrideCursor(); + setEnabled(true); if (!job->error() && m_toBeDeleted) { m_toBeDeleted->file()->parent()->remove(m_toBeDeleted->file()); delete m_toBeDeleted->file(); + m_toBeDeleted = 0; m_focus = 0; m_map.make(m_tree, true); repaint(); - - //delete m_toBeDeleted->file(); // TODO: this seems to be cleaned up elsewhere? Make sure of it. - m_toBeDeleted = 0; } else KMessageBox::error(this, job->errorString(), i18n("Error while deleting")); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filelight-4.10.4/src/part/remoteLister.cpp new/filelight-4.10.90/src/part/remoteLister.cpp --- old/filelight-4.10.4/src/part/remoteLister.cpp 2013-05-28 21:29:42.000000000 +0200 +++ new/filelight-4.10.90/src/part/remoteLister.cpp 2013-06-10 20:53:41.000000000 +0200 @@ -87,7 +87,6 @@ , m_store(m_root) , m_manager(manager) { - setAutoUpdate(false); // Don't use KDirWatchers setShowingDotFiles(true); // Stupid KDirLister API function names setMainWindow(parent); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filelight-4.10.4/src/part/scan.h new/filelight-4.10.90/src/part/scan.h --- old/filelight-4.10.4/src/part/scan.h 2013-05-28 21:29:42.000000000 +0200 +++ new/filelight-4.10.90/src/part/scan.h 2013-06-10 20:53:41.000000000 +0200 @@ -40,7 +40,7 @@ friend class RemoteLister; public: - ScanManager(QObject *parent); + explicit ScanManager(QObject *parent); virtual ~ScanManager(); bool start(const KUrl&); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filelight-4.10.4/src/part/settingsDialog.h new/filelight-4.10.90/src/part/settingsDialog.h --- old/filelight-4.10.4/src/part/settingsDialog.h 2013-05-28 21:29:42.000000000 +0200 +++ new/filelight-4.10.90/src/part/settingsDialog.h 2013-06-10 20:53:41.000000000 +0200 @@ -33,7 +33,7 @@ Q_OBJECT public: - SettingsDialog(QWidget* = 0); + explicit SettingsDialog(QWidget* = 0); protected: virtual void closeEvent(QCloseEvent *); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/filelight-4.10.4/src/part/summaryWidget.h new/filelight-4.10.90/src/part/summaryWidget.h --- old/filelight-4.10.4/src/part/summaryWidget.h 2013-05-28 21:29:42.000000000 +0200 +++ new/filelight-4.10.90/src/part/summaryWidget.h 2013-06-10 20:53:41.000000000 +0200 @@ -31,7 +31,7 @@ Q_OBJECT public: - SummaryWidget(QWidget *parent); + explicit SummaryWidget(QWidget *parent); signals: void activated(const KUrl&); -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
