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

List:       kde-commits
Subject:    kdebase/kmenuedit
From:       Waldo Bastian <bastian () kde ! org>
Date:       2004-05-04 13:24:47
Message-ID: 20040504132447.C7D3198F2 () office ! kde ! org
[Download RAW message or body]

CVS commit by waba: 

Deleting an application doesn't remove its hotkey, if one was set. (BR72480)


  M +24 -0     menuinfo.cpp   1.11


--- kdebase/kmenuedit/menuinfo.cpp  #1.10:1.11
@@ -34,4 +34,5 @@ static QStringList *s_allShortcuts = 0;
 static QStringList *s_newShortcuts = 0;
 static QStringList *s_freeShortcuts = 0;
+static QStringList *s_deletedApps = 0;
 
 // Add sub menu
@@ -154,4 +155,16 @@ void MenuFolderInfo::setDirty()
 void MenuFolderInfo::save(MenuFile *menuFile)
 {
+   if (s_deletedApps)
+   {
+      // Remove hotkeys for applications that have been deleted
+      for(QStringList::ConstIterator it = s_deletedApps->begin();
+          it != s_deletedApps->end(); ++it)
+      {
+         KHotKeys::menuEntryDeleted(*it);
+      }
+      delete s_deletedApps;
+      s_deletedApps = 0;
+   }
+
    if (dirty)
    {
@@ -424,9 +437,20 @@ void MenuEntryInfo::setInUse(bool inUse)
       if (isShortcutAvailable(temp))
          shortCut = temp;
+      else
+         dirty = true;
       allocateShortcut(shortCut);
+
+      if (s_deletedApps)
+         s_deletedApps->remove(service->storageId());
    }
    else
    {
       freeShortcut(shortcut());
+      
+      // Add to list of deleted apps
+      if (!s_deletedApps)
+         s_deletedApps = new QStringList;
+
+      s_deletedApps->append(service->storageId());
    }
 }


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

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