added columns context menu entry, to hide optional some columns

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@7923 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
defnax 2015-02-07 20:24:27 +00:00
parent 83f2ee4c95
commit 3b5644c474
2 changed files with 73 additions and 4 deletions

View File

@ -170,14 +170,21 @@ IdDialog::IdDialog(QWidget *parent) :
headerText = headerItem->text(RSID_COL_KEYID);
ui->filterLineEdit->addFilter(QIcon(), headerItem->text(RSID_COL_KEYID), RSID_COL_KEYID, QString("%1 %2").arg(tr("Search"), headerText));
/* Set header resize modes and initial section sizes ID TreeView*/
QHeaderView * _idheader = ui->treeWidget_IdList->header () ;
_idheader->resizeSection ( RSID_COL_NICKNAME, 170 );
initializeHeader(true);
/* Setup tree */
ui->treeWidget_IdList->sortByColumn(RSID_COL_NICKNAME, Qt::AscendingOrder);
ui->treeWidget_IdList->setContextMenuPolicy(Qt::CustomContextMenu) ;
/** Setup the actions for the header context menu */
hideIdAct= new QAction(headerItem->text(RSID_COL_KEYID),this);
hideIdAct->setCheckable(true); hideIdAct->setToolTip(tr("Show ")+hideIdAct->text()+tr(" Column"));
connect(hideIdAct,SIGNAL(triggered(bool)),this,SLOT(setHideIdColumn(bool))) ;
hideTypeAct= new QAction(headerItem->text(RSID_COL_IDTYPE),this);
hideTypeAct->setCheckable(true); hideTypeAct->setToolTip(tr("Show ")+hideTypeAct->text()+tr(" Column"));
connect(hideTypeAct,SIGNAL(triggered(bool)),this,SLOT(setHideIdTypeColumn(bool))) ;
mIdQueue = new TokenQueue(rsIdentity->getTokenService(), this);
mStateHelper->setActive(IDDIALOG_IDDETAILS, false);
@ -222,6 +229,18 @@ IdDialog::~IdDialog()
delete(mIdQueue);
}
void IdDialog::initializeHeader(bool )
{
/* Set header resize modes and initial section sizes ID TreeView*/
QHeaderView * _idheader = ui->treeWidget_IdList->header () ;
_idheader->resizeSection ( RSID_COL_NICKNAME, 170 );
_idheader->resizeSection ( RSID_COL_KEYID, 120 );
_idheader->resizeSection ( RSID_COL_IDTYPE, 170 );
}
void IdDialog::todo()
{
QMessageBox::information(this, "Todo",
@ -984,6 +1003,15 @@ void IdDialog::IdListCustomPopupMenu( QPoint )
contextMnu.addAction(ui->editIdentity);
contextMnu.addAction(ui->removeIdentity);
contextMnu.addSeparator();
hideIdAct->setChecked(!ui->treeWidget_IdList->isColumnHidden(RSID_COL_KEYID));
hideTypeAct->setChecked(!ui->treeWidget_IdList->isColumnHidden(RSID_COL_IDTYPE));
QMenu *menu = contextMnu.addMenu(tr("Columns"));
menu->addAction(hideIdAct);
menu->addAction(hideTypeAct);
contextMnu.exec(QCursor::pos());
}
@ -1032,3 +1060,34 @@ void IdDialog::sendMsg()
/* window will destroy itself! */
}
void IdDialog::setHideIdColumn(bool show)
{
if (ui->treeWidget_IdList->isColumnHidden(RSID_COL_KEYID) == show) {
ui->treeWidget_IdList->setColumnHidden(RSID_COL_KEYID, !show);
}
ui->treeWidget_IdList->header()->setVisible(getNumColVisible()>1);
initializeHeader(true);
}
void IdDialog::setHideIdTypeColumn(bool show)
{
if (ui->treeWidget_IdList->isColumnHidden(RSID_COL_IDTYPE) == show) {
ui->treeWidget_IdList->setColumnHidden(RSID_COL_IDTYPE, !show);
}
ui->treeWidget_IdList->header()->setVisible(getNumColVisible()>1);
initializeHeader(true);
}
int IdDialog::getNumColVisible()
{
int iNumColVis=0;
for (int iColumn = 0; iColumn <RSID_COL_IDTYPE; ++iColumn) {
if (!ui->treeWidget_IdList->isColumnHidden(iColumn)) {
++iNumColVis;
}
}
return iNumColVis;
}

View File

@ -75,6 +75,9 @@ private slots:
/** Create the context popup menu and it's submenus */
void IdListCustomPopupMenu( QPoint point );
void setHideIdColumn(bool hide);
void setHideIdTypeColumn(bool hide);
private:
void processSettings(bool load);
@ -93,13 +96,20 @@ private:
void requestIdEdit(std::string &id);
void showIdEdit(uint32_t token);
void initializeHeader(bool);
private:
TokenQueue *mIdQueue;
UIStateHelper *mStateHelper;
RsGxsGroupId mId;
/* UI - from Designer */
/** Defines the actions for the header context menu */
QAction* hideIdAct;
QAction* hideTypeAct;
int getNumColVisible();
/* UI - Designer */
Ui::IdDialog *ui;
};