Skip to content

Commit

Permalink
Add component move menu
Browse files Browse the repository at this point in the history
  • Loading branch information
huxingyi committed Jan 1, 2023
1 parent d1d235a commit 4b27d10
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 0 deletions.
46 changes: 46 additions & 0 deletions application/sources/part_manage_widget.cc
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,10 @@ PartManageWidget::PartManageWidget(Document* document, QWidget* parent)

connect(this, &PartManageWidget::groupComponents, m_document, &Document::groupComponents);
connect(this, &PartManageWidget::ungroupComponent, m_document, &Document::ungroupComponent);
connect(this, &PartManageWidget::moveComponentUp, m_document, &Document::moveComponentUp);
connect(this, &PartManageWidget::moveComponentDown, m_document, &Document::moveComponentDown);
connect(this, &PartManageWidget::moveComponentToTop, m_document, &Document::moveComponentToTop);
connect(this, &PartManageWidget::moveComponentToBottom, m_document, &Document::moveComponentToBottom);
connect(this, &PartManageWidget::setPartTarget, m_document, &Document::setPartTarget);
connect(this, &PartManageWidget::groupOperationAdded, m_document, &Document::saveSnapshot);

Expand Down Expand Up @@ -267,6 +271,48 @@ void PartManageWidget::showContextMenu(const QPoint& pos)
contextMenu.addAction(&ungroupAction);
}

QAction moveToTopAction(tr("Begin"), this);
QAction moveUpAction(tr("Previous"), this);
QAction moveDownAction(tr("Next"), this);
QAction moveToBottomAction(tr("End"), this);
if (1 == selectedComponentIds.size()) {
QMenu* moveToMenu = contextMenu.addMenu(tr("Move To"));

moveToTopAction.setIcon(Theme::awesome()->icon(fa::angledoubleup));
connect(&moveToTopAction, &QAction::triggered, [=]() {
for (const auto& it : selectedComponentIds)
emit moveComponentToTop(it);
emit groupOperationAdded();
});
moveToMenu->addAction(&moveToTopAction);

moveUpAction.setIcon(Theme::awesome()->icon(fa::angleup));
connect(&moveUpAction, &QAction::triggered, [=]() {
for (const auto& it : selectedComponentIds)
emit moveComponentUp(it);
emit groupOperationAdded();
});
moveToMenu->addAction(&moveUpAction);

moveDownAction.setIcon(Theme::awesome()->icon(fa::angledown));
connect(&moveDownAction, &QAction::triggered, [=]() {
for (const auto& it : selectedComponentIds)
emit moveComponentDown(it);
emit groupOperationAdded();
});
moveToMenu->addAction(&moveDownAction);

moveToBottomAction.setIcon(Theme::awesome()->icon(fa::angledoubledown));
connect(&moveToBottomAction, &QAction::triggered, [=]() {
for (const auto& it : selectedComponentIds)
emit moveComponentToBottom(it);
emit groupOperationAdded();
});
moveToMenu->addAction(&moveToBottomAction);

moveToMenu->addSeparator();
}

QAction convertToCutFaceAction(tr("Convert to Cut Face"), this);
QAction convertToStitchingLineAction(tr("Convert to Stitching Line"), this);
QAction convertToPartAction(tr("Convert to Model"), this);
Expand Down
4 changes: 4 additions & 0 deletions application/sources/part_manage_widget.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ class PartManageWidget : public QWidget {
void setPartTarget(const dust3d::Uuid& partId, dust3d::PartTarget target);
void groupComponents(const std::vector<dust3d::Uuid>& componentIds);
void ungroupComponent(const dust3d::Uuid& componentId);
void moveComponentUp(const dust3d::Uuid& componentId);
void moveComponentDown(const dust3d::Uuid& componentId);
void moveComponentToTop(const dust3d::Uuid& componentId);
void moveComponentToBottom(const dust3d::Uuid& componentId);
void groupOperationAdded();
public slots:
void selectComponentByPartId(const dust3d::Uuid& partId);
Expand Down

0 comments on commit 4b27d10

Please sign in to comment.