Skip to content
Snippets Groups Projects
Commit c9923223 authored by Juan Manuel Carmona Loaiza's avatar Juan Manuel Carmona Loaiza :ghost:
Browse files

Added context menu in CsvImportAssistant - preliminary version

parent 9deab91c
No related branches found
No related tags found
No related merge requests found
......@@ -23,6 +23,7 @@
#include <QVBoxLayout>
#include <QFileDialog>
#include <QMessageBox>
#include <QMenu>
namespace
{
......@@ -91,6 +92,9 @@ QBoxLayout* CsvImportAssistant::createLayout()
result->addLayout(preresult);
m_tableWidget->setContextMenuPolicy(Qt::CustomContextMenu);
connect(m_tableWidget, &QTableWidget::cellClicked, this, &CsvImportAssistant::OnColumnClicked);
connect(m_tableWidget, &QTableWidget::customContextMenuRequested, this, &CsvImportAssistant::onColumnRightClick);
return result;
}
......@@ -535,3 +539,53 @@ unsigned CsvImportAssistant::lastLine() const{
unsigned CsvImportAssistant::singleColumnImport() const{
return unsigned(m_singleDataColSpinBox->value());
}
void CsvImportAssistant::OnColumnClicked(int row, int column)
{
//QMenu menu;
//
if(column <= 0) return;
m_tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
m_tableWidget->setSelectionMode(QAbstractItemView::SingleSelection);
m_tableWidget->setSelectionBehavior(QAbstractItemView::SelectColumns);
m_tableWidget->selectColumn(column);
m_tableWidget->setSelectionMode(QAbstractItemView::NoSelection);
//
//menu.exec();
}
void CsvImportAssistant::onColumnRightClick(const QPoint position)
{
int row = m_tableWidget->itemAt(position)->row();
int col = m_tableWidget->itemAt(position)->column();
OnColumnClicked(row,col);
QMenu menu;
menu.addAction( "Set as " + relevantHeaders[_intensity_]);
menu.addAction( "Set as " + relevantHeaders[_theta_]);
menu.addAction( "Set as " + relevantHeaders[_2theta_]);
menu.addAction( "Set as " + relevantHeaders[_q_]);
connect(menu.actions()[_intensity_],&QAction::triggered,
[&](){
QString originalHeader = m_tableWidget->horizontalHeaderItem(col)->text();
int columnInFile = originalHeader.split(' ').takeLast().toInt();
m_tableWidget->setHorizontalHeaderItem( col, new QTableWidgetItem( relevantHeaders[_intensity_]) );
m_singleDataColSpinBox->setValue(columnInFile);
onReloadButton();
}
);
connect(menu.actions()[_theta_],&QAction::triggered,
[&](){m_tableWidget->setHorizontalHeaderItem( col, new QTableWidgetItem( relevantHeaders[_theta_]) );}
);
connect(menu.actions()[_2theta_],&QAction::triggered,
[&](){m_tableWidget->setHorizontalHeaderItem( col, new QTableWidgetItem( relevantHeaders[_2theta_]) );}
);
connect(menu.actions()[_q_],&QAction::triggered,
[&](){m_tableWidget->setHorizontalHeaderItem( col, new QTableWidgetItem( relevantHeaders[_q_]) );}
);
menu.exec(m_tableWidget->mapToGlobal(position));
}
......@@ -44,13 +44,16 @@ public:
unsigned lastLine() const;
unsigned singleColumnImport() const;
unique_ptr<OutputData<double>> getData();
QStringList relevantHeaders = {"Intensity","theta","2theta","q"};
enum relevantColumns {_intensity_,_theta_,_2theta_,_q_};
public slots:
void onImportButton();
void onReloadButton();
void onRejectButton();
void onBrowseButton();
void OnColumnClicked(int row, int column);
void onColumnRightClick(const QPoint position);
private:
QBoxLayout* createLayout();
......
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