Add new ItemView settingspage
[quassel.git] / src / qtui / settingspages / bufferviewsettingspage.h
index a3f32c1..40fc539 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-08 by the Quassel IRC Team                         *
+ *   Copyright (C) 2005-09 by the Quassel Project                          *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -25,6 +25,8 @@
 #include "ui_bufferviewsettingspage.h"
 #include "ui_buffervieweditdlg.h"
 
+#include <QItemSelection>
+
 class BufferViewConfig;
 
 class BufferViewSettingsPage : public SettingsPage {
@@ -32,6 +34,7 @@ class BufferViewSettingsPage : public SettingsPage {
 
 public:
   BufferViewSettingsPage(QWidget *parent = 0);
+  ~BufferViewSettingsPage();
 
 public slots:
   void save();
@@ -43,27 +46,43 @@ private slots:
 
   void addBufferView(BufferViewConfig *config);
   void addBufferView(int bufferViewId);
+  void bufferViewDeleted();
   void newBufferView(const QString &bufferViewName);
   void updateBufferView();
 
+  void enableStatusBuffers(int networkIdx);
+
   void on_addBufferView_clicked();
   void on_renameBufferView_clicked();
+  void on_deleteBufferView_clicked();
+  void bufferViewSelectionChanged(const QItemSelection &current, const QItemSelection &previous);
+
+  void widgetHasChanged();
   
 private:
   Ui::BufferViewSettingsPage ui;
-
-  // mappings for bufferViewId to position in the list and vice versa
-  QHash<int, int> _viewToListPos;
-  QHash<int, int> _listPosToView;
+  bool _ignoreWidgetChanges;
+  bool _useBufferViewHint;
+  int _bufferViewHint;
 
   // list of bufferviews to create
   QList<BufferViewConfig *> _newBufferViews;
 
+  // list of buferViews to delete
+  QList<int> _deleteBufferViews;
+  
   // Hash of pointers to cloned bufferViewConfigs holding the changes
   QHash<BufferViewConfig *, BufferViewConfig *> _changedBufferViews;
 
   int listPos(BufferViewConfig *config);
-  int bufferViewId(int listPos);
+  BufferViewConfig *bufferView(int listPos);
+  bool selectBufferViewById(int bufferViewId);
+  BufferViewConfig *cloneConfig(BufferViewConfig *config);
+  BufferViewConfig *configForDisplay(BufferViewConfig *config);
+
+  void loadConfig(BufferViewConfig *config);
+  void saveConfig(BufferViewConfig *config);
+  bool testHasChanged();
 };