diff main/MainWindow.h @ 2550:a004f981f6f5 startup-timing

Some work to try to get the main window up & functioning quicker - without waiting for the transforms to be populated first. Needs a lot more testing, not to be merged until after 4.1.
author Chris Cannam
date Wed, 03 Jun 2020 14:12:14 +0100
parents 11a552b3ad88
children bc882961a233
line wrap: on
line diff
--- a/main/MainWindow.h	Mon May 18 15:29:46 2020 +0100
+++ b/main/MainWindow.h	Wed Jun 03 14:12:14 2020 +0100
@@ -156,6 +156,8 @@
     virtual void midiEventsAvailable();
     virtual void playStatusChanged(bool);
 
+    void populateTransformsMenu();
+    
     virtual void betaReleaseWarning();
     virtual void pluginPopulationWarning();
 
@@ -284,21 +286,31 @@
     QString getReleaseText() const;
     
     void setupMenus() override;
-    virtual void setupFileMenu();
-    virtual void setupEditMenu();
-    virtual void setupViewMenu();
-    virtual void setupPaneAndLayerMenus();
-    virtual void setupTransformsMenu();
-    virtual void setupHelpMenu();
-    virtual void setupExistingLayersMenus();
-    virtual void setupToolbars();
 
-    virtual void addPane(const LayerConfiguration &configuration, QString text);
+    void setupFileMenu();
+    void setupEditMenu();
+    void setupViewMenu();
+    void setupPaneAndLayerMenus();
+    void prepareTransformsMenu();
+    void setupHelpMenu();
+    void setupExistingLayersMenus();
+    void setupToolbars();
+
+    class TransformPopulater : public QThread {
+    public:
+        TransformPopulater(MainWindow *mw) : QThread(mw), m_mw(mw) { }
+        void run() override;
+    private:
+        MainWindow *m_mw;
+    };
+    TransformPopulater *m_transformPopulater;
+    
+    void addPane(const LayerConfiguration &configuration, QString text);
 
     void closeEvent(QCloseEvent *e) override;
     bool checkSaveModified() override;
 
-    virtual void exportAudio(bool asData);
+    void exportAudio(bool asData);
 
     void updateVisibleRangeDisplay(Pane *p) const override;
     void updatePositionStatusDisplays() const override;