AddressbookWidget.py :  » Network » Luma » luma-2.4 » lib » luma » plugins » addressbook » Python Open Source

Home
Python Open Source
1.3.1.2 Python
2.Ajax
3.Aspect Oriented
4.Blog
5.Build
6.Business Application
7.Chart Report
8.Content Management Systems
9.Cryptographic
10.Database
11.Development
12.Editor
13.Email
14.ERP
15.Game 2D 3D
16.GIS
17.GUI
18.IDE
19.Installer
20.IRC
21.Issue Tracker
22.Language Interface
23.Log
24.Math
25.Media Sound Audio
26.Mobile
27.Network
28.Parser
29.PDF
30.Project Management
31.RSS
32.Search
33.Security
34.Template Engines
35.Test
36.UML
37.USB Serial
38.Web Frameworks
39.Web Server
40.Web Services
41.Web Unit
42.Wiki
43.Windows
44.XML
Python Open Source » Network » Luma 
Luma » luma 2.4 » lib » luma » plugins » addressbook » AddressbookWidget.py
# -*- coding: utf-8 -*-

###########################################################################
#    Copyright (C) 2004 by Wido Depping
#    <widod@users.sourceforge.net>
#
# Copyright: See COPYING file that comes with this distribution
#
###########################################################################


from qt import *
import os.path
import ldap
import copy

import environment
from plugins.addressbook.AddressbookWidgetDesign import AddressbookWidgetDesign
from plugins.addressbook.NameDialog import NameDialog
from base.utils.gui.MailDialog import MailDialog
from plugins.addressbook.CategoryEditDialog import CategoryEditDialog
from base.backend.LumaConnection import LumaConnection
from base.backend.ServerList import ServerList
from base.backend.ObjectClassAttributeInfo import ObjectClassAttributeInfo
from base.utils.gui.LumaErrorDialog import LumaErrorDialog


class AddressbookWidget(AddressbookWidgetDesign):

    def __init__(self,parent = None,name = None,fl = 0):
        AddressbookWidgetDesign.__init__(self,parent,name,fl)
        
        iconDir = os.path.join (environment.lumaInstallationPrefix, "share", "luma", "icons", "plugins", "addressbook")
        
        self.entryIcon = QPixmap (os.path.join (iconDir, "person.png"))
        
        personIcon = QPixmap (os.path.join (iconDir, "personal.png"))
        phoneIcon = QPixmap (os.path.join (iconDir, "phone.png"))
        self.mailIcon = QPixmap (os.path.join (iconDir, "email.png"))
        urlIcon = QPixmap (os.path.join (iconDir, "url.png"))
        categoryIcon = QPixmap (os.path.join (iconDir, "category.png"))
        addressIcon = QPixmap (os.path.join (iconDir, "home.png"))
        workIcon = QPixmap (os.path.join (iconDir, "work.png"))
        
        self.personLabel.setPixmap(personIcon)
        self.phoneLabel.setPixmap(phoneIcon)
        self.mailLabel.setPixmap(self.mailIcon)
        self.webPageLabel.setPixmap(urlIcon)
        self.categoryLabel.setPixmap(categoryIcon)
        self.homeLabel.setPixmap(addressIcon)
        self.workLabel.setPixmap(workIcon)
        self.personalLabel.setPixmap(personIcon)
        self.notesLabel.setPixmap(urlIcon)
        
        # Instance of SmartDataObject
        self.dataObject = None
        
        self.allowedAttributes = None
        
        self.attributeWidgets = {'cn': self.cnEdit,
            'title': self.titleEdit,
            'o': self.organisationEdit,
            'mail': self.mailBox,
            'labeledURI': self.labeledURIEdit,
            'category': self.categoryEdit,
            'homePhone': self.homePhoneEdit,
            'telephoneNumber': self.telephoneNumberEdit,
            'mobile': self.mobileEdit,
            'facsimileTelephoneNumber': self.facsimileTelephoneNumberEdit,
            'ou': self.ouEdit,
            'roomNumber': self.roomNumberEdit,
            'businessRole': self.businessRoleEdit,
            'managerName': self.managerNameEdit,
            'assistantName': self.assistantNameEdit,
            'displayName': self.displayNameEdit,
            'spouseName': self.spouseNameEdit,
            'note': self.noteEdit,
            'birthDate': self.birthDateEdit,
            'anniversary': self.anniversaryEdit,
            'postalAddress': self.addressEdit,
            'homePostalAddress': self.addressEdit,
            'otherPostalAddress': self.addressEdit
            }
                                                
        self.enableWidget(0)
        self.DISABLED = 1
        self.ENABLE_SAVE = False
        self.DIALOG_MODE = False
        
        self.addressID = 0

