Prevent ChatView from scrolling up 1px on buffer switch, fixes #544
[quassel.git] / src / common / bufferviewmanager.h
index 143b400..6281a44 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-08 by the Quassel Project                          *
+ *   Copyright (C) 2005-09 by the Quassel Project                          *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -35,6 +35,8 @@ class BufferViewManager : public SyncableObject {
 public:
   BufferViewManager(SignalProxy *proxy, QObject *parent = 0);
 
+  inline virtual const QMetaObject *syncMetaObject() const { return &staticMetaObject; }
+
   inline QList<BufferViewConfig *> bufferViewConfigs() const { return _bufferViewConfigs.values(); }
   BufferViewConfig *bufferViewConfig(int bufferViewId) const;
 
@@ -43,18 +45,28 @@ public slots:
   void addBufferViewConfig(int bufferViewConfigId);
   inline void newBufferViewConfig(int bufferViewConfigId)  { addBufferViewConfig(bufferViewConfigId); }
 
+  void deleteBufferViewConfig(int bufferViewConfigId);
+
   QVariantList initBufferViewIds() const;
   void initSetBufferViewIds(const QVariantList bufferViewIds);
 
-  virtual inline void requestCreateBufferView(const QString &bufferViewName) { emit createBufferViewRequested(bufferViewName); }
+  virtual inline void requestCreateBufferView(const QVariantMap &properties) { emit createBufferViewRequested(properties); }
+  virtual inline void requestCreateBufferViews(const QVariantList &properties) { emit createBufferViewsRequested(properties); }
+  virtual inline void requestDeleteBufferView(int bufferViewId) { emit deleteBufferViewRequested(bufferViewId); }
+  virtual inline void requestDeleteBufferViews(const QVariantList &bufferViews) { emit deleteBufferViewsRequested(bufferViews); }
 
 signals:
   void bufferViewConfigAdded(int bufferViewConfigId);
-  void createBufferViewRequested(const QString &bufferViewName);
+  void bufferViewConfigDeleted(int bufferViewConfigId);
+  void createBufferViewRequested(const QVariantMap &properties);
+  void createBufferViewsRequested(const QVariantList &properties);
+  void deleteBufferViewRequested(int bufferViewId);
+  void deleteBufferViewsRequested(const QVariantList &bufferViews);
 
 protected:
   typedef QHash<int, BufferViewConfig *> BufferViewConfigHash;
   inline const BufferViewConfigHash &bufferViewConfigHash() { return _bufferViewConfigs; }
+  virtual BufferViewConfig *bufferViewConfigFactory(int bufferViewConfigId);
 
 private:
   BufferViewConfigHash _bufferViewConfigs;