Added Column dialog for selecting visible columns. Selection is stored to settings.
This commit is contained in:
+46
-1
@@ -1,12 +1,20 @@
|
||||
#include "igridform.h"
|
||||
|
||||
#include "ui_gridform.h"
|
||||
|
||||
#include <QList>
|
||||
|
||||
#include "context.h"
|
||||
|
||||
IGridForm::IGridForm(QWidget *parent) :
|
||||
QWidget(parent),
|
||||
ui(new Ui::GridForm)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
m_contextMenu = new QMenu(this);
|
||||
m_contextMenu->addAction(ui->actionSelectColumns);
|
||||
|
||||
m_columnDialog = new ColumnDialog(this);
|
||||
connect(m_columnDialog, SIGNAL(accepted()), this, SLOT(columnsAccepted()));
|
||||
}
|
||||
|
||||
IGridForm::~IGridForm()
|
||||
@@ -28,6 +36,13 @@ QTableView *IGridForm::tableView()
|
||||
return ui->tableView;
|
||||
}
|
||||
|
||||
void IGridForm::hideColumns(const QList<int> &cols)
|
||||
{
|
||||
foreach (int col, cols) {
|
||||
tableView()->setColumnHidden(col, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void IGridForm::on_btnNew_clicked()
|
||||
{
|
||||
@@ -43,3 +58,33 @@ void IGridForm::on_btnDelete_clicked()
|
||||
{
|
||||
handleDeleteRecord();
|
||||
}
|
||||
|
||||
void IGridForm::on_tableView_customContextMenuRequested(const QPoint &pos)
|
||||
{
|
||||
m_contextMenu->popup(tableView()->viewport()->mapToGlobal(pos));
|
||||
}
|
||||
|
||||
void IGridForm::on_actionSelectColumns_triggered()
|
||||
{
|
||||
m_columnDialog->setTable(tableView());
|
||||
m_columnDialog->show();
|
||||
}
|
||||
|
||||
void IGridForm::columnsAccepted()
|
||||
{
|
||||
for(int i = 0; i < tableView()->model()->columnCount(); i++)
|
||||
{
|
||||
tableView()->setColumnHidden(i, false);
|
||||
}
|
||||
|
||||
QList<int> hide = m_columnDialog->columnsToHide();
|
||||
hideColumns(hide);
|
||||
|
||||
QList<QVariant> varList;
|
||||
|
||||
foreach (int i, hide) {
|
||||
varList.append(i);
|
||||
}
|
||||
|
||||
Context::instance().settings()->setValue("grids/" + pluginId() + "/hide", QVariant::fromValue(varList));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user