###############################################################################

    def clearView(self):
        """Clear all input fields from possible content.
        """
        
        # Create a list of all inputs fields with method 'clear' and call it
        tmpList = self.attributeWidgets.values()
        
        tmpList.remove(self.birthDateEdit)
        tmpList.remove(self.anniversaryEdit)
        
        map (lambda x: x.clear(), tmpList)
        
        # Clear date fields
        self.birthDateEdit.setDate(QDate())
        self.anniversaryEdit.setDate(QDate())
        
###############################################################################

    def initView(self, dataObject):
        self.clearView()
        self.enableWidget(1)
        
        self.dataObject = dataObject
            
        must, may = self.dataObject.getPossibleAttributes()
        self.enableContactFields(must.union(may))
        
        
        self.addressBox.setEnabled(1)
        
        for x in self.dataObject.getAttributeList():
            if x == 'cn':
                value = self.dataObject.getAttributeValue(x, 0)
                self.cnEdit.setText(value)
                
            if x == 'title':
                value = self.dataObject.getAttributeValue(x, 0)
                self.titleEdit.setText(value)
                
            if x == 'o':
                value = self.dataObject.getAttributeValue(x, 0)
                self.organisationEdit.setText(value)
                
            if x == 'mail':
                tmpList = self.dataObject.getAttributeValueList('mail')
                tmpList.sort()
                map(self.mailBox.insertItem, tmpList)
            
            if x == 'labeledURI':
                value = self.dataObject.getAttributeValue(x, 0)
                self.labeledURIEdit.setText(value)
                
            if x == 'category':
                tmpString = ",".join(self.dataObject.getAttributeValueList(x))
                self.categoryEdit.setText(tmpString)
        
            if x == 'homePhone':
                value = self.dataObject.getAttributeValue(x, 0)
                self.homePhoneEdit.setText(value)
                
            if x == 'telephoneNumber':
                value = self.dataObject.getAttributeValue(x, 0)
                self.telephoneNumberEdit.setText(value)
                
            if x == 'mobile':
                value = self.dataObject.getAttributeValue(x, 0)
                self.mobileEdit.setText(value)
               
            if x == 'facsimileTelephoneNumber':
                value = self.dataObject.getAttributeValue(x, 0)
                self.facsimileTelephoneNumberEdit.setText(value)
                
                
            if x == 'ou':
                value = self.dataObject.getAttributeValue(x, 0)
                self.ouEdit.setText(value)
                
            if x == 'roomNumber':
                value = self.dataObject.getAttributeValue(x, 0)
                self.roomNumberEdit.setText(value)
                
            if x == 'businessRole':
                value = self.dataObject.getAttributeValue(x, 0)
                self.businessRoleEdit.setText(value)
            
            if x == 'managerName':
                value = self.dataObject.getAttributeValue(x, 0)
                self.managerNameEdit.setText(value)
                
            if x == 'assistantName':
                value = self.dataObject.getAttributeValue(x, 0)
                self.assistantNameEdit.setText(value)
                
            if x == 'displayName':
                value = self.dataObject.getAttributeValue(x, 0)
                self.displayNameEdit.setText(value)
                
            if x == 'spouseName':
                value = self.dataObject.getAttributeValue(x, 0)
                self.spouseNameEdit.setText(value)
                
            if x == 'note':
                value = self.dataObject.getAttributeValue(x, 0)
                self.noteEdit.setText(value)
                
            if x == 'birthDate':
                tmpList = self.dataObject.getAttributeValue(x, 0).split('-')
                self.birthDateEdit.setDate(QDate(int(tmpList[0]), int(tmpList[1]), int(tmpList[2])))
                
            if x == 'anniversary':
                tmpList = self.dataObject.getAttributeValue(x, 0).split('-')
                self.birthDateEdit.setDate(QDate(int(tmpList[0]), int(tmpList[1]), int(tmpList[2])))
                
        self.addressID = 0
        self.addressBox.setCurrentItem(self.addressBox.currentItem())
        self.initAddress(0, False)
        # PATCH
        #self.ENABLE_SAVE = True
        #self.setSaveButton()
    
