diff --git a/src/bitmessageqt/__init__.py b/src/bitmessageqt/__init__.py
index d35066d7..77ac26d6 100644
--- a/src/bitmessageqt/__init__.py
+++ b/src/bitmessageqt/__init__.py
@@ -155,23 +155,22 @@ class MainWindow(Window):
j += 1
widget.setUnreadCount(unread)
i += 1
-
- treeWidget.setSortingEnabled(True)
+ treeWidget.setSortingEnabled(True)
def rerenderTabTreeMessages(self):
self.rerenderTabTree('messages')
def rerenderTabTreeChans(self):
self.rerenderTabTree('chan')
-
+
def rerenderTabTree(self, tab):
- if tab == 'messages':
- treeWidget = self.treeWidgetYourIdentities
- elif tab == 'chan':
- treeWidget = self.treeWidgetChans
+ if tab != 'chan':
+ return
+
+ treeWidget = self.treeWidgetChans
folders = Ui_FolderWidget.folderWeight.keys()
-
+
# sort ascending when creating
if treeWidget.topLevelItemCount() == 0:
treeWidget.header().setSortIndicator(
@@ -179,7 +178,7 @@ class MainWindow(Window):
# init dictionary
db = {}
enabled = {}
-
+
for toAddress in getSortedAccounts():
isEnabled = BMConfigParser().getboolean(
toAddress, 'enabled')
@@ -188,17 +187,14 @@ class MainWindow(Window):
isMaillinglist = BMConfigParser().safeGetBoolean(
toAddress, 'mailinglist')
- if treeWidget == self.treeWidgetYourIdentities:
- if isChan:
- continue
- elif treeWidget == self.treeWidgetChans:
+ if treeWidget == self.treeWidgetChans:
if not isChan:
continue
db[toAddress] = {}
for folder in folders:
db[toAddress][folder] = 0
-
+
enabled[toAddress] = isEnabled
# get number of (unread) messages
@@ -209,17 +205,17 @@ class MainWindow(Window):
total += cnt
if toaddress in db and folder in db[toaddress]:
db[toaddress][folder] = cnt
- if treeWidget == self.treeWidgetYourIdentities:
- db[None] = {}
- db[None]["inbox"] = total
- db[None]["new"] = total
- db[None]["sent"] = 0
- db[None]["trash"] = 0
- enabled[None] = True
-
+ # if treeWidget == self.treeWidgetYourIdentities:
+ # db[None] = {}
+ # db[None]["inbox"] = total
+ # db[None]["new"] = total
+ # db[None]["sent"] = 0
+ # db[None]["trash"] = 0
+ # enabled[None] = True
+
if treeWidget.isSortingEnabled():
treeWidget.setSortingEnabled(False)
-
+
widgets = {}
i = 0
while i < treeWidget.topLevelItemCount():
@@ -367,17 +363,17 @@ class MainWindow(Window):
self.UISignalThread.start()
# Key press in tree view
- self.treeWidgetYourIdentities.keyPressEvent = self.treeWidgetKeyPressEvent
+ # self.treeWidgetYourIdentities.keyPressEvent = self.treeWidgetKeyPressEvent
self.treeWidgetSubscriptions.keyPressEvent = self.treeWidgetKeyPressEvent
self.treeWidgetChans.keyPressEvent = self.treeWidgetKeyPressEvent
# Key press in messagelist
- self.messagelistInbox.keyPressEvent = self.tableWidgetKeyPressEvent
+ # self.messagelistInbox.keyPressEvent = self.tableWidgetKeyPressEvent
self.tableWidgetInboxSubscriptions.keyPressEvent = self.tableWidgetKeyPressEvent
self.tableWidgetInboxChans.keyPressEvent = self.tableWidgetKeyPressEvent
# Key press in messageview
- self.textEditInboxMessage.keyPressEvent = self.textEditKeyPressEvent
+ # self.textEditInboxMessage.keyPressEvent = self.textEditKeyPressEvent
self.textEditInboxMessageSubscriptions.keyPressEvent = self.textEditKeyPressEvent
self.textEditInboxMessageChans.keyPressEvent = self.textEditKeyPressEvent
@@ -544,7 +540,7 @@ class MainWindow(Window):
widget.item(row, col).setUnread(not status)
def propagateUnreadCount(self, address = None, folder = "inbox", widget = None, type = 1):
- widgets = [self.treeWidgetYourIdentities, self.treeWidgetSubscriptions, self.treeWidgetChans]
+ widgets = [self.treeWidgetSubscriptions, self.treeWidgetChans]
queryReturn = sqlQuery("SELECT toaddress, folder, COUNT(msgid) AS cnt FROM inbox WHERE read = 0 GROUP BY toaddress, folder")
totalUnread = {}
normalUnread = {}
@@ -1076,9 +1072,9 @@ class MainWindow(Window):
self.rerenderTabTreeMessages()
self.rerenderTabTreeSubscriptions()
self.rerenderTabTreeChans()
- if self.getCurrentFolder(self.treeWidgetYourIdentities) == "trash":
- self.loadMessagelist(self.tableWidgetInbox, self.getCurrentAccount(self.treeWidgetYourIdentities), "trash")
- elif self.getCurrentFolder(self.treeWidgetSubscriptions) == "trash":
+ # if self.getCurrentFolder(self.treeWidgetYourIdentities) == "trash":
+ # self.loadMessagelist(self.tableWidgetInbox, self.getCurrentAccount(self.treeWidgetYourIdentities), "trash")
+ if self.getCurrentFolder(self.treeWidgetSubscriptions) == "trash":
self.loadMessagelist(self.tableWidgetInboxSubscriptions, self.getCurrentAccount(self.treeWidgetSubscriptions), "trash")
elif self.getCurrentFolder(self.treeWidgetChans) == "trash":
self.loadMessagelist(self.tableWidgetInboxChans, self.getCurrentAccount(self.treeWidgetChans), "trash")
@@ -1829,12 +1825,12 @@ class MainWindow(Window):
treeWidget = self.widgetConvert(sent)
if self.getCurrentFolder(treeWidget) != "sent":
continue
- if (
- treeWidget == self.treeWidgetYourIdentities and
- self.getCurrentAccount(treeWidget)
- not in (fromAddress, None, False)
- ):
- continue
+ # if (
+ # treeWidget == self.treeWidgetYourIdentities and
+ # self.getCurrentAccount(treeWidget)
+ # not in (fromAddress, None, False)
+ # ):
+ # continue
elif treeWidget in [self.treeWidgetSubscriptions, self.treeWidgetChans] and self.getCurrentAccount(treeWidget) != toAddress:
continue
elif not helper_search.check_match(toAddress, fromAddress, subject, message, self.getCurrentSearchOption(tab), self.getCurrentSearchLine(tab)):
@@ -1852,7 +1848,7 @@ class MainWindow(Window):
inbox = self.getAccountMessagelist(acct)
ret = None
tab = -1
- for treeWidget in [self.treeWidgetYourIdentities, self.treeWidgetSubscriptions, self.treeWidgetChans]:
+ for treeWidget in [self.treeWidgetSubscriptions, self.treeWidgetChans]:
tab += 1
if tab == 1:
tab = 2
@@ -1861,12 +1857,12 @@ class MainWindow(Window):
continue
if tableWidget == inbox and self.getCurrentAccount(treeWidget) == acct.address and self.getCurrentFolder(treeWidget) in ["inbox", None]:
ret = self.addMessageListItemInbox(inbox, "inbox", inventoryHash, toAddress, fromAddress, subject, time.time(), 0)
- elif (
- treeWidget == self.treeWidgetYourIdentities and
- self.getCurrentAccount(treeWidget) is None and
- self.getCurrentFolder(treeWidget) in ("inbox", "new", None)
- ):
- ret = self.addMessageListItemInbox(tableWidget, "inbox", inventoryHash, toAddress, fromAddress, subject, time.time(), 0)
+ # elif (
+ # treeWidget == self.treeWidgetYourIdentities and
+ # self.getCurrentAccount(treeWidget) is None and
+ # self.getCurrentFolder(treeWidget) in ("inbox", "new", None)
+ # ):
+ # ret = self.addMessageListItemInbox(tableWidget, "inbox", inventoryHash, toAddress, fromAddress, subject, time.time(), 0)
if ret is None:
acct.parseMessage(toAddress, fromAddress, subject, "")
else:
@@ -2855,14 +2851,10 @@ class MainWindow(Window):
self.treeWidgetSubscriptions.mapToGlobal(point))
def widgetConvert(self, widget):
- # if widget == self.tableWidgetInbox:
- # return self.treeWidgetYourIdentities
if widget == self.tableWidgetInboxSubscriptions:
return self.treeWidgetSubscriptions
elif widget == self.tableWidgetInboxChans:
return self.treeWidgetChans
- elif widget == self.treeWidgetYourIdentities:
- return self.messagelistInbox
elif widget == self.treeWidgetSubscriptions:
return self.tableWidgetInboxSubscriptions
elif widget == self.treeWidgetChans:
@@ -2871,26 +2863,17 @@ class MainWindow(Window):
def getCurrentTreeWidget(self):
currentIndex = self.tabWidget.currentIndex()
treeWidgetList = [
- self.treeWidgetYourIdentities,
- False,
self.treeWidgetSubscriptions,
self.treeWidgetChans
]
- if currentIndex >= 0 and currentIndex < len(treeWidgetList):
+ if currentIndex >= 2 and currentIndex - 2 < len(treeWidgetList):
return treeWidgetList[currentIndex]
- else:
- return False
def getAccountTreeWidget(self, account):
- try:
- if account.type == AccountMixin.CHAN:
- return self.treeWidgetChans
- elif account.type == AccountMixin.SUBSCRIPTION:
- return self.treeWidgetSubscriptions
- else:
- return self.treeWidgetYourIdentities
- except:
- return self.treeWidgetYourIdentities
+ if account.type == AccountMixin.CHAN:
+ return self.treeWidgetChans
+ elif account.type == AccountMixin.SUBSCRIPTION:
+ return self.treeWidgetSubscriptions
def getCurrentMessagelist(self):
currentIndex = self.tabWidget.currentIndex()
@@ -2900,8 +2883,6 @@ class MainWindow(Window):
)
if currentIndex >= 2 and currentIndex - 2 < len(messagelistList):
return messagelistList[currentIndex - 2]
- else:
- return False
def getAccountMessagelist(self, account):
try:
@@ -2928,15 +2909,11 @@ class MainWindow(Window):
def getCurrentMessageTextedit(self):
currentIndex = self.tabWidget.currentIndex()
messagelistList = [
- self.textEditInboxMessage,
- False,
self.textEditInboxMessageSubscriptions,
self.textEditInboxMessageChans,
]
- if currentIndex >= 0 and currentIndex < len(messagelistList):
+ if currentIndex >= 2 and currentIndex - 2 < len(messagelistList):
return messagelistList[currentIndex]
- else:
- return False
def getAccountTextedit(self, account):
try:
@@ -2953,32 +2930,24 @@ class MainWindow(Window):
if currentIndex is None:
currentIndex = self.tabWidget.currentIndex()
messagelistList = [
- self.inboxSearchLineEdit,
- False,
self.inboxSearchLineEditSubscriptions,
self.inboxSearchLineEditChans,
]
- if currentIndex >= 0 and currentIndex < len(messagelistList):
+ if currentIndex >= 2 and currentIndex - 2 < len(messagelistList):
if retObj:
return messagelistList[currentIndex]
else:
return messagelistList[currentIndex].text().toUtf8().data()
- else:
- return None
def getCurrentSearchOption(self, currentIndex=None):
if currentIndex is None:
currentIndex = self.tabWidget.currentIndex()
messagelistList = [
- self.inboxSearchOption,
- False,
self.inboxSearchOptionSubscriptions,
self.inboxSearchOptionChans,
]
- if currentIndex >= 0 and currentIndex < len(messagelistList):
+ if currentIndex >= 2 and currentIndex - 2 < len(messagelistList):
return messagelistList[currentIndex].currentText().toUtf8().data()
- else:
- return None
# Group of functions for the Your Identities dialog box
def getCurrentItem(self, treeWidget=None):
@@ -2989,7 +2958,7 @@ class MainWindow(Window):
if currentItem:
return currentItem
return False
-
+
def getCurrentAccount(self, treeWidget=None):
currentItem = self.getCurrentItem(treeWidget)
if currentItem:
@@ -3473,11 +3442,11 @@ class MainWindow(Window):
messageTextedit.setTextColor(QtGui.QColor())
messageTextedit.setContent(message)
- def messagelistSelect(self, msg):
- messageTextedit = self.getCurrentMessageTextedit()
- if not messageTextedit:
- return
- messageTextedit.setContent(msg)
+ # def messagelistSelect(self, msg):
+ # messageTextedit = self.getCurrentMessageTextedit()
+ # if not messageTextedit:
+ # return
+ # messageTextedit.setContent(msg)
def tableWidgetAddressBookItemChanged(self, item):
if item.type == AccountMixin.CHAN:
diff --git a/src/bitmessageqt/main.py b/src/bitmessageqt/main.py
index d3c7037a..6a242bfb 100644
--- a/src/bitmessageqt/main.py
+++ b/src/bitmessageqt/main.py
@@ -52,7 +52,7 @@ class Window(settingsmixin.SMainWindow):
# splitters
for splitter in (
- self.inboxHorizontalSplitter,
+ # self.inboxHorizontalSplitter,
self.sendHorizontalSplitter,
self.subscriptionsHorizontalSplitter,
self.chansHorizontalSplitter
@@ -63,7 +63,7 @@ class Window(settingsmixin.SMainWindow):
splitter.setCollapsible(1, False)
for splitter in (
- self.inboxMessagecontrolSplitter,
+ # self.inboxMessagecontrolSplitter,
self.subscriptionsMessagecontrolSplitter,
self.chansMessagecontrolSplitter
):
diff --git a/src/bitmessageqt/main.ui b/src/bitmessageqt/main.ui
index 62657030..f366a33d 100644
--- a/src/bitmessageqt/main.ui
+++ b/src/bitmessageqt/main.ui
@@ -68,7 +68,7 @@
0
-
+
:/newPrefix/images/inbox.png:/newPrefix/images/inbox.png
@@ -76,178 +76,6 @@
Messages
-
-
- 8
-
-
- 8
-
-
- 8
-
-
- 8
-
- -
-
-
- Qt::Horizontal
-
-
-
-
-
-
-
-
- 200
- 0
-
-
-
- Qt::CustomContextMenu
-
-
-
- Identities
-
-
-
- :/newPrefix/images/identities.png
-
-
-
-
-
- -
-
-
-
- 200
- 16777215
-
-
-
- New Indentitiy
-
-
-
-
-
-
-
- Qt::Vertical
-
-
-
- -
-
-
- Search
-
-
-
- -
-
-
-
-
- All
-
-
- -
-
- To
-
-
- -
-
- From
-
-
- -
-
- Subject
-
-
- -
-
- Message
-
-
-
-
-
-
-
-
- Qt::CustomContextMenu
-
-
- QAbstractItemView::NoEditTriggers
-
-
- true
-
-
- QAbstractItemView::ExtendedSelection
-
-
- QAbstractItemView::SelectRows
-
-
- true
-
-
- false
-
-
- true
-
-
- 200
-
-
- false
-
-
- 27
-
-
- false
-
-
- true
-
-
- false
-
-
- 26
-
-
-
-
-
- 0
- 500
-
-
-
- true
-
-
-
- Welcome to easy and secure Bitmessage
- * send messages to other people
- * send broadcast messages like twitter or
- * discuss in chan(nel)s with other people
-
-
-
-
-
-
-
@@ -1585,8 +1413,8 @@ p, li { white-space: pre-wrap; }
bitmessageqt.settingsmixin
- InboxMessagelist
- QTableView
+ MessagelistControl
+ QWidget
@@ -1602,8 +1430,6 @@ p, li { white-space: pre-wrap; }
- messagelistInbox
- textEditInboxMessage
comboBoxSendFrom
lineEditTo
lineEditSubject
@@ -1759,22 +1585,6 @@ p, li { white-space: pre-wrap; }
-
- pushButtonNewAddress
- clicked()
- MainWindow
- click_NewAddressDialog
-
-
- 20
- 20
-
-
- 20
- 20
-
-
-
pushButtonAddAddressBook
clicked()
@@ -1903,22 +1713,6 @@ p, li { white-space: pre-wrap; }
-
- messagelistInbox
- customContextMenuRequested(QPoint)
- MainWindow
- on_context_menuInbox()
-
-
- 656
- 366
-
-
- 442
- 289
-
-
-
tableWidgetInboxSubscriptions
customContextMenuRequested(QPoint)
@@ -1951,22 +1745,6 @@ p, li { white-space: pre-wrap; }
-
- treeWidgetYourIdentities
- customContextMenuRequested(QPoint)
- MainWindow
- on_context_menuYourIdentities()
-
-
- 20
- 20
-
-
- 20
- 20
-
-
-
tableWidgetAddressBook
customContextMenuRequested(QPoint)
@@ -2655,22 +2433,6 @@ p, li { white-space: pre-wrap; }
-
- inboxSearchLineEdit
- returnPressed()
- MainWindow
- inboxSearchLineEditReturnPressed
-
-
- 20
- 20
-
-
- 20
- 20
-
-
-
inboxSearchLineEditSubscriptions
returnPressed()
@@ -2703,22 +2465,6 @@ p, li { white-space: pre-wrap; }
-
- inboxSearchLineEdit
- textChanged(QString)
- MainWindow
- inboxSearchLineEditUpdated
-
-
- 20
- 20
-
-
- 20
- 20
-
-
-
inboxSearchLineEditSubscriptions
textChanged(QString)
@@ -2767,22 +2513,6 @@ p, li { white-space: pre-wrap; }
-
- messagelistInbox
- messageSelected(QString)
- MainWindow
- messagelistSelect
-
-
- 20
- 20
-
-
- 20
- 20
-
-
-
tableWidgetInboxSubscriptions
itemSelectionChanged()
@@ -2815,22 +2545,6 @@ p, li { white-space: pre-wrap; }
-
- treeWidgetYourIdentities
- itemSelectionChanged()
- MainWindow
- treeWidgetItemClicked
-
-
- 20
- 20
-
-
- 20
- 20
-
-
-
treeWidgetSubscriptions
itemSelectionChanged()
@@ -2863,22 +2577,6 @@ p, li { white-space: pre-wrap; }
-
- treeWidgetYourIdentities
- itemChanged(QTreeWidgetItem*,int)
- MainWindow
- treeWidgetItemChanged
-
-
- 20
- 20
-
-
- 20
- 20
-
-
-
treeWidgetSubscriptions
itemChanged(QTreeWidgetItem*,int)
diff --git a/src/bitmessageqt/messagelist.py b/src/bitmessageqt/messagelist.py
index 77e8720d..c912c88c 100644
--- a/src/bitmessageqt/messagelist.py
+++ b/src/bitmessageqt/messagelist.py
@@ -2,7 +2,10 @@ from collections import OrderedDict
from PyQt4 import QtCore, QtGui
+import account
+import foldertree
import l10n
+import widgets
from bmconfigparser import BMConfigParser
from debug import logger
from helper_sql import sqlQuery, sqlExecute
@@ -93,7 +96,8 @@ class InboxTableModel(QtCore.QAbstractTableModel):
def __init__(self, parent=None):
super(InboxTableModel, self).__init__()
- self.filter = InboxFilter(fields=self.fields)
+ # folder='*' gives empty set
+ self.filter = InboxFilter(folder='*', fields=self.fields)
self.fields = ','.join(self.fields)
self.query = 'SELECT %%s FROM %s ' % self.table
self.sort = ' ORDER BY received DESC'
@@ -159,8 +163,10 @@ class InboxTableModel(QtCore.QAbstractTableModel):
)[0][0]
def updateFilter(self, *args, **kwargs):
+ prev = self.filter.__str__()
self.filter.update(*args, **kwargs)
- self.emit(QtCore.SIGNAL("layoutChanged()"))
+ if prev != self.filter.__str__():
+ self.emit(QtCore.SIGNAL("layoutChanged()"))
class InboxMessagelist(QtGui.QTableView):
@@ -170,8 +176,80 @@ class InboxMessagelist(QtGui.QTableView):
def currentChanged(self, cur_id, prev_id):
row = cur_id.row()
- if row == prev_id.row():
+ if row and row == prev_id.row():
return
+ # what if folder changed?
self.model().setRead(row)
msg = self.model().getMessage(row)
self.emit(QtCore.SIGNAL("messageSelected(QString)"), msg)
+
+ def folderChanged(self, cur_folder, prev_folder):
+ if cur_folder == prev_folder:
+ return
+ try:
+ folder = cur_folder.folderName
+ except AttributeError:
+ folder = 'inbox'
+ update = {'folder': folder}
+ if cur_folder.address:
+ update['toaddress'] = cur_folder.address
+ self.model().updateFilter(update)
+ self.selectRow(0)
+
+
+class TreeWidgetIdentities(QtGui.QTreeWidget):
+ def __init__(self, parent):
+ super(TreeWidgetIdentities, self).__init__(parent)
+ folders = ('inbox', 'new', 'sent', 'trash')
+ accounts = account.getSortedAccounts() + account.getSortedSubscriptions().keys()
+ top = foldertree.Ui_AddressWidget(self, 0, None, 0, True)
+ for i, folder in enumerate(folders):
+ foldertree.Ui_FolderWidget(top, i, None, folder, 0)
+ for i, addr in enumerate(accounts):
+ top = foldertree.Ui_AddressWidget(
+ self, i, addr, 0,
+ BMConfigParser().safeGetBoolean(addr, 'enabled'))
+ for j, folder in enumerate(folders):
+ foldertree.Ui_FolderWidget(top, j, addr, folder, 0)
+ self.header().setSortIndicator(0, QtCore.Qt.AscendingOrder)
+
+ def filterAccountType(self, account_type):
+ header = self.headerItem()
+ if account_type == foldertree.AccountMixin.CHAN:
+ header.setText(0, _translate("MainWindow", "Chans"))
+ header.setIcon(0, QtGui.QIcon(":/newPrefix/images/can-icon-16px.png"))
+ elif account_type == foldertree.AccountMixin.SUBSCRIPTION:
+ header.setText(0, _translate("MainWindow", "Subscriptions"))
+ header.setIcon(0, QtGui.QIcon(":/newPrefix/images/subscriptions.png"))
+ for i in xrange(self.topLevelItemCount()):
+ item = self.topLevelItem(i)
+ if item.type != account_type:
+ self.setItemHidden(item, True)
+
+
+class MessagelistControl(QtGui.QWidget):
+ @QtCore.pyqtProperty(int)
+ def AccountType(self):
+ return self._account_type
+
+ def setAccountType(self, value):
+ self._account_type = value
+
+ def __init__(self, parent=None):
+ super(MessagelistControl, self).__init__(parent)
+ widgets.load('messagelistcontrol.ui', self)
+
+ self.horizontalSplitter.setStretchFactor(0, 0)
+ self.horizontalSplitter.setStretchFactor(1, 1)
+ self.horizontalSplitter.setCollapsible(0, False)
+ self.horizontalSplitter.setCollapsible(1, False)
+
+ self.verticalSplitter.setStretchFactor(0, 0)
+ self.verticalSplitter.setStretchFactor(1, 1)
+ self.verticalSplitter.setStretchFactor(2, 2)
+ self.verticalSplitter.setCollapsible(0, False)
+ self.verticalSplitter.setCollapsible(1, False)
+ self.verticalSplitter.setCollapsible(2, False)
+ self.verticalSplitter.handle(1).setEnabled(False)
+
+ self.treeWidget.filterAccountType(self.AccountType)
diff --git a/src/bitmessageqt/messagelistcontrol.ui b/src/bitmessageqt/messagelistcontrol.ui
new file mode 100644
index 00000000..d9ead7ec
--- /dev/null
+++ b/src/bitmessageqt/messagelistcontrol.ui
@@ -0,0 +1,343 @@
+
+
+ MessagelistControl
+
+
+ 1
+
+
+
+ 0
+ 0
+ 819
+ 295
+
+
+
+
+ 8
+
+
+ 8
+
+
+ 8
+
+
+ 8
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+
-
+
+
+
+ 200
+ 0
+
+
+
+ Qt::CustomContextMenu
+
+
+ true
+
+
+
+ Identities
+
+
+
+ :/newPrefix/images/identities.png
+
+
+
+
+
+ -
+
+
+
+ 200
+ 16777215
+
+
+
+ New
+
+
+
+
+
+
+
+ Qt::Vertical
+
+
+
+ -
+
+
+ Search
+
+
+
+ -
+
+
-
+
+ All
+
+
+ -
+
+ To
+
+
+ -
+
+ From
+
+
+ -
+
+ Subject
+
+
+ -
+
+ Message
+
+
+
+
+
+
+
+
+ Qt::CustomContextMenu
+
+
+ QAbstractItemView::NoEditTriggers
+
+
+ true
+
+
+ QAbstractItemView::ExtendedSelection
+
+
+ QAbstractItemView::SelectRows
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+ 200
+
+
+ false
+
+
+ 27
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+ 26
+
+
+
+
+
+ 0
+ 500
+
+
+
+ true
+
+
+
+ Welcome to easy and secure Bitmessage
+ * send messages to other people
+ * send broadcast messages like twitter or
+ * discuss in chan(nel)s with other people
+
+
+
+
+
+
+
+
+
+
+ MessageView
+ QTextEdit
+
+
+
+ STreeWidget
+ QTreeWidget
+ bitmessageqt.settingsmixin
+
+
+ SSplitter
+ QSplitter
+ bitmessageqt.settingsmixin
+ 1
+
+
+ InboxMessagelist
+ QTableView
+
+
+
+ TreeWidgetIdentities
+ QTreeWidget
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ treeWidget
+ currentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*)
+ messagelistInbox
+ folderChanged
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ messagelistInbox
+ messageSelected(QString)
+ messageView
+ setContent
+
+
+ 20
+ 20
+
+
+ 20
+ 20
+
+
+
+
+