diff --git a/ArchitectureColoredPainting/MainWindow.ui b/ArchitectureColoredPainting/MainWindow.ui index 101be92..21072b3 100644 --- a/ArchitectureColoredPainting/MainWindow.ui +++ b/ArchitectureColoredPainting/MainWindow.ui @@ -1,7 +1,7 @@ MainWindowClass - + 0 @@ -10,56 +10,45 @@ 722 - - MainWindow - font: 10pt "Segoe UI, Microsoft YaHei UI"; - - - - 0 - 0 - + + + 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - QLayout::SetDefaultConstraint - - - 0 - - - 0 - - - - - - - - - - - + + 0 + + + 0 + + + 0 + + + 0 + + + + + QLayout::SetDefaultConstraint + + + 0 + + + 0 + + + + + + + + + + diff --git a/ArchitectureColoredPainting/src/MainWindow.cpp b/ArchitectureColoredPainting/src/MainWindow.cpp index 485a39f..8cf932c 100644 --- a/ArchitectureColoredPainting/src/MainWindow.cpp +++ b/ArchitectureColoredPainting/src/MainWindow.cpp @@ -12,14 +12,13 @@ FRAMELESSHELPER_USE_NAMESPACE -CentralWidget::CentralWidget(QWidget* parent) : QMainWindow(parent) +CentralWidget::CentralWidget(QWidget* parent) : QWidget(parent) { ui.setupUi(this); NavigationBarWidget* navigationBarWidget = new NavigationBarWidget(this); ui.gridLayout->addWidget(navigationBarWidget, 0, 0, 1, 1, Qt::AlignTop | Qt::AlignHCenter); QObject::connect(navigationBarWidget->tabs, &QtMaterialTabs::currentChanged, ui.stackedWidget, &QStackedWidget::setCurrentIndex); - QObject::connect(ui.stackedWidget, &QStackedWidget::currentChanged, - ui.rendererWidget, &Renderer::RendererWidget::currentTabChanged); + QObject::connect(ui.stackedWidget, &QStackedWidget::currentChanged, ui.rendererWidget, &Renderer::RendererWidget::currentTabChanged); } CentralWidget::~CentralWidget() @@ -40,7 +39,7 @@ MainWindow::MainWindow(QWidget* parent, const Qt::WindowFlags flags) m_titleBar->chromePalette()->setTitleBarActiveBackgroundColor(QColor(0, 0, 0, 0)); m_titleBar->chromePalette()->setTitleBarInactiveBackgroundColor(QColor(0, 0, 0, 0)); - m_central_widget = new CentralWidget(); + m_central_widget = new CentralWidget(this); setMenuWidget(m_titleBar); setCentralWidget(m_central_widget); @@ -73,4 +72,5 @@ void MainWindow::closeEvent(QCloseEvent* event) if (result != QMessageBox::Yes) event->ignore();*/ + qDebug() << "closeEvent"; } diff --git a/ArchitectureColoredPainting/src/MainWindow.h b/ArchitectureColoredPainting/src/MainWindow.h index 6d8bd54..7d135d0 100644 --- a/ArchitectureColoredPainting/src/MainWindow.h +++ b/ArchitectureColoredPainting/src/MainWindow.h @@ -9,7 +9,7 @@ FRAMELESSHELPER_BEGIN_NAMESPACE class StandardTitleBar; FRAMELESSHELPER_END_NAMESPACE -class CentralWidget : public QMainWindow +class CentralWidget : public QWidget { Q_OBJECT public: diff --git a/ArchitectureColoredPainting/src/Renderer/Preview/ElementRenderer.cpp b/ArchitectureColoredPainting/src/Renderer/Preview/ElementRenderer.cpp index 60a3b81..1cb69c9 100644 --- a/ArchitectureColoredPainting/src/Renderer/Preview/ElementRenderer.cpp +++ b/ArchitectureColoredPainting/src/Renderer/Preview/ElementRenderer.cpp @@ -117,7 +117,7 @@ QRectF calcBoundingRect(const QPainterPath& path, const std::vector& Renderer::ElementRenderer::ElementRenderer() { surface.create(); - thread = std::jthread([&] { + thread = std::jthread([&](std::stop_token stop) { QOpenGLContext context; context.create(); context.makeCurrent(&surface); @@ -131,7 +131,7 @@ Renderer::ElementRenderer::ElementRenderer() initialized = true; - while (true) + while (!stop.stop_requested()) { std::unique_lock lock(drawMutex); draw.wait(lock, [&] {return needDraw; }); diff --git a/ArchitectureColoredPainting/src/Renderer/VirtualTextureManager.cpp b/ArchitectureColoredPainting/src/Renderer/VirtualTextureManager.cpp index 0dc53c4..eeba398 100644 --- a/ArchitectureColoredPainting/src/Renderer/VirtualTextureManager.cpp +++ b/ArchitectureColoredPainting/src/Renderer/VirtualTextureManager.cpp @@ -18,7 +18,7 @@ Renderer::VirtualTextureManager::VirtualTextureManager(GladGLContext* glMain) surface.create(); mainContext->doneCurrent(); - thread = std::jthread([&] { + thread = std::jthread([&](std::stop_token stop) { QOpenGLContext context; context.setFormat(mainContext->format()); context.setShareContext(mainContext); @@ -67,7 +67,7 @@ Renderer::VirtualTextureManager::VirtualTextureManager(GladGLContext* glMain) GLuint pageLoadTimeQuery; gl->GenQueries(1, &pageLoadTimeQuery); - while (true) + while (!stop.stop_requested()) { if (needUpdate) { @@ -85,6 +85,7 @@ Renderer::VirtualTextureManager::VirtualTextureManager(GladGLContext* glMain) //qDebug() << duration; pageLoadDuration += duration; } + std::this_thread::yield(); } });