###############################################################################

    def showNameDialog(self):
        dialog = NameDialog()
        
        sn = ""
        if self.dataObject.hasAttribute('sn'):
            sn = self.dataObject.getAttributeValue('sn', 0)
            
        givenName = None
        suffix = None
        title = None
        middleName = None
        sureNamePosition = None
        
        cn = ''
        if self.dataObject.hasAttribute('cn'):
            cn = self.dataObject.getAttributeValue('cn', 0)
        
        tmpList = cn.split(' ')
        if sn in tmpList:
            sureNamePosition = tmpList.index(sn)
        else:
            sureNamePosition = len(tmpList) - 1
        
        # find the given name
        if self.dataObject.hasAttribute('givenName'):
            givenName = self.dataObject.getAttributeValue('givenName', 0).strip()
        
        # find the suffix
        if not sureNamePosition == (len(tmpList) - 1):
            suffix = " ".join(tmpList[sureNamePosition+1:])

        # find the title and middle name
        if givenName == None:
            frontList = tmpList[:sureNamePosition]
            if len(frontList) == 1:
                givenName = frontList[0]
            
            if len(frontList) > 1:
                givenName = frontList[0]
                middleName = " ".join(frontList[1:])
        else:
            if not givenName in tmpList:
                frontList = tmpList[:sureNamePosition]
                if len(frontList) == 1:
                    givenName = frontList[0]
            
                if len(frontList) > 1:
                    givenName = frontList[0]
                    middleName = " ".join(frontList[1:])
            else:
                givenNamePosition = tmpList.index(givenName)
                if not givenNamePosition == 0:
                    title = " ".join(tmpList[:givenNamePosition])
            
                if (sureNamePosition-givenNamePosition) > 1:
                    middleName = " ".join(tmpList[givenNamePosition+1 : sureNamePosition])
            
            
            
        dialog.lastEdit.setText(sn)
        if not givenName == None:
            dialog.firstEdit.setText(givenName)
        if not suffix == None:
            dialog.suffixBox.setCurrentText(suffix)
        if not title == None:
            dialog.titleBox.setCurrentText(title)
        if not middleName == None:
            dialog.middleEdit.setText(middleName)
        
        dialog.exec_loop()
        
        
        if (dialog.result() == QDialog.Accepted):
            tmpSn = unicode(dialog.lastEdit.text()).strip()
            
            if tmpSn == '':
                return
                
            if self.dataObject.hasAttribute('sn'):
                self.dataObject.setAttributeValue('sn', 0, tmpSn)
            else:
                self.dataObject.addAttributeValue('sn', [tmpSn])
            
            tmpList = []
            tmpList.append(self.__normalizeQtString(dialog.titleBox.currentText()))
            tmpList.append(self.__normalizeQtString(dialog.firstEdit.text()))
            tmpList.append(self.__normalizeQtString(dialog.middleEdit.text()))
            tmpList.append(self.__normalizeQtString(dialog.lastEdit.text()))
            tmpList.append(self.__normalizeQtString(dialog.suffixBox.currentText()))
            
            for x in self.allowedAttributes:
                if "givenname" == x.lower():
                    givenName = unicode(dialog.firstEdit.text())
                    givenName = givenName.strip()
                    if '' == givenName:
                        self.dataObject.deleteAttribute('givenName')
                    else:
                        self.dataObject.addAttributeValue('givenName', [givenName], True)
            
            value = ''.join(tmpList)
            self.cnEdit.setText(value)
            if '' == value:
                self.dataObject.deleteAttribute('cn')
            else:
                self.dataObject.addAttributeValue('cn', [value])
            self.setEdited(True)
            
###############################################################################

    def __normalizeQtString(self, tmpString):
        tmpString = unicode(tmpString).strip()
        
        if (len(tmpString) > 0):
            tmpString = tmpString + ' '
            
        return tmpString

###############################################################################

    def deleteMail(self):
        if self.mailBox.count() == 0:
            return
            
        self.mailBox.removeItem(self.mailBox.currentItem())
        
        if self.mailBox.count() > 0:
            self.mailBox.setCurrentItem(0)

        self.setEdited(True)
            
