@@ -419,26 +419,16 @@ def rerenderTabTreeSubscriptions(self):
419419 treeWidget = self .ui .treeWidgetSubscriptions
420420 folders = ['inbox' , 'trash' ]
421421 treeWidget .clear ()
422+ treeWidget .setSortingEnabled (False )
423+ treeWidget .header ().setSortIndicator (0 , Qt .AscendingOrder )
422424 queryreturn = sqlQuery ('SELECT label, address, enabled FROM subscriptions' )
423425 for row in queryreturn :
424426 label , address , enabled = row
425- newItem = QtGui .QTreeWidgetItem (treeWidget )
426- newItem .setExpanded (True )
427- newItem .setIcon (0 , avatarize (address ))
428- newItem .setText (0 , label + ' (' + address + ')' )
429- newItem .setData (0 , Qt .UserRole , [str (address ), "inbox" ])
430- #set text color
431- if enabled :
432- brush = QtGui .QBrush (QApplication .palette ().text ().color ())
433- else :
434- brush = QtGui .QBrush (QtGui .QColor (128 , 128 , 128 ))
435- brush .setStyle (QtCore .Qt .NoBrush )
436- newItem .setForeground (0 , brush )
427+ newItem = Ui_SubscriptionWidget (treeWidget , 0 , address , 0 , label , enabled )
437428
438429 for folder in folders :
439- newSubItem = QtGui .QTreeWidgetItem (newItem )
440- newSubItem .setText (0 , _translate ("MainWindow" , folder ))
441- newSubItem .setData (0 , Qt .UserRole , [str (address ), folder ])
430+ newSubItem = Ui_FolderWidget (newItem , 0 , address , folder , 0 )
431+ treeWidget .setSortingEnabled (True )
442432
443433 def rerenderTabTreeMessages (self ):
444434 self .rerenderTabTree ('messages' )
@@ -457,7 +447,6 @@ def rerenderTabTree(self, tab):
457447 # sort ascending when creating
458448 if treeWidget .topLevelItemCount () == 0 :
459449 treeWidget .header ().setSortIndicator (0 , Qt .AscendingOrder )
460-
461450 # init dictionary
462451 db = {}
463452 enabled = {}
@@ -989,18 +978,22 @@ def loadMessagelist(self, tableWidget, account, folder="inbox", where="", what="
989978 where = "message"
990979 else :
991980 where = "toaddress || fromaddress || subject || message"
992-
981+
982+ if tableWidget == self .ui .tableWidgetInboxSubscriptions :
983+ xAddress = "fromaddress"
984+ else :
985+ xAddress = "toaddress"
993986 if folder != False :
994987 sqlStatement = '''
995988 SELECT folder, msgid, toaddress, fromaddress, subject, received, read
996- FROM inbox WHERE toaddress =? AND folder=? AND %s LIKE ?
989+ FROM inbox WHERE ''' + xAddress + ''' =? AND folder=? AND %s LIKE ?
997990 ORDER BY received
998991 ''' % (where )
999992 queryreturn = sqlQuery (sqlStatement , account , folder , what )
1000993 else :
1001994 sqlStatement = '''
1002995 SELECT folder, msgid, toaddress, fromaddress, subject, received, read
1003- FROM inbox WHERE toaddress =? AND folder != "trash" AND %s LIKE ?
996+ FROM inbox WHERE ''' + xAddress + ''' =? AND folder != "trash" AND %s LIKE ?
1004997 ORDER BY received
1005998 ''' % (where )
1006999 queryreturn = sqlQuery (sqlStatement , account , what )
@@ -1018,7 +1011,10 @@ def loadMessagelist(self, tableWidget, account, folder="inbox", where="", what="
10181011 for row in queryreturn :
10191012 msgfolder , msgid , toAddress , fromAddress , subject , received , read = row
10201013 if acct is None :
1021- acct = accountClass (toAddress )
1014+ if tableWidget == self .ui .tableWidgetInboxSubscriptions :
1015+ acct = accountClass (fromAddress )
1016+ else :
1017+ acct = accountClass (toAddress )
10221018 subject = shared .fixPotentiallyInvalidUTF8Data (subject )
10231019 acct .parseMessage (toAddress , fromAddress , subject , "" )
10241020
@@ -1794,11 +1790,12 @@ def updateSentItemStatusByAckdata(self, ackdata, textToDisplay):
17941790 self .ui .tableWidgetInbox .item (i , 3 ).setText (textToDisplay )
17951791
17961792 def removeInboxRowByMsgid (self , msgid ): # msgid and inventoryHash are the same thing
1797- for i in range (self .ui .tableWidgetInbox .rowCount ()):
1798- if msgid == str (self .ui .tableWidgetInbox .item (i , 3 ).data (Qt .UserRole ).toPyObject ()):
1793+ inbox = self .getCurrentMessagelist
1794+ for i in range (inbox .rowCount ()):
1795+ if msgid == str (inbox .item (i , 3 ).data (Qt .UserRole ).toPyObject ()):
17991796 self .statusBar ().showMessage (_translate (
18001797 "MainWindow" , "Message trashed" ))
1801- self . ui . tableWidgetInbox .removeRow (i )
1798+ inbox .removeRow (i )
18021799 break
18031800 self .changedInboxUnread ()
18041801
@@ -2084,7 +2081,7 @@ def click_pushButtonSend(self):
20842081 self .ui .lineEditTo .setText ('' )
20852082 self .ui .lineEditSubject .setText ('' )
20862083 self .ui .textEditMessage .setText ('' )
2087- self .ui .tabWidget .setCurrentIndex (2 )
2084+ self .ui .tabWidget .setCurrentIndex (0 )
20882085 self .ui .tableWidgetInbox .setCurrentCell (0 , 0 )
20892086 else :
20902087 self .statusBar ().showMessage (_translate (
@@ -2131,7 +2128,7 @@ def click_pushButtonSend(self):
21312128 self .ui .lineEditSubjectBroadcast .setText ('' )
21322129 self .ui .textEditMessageBroadcast .setText ('' )
21332130 self .ui .tabWidget .setCurrentIndex (1 )
2134- self .ui .tableWidgetInbox .setCurrentCell (0 , 0 )
2131+ self .ui .tableWidgetInboxSubscriptions .setCurrentCell (0 , 0 )
21352132
21362133 def click_pushButtonLoadFromAddressBook (self ):
21372134 self .ui .tabWidget .setCurrentIndex (5 )
@@ -2242,10 +2239,12 @@ def displayNewInboxMessage(self, inventoryHash, toAddress, fromAddress, subject,
22422239 subject = shared .fixPotentiallyInvalidUTF8Data (subject )
22432240 acct = accountClass (toAddress )
22442241 acct .parseMessage (toAddress , fromAddress , subject , message )
2242+
2243+ inbox = self .getCurrentMessagelist ()
22452244
22462245 font = QFont ()
22472246 font .setBold (True )
2248- self . ui . tableWidgetInbox .setSortingEnabled (False )
2247+ inbox .setSortingEnabled (False )
22492248 newItem = QtGui .QTableWidgetItem (unicode (acct .toLabel , 'utf-8' ))
22502249 newItem .setToolTip (unicode (acct .toLabel , 'utf-8' ))
22512250 newItem .setFont (font )
@@ -2254,9 +2253,9 @@ def displayNewInboxMessage(self, inventoryHash, toAddress, fromAddress, subject,
22542253 newItem .setTextColor (QtGui .QColor (137 , 04 , 177 )) # magenta
22552254 if acct .type == 'chan' :
22562255 newItem .setTextColor (QtGui .QColor (216 , 119 , 0 )) # orange
2257- self . ui . tableWidgetInbox .insertRow (0 )
2256+ inbox .insertRow (0 )
22582257 newItem .setIcon (avatarize (toAddress ))
2259- self . ui . tableWidgetInbox .setItem (0 , 0 , newItem )
2258+ inbox .setItem (0 , 0 , newItem )
22602259
22612260 newItem = QtGui .QTableWidgetItem (unicode (acct .fromLabel , 'utf-8' ))
22622261 newItem .setToolTip (unicode (acct .fromLabel , 'utf-8' ))
@@ -2265,21 +2264,21 @@ def displayNewInboxMessage(self, inventoryHash, toAddress, fromAddress, subject,
22652264 newItem .setData (Qt .UserRole , str (fromAddress ))
22662265 newItem .setFont (font )
22672266 newItem .setIcon (avatarize (fromAddress ))
2268- self . ui . tableWidgetInbox .setItem (0 , 1 , newItem )
2267+ inbox .setItem (0 , 1 , newItem )
22692268 newItem = QtGui .QTableWidgetItem (unicode (acct .subject , 'utf-8)' ))
22702269 newItem .setToolTip (unicode (acct .subject , 'utf-8)' ))
22712270 newItem .setData (Qt .UserRole , str (subject ))
22722271
22732272 #newItem.setData(Qt.UserRole, unicode(message, 'utf-8)')) # No longer hold the message in the table; we'll use a SQL query to display it as needed.
22742273 newItem .setFont (font )
2275- self . ui . tableWidgetInbox .setItem (0 , 2 , newItem )
2274+ inbox .setItem (0 , 2 , newItem )
22762275 newItem = myTableWidgetItem (l10n .formatTimestamp ())
22772276 newItem .setToolTip (l10n .formatTimestamp ())
22782277 newItem .setData (Qt .UserRole , QByteArray (inventoryHash ))
22792278 newItem .setData (33 , int (time .time ()))
22802279 newItem .setFont (font )
2281- self . ui . tableWidgetInbox .setItem (0 , 3 , newItem )
2282- self . ui . tableWidgetInbox .setSortingEnabled (True )
2280+ inbox .setItem (0 , 3 , newItem )
2281+ inbox .setSortingEnabled (True )
22832282 self .ubuntuMessagingMenuUpdate (True , newItem , acct .toLabel )
22842283
22852284 def click_pushButtonAddAddressBook (self ):
@@ -2931,7 +2930,8 @@ def on_action_InboxTrash(self):
29312930 if not tableWidget :
29322931 return
29332932 unread = False
2934- while tableWidget .selectedIndexes () != []:
2933+ currentRow = 0
2934+ while tableWidget .selectedIndexes ():
29352935 currentRow = tableWidget .selectedIndexes ()[0 ].row ()
29362936 inventoryHashToTrash = str (tableWidget .item (
29372937 currentRow , 3 ).data (Qt .UserRole ).toPyObject ())
@@ -2947,7 +2947,7 @@ def on_action_InboxTrash(self):
29472947 else :
29482948 tableWidget .selectRow (currentRow - 1 )
29492949 if unread :
2950- changedInboxUnread ()
2950+ self . changedInboxUnread ()
29512951
29522952 def on_action_InboxSaveMessageAs (self ):
29532953 tableWidget = self .getCurrentMessagelist ()
@@ -3481,7 +3481,7 @@ def treeWidgetItemChanged(self, item, column):
34813481 if column != 0 :
34823482 return
34833483 # only account names of normal addresses (no chans/mailinglists)
3484- if (not isinstance (item , Ui_AddressWidget )) or item .type != 'normal' or self .getCurrentTreeWidget ().currentItem () is None :
3484+ if (not isinstance (item , Ui_AddressWidget )) or item .type != 'normal' or not self . getCurrentTreeWidget () or self .getCurrentTreeWidget ().currentItem () is None :
34853485 return
34863486 # not visible
34873487 if (not self .getCurrentAccount ()) or (not isinstance (self .getCurrentAccount (), Ui_AddressWidget )):
0 commit comments