From kde-commits Fri Aug 14 13:59:33 2009 From: Peter Pan Date: Fri, 14 Aug 2009 13:59:33 +0000 To: kde-commits Subject: KDE/kdebase/workspace/plasma/applets/quicklaunch Message-Id: <1250258373.288573.22741.nullmailer () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=125025838614002 SVN commit 1011382 by peterpan: give user a hint when he/she adds an application which already exists in quicklaunch. BUG:203716 M +31 -0 quicklaunchApplet.cpp M +1 -0 quicklaunchApplet.h --- trunk/KDE/kdebase/workspace/plasma/applets/quicklaunch/quicklaunchApplet.cpp #1011381:1011382 @@ -21,6 +21,7 @@ #include #include +#include #include #include #include @@ -58,6 +59,7 @@ m_dialogLayout(0), m_addDialog(0), m_rightClickedIcon(0), + m_isBusy(false), m_addAction(0), m_removeAction(0), m_sortappAscending(0), @@ -97,6 +99,7 @@ void QuicklaunchApplet::init() { + m_isBusy = true; KConfigGroup cg = config(); m_preferredIconSize = m_iconSize = qMax(s_defaultIconSize, (int)cg.readEntry("iconSize", contentsRect().height() / 2)); m_visibleIcons = qMax(-1, cg.readEntry("visibleIcons", m_visibleIcons)); @@ -148,6 +151,8 @@ if (firstStart) { resize(sizeHint(Qt::PreferredSize)); } + + m_isBusy = false; } QSizeF QuicklaunchApplet::sizeHint(Qt::SizeHint which, const QSizeF & constraint) const @@ -396,12 +401,16 @@ void QuicklaunchApplet::ascendingSort() { + m_isBusy = true; sortQuicklaunch(AscendingSort); + m_isBusy = false; } void QuicklaunchApplet::descendingSort() { + m_isBusy = true; sortQuicklaunch(DescendingSort); + m_isBusy = false; } void QuicklaunchApplet::sortQuicklaunch(SortingOrder sortingorder) @@ -601,7 +610,29 @@ KIcon icon; QString text; QString genericName; + bool do_add_program = true; + if (!m_isBusy) { + foreach (QuicklaunchIcon *icon, m_icons) { + if (icon->url().url() == appUrl.url()) { + if (KMessageBox::warningContinueCancel( + 0, + i18n("\"%1\" is already in quicklaunch!", icon->url().pathOrUrl()), + i18n("Warning") + ) == KMessageBox::Cancel) { + do_add_program = false; + break; + } else { + break; + } + } + } + } + + if (!do_add_program) { + return; + } + if (appUrl.isLocalFile() && KDesktopFile::isDesktopFile(appUrl.toLocalFile())) { KDesktopFile *f = new KDesktopFile(appUrl.toLocalFile()); --- trunk/KDE/kdebase/workspace/plasma/applets/quicklaunch/quicklaunchApplet.h #1011381:1011382 @@ -178,6 +178,7 @@ Ui::quicklaunchAdd addUi; QuicklaunchIcon *m_rightClickedIcon; QPointF m_mousePressPos; + bool m_isBusy; QAction* m_addAction; QAction* m_removeAction;