def update( self ): if self.selected: self.messagesNew = {} result = DB.execute( "SELECT `contact_group_id` FROM `contact` WHERE `name`=? LIMIT 1", self.name ) group_id = result and result[0]['contact_group_id'] or None if group_id: self.group = DB.execute( "SELECT `name` FROM `contact_group` WHERE `id`=?", group_id )[0]['name'] else: self.group = None if self.group: self.buttons.addButton.hide() self.buttons.removeButton.show() self.nameLabel.setStyleSheet( 'QLabel { color:#333; }' ) else: self.buttons.addButton.show() self.buttons.removeButton.hide() self.nameLabel.setStyleSheet( 'QLabel { color:#999; }' ) self.nameLabel.setText( '%s [%s]' % ( self.name, self.status ) ) self.statusLabel.setText( self.statusMessage ) if self.status == 'online': self.statusLabel.setStyleSheet( 'QLabel { color:green; }' ) elif self.status == 'offline': self.statusLabel.setStyleSheet( 'QLabel { color:gray; }' ) elif self.status == 'away': self.statusLabel.setStyleSheet( 'QLabel { color:orange; }' ) else: self.statusLabel.setStyleSheet( 'QLabel { color:red; }' ) self.messagesLabel.setText( ( len( self.messagesNew ) and '('+str( len( self.messagesNew ) )+')' or '' ) )
def addContactCallback( self, contact, group ): QHelper.log( '::CONNECT:QContact:addContact', contact ) if self.name == contact: self.group = group group_id = DB.execute( "SELECT `id` FROM `contact_group` WHERE `name`=?", self.group )[0]['id'] if not DB.execute( "INSERT OR IGNORE INTO `contact` ( `name`, `contact_group_id` ) VALUES ( ?, ? )", self.name, group_id ): DB.execute( "UPDATE `contact` SET `contact_group_id`=? WHERE `name`=? )", group_id, self.name ) self.update()
def __init__( self, parent ): super( self.__class__, self ).__init__( parent ) self.radioList = {} self.contactListItems = {} self.layout = QtGui.QVBoxLayout() self.layout.addStretch( 1 ) #self.layout.setAlignment( QtCore.Qt.AlignTop ) self.setLayout( self.layout ) self.contact = None #self.master.View.contactItem( contact, status ) self.connect( QHelper.master(), QtCore.SIGNAL( 'receiveMessage' ), self.receiveMessageCallback ) self.connect( QHelper.master(), QtCore.SIGNAL( 'contactStatus' ), self.contactStatusCallback ) self.connect( QHelper.master(), QtCore.SIGNAL( 'pickedContact' ), self.pickedContactCallback ) for row in DB.execute( "SELECT `contact`.*, `contact_group`.`name` FROM `contact`, `contact_group` WHERE `contact`.`contact_group_id`=`contact_group`.`id`" ): self.radioList[row['name']] = QContact( row['name'], 'offline', '', self ) self.layout.addWidget( self.radioList[row['name']] )
def removeContactCallback( self, contact ): QHelper.log( '::CONNECT:QContact:removeContact', contact ) if self.name == contact: DB.execute( "DELETE FROM `contact` WHERE `name`=?", self.name ) self.update()