* 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 "components/infopanels.hpp"
+#include "components/info_panels.hpp"
+#include "util/singleton.hpp"
class QTabWidget;
-class InfoTab;
-class QLineEdit;
-class MediaInfoDialog : public QVLCFrame
+class MediaInfoDialog : public QVLCFrame, public Singleton<MediaInfoDialog>
{
- Q_OBJECT;
+ Q_OBJECT
public:
- MediaInfoDialog( intf_thread_t *, bool stats = true,
- bool mainInput = false );
- static MediaInfoDialog * getInstance( intf_thread_t *p_intf )
- {
- if( !instance)
- instance = new MediaInfoDialog( p_intf, true, true );
- return instance;
- }
- static void killInstance()
- {
- if( instance ) delete instance;
- instance= NULL;
- }
- virtual ~MediaInfoDialog();
+ MediaInfoDialog( intf_thread_t *,
+ input_item_t * input = NULL );
void showTab( int );
- bool need_update;
+#if 0
void setInput( input_item_t * );
- QLineEdit *uriLine;
+#endif
+
private:
- input_thread_t *p_input;
- QTabWidget *IT;
- static MediaInfoDialog *instance;
- int i_runs;
- bool mainInput;
- bool stats;
+ virtual ~MediaInfoDialog();
+
+ bool isMainInputInfo;
+
+ QTabWidget *infoTabW;
+
InputStatsPanel *ISP;
MetaPanel *MP;
InfoPanel *IP;
ExtraMetaPanel *EMP;
+
QPushButton *saveMetaButton;
-public slots:
- void update();
- void update( input_item_t *, bool, bool );
- void close();
- void clear();
+
+private slots:
+ void updateAllTabs( input_item_t * );
+ void clearAllTabs();
+
+ virtual void close();
+
+ void saveMeta();
void updateButtons( int i_tab );
+
+ friend class Singleton<MediaInfoDialog>;
};
#endif