void Mailbox::initial(IMailProcessor& mailProcessor, MailboxModel* model, InboxType type, KeyhoteeMainWindow* parentKehoteeMainW) { _type = type; _sourceModel = model; _mailProcessor = &mailProcessor; //enable sorting the mailbox QSortFilterProxyModel* proxyModel = new MailSortFilterProxyModel(); proxyModel->setSourceModel(model); ui->inbox_table->setModel(proxyModel); //ui->inbox_table->sortByColumn(0, Qt::AscendingOrder); //ui->inbox_table->setModel( model ); ui->inbox_table->setShowGrid(false); ui->inbox_table->horizontalHeader()->resizeSection(MailboxModel::To, 120); ui->inbox_table->horizontalHeader()->resizeSection(MailboxModel::Subject, 300); ui->inbox_table->horizontalHeader()->resizeSection(MailboxModel::DateReceived, 140); ui->inbox_table->horizontalHeader()->resizeSection(MailboxModel::From, 120); ui->inbox_table->horizontalHeader()->resizeSection(MailboxModel::DateSent, 120); if (_type == Inbox) { ui->inbox_table->horizontalHeader()->hideSection(MailboxModel::Status); ui->inbox_table->horizontalHeader()->hideSection(MailboxModel::DateSent); } if (_type == Sent) { ui->inbox_table->horizontalHeader()->swapSections(MailboxModel::To, MailboxModel::From); ui->inbox_table->horizontalHeader()->swapSections(MailboxModel::DateReceived, MailboxModel::DateSent); ui->inbox_table->horizontalHeader()->hideSection(MailboxModel::DateReceived); } if (_type == Drafts) { ui->inbox_table->horizontalHeader()->swapSections(MailboxModel::To, MailboxModel::From); ui->inbox_table->horizontalHeader()->swapSections(MailboxModel::DateReceived, MailboxModel::DateSent); ui->inbox_table->horizontalHeader()->hideSection(MailboxModel::DateReceived); ui->inbox_table->horizontalHeader()->hideSection(MailboxModel::Status); } ui->inbox_table->horizontalHeader()->setSectionsMovable(true); ui->inbox_table->horizontalHeader()->setSortIndicatorShown(false); ui->inbox_table->horizontalHeader()->setSectionsClickable(true); ui->inbox_table->horizontalHeader()->setHighlightSections(true); //connect signals for the new selection model (created by setModel call) QItemSelectionModel* inbox_selection_model = ui->inbox_table->selectionModel(); connect(inbox_selection_model, &QItemSelectionModel::selectionChanged, this, &Mailbox::onSelectionChanged); connect(inbox_selection_model, &QItemSelectionModel::currentChanged, this, &Mailbox::showCurrentMail); connect(ui->inbox_table, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(onDoubleClickedItem(QModelIndex))); connect(reply_mail, &QAction::triggered, this, &Mailbox::onReplyMail); connect(reply_all_mail, &QAction::triggered, this, &Mailbox::onReplyAllMail); connect(forward_mail, &QAction::triggered, this, &Mailbox::onForwardMail); connect(delete_mail, &QAction::triggered, this, &Mailbox::onDeleteMail); // hidden Coin Attachment Column ui->inbox_table->hideColumn(MailboxModel::Money); // hidden Chat Column ui->inbox_table->hideColumn(MailboxModel::Chat); }
void Mailbox::onOpenMail() { QItemSelectionModel* selection_model = ui->inbox_table->selectionModel(); QModelIndexList indexes = selection_model->selectedRows(); onDoubleClickedItem(indexes.first()); }