Exemplo n.º 1
0
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();
    }
}
Exemplo n.º 2
0
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();
  }
}