X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fabstractbuffercontainer.h;h=9af43ca0b46da94557a82135139300a0da91caac;hp=a8c5055c62b6633042fcd7abbe06351e24e4833c;hb=68878dc8366f2f4a0afe132847aad9a51a80cdbf;hpb=ea00d87c6fe7d2df6f6c2f96386cb14ba755322d diff --git a/src/uisupport/abstractbuffercontainer.h b/src/uisupport/abstractbuffercontainer.h index a8c5055c..9af43ca0 100644 --- a/src/uisupport/abstractbuffercontainer.h +++ b/src/uisupport/abstractbuffercontainer.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-08 by the Quassel IRC Team * + * Copyright (C) 2005-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -15,7 +15,7 @@ * 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., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ #ifndef ABSTRACTBUFFERCONTAINER_H_ @@ -28,16 +28,21 @@ class AbstractChatView; class AbstractUiMsg; class Buffer; -class AbstractBufferContainer : public AbstractItemView { - Q_OBJECT +class AbstractBufferContainer : public AbstractItemView +{ + Q_OBJECT - public: +public: AbstractBufferContainer(QWidget *parent); virtual ~AbstractBufferContainer(); inline BufferId currentBuffer() const { return _currentBuffer; } - protected: +signals: + void currentChanged(BufferId); + void currentChanged(const QModelIndex &); + +protected: //! Create an AbstractChatView for the given BufferId and add it to the UI if necessary virtual AbstractChatView *createChatView(BufferId) = 0; @@ -46,9 +51,14 @@ class AbstractBufferContainer : public AbstractItemView { * It also shall delete the object afterwards. * \param view The chat view to be removed and deleted */ - virtual void removeChatView(AbstractChatView *view) = 0; + virtual void removeChatView(BufferId) = 0; + + //! If true, the marker line will be set automatically on buffer switch + /** \return Whether the marker line should be set on buffer switch + */ + virtual inline bool autoMarkerLine() const { return true; } - protected slots: +protected slots: virtual void currentChanged(const QModelIndex ¤t, const QModelIndex &previous); virtual void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end); @@ -57,27 +67,24 @@ class AbstractBufferContainer : public AbstractItemView { * selecting the appropriate page in a QStackedWidget. * \param view The chat view to be displayed. May be 0 if no chat view is selected. */ - virtual void showChatView(AbstractChatView *view) = 0; + virtual void showChatView(BufferId) = 0; - private slots: - void appendMsg(AbstractUiMsg *); - void prependMsg(AbstractUiMsg *); +private slots: void removeBuffer(BufferId bufferId); void setCurrentBuffer(BufferId bufferId); - private: +private: BufferId _currentBuffer; QHash _chatViews; }; -class AbstractChatView { - public: +class AbstractChatView +{ +public: virtual ~AbstractChatView() {}; - virtual void appendMsg(AbstractUiMsg *msg) = 0; - virtual void prependMsg(AbstractUiMsg *msg) = 0; - virtual void setContents(const QList &contents) = 0; - + virtual MsgId lastMsgId() const = 0; }; + #endif