Fitting the SyncableObjects to the new Style
[quassel.git] / src / common / bufferviewmanager.h
index 143b400..23322ab 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  *
@@ -30,11 +30,14 @@ class BufferViewConfig;
 class SignalProxy;
 
 class BufferViewManager : public SyncableObject {
+  SYNCABLE_OBJECT
   Q_OBJECT
 
 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 +46,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) { REQUEST(ARG(properties)) }
+  virtual inline void requestCreateBufferViews(const QVariantList &properties) { REQUEST(ARG(properties)) }
+  virtual inline void requestDeleteBufferView(int bufferViewId) { REQUEST(ARG(bufferViewId)) }
+  virtual inline void requestDeleteBufferViews(const QVariantList &bufferViews) { REQUEST(ARG(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;