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

List:       kde-commits
Subject:    branches/work/kgpg2
From:       Rolf Eike Beer <kde () opensource ! sf-tec ! de>
Date:       2008-01-17 17:07:25
Message-ID: 1200589645.492100.15776.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 762676 by dakon:

port deleting keys to model/view

 M  +33 -80    keysmanager.cpp  
 M  +1 -1      keysmanager.h  


--- branches/work/kgpg2/keysmanager.cpp #762675:762676
@@ -2066,46 +2066,41 @@
 
 void KeysManager::confirmdeletekey()
 {
-    KeyListViewItem *ki = keysList2->currentItem();
+	KgpgCore::KgpgItemType pt;
+	bool same;
+	QList<KGpgNode *> ndlist = iview->selectedNodes(&same, &pt);
+	Q_ASSERT(!ndlist.isEmpty());
 
-    // do not delete a key currently edited in terminal
-    if ((ki->keyId() == terminalkey) && (keysList2->selectedItems().count() == 1)) {
-        KMessageBox::error(this, i18n("Can not delete key <b>%1</b> while it is \
                edited in terminal.", terminalkey), i18n("Delete key"));
-        return;
-    }
+	// do not delete a key currently edited in terminal
+	if (((pt == ITYPE_PUBLIC) || (pt == ITYPE_PAIR)) && (ndlist.at(0)->getId() == \
terminalkey) && (ndlist.count() == 1)) { +		KMessageBox::error(this, i18n("Can not \
delete key <b>%1</b> while it is edited in terminal.", terminalkey), i18n("Delete \
key")); +		return;
+	} else if (pt == ITYPE_GROUP) {
+		deleteGroup();
+		return;
+	} else if (!(pt & ITYPE_GROUP) && (pt & ITYPE_SECRET) && (ndlist.count() == 1)) {
+		deleteseckey();
+	}
 
-    if (ki->itemType() & KeyListViewItem::Group)
-    {
-        deleteGroup();
-        return;
-    }
+	if (pt & ~ITYPE_PAIR) {
+		KMessageBox::error(this, i18n("You have selected items that are not keys. They can \
not be deleted with this menu entry.", terminalkey), i18n("Delete key")); +		return;
+	}
 
-    if ((ki->itemType() & KeyListViewItem::Secret) && \
                (keysList2->selectedItems().count() == 1))
-        deleteseckey();
-    else
-    {
-        QStringList keysToDelete;
-        QString secList;
-        QList<KeyListViewItem*> exportList = keysList2->selectedItems();
-        bool secretKeyInside = false;
-        for (int i = 0; i < exportList.count(); ++i) {
-	    KeyListViewItem *ki = exportList.at(i);
+	QStringList keysToDelete;
+	QString secList;
 
-            if (ki)
-            {
-                if (ki->itemType() & KeyListViewItem::Secret)
-                {
-                    secretKeyInside = true;
-                    secList += ki->text(0) + " (" + ki->text(1) + ")<br/>";
-                    ki->setSelected(false);
-                }
-                else if (ki->keyId() != terminalkey)
-                    keysToDelete += ki->text(0) + " (" + ki->text(1) + ')';
-            }
+	bool secretKeyInside = (pt & ITYPE_SECRET);
+	for (int i = 0; i < ndlist.count(); ++i) {
+		KGpgKeyNode *ki = static_cast<KGpgKeyNode *>(ndlist.at(i));
+
+		if (ki->getType() & KeyListViewItem::Secret) {
+			secList += ki->getNameComment();
+		} else if (ki->getId() != terminalkey)
+			keysToDelete += ki->getNameComment();
 	}
 
-        if (secretKeyInside)
-        {
+        if (secretKeyInside) {
             int result = KMessageBox::warningContinueCancel(this, i18n("<qt>The \
following are secret key pairs:<br/><b>%1</b>They will not be deleted.</qt>", \
secList));  if (result != KMessageBox::Continue)
                 return;
@@ -2118,66 +2113,24 @@
         if (result != KMessageBox::Continue)
             return;
         else
-            deletekey();
-    }
+            deletekey(keysToDelete);
 }
 
-void KeysManager::deletekey()
+void KeysManager::deletekey(const QStringList &keysToDelete)
 {
-    QList<KGpgNode *> ndlist = iview->selectedNodes();
-    QList<KeyListViewItem*> exportList = keysList2->selectedItems();
-    if (exportList.count() == 0)
-        return;
-
     KProcess gp;
     gp << KGpgSettings::gpgBinaryPath()
     << "--no-tty"
     << "--no-secmem-warning"
     << "--batch"
     << "--yes"
-    << "--delete-key";
+    << "--delete-key"
+    << keysToDelete;
 
-    for (int i = 0; i < exportList.count(); ++i) {
-	KeyListViewItem *item = exportList.at(i);
-	if (!item)
-		continue;
-	gp << item->keyId();
-    }
-
     gp.execute();
 
     imodel->refreshKeys();
 
-    if (keysList2->currentItem())
-    {
-        KeyListViewItem * myChild = keysList2->currentItem();
-        while(!myChild->isVisible())
-        {
-            myChild = myChild->nextSibling();
-            if (!myChild)
-                break;
-        }
-
-        if (!myChild)
-        {
-            KeyListViewItem * myChild = keysList2->firstChild();
-            while(!myChild->isVisible())
-            {
-                myChild = myChild->nextSibling();
-                if (!myChild)
-                    break;
-            }
-        }
-
-        if (myChild)
-        {
-            myChild->setSelected(true);
-            keysList2->setCurrentItem(myChild);
-        }
-    }
-    else
-        stateChanged("empty_list");
-
     changeMessage(imodel->statusCountMessage(), 1);
 }
 
--- branches/work/kgpg2/keysmanager.h #762675:762676
@@ -151,7 +151,7 @@
     void readOptions();
     void slotSetDefKey();
     void confirmdeletekey();
-    void deletekey();
+    void deletekey(const QStringList &keysToDelete);
     void deleteseckey();
     void signkey();
     void delsignkey();


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

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