###############################################################################

    def addMail(self):
        dialog = MailDialog()
        
        dialog.exec_loop()
        
        if (dialog.result() == QDialog.Accepted):
            mail = unicode(dialog.mailEdit.text()).strip()
            
            if not(mail == ''):
                currentMails = []
                for x in range(0, self.mailBox.count()):
                    currentMails.append(unicode(self.mailBox.text(x)))
                    
                if not (mail in currentMails):
                    currentMails.append(mail)
                    
                currentMails.sort()
                self.mailBox.clear()
                map(self.mailBox.insertItem, currentMails)
                self.mailBox.setCurrentItem(self.mailBox.count()-1)
            self.setEdited(True)


###############################################################################

    def editCategories(self):
        dialog = CategoryEditDialog()
        tmpString = unicode(self.categoryEdit.text()).strip()
        if not(tmpString == ''):
            dialog.setCategories(tmpString.split(','))
        
        dialog.exec_loop()
        
        if (dialog.result() == QDialog.Accepted):
            newCategories = dialog.getCategories()
            
            if not(newCategories == None):
                self.categoryEdit.setText(",".join(newCategories))
            self.setEdited(True)
                
###############################################################################

    def serverChanged(self):
        self.enableWidget(0)
        self.clearView()
        self.DISABLED = 1
        # PATCH
        #self.ENABLE_SAVE = False
        #self.setSaveButton()
        self.EDITED = False
        self.setEdited(False)
                
###############################################################################

    def initAddress(self, id, saveValue=True):
        # The order os the attributes resembles the order of apearance in the widget
        addressType = ['postalAddress', 'homePostalAddress', 'otherPostalAddress']
        
        if saveValue:
            if self.dataObject.isAttributeAllowed(addressType[self.addressID]):
                value = unicode(self.addressEdit.text())
                if not (value==''):
                    self.dataObject.addAttributeValue(addressType[self.addressID], [self.dataObject.postaladdressEncode(value)], True)
        
        self.addressID = id
        self.addressEdit.clear()
        if self.dataObject.hasAttribute(addressType[id]):
            tmpAddress = self.dataObject.getAttributeValue(addressType[id], 0)
            self.addressEdit.setText(self.dataObject.postaladdressDecode(tmpAddress))

        
        
###############################################################################

    def enableWidget(self, val):
        self.setEnabled(val)
        self.emit(PYSIGNAL("enable_save"), (val,))
        
