]> git.sesse.net Git - nageru/commitdiff
Fix the context menus in the analyzer.
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Sat, 13 May 2017 08:56:36 +0000 (10:56 +0200)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Sat, 13 May 2017 09:03:31 +0000 (11:03 +0200)
glwidget.cpp
glwidget.h

index fb5fe995719b36112edc8eef315a06ad05a31aa5..a9ad359ac11a09ecc463d895d5ad4a50427ccb7b 100644 (file)
@@ -69,9 +69,6 @@ void GLWidget::initializeGL()
                global_mixer->set_transition_names_updated_callback(output, [this](const vector<string> &names){
                        emit transition_names_updated(names);
                });
-               setContextMenuPolicy(Qt::CustomContextMenu);
-               connect(this, &QWidget::customContextMenuRequested,
-                       bind(&GLWidget::show_live_context_menu, this, _1));
        }
        if (output >= Mixer::OUTPUT_INPUT0) {
                global_mixer->set_name_updated_callback(output, [this](const string &name){
@@ -80,14 +77,9 @@ void GLWidget::initializeGL()
                global_mixer->set_color_updated_callback(output, [this](const string &color){
                        emit color_updated(output, color);
                });
-
-               int signal_num = global_mixer->get_channel_signal(output);
-               if (signal_num != -1) {
-                       setContextMenuPolicy(Qt::CustomContextMenu);
-                       connect(this, &QWidget::customContextMenuRequested,
-                               bind(&GLWidget::show_preview_context_menu, this, signal_num, _1));
-               }
        }
+       setContextMenuPolicy(Qt::CustomContextMenu);
+       connect(this, &QWidget::customContextMenuRequested, bind(&GLWidget::show_context_menu, this, _1));
 
        glDisable(GL_BLEND);
        glDisable(GL_DEPTH_TEST);
@@ -132,6 +124,17 @@ void GLWidget::mousePressEvent(QMouseEvent *event)
        emit clicked();
 }
 
+void GLWidget::show_context_menu(const QPoint &pos)
+{
+       if (output == Mixer::OUTPUT_LIVE) {
+               show_live_context_menu(pos);
+       }
+       if (output >= Mixer::OUTPUT_INPUT0) {
+               int signal_num = global_mixer->get_channel_signal(output);
+               show_preview_context_menu(signal_num, pos);
+       }
+}
+
 void GLWidget::show_live_context_menu(const QPoint &pos)
 {
        QPoint global_pos = mapToGlobal(pos);
index 01cbbd90eaf4fa84ddf253ab68008e30bc4c5d1d..d71f3c8db2aeb87f4cdc9a70ff79e165c3ad922a 100644 (file)
@@ -52,10 +52,12 @@ signals:
        void color_updated(Mixer::Output output, const std::string &color);
 
 private slots:
+       void show_context_menu(const QPoint &pos);
+
+private:
        void show_live_context_menu(const QPoint &pos);
        void show_preview_context_menu(unsigned signal_num, const QPoint &pos);
 
-private:
        Mixer::Output output;
        GLuint vao, program_num;
        GLuint position_vbo, texcoord_vbo;