mirror of
https://github.com/leozide/leocad.git
synced 2026-07-27 19:56:49 +00:00
Support drag drop in the Model List Dialog.
This commit is contained in:
@@ -23,11 +23,12 @@ lcModelListDialog::lcModelListDialog(QWidget* Parent, const std::vector<std::uni
|
|||||||
connect(ui->RenameModel, &QPushButton::clicked, this, &lcModelListDialog::RenameModelClicked);
|
connect(ui->RenameModel, &QPushButton::clicked, this, &lcModelListDialog::RenameModelClicked);
|
||||||
connect(ui->ExportModel, &QPushButton::clicked, this, &lcModelListDialog::ExportModelClicked);
|
connect(ui->ExportModel, &QPushButton::clicked, this, &lcModelListDialog::ExportModelClicked);
|
||||||
connect(ui->DuplicateModel, &QPushButton::clicked, this, &lcModelListDialog::DuplicateModelClicked);
|
connect(ui->DuplicateModel, &QPushButton::clicked, this, &lcModelListDialog::DuplicateModelClicked);
|
||||||
connect(ui->MoveUp, &QPushButton::clicked, this, &lcModelListDialog::MoveUpClicked);
|
|
||||||
connect(ui->MoveDown, &QPushButton::clicked, this, &lcModelListDialog::MoveDownClicked);
|
|
||||||
connect(ui->ModelList, &QListWidget::itemDoubleClicked, this, &lcModelListDialog::ModelListItemDoubleClicked);
|
connect(ui->ModelList, &QListWidget::itemDoubleClicked, this, &lcModelListDialog::ModelListItemDoubleClicked);
|
||||||
connect(ui->ModelList, &QListWidget::itemSelectionChanged, this, &lcModelListDialog::ModelListItemSelectionChanged);
|
connect(ui->ModelList, &QListWidget::itemSelectionChanged, this, &lcModelListDialog::ModelListItemSelectionChanged);
|
||||||
|
|
||||||
|
ui->ModelList->setDefaultDropAction(Qt::DropAction::MoveAction);
|
||||||
|
ui->ModelList->setDragDropMode(QAbstractItemView::DragDropMode::InternalMove);
|
||||||
|
|
||||||
lcModel* ActiveModel = lcGetActiveProject()->GetActiveModel();
|
lcModel* ActiveModel = lcGetActiveProject()->GetActiveModel();
|
||||||
int ActiveModelIndex = -1;
|
int ActiveModelIndex = -1;
|
||||||
|
|
||||||
@@ -87,26 +88,6 @@ void lcModelListDialog::UpdateButtons()
|
|||||||
|
|
||||||
ui->DeleteModel->setEnabled(ModelCount > 1);
|
ui->DeleteModel->setEnabled(ModelCount > 1);
|
||||||
ui->SetActiveModel->setEnabled(ui->ModelList->currentItem() != nullptr);
|
ui->SetActiveModel->setEnabled(ui->ModelList->currentItem() != nullptr);
|
||||||
|
|
||||||
bool MoveUp = false;
|
|
||||||
bool MoveDown = false;
|
|
||||||
|
|
||||||
for (int Row = 0; Row < ui->ModelList->count(); Row++)
|
|
||||||
{
|
|
||||||
QListWidgetItem* Item = ui->ModelList->item(Row);
|
|
||||||
|
|
||||||
if (!Item->isSelected())
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (Row > 0 && !ui->ModelList->item(Row - 1)->isSelected())
|
|
||||||
MoveUp = true;
|
|
||||||
|
|
||||||
if (Row < ModelCount - 1 && !ui->ModelList->item(Row + 1)->isSelected())
|
|
||||||
MoveDown = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
ui->MoveUp->setEnabled(MoveUp);
|
|
||||||
ui->MoveDown->setEnabled(MoveDown);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void lcModelListDialog::accept()
|
void lcModelListDialog::accept()
|
||||||
@@ -296,52 +277,6 @@ void lcModelListDialog::DuplicateModelClicked()
|
|||||||
UpdateButtons();
|
UpdateButtons();
|
||||||
}
|
}
|
||||||
|
|
||||||
void lcModelListDialog::MoveUpClicked()
|
|
||||||
{
|
|
||||||
bool Blocked = ui->ModelList->blockSignals(true);
|
|
||||||
|
|
||||||
for (int Row = 1; Row < ui->ModelList->count(); Row++)
|
|
||||||
{
|
|
||||||
QListWidgetItem* Item = ui->ModelList->item(Row);
|
|
||||||
|
|
||||||
if (!Item->isSelected())
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (ui->ModelList->item(Row - 1)->isSelected())
|
|
||||||
continue;
|
|
||||||
|
|
||||||
ui->ModelList->takeItem(Row);
|
|
||||||
ui->ModelList->insertItem(Row - 1, Item);
|
|
||||||
Item->setSelected(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
ui->ModelList->blockSignals(Blocked);
|
|
||||||
UpdateButtons();
|
|
||||||
}
|
|
||||||
|
|
||||||
void lcModelListDialog::MoveDownClicked()
|
|
||||||
{
|
|
||||||
bool Blocked = ui->ModelList->blockSignals(true);
|
|
||||||
|
|
||||||
for (int Row = ui->ModelList->count() - 2; Row >= 0; Row--)
|
|
||||||
{
|
|
||||||
QListWidgetItem* Item = ui->ModelList->item(Row);
|
|
||||||
|
|
||||||
if (!Item->isSelected())
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (ui->ModelList->item(Row + 1)->isSelected())
|
|
||||||
continue;
|
|
||||||
|
|
||||||
ui->ModelList->takeItem(Row);
|
|
||||||
ui->ModelList->insertItem(Row + 1, Item);
|
|
||||||
Item->setSelected(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
ui->ModelList->blockSignals(Blocked);
|
|
||||||
UpdateButtons();
|
|
||||||
}
|
|
||||||
|
|
||||||
void lcModelListDialog::ModelListItemDoubleClicked(QListWidgetItem* Item)
|
void lcModelListDialog::ModelListItemDoubleClicked(QListWidgetItem* Item)
|
||||||
{
|
{
|
||||||
mActiveModelItem = Item;
|
mActiveModelItem = Item;
|
||||||
|
|||||||
@@ -32,8 +32,6 @@ private slots:
|
|||||||
void RenameModelClicked();
|
void RenameModelClicked();
|
||||||
void ExportModelClicked();
|
void ExportModelClicked();
|
||||||
void DuplicateModelClicked();
|
void DuplicateModelClicked();
|
||||||
void MoveUpClicked();
|
|
||||||
void MoveDownClicked();
|
|
||||||
void ModelListItemDoubleClicked(QListWidgetItem* Item);
|
void ModelListItemDoubleClicked(QListWidgetItem* Item);
|
||||||
void ModelListItemSelectionChanged();
|
void ModelListItemSelectionChanged();
|
||||||
|
|
||||||
|
|||||||
@@ -60,20 +60,6 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="MoveUp">
|
|
||||||
<property name="text">
|
|
||||||
<string>Move &Up</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="MoveDown">
|
|
||||||
<property name="text">
|
|
||||||
<string>Move &Down</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="SetActiveModel">
|
<widget class="QCheckBox" name="SetActiveModel">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@@ -117,8 +103,6 @@
|
|||||||
<tabstop>RenameModel</tabstop>
|
<tabstop>RenameModel</tabstop>
|
||||||
<tabstop>ExportModel</tabstop>
|
<tabstop>ExportModel</tabstop>
|
||||||
<tabstop>DuplicateModel</tabstop>
|
<tabstop>DuplicateModel</tabstop>
|
||||||
<tabstop>MoveUp</tabstop>
|
|
||||||
<tabstop>MoveDown</tabstop>
|
|
||||||
<tabstop>SetActiveModel</tabstop>
|
<tabstop>SetActiveModel</tabstop>
|
||||||
</tabstops>
|
</tabstops>
|
||||||
<resources/>
|
<resources/>
|
||||||
|
|||||||
Reference in New Issue
Block a user