1
0
Fork 0

GUI: small changes to ColumnReorderDialog + reorder ScriptView + allow right/middle click on header to reorder

This commit is contained in:
mrexodia 2016-06-06 11:56:33 +02:00
parent 88a005fcf9
commit 46f3c0963b
No known key found for this signature in database
GPG Key ID: D72F9A4FAA0073B4
5 changed files with 52 additions and 25 deletions

View File

@ -389,6 +389,16 @@ void AbstractTableView::mousePressEvent(QMouseEvent* event)
updateViewport();
}
}
else //right/middle click
{
if(event->y() < getHeaderHeight())
{
ColumnReorderDialog reorderDialog(this);
reorderDialog.setWindowTitle(tr("Edit columns"));
reorderDialog.exec();
event->accept();
}
}
//QWidget::mousePressEvent(event);
}
@ -451,6 +461,7 @@ void AbstractTableView::mouseDoubleClickEvent(QMouseEvent* event)
ColumnReorderDialog reorderDialog(this);
reorderDialog.setWindowTitle(tr("Edit columns"));
reorderDialog.exec();
event->accept();
}
}

View File

@ -15,12 +15,12 @@ ColumnReorderDialog::ColumnReorderDialog(AbstractTableView* parent) :
if(parent->getColumnHidden(i))
{
ui->listAvailable->addItem(parent->getColTitle(i));
ui->listAvailable->item(ui->listAvailable->count() - 1)->setData(1, QVariant(j));
ui->listAvailable->item(ui->listAvailable->count() - 1)->setData(Qt::UserRole, QVariant(j));
}
else
{
ui->listDisplayed->addItem(parent->getColTitle(i));
ui->listDisplayed->item(ui->listDisplayed->count() - 1)->setData(1, QVariant(j));
ui->listDisplayed->item(ui->listDisplayed->count() - 1)->setData(Qt::UserRole, QVariant(j));
}
}
if(ui->listAvailable->count() == 0)
@ -28,6 +28,10 @@ ColumnReorderDialog::ColumnReorderDialog(AbstractTableView* parent) :
ui->addAllButton->setEnabled(false);
ui->addButton->setEnabled(false);
}
else
ui->listAvailable->setCurrentRow(0);
if(ui->listDisplayed->count())
ui->listDisplayed->setCurrentRow(0);
}
ColumnReorderDialog::~ColumnReorderDialog()
@ -46,24 +50,19 @@ void ColumnReorderDialog::on_okButton_clicked()
}
for(i = 0; i < ui->listDisplayed->count(); i++)
{
int col = ui->listDisplayed->item(i)->data(1).toInt();
int col = ui->listDisplayed->item(i)->data(Qt::UserRole).toInt();
mParent->mColumnOrder[i] = col;
mParent->setColumnHidden(col, false);
}
for(int j = 0; j < ui->listAvailable->count(); j++, i++)
{
int col = ui->listAvailable->item(j)->data(1).toInt();
int col = ui->listAvailable->item(j)->data(Qt::UserRole).toInt();
mParent->mColumnOrder[i] = col;
mParent->setColumnHidden(col, true);
}
this->done(QDialog::Accepted);
}
void ColumnReorderDialog::on_cancelButton_clicked()
{
this->done(QDialog::Rejected);
}
void ColumnReorderDialog::on_addButton_clicked()
{
if(ui->listAvailable->selectedItems().empty())
@ -72,7 +71,7 @@ void ColumnReorderDialog::on_addButton_clicked()
for(auto i : selected)
{
ui->listDisplayed->addItem(i->text());
ui->listDisplayed->item(ui->listDisplayed->count() - 1)->setData(1, i->data(1));
ui->listDisplayed->item(ui->listDisplayed->count() - 1)->setData(Qt::UserRole, i->data(Qt::UserRole));
delete i;
}
if(ui->listAvailable->count() == 0)
@ -87,7 +86,7 @@ void ColumnReorderDialog::on_addAllButton_clicked()
for(int i = 0; i < ui->listAvailable->count(); i++)
{
ui->listDisplayed->addItem(ui->listAvailable->item(i)->text());
ui->listDisplayed->item(ui->listDisplayed->count() - 1)->setData(1, ui->listAvailable->item(i)->data(1));
ui->listDisplayed->item(ui->listDisplayed->count() - 1)->setData(Qt::UserRole, ui->listAvailable->item(i)->data(Qt::UserRole));
}
ui->listAvailable->clear();
ui->addAllButton->setEnabled(false);
@ -104,11 +103,11 @@ void ColumnReorderDialog::on_upButton_clicked()
auto prevItem = ui->listDisplayed->item(i - 1);
auto currentItem = ui->listDisplayed->item(i);
QString text = prevItem->text();
auto data = prevItem->data(1);
auto data = prevItem->data(Qt::UserRole);
prevItem->setText(currentItem->text());
prevItem->setData(1, currentItem->data(1));
prevItem->setData(Qt::UserRole, currentItem->data(Qt::UserRole));
currentItem->setText(text);
currentItem->setData(1, data);
currentItem->setData(Qt::UserRole, data);
ui->listDisplayed->setCurrentRow(i - 1);
}
}
@ -123,11 +122,11 @@ void ColumnReorderDialog::on_downButton_clicked()
auto nextItem = ui->listDisplayed->item(i + 1);
auto currentItem = ui->listDisplayed->item(i);
QString text = nextItem->text();
auto data = nextItem->data(1);
auto data = nextItem->data(Qt::UserRole);
nextItem->setText(currentItem->text());
nextItem->setData(1, currentItem->data(1));
nextItem->setData(Qt::UserRole, currentItem->data(Qt::UserRole));
currentItem->setText(text);
currentItem->setData(1, data);
currentItem->setData(Qt::UserRole, data);
ui->listDisplayed->setCurrentRow(i + 1);
}
}
@ -138,7 +137,7 @@ void ColumnReorderDialog::on_hideButton_clicked()
return;
auto currentItem = ui->listDisplayed->currentItem();
ui->listAvailable->addItem(currentItem->text());
ui->listAvailable->item(ui->listAvailable->count() - 1)->setData(1, currentItem->data(1));
ui->listAvailable->item(ui->listAvailable->count() - 1)->setData(Qt::UserRole, currentItem->data(Qt::UserRole));
delete currentItem;
ui->addAllButton->setEnabled(true);
ui->addButton->setEnabled(true);

View File

@ -24,7 +24,6 @@ private slots:
void on_hideButton_clicked();
void on_addAllButton_clicked();
void on_okButton_clicked();
void on_cancelButton_clicked();
private:
Ui::ColumnReorderDialog* ui;

View File

@ -38,35 +38,35 @@
<item>
<widget class="QPushButton" name="addButton">
<property name="text">
<string>&lt;- Add</string>
<string>&lt;- &amp;Add</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="hideButton">
<property name="text">
<string>Hide -&gt;</string>
<string>&amp;Hide -&gt;</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="upButton">
<property name="text">
<string>Up</string>
<string>&amp;Up</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="downButton">
<property name="text">
<string>Down</string>
<string>&amp;Down</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="addAllButton">
<property name="text">
<string>&lt;&lt; Add all</string>
<string>&lt;&lt; A&amp;dd all</string>
</property>
</widget>
</item>
@ -132,5 +132,22 @@
</layout>
</widget>
<resources/>
<connections/>
<connections>
<connection>
<sender>cancelButton</sender>
<signal>clicked()</signal>
<receiver>ColumnReorderDialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>342</x>
<y>326</y>
</hint>
<hint type="destinationlabel">
<x>347</x>
<y>312</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@ -300,6 +300,7 @@ void ScriptView::contextMenuSlot(const QPoint & pos)
void ScriptView::mouseDoubleClickEvent(QMouseEvent* event)
{
AbstractTableView::mouseDoubleClickEvent(event);
if(event->button() != Qt::LeftButton)
return;
Q_UNUSED(event);