branches/ahenk/2.0/beyza.ermis/ahenk/lider/lider - A delete button is added to right click menu
Beyza Ermiş
uludag-commits at pardus.org.tr
2 Mar 2011 Çar 16:45:17 EET
Author: beyza.ermis
Date: Wed Mar 2 16:45:17 2011
New Revision: 36338
Added:
branches/ahenk/2.0/beyza.ermis/ahenk/lider/lider/icons/edit-delete.png
- copied unchanged from r36221, trunk/playground/gsoc/pardusman-yali-live/gui/ui/pics/edit-delete.png
Modified:
branches/ahenk/2.0/beyza.ermis/ahenk/lider/lider/computer.py
branches/ahenk/2.0/beyza.ermis/ahenk/lider/lider/data.qrc
branches/ahenk/2.0/beyza.ermis/ahenk/lider/lider/formmain.py
branches/ahenk/2.0/beyza.ermis/ahenk/lider/lider/helpers/directory.py
Log:
A delete button is added to right click menu
---
computer.py | 1 +
data.qrc | 1 +
formmain.py | 32 ++++++++++++++++++++++++++++++++
helpers/directory.py | 9 +++++++++
4 files changed, 43 insertions(+)
Modified: branches/ahenk/2.0/beyza.ermis/ahenk/lider/lider/computer.py
=================================================================
--- branches/ahenk/2.0/beyza.ermis/ahenk/lider/lider/computer.py (original)
+++ branches/ahenk/2.0/beyza.ermis/ahenk/lider/lider/computer.py Wed Mar 2 16:45:17 2011
@@ -35,6 +35,7 @@
# Attach generated UI
self.setupUi(self)
+
# Signals for password matching control
self.connect(self.editPassword, QtCore.SIGNAL("textChanged(QString)"), self.__slotPasswordTextChanged)
self.connect(self.editConfirmPassword, QtCore.SIGNAL("textChanged(QString)"), self.__slotPasswordTextChanged)
Modified: branches/ahenk/2.0/beyza.ermis/ahenk/lider/lider/data.qrc
=================================================================
--- branches/ahenk/2.0/beyza.ermis/ahenk/lider/lider/data.qrc (original)
+++ branches/ahenk/2.0/beyza.ermis/ahenk/lider/lider/data.qrc Wed Mar 2 16:45:17 2011
@@ -31,5 +31,6 @@
<file>icons/folder16.png</file>
<file>icons/network48.png</file>
<file>icons/help48.png</file>
+ <file>icons/edit-delete.png</file>
</qresource>
</RCC>
Modified: branches/ahenk/2.0/beyza.ermis/ahenk/lider/lider/formmain.py
=================================================================
--- branches/ahenk/2.0/beyza.ermis/ahenk/lider/lider/formmain.py (original)
+++ branches/ahenk/2.0/beyza.ermis/ahenk/lider/lider/formmain.py Wed Mar 2 16:45:17 2011
@@ -70,6 +70,7 @@
self.menu.newAction("New Folder", wrappers.Icon("folder48"), self.__slot_new_folder)
self.menu.newAction("New Computer", wrappers.Icon("computer48"), self.__slot_new_computer)
self.menu.newAction("New User", wrappers.Icon("user48"), self.__slot_new_user)
+ self.menu.newAction("Delete", wrappers.Icon("edit-delete"), self.__slot_delete)
# Backends
self.talk = talk.Talk()
@@ -502,6 +503,36 @@
if self.item:
self.menu.exec_(self.treeComputers.mapToGlobal(pos))
+ def __slot_delete(self):
+ """
+ Triggered when user wants to delete an item
+ """
+ dn = self.item.dn
+ results = self.directory.search(dn, scope="sub")
+ length = len(results)
+
+ if dn[0:2] != 'dc' or length == 1:
+ msg = str("This is not undoable. Are you sure you want to remove?")
+ reply = QtGui.QMessageBox.question(self, str('Warning'), msg, QtGui.QMessageBox.Yes, QtGui.QMessageBox.No )
+ if reply == QtGui.QMessageBox.Yes:
+ try:
+ self.directory.delete_item(dn)
+ index = self.item.parent().indexOfChild(self.treeComputers.currentItem())
+ self.item.parent().takeChild(index)
+
+ except directory.DirectoryConnectionError:
+ self.__update_status("directory", "error")
+ # TODO: Disconnect
+ QtGui.QMessageBox.warning(self, "Connection Error", "Connection lost. Please re-connect.")
+ return
+ except directory.DirectoryError:
+ QtGui.QMessageBox.warning(self, "Connection Error", "Unable to delete item.")
+ return
+ else:
+ pass
+ else:
+ message = QtGui.QMessageBox.warning(self, "Warning", "The selected item is a non-empty directory. It cannot be deleted.")
+
def __slot_new_computer(self):
"""
Triggered when user wants to add a new computer.
@@ -603,6 +634,7 @@
self.treeComputers.scrollToItem(item)
self.treeComputers.setCurrentItem(item)
+
def __slot_widget_stack(self, toggled):
"""
Triggered when users activates a policy plugin.
Modified: branches/ahenk/2.0/beyza.ermis/ahenk/lider/lider/helpers/directory.py
=================================================================
--- branches/ahenk/2.0/beyza.ermis/ahenk/lider/lider/helpers/directory.py (original)
+++ branches/ahenk/2.0/beyza.ermis/ahenk/lider/lider/helpers/directory.py Wed Mar 2 16:45:17 2011
@@ -117,6 +117,15 @@
ldif = ldap.modlist.addModlist(attributes)
self.conn.add_s(dn, ldif)
+ def delete_item(self, dn):
+ """
+ Deletes selected item
+
+ Arguments:
+ dn: Distinguished name
+ """
+ self.conn.delete_s(dn)
+
def search(self, directory=None, fields=None, scope="one"):
"""
Searches for all Folder and Computer objects in given directory.
Uludag-commits mesaj listesiyle ilgili
daha fazla bilgi