Hi,all I think we should give user a hint when he/she adds a application which already exists in quicklaunch, so I made this patch.
Regards -- 潘卫平(Peter Pan) Red Flag Software Co., Ltd
Index: quicklaunchApplet.cpp =================================================================== --- quicklaunchApplet.cpp (revision 1010790) +++ quicklaunchApplet.cpp (working copy) @@ -21,6 +21,7 @@ #include <KConfigDialog> #include <KDesktopFile> +#include <KMessageBox> #include <QGraphicsSceneDragDropEvent> #include <QGraphicsWidget> #include <QDrag> @@ -670,10 +671,32 @@ } foreach (const KUrl &url, urls) { - if (KDesktopFile::isDesktopFile(url.toLocalFile())) { - addProgram(pos, url.toLocalFile(), true); + bool found = false; + foreach (QuicklaunchIcon *icon, m_icons) { + if (icon->url().url() == url.url()) { + found = true; + if (KMessageBox::warningContinueCancel( + 0, + i18n("\"%1\" is already in quicklaunch!\nCancel or Continue?", icon->url().pathOrUrl()), + i18n("Warning") + ) == KMessageBox::Continue) { + if (KDesktopFile::isDesktopFile(url.toLocalFile())) { + addProgram(pos, url.toLocalFile(), true); + break; + } + } else { + break; + } + } } + + if (!found) { + if (KDesktopFile::isDesktopFile(url.toLocalFile())) { + addProgram(pos, url.toLocalFile(), true); + } + } } + return true; } @@ -697,6 +720,21 @@ void QuicklaunchApplet::addAccepted() { + foreach (QuicklaunchIcon *icon, m_icons) { + if (icon->url().url() == addUi.urlIcon->url().url()) { + if (KMessageBox::warningContinueCancel( + 0, + i18n("\"%1\" is already in quicklaunch!\nCancel or Continue?", icon->url().pathOrUrl()), + i18n("Warning")) == KMessageBox::Continue) { + int insertplace = m_rightClickedIcon ? m_icons.indexOf(m_rightClickedIcon) : m_icons.size(); + addProgram(insertplace, addUi.urlIcon->url().url(), true); + performUiRefactor(); + } + + return; + } + } + int insertplace = m_rightClickedIcon ? m_icons.indexOf(m_rightClickedIcon) : m_icons.size(); addProgram(insertplace, addUi.urlIcon->url().url(), true); performUiRefactor();
_______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel