src/mainwindow.cpp

changeset 169
6da096930534
parent 160
536efae7137e
child 170
9b655f6fe5a1
equal deleted inserted replaced
168:24590af32ad6 169:6da096930534
26 #include "settingseditor/settingseditor.h" 26 #include "settingseditor/settingseditor.h"
27 #include "version.h" 27 #include "version.h"
28 #include "document.h" 28 #include "document.h"
29 #include "uiutilities.h" 29 #include "uiutilities.h"
30 #include "widgets/colorselectdialog.h" 30 #include "widgets/colorselectdialog.h"
31 #include "modeleditor.h"
31 32
32 template<typename BaseType, typename MemberType, typename DataType> 33 template<typename BaseType, typename MemberType, typename DataType>
33 struct MemberData 34 struct MemberData
34 { 35 {
35 std::size_t member; 36 std::size_t member;
75 connect(this->ui->actionSave, &QAction::triggered, 76 connect(this->ui->actionSave, &QAction::triggered,
76 this, &MainWindow::actionSave); 77 this, &MainWindow::actionSave);
77 connect(this->ui->actionSaveAs, &QAction::triggered, 78 connect(this->ui->actionSaveAs, &QAction::triggered,
78 this, &MainWindow::actionSaveAs); 79 this, &MainWindow::actionSaveAs);
79 connect(this->ui->actionClose, &QAction::triggered, this, &MainWindow::actionClose); 80 connect(this->ui->actionClose, &QAction::triggered, this, &MainWindow::actionClose);
81 connect(this->ui->actionDelete, &QAction::triggered, this, &MainWindow::actionDelete);
80 connect(this->ui->tabs, &QTabWidget::tabCloseRequested, this, &MainWindow::handleTabCloseButton); 82 connect(this->ui->tabs, &QTabWidget::tabCloseRequested, this, &MainWindow::handleTabCloseButton);
81 for (auto data : ::renderStyleButtons) 83 for (auto data : ::renderStyleButtons)
82 { 84 {
83 QAction* action = data.memberInstance(this->ui.get()); 85 QAction* action = data.memberInstance(this->ui.get());
84 connect(action, &QAction::triggered, [this, data]() 86 connect(action, &QAction::triggered, [this, data]()
326 void MainWindow::actionClose() 328 void MainWindow::actionClose()
327 { 329 {
328 if (this->currentDocument() != nullptr) 330 if (this->currentDocument() != nullptr)
329 { 331 {
330 this->closeDocument(this->currentDocument()); 332 this->closeDocument(this->currentDocument());
333 }
334 }
335
336 /**
337 * @brief Handles the "Delete" (Del) action
338 */
339 void MainWindow::actionDelete()
340 {
341 Document* document = this->currentDocument();
342 if (document != nullptr)
343 {
344 std::unique_ptr<ModelEditor> modelEditor = document->editModel();
345 QSet<ldraw::id_t> ids = document->selectedObjects(); // copy
346 for (const ldraw::id_t id : ids)
347 {
348 const QModelIndex index = modelEditor->model().find(id);
349 if (index.isValid())
350 {
351 modelEditor->remove(index.row());
352 }
353 }
331 } 354 }
332 } 355 }
333 356
334 /** 357 /**
335 * @brief Removes the document at the specified tab index 358 * @brief Removes the document at the specified tab index

mercurial