From kde-commits Wed May 13 03:21:13 2009 From: =?utf-8?q?Aaron=20J=2E=20Seigo?= Date: Wed, 13 May 2009 03:21:13 +0000 To: kde-commits Subject: KDE/kdebase/workspace/plasma/applets/quicklaunch Message-Id: <1242184873.186899.14766.nullmailer () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=124218488132753 SVN commit 967258 by aseigo: save state immediately when adding/removing icons so if things go wrong on exit the widget keeps its config BUG:191432 M +26 -18 quicklaunchApplet.cpp M +1 -7 quicklaunchApplet.h --- trunk/KDE/kdebase/workspace/plasma/applets/quicklaunch/quicklaunchApplet.cpp #967257:967258 @@ -128,10 +128,13 @@ } } } - kDebug() << desktopFiles; + //kDebug() << desktopFiles; } - loadPrograms(desktopFiles); + foreach (const QString &desktopFile, desktopFiles) { + addProgram(-1, desktopFile); + } + performUiRefactor(); } @@ -162,15 +165,15 @@ void QuicklaunchApplet::refactorUi() { - static int my_counter = 0; - kDebug() << "refactorUi count = " << my_counter++; + //static int my_counter = 0; + //kDebug() << "refactorUi count = " << my_counter++; m_timer->start(100); } void QuicklaunchApplet::performUiRefactor() { - static int my_perforcount = 0; - kDebug() << "performUiRefactor count = " << my_perforcount++; + //static int my_perforcount = 0; + //kDebug() << "performUiRefactor count = " << my_perforcount++; clearLayout(m_innerLayout); m_iconSize = qMin(qMax(m_iconSize, s_defaultIconSize), (int)(contentsRect().height() - 2 * s_defaultSpacing));//Don't accept values under 16 nor anything over applet's height @@ -234,7 +237,6 @@ } //resize(sizeHint(Qt::PreferredSize)); - kDebug() << "Bar see"; update(); } @@ -456,13 +458,16 @@ dropApp(static_cast(event),false); } -void QuicklaunchApplet::addProgram(int index, const QString &url) +void QuicklaunchApplet::addProgram(int index, const QString &url, bool isNewIcon) { if (index < 0 || index > m_icons.size()) { index = m_icons.size(); } - if( url.isEmpty() ) + + if (url.isEmpty()) { return; + } + KUrl appUrl = KUrl(url); KIcon icon; QString text; @@ -490,12 +495,11 @@ QuicklaunchIcon *container = new QuicklaunchIcon(appUrl, text, icon, genericName, this); container->installEventFilter(this); m_icons.insert(index, container); -} -void QuicklaunchApplet::loadPrograms(const QStringList &desktopFiles) -{ - foreach (const QString &desktopFile, desktopFiles) { - addProgram(-1, desktopFile); + if (isNewIcon) { + KConfigGroup cg = config(); + saveState(cg); + emit configNeedsSaving(); } } @@ -512,6 +516,10 @@ m_rightClickedIcon->hide(); m_rightClickedIcon->deleteLater(); performUiRefactor(); + + KConfigGroup cg = config(); + saveState(cg); + emit configNeedsSaving(); } bool QuicklaunchApplet::dropHandler(const int pos, const QMimeData *mimedata) @@ -522,7 +530,7 @@ KUrl::List urls = KUrl::List::fromMimeData(mimedata); - if (!urls.count()) { + if (urls.isEmpty()) { return false; } @@ -532,8 +540,8 @@ } foreach (const KUrl &url, urls) { - if(KDesktopFile::isDesktopFile(url.toLocalFile())) { - addProgram(pos, url.toLocalFile()); + if (KDesktopFile::isDesktopFile(url.toLocalFile())) { + addProgram(pos, url.toLocalFile(), true); } } return true; @@ -557,7 +565,7 @@ void QuicklaunchApplet::addAccepted() { int insertplace = m_rightClickedIcon ? m_icons.indexOf(m_rightClickedIcon) : m_icons.size(); - addProgram(insertplace, addUi.urlIcon->url().url()); + addProgram(insertplace, addUi.urlIcon->url().url(), true); performUiRefactor(); } --- trunk/KDE/kdebase/workspace/plasma/applets/quicklaunch/quicklaunchApplet.h #967257:967258 @@ -131,15 +131,9 @@ * @param index The position to insert the icon into * @param desktopFile The Url to read */ - void addProgram(int index, const QString &desktopFile); + void addProgram(int index, const QString &desktopFile, bool isNewIcon = false); /** - * Read all Urls from a list, and insert into icon list - * @param desktopFiles List with Urls - */ - void loadPrograms(const QStringList &desktopFiles); - - /** * Removes all items from a BoxLayout * @param layout Layout to clear */