###############################################################################

    def updateValues(self):
        if 'cn' in self.allowedAttributes:
            tmpString = unicode(self.cnEdit.text())
            if not('' == tmpString):
                self.dataObject.addAttributeValue('cn', [tmpString], True)
                if self.dataObject.isAttributeAllowed('gecos'):
                    self.dataObject.addAttributeValue('gecos', [tmpString], True)
            else:
                if not self.dataObject.isAttributeMust('cn'):
                    self.dataObject.deleteAttribute('cn')
        
        if 'title' in self.allowedAttributes:
            value = unicode(self.titleEdit.text())
            if not('' == value):
                self.dataObject.addAttributeValue('title', [value], True)
            else:
                if not self.dataObject.isAttributeMust('title'):
                    self.dataObject.deleteAttribute('title')
            
        if 'o' in self.allowedAttributes:
            value = unicode(self.organisationEdit.text())
            if not('' == value):
                self.dataObject.addAttributeValue('o', [value], True)
            else:
                if not self.dataObject.isAttributeMust('o'):
                    self.dataObject.deleteAttribute('o')
        
        if 'mail' in self.allowedAttributes:
            tmpMail = []
            for x in range(0, self.mailBox.count()):
                tmpMail.append(unicode(self.mailBox.text(x)))
            if len(tmpMail) == 0:
                if not self.dataObject.isAttributeMust('mail'):
                    self.dataObject.deleteAttribute('mail')
            else:
                self.dataObject.addAttributeValue('mail', tmpMail, True)
        
        if 'labeledURI' in self.allowedAttributes:
            value = unicode(self.labeledURIEdit.text())
            if not('' == value):
                self.dataObject.addAttributeValue('labeledURI', [value], True)
            else:
                if not self.dataObject.isAttributeMust('labeledURI'):
                    self.dataObject.deleteAttribute('labeledURI')
            
        if 'category' in self.allowedAttributes:
            valueList = unicode(self.categoryEdit.text()).split(',')
            valueList = filter(lambda x: not ('' == x), valueList)
            if 0 == len(valueList):
                self.dataObject.deleteAttribute('category')
            else:
                self.dataObject.addAttributeValue('category',  valueList, True)
            
        if 'homePhone' in self.allowedAttributes:
            value = unicode(self.homePhoneEdit.text())
            if not('' == value):
                self.dataObject.addAttributeValue('homePhone', [value], True)
            else:
                if not self.dataObject.isAttributeMust('homePhone'):
                    self.dataObject.deleteAttribute('homePhone')
            
        if 'telephoneNumber' in self.allowedAttributes:
            value = unicode(self.telephoneNumberEdit.text())
            if not('' == value):
                self.dataObject.addAttributeValue('telephoneNumber', [value], True)
            else:
                if not self.dataObject.isAttributeMust('telephoneNumber'):
                    self.dataObject.deleteAttribute('telephoneNumber')
            
        if 'mobile' in self.allowedAttributes:
            value = unicode(self.mobileEdit.text())
            if not('' == value):
                self.dataObject.addAttributeValue('mobile', [value], True)
            else:
                if not self.dataObject.isAttributeMust('mobile'):
                    self.dataObject.deleteAttribute('mobile')
            
        if 'facsimileTelephoneNumber' in self.allowedAttributes:
            value = unicode(self.facsimileTelephoneNumberEdit.text())
            if not('' == value):
                self.dataObject.addAttributeValue('facsimileTelephoneNumber', [value], True)
            else:
                if not self.dataObject.isAttributeMust('facsimileTelephoneNumber'):
                    self.dataObject.deleteAttribute('facsimileTelephoneNumber')
            
        if 'ou' in self.allowedAttributes:
            value = unicode(self.ouEdit.text())
            if not('' == value):
                self.dataObject.addAttributeValue('ou', [value], True)
            else:
                if not self.dataObject.isAttributeMust('ou'):
                    self.dataObject.deleteAttribute('ou')
            
        if 'roomNumber' in self.allowedAttributes:
            value = unicode(self.roomNumberEdit.text())
            if not('' == value):
                self.dataObject.addAttributeValue('roomNumber', [value], True)
            else:
                if not self.dataObject.isAttributeMust('roomNumber'):
                    self.dataObject.deleteAttribute('roomNumber')
            
        if 'businessRole' in self.allowedAttributes:
            value = unicode(self.businessRoleEdit.text())
            if not('' == value):
                self.dataObject.addAttributeValue('businessRole', [value], True)
            else:
                if not self.dataObject.isAttributeMust('businessRole'):
                    self.dataObject.deleteAttribute('businessRole')
            
        if 'managerName' in self.allowedAttributes:
            value = unicode(self.managerNameEdit.text())
            if not('' == value):
                self.dataObject.addAttributeValue('managerName', [value], True)
            else:
                if not self.dataObject.isAttributeMust('managerName'):
                    self.dataObject.deleteAttribute('managerName')
            
        if 'assistantName' in self.allowedAttributes:
            value = unicode(self.assistantNameEdit.text())
            if not('' == value):
                self.dataObject.addAttributeValue('assistantName', [value], True)
            else:
                if not self.dataObject.isAttributeMust('assistantName'):
                    self.dataObject.deleteAttribute('assistantName')
            
        if 'displayName' in self.allowedAttributes:
            value = unicode(self.displayNameEdit.text())
            if not('' == value):
                self.dataObject.addAttributeValue('displayName', [value], True)
            else:
                if not self.dataObject.isAttributeMust('displayName'):
                    self.dataObject.deleteAttribute('displayName')
        
        if 'spouseName' in self.allowedAttributes:
            value = unicode(self.spouseNameEdit.text())
            if not('' == value):
                self.dataObject.addAttributeValue('spouseName', [value], True)
            else:
                if not self.dataObject.isAttributeMust('spouseName'):
                    self.dataObject.deleteAttribute('spouseName')
            
        if 'note' in self.allowedAttributes:
            value = unicode(self.noteEdit.text())
            if not('' == value):
                self.dataObject.addAttributeValue('note', [value], True)
            else:
                if not self.dataObject.isAttributeMust('note'):
                    self.dataObject.deleteAttribute('note')
        
        if 'birthDate' in self.allowedAttributes:
            tmpDate = unicode(self.birthDateEdit.date().toString(Qt.ISODate))
            if tmpDate == '':
                self.dataObject.deleteAttribute('birthDate')
            else:
                self.dataObject.addAttributeValue('birthDate', [tmpDate], True)
            
        if 'anniversary' in self.allowedAttributes:
            tmpDate = unicode(self.anniversaryEdit.date().toString(Qt.ISODate))
            if tmpDate == '':
                self.dataObject.deleteAttribute('anniversary')
            else:
                self.dataObject.addAttributeValue('anniversary', [tmpDate], True)
        
        
        addressType = ['postalAddress', 'homePostalAddress', 'otherPostalAddress']
        id = self.addressBox.currentItem()
        if addressType[id] in self.allowedAttributes:
            value = unicode(self.addressEdit.text())
            if not('' == value):
                self.dataObject.addAttributeValue(addressType[id], [self.dataObject.postaladdressEncode(value)], True)
            else:
                self.dataObject.deleteAttribute(addressType[id])
        
