void ColMsgTable::button_pressed(const QModelIndex &index) { int row, col; row = index.row(); col = index.column(); if ((( row) >= flat_msg_list.count()) || (col > CMD_COL)) // wrong signal return; if (col == MSG_COL) edit_msg(row); else if (col <= HI_RANK_COL) change_ranks(row, col); else { QMenu m; MenuFactory::createTitle(m, QString(tr("rank ")) + text(row, ABS_RANK_COL) + " : " + text(row, HI_RANK_COL)); m.addSeparator(); MenuFactory::addItem(m, tr("Edit message"), 1); MenuFactory::addItem(m, tr("Change ranks"), 2); m.addSeparator(); MenuFactory::addItem(m, tr("Delete it"), 3); if (!flat_msg_list[row]->msgs.isEmpty()) MenuFactory::addItem(m, tr("Delete recursively"), 4); QAction* retAction = m.exec(QCursor::pos()); if(retAction) { switch (retAction->data().toInt()) { case 1: edit_msg(row); // no break; default: return; case 2: change_ranks(row, col); return; case 3: flat_msg_list[row]->delete_it(FALSE, view->get_msgs()); break; case 4: flat_msg_list[row]->delete_it(TRUE, view->get_msgs()); break; } } view->update_msgs(); refresh(); } }
void ColMsgTable::button_pressed(int row, int col, int, const QPoint &) { if ((((unsigned) row) >= flat_msg_list.count()) || (col > CMD_COL)) // wrong signal return; if (col == MSG_COL) edit_msg(row); else if (col <= HI_RANK_COL) change_ranks(row, col); else { Q3PopupMenu m; m.insertItem(new MenuTitle(QString(TR("rank ")) + text(row, ABS_RANK_COL) + " : " + text(row, HI_RANK_COL), m.font()), -1); m.insertSeparator(); m.insertItem(TR("Edit message"), 1); m.insertItem(TR("Change ranks"), 2); m.insertSeparator(); m.insertItem(TR("Delete it"), 3); if (!flat_msg_list[row]->msgs.isEmpty()) m.insertItem(TR("Delete recursively"), 4); switch (m.exec(QCursor::pos())) { case 1: edit_msg(row); // no break; default: return; case 2: change_ranks(row, col); return; case 3: flat_msg_list[row]->delete_it(FALSE, view->get_msgs()); break; case 4: flat_msg_list[row]->delete_it(TRUE, view->get_msgs()); break; } view->update_msgs(); refresh(); } }