Merge pull request #7206 from delroth/qt-boottime
dqt2: lazy-initialize GraphicsWindow
This commit is contained in:
commit
472cd14d1d
|
@ -27,6 +27,17 @@
|
|||
GraphicsWindow::GraphicsWindow(X11Utils::XRRConfiguration* xrr_config, MainWindow* parent)
|
||||
: QDialog(parent), m_xrr_config(xrr_config)
|
||||
{
|
||||
// GraphicsWindow initialization is heavy due to dependencies on the graphics subsystem.
|
||||
// To prevent blocking startup, we create the layout and children at first show time.
|
||||
}
|
||||
|
||||
void GraphicsWindow::Initialize()
|
||||
{
|
||||
if (m_lazy_initialized)
|
||||
return;
|
||||
|
||||
m_lazy_initialized = true;
|
||||
|
||||
g_Config.Refresh();
|
||||
g_video_backend->InitBackendInfo();
|
||||
|
||||
|
|
|
@ -29,6 +29,8 @@ class GraphicsWindow final : public QDialog
|
|||
public:
|
||||
explicit GraphicsWindow(X11Utils::XRRConfiguration* xrr_config, MainWindow* parent);
|
||||
|
||||
void Initialize();
|
||||
|
||||
void RegisterWidget(GraphicsWidget* widget);
|
||||
bool eventFilter(QObject* object, QEvent* event) override;
|
||||
signals:
|
||||
|
@ -39,6 +41,8 @@ private:
|
|||
void OnBackendChanged(const QString& backend);
|
||||
void OnDescriptionAdded(QWidget* widget, const char* description);
|
||||
|
||||
bool m_lazy_initialized = false;
|
||||
|
||||
QTabWidget* m_tab_widget;
|
||||
QLabel* m_description;
|
||||
QDialogButtonBox* m_button_box;
|
||||
|
|
|
@ -935,6 +935,7 @@ void MainWindow::ShowHotkeyDialog()
|
|||
|
||||
void MainWindow::ShowGraphicsWindow()
|
||||
{
|
||||
m_graphics_window->Initialize();
|
||||
m_graphics_window->show();
|
||||
m_graphics_window->raise();
|
||||
m_graphics_window->activateWindow();
|
||||
|
|
Loading…
Reference in New Issue