###############################################################################

    def saveEntry(self):
        self.setEnabled(False)
        self.updateValues()
        
        lumaConnection = LumaConnection(self.dataObject.getServerMeta())
        bindSuccess, exceptionObject = lumaConnection.bind()
        
        if not bindSuccess:
                self.setEnabled(True)
                dialog = LumaErrorDialog()
                errorMsg = self.trUtf8("Could not bind to server.<br><br>Reason: ")
                errorMsg.append(str(exceptionObject))
                dialog.setErrorMessage(errorMsg)
                dialog.exec_loop()
                return
                
        success, exceptionObject = lumaConnection.updateDataObject(self.dataObject)
        lumaConnection.unbind()
        
        if success:
            self.setEnabled(True)
            
            # If we create a new contact, we want the list updated. 
            # Otherwise simple saving will be done.
            if self.DIALOG_MODE:
                self.emit(PYSIGNAL("contact_saved"), ())
        else:
            self.setEnabled(True)
            dialog = LumaErrorDialog()
            errorMsg = self.trUtf8("Could not save entry.<br><br>Reason: ")
            errorMsg.append(str(exceptionObject))
            dialog.setErrorMessage(errorMsg)
            dialog.exec_loop()
        
###############################################################################

    def enableContactFields(self, attributes):
        self.allowedAttributes = attributes
        
        for x in self.attributeWidgets.keys():
            widget = self.attributeWidgets[x]
            if x in self.allowedAttributes:
                widget.setEnabled(True)
                if (x == 'cn'):
                    self.nameButton.setEnabled(True)
                    
                if (x == 'category'):
                    self.categoryButton.setEnabled(True)
            else:
                widget.setEnabled(False)
                if (x == 'cn'):
                    self.nameButton.setEnabled(False)
                    
                if (x == 'category'):
                    self.categoryButton.setEnabled(False)

###############################################################################

    def buildToolBar(self, parent):
        toolBar = QToolBar(parent)
        
        lumaIconPath = os.path.join (environment.lumaInstallationPrefix, "share", "luma", "icons")
        savePixmap = QPixmap(os.path.join(lumaIconPath, "save.png"))
    
        self.saveButton = QToolButton(toolBar, "saveValues")
        self.saveButton.setIconSet(QIconSet(savePixmap))
        self.saveButton.setSizePolicy(QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed))
        self.saveButton.setAutoRaise(True)
        self.saveButton.setBackgroundMode(self.backgroundMode())
        QToolTip.add(self.saveButton, self.trUtf8("Save"))
        self.connect(self.saveButton, SIGNAL("clicked()"), self.saveEntry)
        self.saveButton.setEnabled(self.ENABLE_SAVE)

###############################################################################

    def aboutToChange(self):
        """Is called as a slot when new data arrives.

        This way we are able to save the changed values.
        """

        if not self.EDITED:
            return

        value =QMessageBox.question(None,
            self.trUtf8("Save entry"),
            self.trUtf8("""The entry has been modified. Do you want to save it?"""),
            QMessageBox.Yes + QMessageBox.Default,
            QMessageBox.No)

        # button order says, that 'yes' is zero
        if value == QMessageBox.Yes:
            self.saveEntry()

###############################################################################

    def setSaveButton(self):
        # If we are in dialog mode, we have no save button.
        if not hasattr(self, "saveButton"):
            return
            
        # PATCH
        #self.saveButton.setEnabled(self.ENABLE_SAVE)
        self.saveButton.setEnabled(self.EDITED)
    
###############################################################################

    def setEdited(self,value):
        self.EDITED = value
        self.setSaveButton()

###############################################################################

    def textEditChanged(self,newvalue):
        self.setEdited(True)

###############################################################################

    def bigTextChanged(self):
        self.setEdited(True)

www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.