| 1 #include <QApplication> |
1 #include <QApplication> |
| 2 #include <QFileDialog> |
2 #include <QFileDialog> |
| 3 #include <QMessageBox> |
3 #include <QMessageBox> |
| 4 #include <QMdiSubWindow> |
4 #include <QMdiSubWindow> |
| |
5 #include <QScrollBar> |
| 5 #include <QStackedWidget> |
6 #include <QStackedWidget> |
| 6 #include <QCloseEvent> |
7 #include <QCloseEvent> |
| 7 #include "mainwindow.h" |
8 #include "mainwindow.h" |
| 8 #include "ui_mainwindow.h" |
9 #include "ui_mainwindow.h" |
| 9 #include "version.h" |
10 #include "version.h" |
| 53 static void doQtRegistrations() |
54 static void doQtRegistrations() |
| 54 { |
55 { |
| 55 QCoreApplication::setApplicationName(::appName); |
56 QCoreApplication::setApplicationName(::appName); |
| 56 QCoreApplication::setOrganizationName("hecknology.net"); |
57 QCoreApplication::setOrganizationName("hecknology.net"); |
| 57 QCoreApplication::setOrganizationDomain("hecknology.net"); |
58 QCoreApplication::setOrganizationDomain("hecknology.net"); |
| |
59 qRegisterMetaType<Message>(); |
| 58 qRegisterMetaTypeStreamOperators<Library>("Library"); |
60 qRegisterMetaTypeStreamOperators<Library>("Library"); |
| 59 qRegisterMetaTypeStreamOperators<Libraries>("Libraries"); |
61 qRegisterMetaTypeStreamOperators<Libraries>("Libraries"); |
| 60 qRegisterMetaTypeStreamOperators<gl::RenderStyle>(); |
62 qRegisterMetaTypeStreamOperators<gl::RenderStyle>(); |
| 61 qRegisterMetaTypeStreamOperators<QMdiArea::ViewMode>(); |
63 qRegisterMetaTypeStreamOperators<QMdiArea::ViewMode>(); |
| 62 } |
64 } |
| 341 result.push_back(index.row()); |
343 result.push_back(index.row()); |
| 342 } |
344 } |
| 343 return result; |
345 return result; |
| 344 } |
346 } |
| 345 |
347 |
| 346 #include <QScrollBar> |
|
| 347 int main(int argc, char *argv[]) |
348 int main(int argc, char *argv[]) |
| 348 { |
349 { |
| 349 doQtRegistrations(); |
350 doQtRegistrations(); |
| 350 QApplication app{argc, argv}; |
351 QApplication app{argc, argv}; |
| 351 QMainWindow mainWindow; |
352 QMainWindow mainWindow; |
| 476 data->itemSelectionModel->select(qindex, QItemSelectionModel::Select); |
477 data->itemSelectionModel->select(qindex, QItemSelectionModel::Select); |
| 477 } |
478 } |
| 478 } |
479 } |
| 479 } |
480 } |
| 480 }); |
481 }); |
| |
482 QObject::connect(data->canvas.get(), &PartRenderer::message, &messageLog, &MessageLog::addMessage); |
| 481 const QFileInfo fileInfo{*documents.modelPath(modelId)}; |
483 const QFileInfo fileInfo{*documents.modelPath(modelId)}; |
| 482 ModelSubWindow* subWindow = new ModelSubWindow{modelId, ui.mdiArea}; |
484 ModelSubWindow* subWindow = new ModelSubWindow{modelId, ui.mdiArea}; |
| 483 subWindow->setWidget(data->canvas.get()); |
485 subWindow->setWidget(data->canvas.get()); |
| 484 subWindow->setWindowTitle(tabName(fileInfo)); |
486 subWindow->setWindowTitle(tabName(fileInfo)); |
| 485 subWindow->show(); |
487 subWindow->show(); |
| 634 QObject::connect(&messageLog, &MessageLog::rowsAboutToBeInserted, [&]{ |
636 QObject::connect(&messageLog, &MessageLog::rowsAboutToBeInserted, [&]{ |
| 635 const auto bar = ui.messageLog->verticalScrollBar(); |
637 const auto bar = ui.messageLog->verticalScrollBar(); |
| 636 ui.messageLog->setProperty("shouldAutoScroll", bar->value() == bar->maximum()); |
638 ui.messageLog->setProperty("shouldAutoScroll", bar->value() == bar->maximum()); |
| 637 }); |
639 }); |
| 638 QObject::connect(&messageLog, &MessageLog::rowsInserted, [&]{ |
640 QObject::connect(&messageLog, &MessageLog::rowsInserted, [&]{ |
| |
641 ui.messageLog->resizeRowsToContents(); |
| 639 if (ui.messageLog->property("shouldAutoScroll").toBool()) { |
642 if (ui.messageLog->property("shouldAutoScroll").toBool()) { |
| 640 ui.messageLog->scrollToBottom(); |
643 ui.messageLog->scrollToBottom(); |
| 641 } |
644 } |
| 642 }); |
645 }); |
| 643 mainWindow.setWindowTitle(title()); |
646 mainWindow.setWindowTitle(title()); |