Skip to content
Snippets Groups Projects
Commit e99592e5 authored by Peterson, Peter's avatar Peterson, Peter
Browse files

Re #7099. Got the optional columns dialog working.

parent 67c146ac
No related merge requests found
......@@ -2,11 +2,17 @@
#define PEAKSTABLECOLUMNSDIALOG_H
#include <QDialog>
#include <set>
namespace Ui {
class PeaksTableColumnsDialog;
}
namespace MantidQt
{
namespace SliceViewer
{
class PeaksTableColumnsDialog : public QDialog
{
Q_OBJECT
......@@ -14,9 +20,16 @@ class PeaksTableColumnsDialog : public QDialog
public:
explicit PeaksTableColumnsDialog(QWidget *parent = 0);
~PeaksTableColumnsDialog();
void setVisibleColumns(std::set<QString> & cols);
std::set<QString> getVisibleColumns();
private:
Ui::PeaksTableColumnsDialog *ui;
std::set<QString> m_origVisible;
};
} // namespace SliceViewer
} // namespace MantidQt
#endif // PEAKSTABLECOLUMNSDIALOG_H
......@@ -19,83 +19,111 @@
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="scrollAreaWidgetContents">
<widget class="QWidget" name="scrollAreaForCheckboxes">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>362</width>
<height>302</height>
<width>380</width>
<height>246</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QCheckBox" name="checkBox">
<layout class="QGridLayout" name="gridLayout">
<item row="3" column="0">
<widget class="QCheckBox" name="cb_wavelength">
<property name="text">
<string>CheckBox</string>
<string>Wavelength</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox_2">
<item row="5" column="0">
<widget class="QCheckBox" name="cb_ei">
<property name="text">
<string>CheckBox</string>
<string>E_i</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox_7">
<item row="9" column="0">
<widget class="QCheckBox" name="cb_bincount">
<property name="text">
<string>CheckBox</string>
<string>BinCount</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox_4">
<item row="11" column="0">
<widget class="QCheckBox" name="cb_row">
<property name="text">
<string>CheckBox</string>
<string>Row</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox_8">
<item row="13" column="0">
<widget class="QCheckBox" name="cb_qLab">
<property name="text">
<string>CheckBox</string>
<string>QLab</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox_10">
<item row="0" column="0">
<widget class="QCheckBox" name="cb_runnumber">
<property name="text">
<string>CheckBox</string>
<string>Run</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox_9">
<item row="0" column="1">
<widget class="QCheckBox" name="cb_detID">
<property name="text">
<string>CheckBox</string>
<string>DetID</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox_5">
<item row="3" column="1">
<widget class="QCheckBox" name="cb_deltaE">
<property name="text">
<string>CheckBox</string>
<string>delta E</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox_6">
<item row="5" column="1">
<widget class="QCheckBox" name="cb_ef">
<property name="text">
<string>CheckBox</string>
<string>E_f</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox_3">
<item row="6" column="1">
<widget class="QCheckBox" name="cb_dspacing">
<property name="text">
<string>CheckBox</string>
<string>DSpacing</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QCheckBox" name="cb_tof">
<property name="text">
<string>TOF</string>
</property>
</widget>
</item>
<item row="9" column="1">
<widget class="QCheckBox" name="cb_bankname">
<property name="text">
<string>BankName</string>
</property>
</widget>
</item>
<item row="11" column="1">
<widget class="QCheckBox" name="cb_column">
<property name="text">
<string>Col</string>
</property>
</widget>
</item>
<item row="13" column="1">
<widget class="QCheckBox" name="cb_qSample">
<property name="text">
<string>QSample</string>
</property>
</widget>
</item>
......
#include "MantidQtSliceViewer/PeaksTableColumnsDialog.h"
#include "MantidQtSliceViewer/QPeaksTableModel.h"
#include "ui_PeaksTableColumnsDialog.h"
// REMOVE
#include <iostream>
namespace MantidQt
{
namespace SliceViewer
{
PeaksTableColumnsDialog::PeaksTableColumnsDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::PeaksTableColumnsDialog)
......@@ -12,3 +21,105 @@ PeaksTableColumnsDialog::~PeaksTableColumnsDialog()
{
delete ui;
}
void PeaksTableColumnsDialog::setVisibleColumns(std::set<QString> & cols)
{
// copy in the original values
m_origVisible.clear();
m_origVisible.insert(cols.begin(), cols.end());
// set the state of all the checkboxes
bool isChecked;
isChecked = bool(m_origVisible.find(QPeaksTableModel::RUNNUMBER) != m_origVisible.end());
ui->cb_runnumber->setChecked(isChecked);
isChecked = bool(m_origVisible.find(QPeaksTableModel::DETID) != m_origVisible.end());
ui->cb_detID->setChecked(isChecked);
isChecked = bool(m_origVisible.find(QPeaksTableModel::WAVELENGTH) != m_origVisible.end());
ui->cb_wavelength->setChecked(isChecked);
isChecked = bool(m_origVisible.find(QPeaksTableModel::ENERGY) != m_origVisible.end());
ui->cb_deltaE->setChecked(isChecked);
isChecked = bool(m_origVisible.find(QPeaksTableModel::INITIAL_ENERGY) != m_origVisible.end());
ui->cb_ei->setChecked(isChecked);
isChecked = bool(m_origVisible.find(QPeaksTableModel::FINAL_ENERGY) != m_origVisible.end());
ui->cb_ef->setChecked(isChecked);
isChecked = bool(m_origVisible.find(QPeaksTableModel::TOF) != m_origVisible.end());
ui->cb_tof->setChecked(isChecked);
isChecked = bool(m_origVisible.find(QPeaksTableModel::DSPACING) != m_origVisible.end());
ui->cb_dspacing->setChecked(isChecked);
isChecked = bool(m_origVisible.find(QPeaksTableModel::BINCOUNT) != m_origVisible.end());
ui->cb_bincount->setChecked(isChecked);
isChecked = bool(m_origVisible.find(QPeaksTableModel::BANKNAME) != m_origVisible.end());
ui->cb_bankname->setChecked(isChecked);
isChecked = bool(m_origVisible.find(QPeaksTableModel::ROW) != m_origVisible.end());
ui->cb_row->setChecked(isChecked);
isChecked = bool(m_origVisible.find(QPeaksTableModel::COL) != m_origVisible.end());
ui->cb_column->setChecked(isChecked);
isChecked = bool(m_origVisible.find(QPeaksTableModel::QLAB) != m_origVisible.end());
ui->cb_qLab->setChecked(isChecked);
isChecked = bool(m_origVisible.find(QPeaksTableModel::QSAMPLE) != m_origVisible.end());
ui->cb_qSample->setChecked(isChecked);
}
/**
* Add or remove an item from the "checked" set.
* @param checked The set to modify
* @param item The item to add or remove
* @param addOrRemove true=add, false=remove
*/
void updateChecked(std::set<QString> &checked, const QString &item, const bool addOrRemove)
{
if (addOrRemove) // add it to the set
{
checked.insert(item);
}
else // remove it from the set
{
auto iter = checked.find(item);
if (iter != checked.end())
{
checked.erase(iter);
}
}
}
std::set<QString> PeaksTableColumnsDialog::getVisibleColumns()
{
// copy what was originally visible
std::set<QString> result(m_origVisible.begin(), m_origVisible.end());
// delete what is no longer visible
// - it is done this way so things that aren't in the dialog stay visible
updateChecked(result, QPeaksTableModel::RUNNUMBER, ui->cb_runnumber->isChecked());
updateChecked(result, QPeaksTableModel::DETID, ui->cb_detID->isChecked());
updateChecked(result, QPeaksTableModel::WAVELENGTH, ui->cb_wavelength->isChecked());
updateChecked(result, QPeaksTableModel::ENERGY, ui->cb_deltaE->isChecked());
updateChecked(result, QPeaksTableModel::INITIAL_ENERGY, ui->cb_ei->isChecked());
updateChecked(result, QPeaksTableModel::FINAL_ENERGY, ui->cb_ef->isChecked());
updateChecked(result, QPeaksTableModel::TOF, ui->cb_tof->isChecked());
updateChecked(result, QPeaksTableModel::DSPACING, ui->cb_dspacing->isChecked());
updateChecked(result, QPeaksTableModel::BINCOUNT, ui->cb_bincount->isChecked());
updateChecked(result, QPeaksTableModel::BANKNAME, ui->cb_bankname->isChecked());
updateChecked(result, QPeaksTableModel::ROW, ui->cb_row->isChecked());
updateChecked(result, QPeaksTableModel::COL, ui->cb_column->isChecked());
updateChecked(result, QPeaksTableModel::QLAB, ui->cb_qLab->isChecked());
updateChecked(result, QPeaksTableModel::QSAMPLE, ui->cb_qSample->isChecked());
return result;
}
} // namespace SliceViewer
} // namespace MantidQt
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment