#define QVLC_MESSAGES_DIALOG_H_ 1
#include "util/qvlcframe.hpp"
+#include "util/singleton.hpp"
+#include "ui/messages_panel.h"
class QTabWidget;
class QPushButton;
class QTextEdit;
class QTreeWidget;
class QTreeWidgetItem;
+class QLineEdit;
+class MsgEvent;
-class MessagesDialog : public QVLCFrame
+class MessagesDialog : public QVLCFrame, public Singleton<MessagesDialog>
{
- Q_OBJECT;
-public:
- static MessagesDialog * getInstance( intf_thread_t *p_intf )
- {
- if( !instance)
- instance = new MessagesDialog( p_intf );
- return instance;
- }
- static void killInstance()
- {
- if( instance ) delete instance;
- instance = NULL;
- }
-
- virtual ~MessagesDialog();
-
+ Q_OBJECT
private:
MessagesDialog( intf_thread_t * );
- static MessagesDialog *instance;
- QTabWidget *mainTab;
- QSpinBox *verbosityBox;
- QLabel *verbosityLabel;
- QTextEdit *messages;
- QTreeWidget *modulesTree;
- QPushButton *clearUpdateButton;
- QPushButton *saveLogButton;
+ virtual ~MessagesDialog();
+
+ Ui::messagesPanelWidget ui;
msg_subscription_t *sub;
msg_cb_data_t *cbData;
static void sinkMessage( msg_cb_data_t *, msg_item_t *, unsigned );
void customEvent( QEvent * );
- void sinkMessage( msg_item_t *item );
+ void sinkMessage( MsgEvent * );
private slots:
- void updateTab( int );
- void clearOrUpdate();
bool save();
-private:
+ void updateConfig();
+ void changeVerbosity( int );
void clear();
void updateTree();
+ void tabChanged( int );
+
+private:
void buildTree( QTreeWidgetItem *, vlc_object_t * );
+
+ friend class Singleton<MessagesDialog>;
+ QPushButton *updateButton;
};
#endif