]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/dialogs/mediainfo.hpp
qt4: Don't create QMenu without parents
[vlc] / modules / gui / qt4 / dialogs / mediainfo.hpp
index e31dc7401aee3560b33b95b089e52210381c31c0..4343bb719d55b6a3bfe9034f96955a8275e6bff4 100644 (file)
@@ -1,7 +1,7 @@
 /*****************************************************************************
- * streaminfo.hpp : Information about a stream
+ * mediainfo.hpp : Information about a stream
  ****************************************************************************
- * Copyright (C) 2006 the VideoLAN team
+ * Copyright (C) 2006-2007 the VideoLAN team
  * $Id$
  *
  * Authors: ClĂ©ment Stenac <zorglub@videolan.org>
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  ******************************************************************************/
 
-#ifndef _MEDIAINFO_DIALOG_H_
-#define _MEDIAINFO_DIALOG_H_
+#ifndef QVLC_MEDIAINFO_DIALOG_H_
+#define QVLC_MEDIAINFO_DIALOG_H_ 1
 
 #include "util/qvlcframe.hpp"
-#include <QTabWidget>
-#include <QBoxLayout>
+#include "components/info_panels.hpp"
+#include "util/singleton.hpp"
 
-class InfoTab;
+class QTabWidget;
 
-class MediaInfoDialog : public QVLCFrame
+class MediaInfoDialog : public QVLCFrame, public Singleton<MediaInfoDialog>
 {
     Q_OBJECT;
 public:
-    static MediaInfoDialog * getInstance( intf_thread_t *p_intf )
-    {
-        if( !instance)
-            instance = new MediaInfoDialog( p_intf);
-        return instance;
-    }
-    static void killInstance()
-    {
-        if( instance ) delete instance;
-        instance= NULL;
-    }
-    virtual ~MediaInfoDialog();
-    bool need_update;
+    MediaInfoDialog( intf_thread_t *,
+                     input_item_t * input = NULL );
+
+    void showTab( int );
+#if 0
+    void setInput( input_item_t * );
+#endif
+
 private:
-    MediaInfoDialog( intf_thread_t * );
-    input_thread_t *p_input;
-    InfoTab *IT;
-    static MediaInfoDialog *instance;
-    int i_runs;
-public slots:
-    void update();
-    void close();
+    virtual ~MediaInfoDialog();
+
+    bool isMainInputInfo;
+
+    QTabWidget *infoTabW;
+
+    InputStatsPanel *ISP;
+    MetaPanel *MP;
+    InfoPanel *IP;
+    ExtraMetaPanel *EMP;
+
+    QPushButton *saveMetaButton;
+
+private slots:
+    void updateAllTabs( input_item_t * );
+    void clearAllTabs();
+
+    virtual void close();
+
+    void saveMeta();
+    void updateButtons( int i_tab );
+
+    friend class    Singleton<MediaInfoDialog>;
 };
 
 #endif