[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-panel-devel
Subject:    [PATCH] BUG 203716 give user a hint when adding same application
From:       <wppan () redflag-linux ! com>
Date:       2009-08-14 9:10:42
Message-ID: 4A852A12.7020108 () redflag-linux ! com
[Download RAW message or body]

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

["kdebase-quicklaunch-same-application.patch" (text/x-patch)]

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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic