-struct BufferState {
- ChatWidget *chatWidget;
- QTreeWidget *nickTree;
- QSplitter *splitter;
- QWidget *page;
- Buffer *buffer;
- QByteArray splitterState;
- QString topic, ownNick;
- QString inputLine;
- int currentLine;
- int lineOffset;
- bool opsExpanded, voicedExpanded, usersExpanded;
+ const Network *currentNetwork() const;
+
+signals:
+ void userInput(QString msg) const;
+ void aboutToClose();
+
+protected slots:
+// virtual void closeEditor(QWidget *editor, QAbstractItemDelegate::EndEditHint hint);
+// virtual void commitData(QWidget *editor);
+ virtual void currentChanged(const QModelIndex ¤t, const QModelIndex &previous);
+// virtual void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight);
+// virtual void editorDestroyed(QObject *editor);
+ virtual void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end);
+// virtual void rowsInserted(const QModelIndex &parent, int start, int end);
+// virtual void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
+
+private slots:
+ void enterPressed();
+ void changeNick(const QString &newNick) const;
+ void removeBuffer(BufferId bufferId);
+
+ void setCurrentBuffer(BufferId bufferId);
+ void updateNickSelector() const;
+
+private:
+ Ui::BufferWidget ui;
+ QHash<BufferId, ChatWidget *> _chatWidgets;
+
+ QPointer<BufferModel> _bufferModel;
+ QPointer<QItemSelectionModel> _selectionModel;