]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/dialogs/messages.hpp
Fix potential segfault.
[vlc] / modules / gui / qt4 / dialogs / messages.hpp
index 5425324bc606dd7afab58f0aa019efa92011f25a..4ca1b1744cef4b51a003fe9c4e546c38fb22df8b 100644 (file)
@@ -1,8 +1,8 @@
 /*****************************************************************************
  * Messages.hpp : Information about a stream
  ****************************************************************************
- * Copyright (C) 2006 the VideoLAN team
- * $Id: Messages.hpp 16024 2006-07-13 13:51:05Z xtophe $
+ * Copyright (C) 2006-2007 the VideoLAN team
+ * $Id$
  *
  * Authors: Jean-Baptiste Kempf <jb (at) videolan.org>
  *
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
 
 #ifndef _MESSAGES_DIALOG_H_
 #define _MESSAGES_DIALOG_H_
 
 #include "util/qvlcframe.hpp"
 
+class QTabWidget;
 class QPushButton;
 class QSpinBox;
 class QGridLayout;
 class QLabel;
 class QTextEdit;
+class QTreeWidget;
+class QTreeWidgetItem;
 
 class MessagesDialog : public QVLCFrame
 {
@@ -38,21 +42,37 @@ public:
     static MessagesDialog * getInstance( intf_thread_t *p_intf )
     {
         if( !instance)
-            instance = new MessagesDialog( p_intf);
+            instance = new MessagesDialog( p_intf );
         return instance;
     }
-    virtual ~MessagesDialog();
+    static void killInstance()
+    {
+        if( instance ) delete instance;
+        instance = NULL;
+    }
+
+    virtual ~MessagesDialog(){ writeSettings( "messages" ); };
 
 private:
-    MessagesDialog( intf_thread_t *);
+    MessagesDialog( intf_thread_t * );
     static MessagesDialog *instance;
+    QTabWidget *mainTab;
     QSpinBox *verbosityBox;
+    QLabel *verbosityLabel;
     QTextEdit *messages;
-public slots:
+    QTreeWidget *modulesTree;
+    QPushButton *clearUpdateButton;
+    QPushButton *saveLogButton;
+
+private slots:
+    void updateTab( int );
     void updateLog();
-    void onCloseButton();
-    void onClearButton();
-    bool onSaveButton();
+    void clearOrUpdate();
+    bool save();
+private:
+    void clear();
+    void updateTree();
+    void buildTree( QTreeWidgetItem *, vlc_object_t * );
 };
 
 #endif