X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fchatscene.h;h=29e3d9e5c83ddc6ea5ce614b83f4b4212bc275d5;hp=c1e35157ac2aa8a53f625b3ddd7a51e95ad4c762;hb=158443f71d48215eea8b47b836b61afd77654b78;hpb=138e6d461c259df8052497d7228391ce6548bd5f diff --git a/src/qtui/chatscene.h b/src/qtui/chatscene.h index c1e35157..29e3d9e5 100644 --- a/src/qtui/chatscene.h +++ b/src/qtui/chatscene.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2016 by the Quassel Project * + * Copyright (C) 2005-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -72,8 +72,8 @@ public: TripleClick }; - ChatScene(QAbstractItemModel *model, const QString &idString, qreal width, ChatView *parent); - virtual ~ChatScene(); + ChatScene(QAbstractItemModel *model, QString idString, qreal width, ChatView *parent); + ~ChatScene() override; inline QAbstractItemModel *model() const { return _model; } inline MessageFilter *filter() const { return qobject_cast(_model); } @@ -116,6 +116,23 @@ public: inline CutoffMode senderCutoffMode() const { return _cutoffMode; } inline void setSenderCutoffMode(CutoffMode mode) { _cutoffMode = mode; } + /** + * Gets whether to re-add hidden brackets around sender for all message types + * + * Used within the Chat Monitor as the normal message prefixes are overridden. + * + * @return Whether to re-add hidden brackets around sender for all message types + */ + inline bool alwaysBracketSender() const { return _alwaysBracketSender; } + /** + * Sets whether to re-add hidden brackets around sender for all message types + * + * @see ChatScene::alwaysBracketSender() + * + * @param brackets Sets whether to re-add hidden brackets around sender for all message types + */ + inline void setAlwaysBracketSender(bool alwaysBracket) { _alwaysBracketSender = alwaysBracket; } + QString selection() const; bool hasSelection() const; bool hasGlobalSelection() const; @@ -151,7 +168,7 @@ public slots: #if defined HAVE_WEBKIT || defined HAVE_WEBENGINE void loadWebPreview(ChatItem *parentItem, const QUrl &url, const QRectF &urlRect); - void clearWebPreview(ChatItem *parentItem = 0); + void clearWebPreview(ChatItem *parentItem = nullptr); #endif signals: @@ -160,11 +177,11 @@ signals: void mouseMoveWhileSelecting(const QPointF &scenePos); protected: - virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *contextMenuEvent); - virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent); - virtual void mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent); - virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent); - virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *mouseEvent); + void contextMenuEvent(QGraphicsSceneContextMenuEvent *contextMenuEvent) override; + void mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent) override; + void mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent) override; + void mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent) override; + void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *mouseEvent) override; virtual void handleClick(Qt::MouseButton button, const QPointF &scenePos); protected slots: @@ -180,6 +197,30 @@ private slots: #endif void showWebPreviewChanged(); + /** + * Updates the local setting cache of whether or not to show sender brackets + */ + void showSenderBracketsChanged(); + + /** + * Updates the local setting cache of whether or not to use the custom timestamp format + */ + void useCustomTimestampFormatChanged(); + + /** + * Updates the local setting cache of the timestamp format string + */ + void timestampFormatStringChanged(); + + /** + * Updates the status of whether or not the timestamp format string contains brackets + * + * When the timestamp contains brackets -and- showSenderBrackets is disabled, we need to + * automatically add brackets. This function checks if the timestamp has brackets and stores + * the result, rather than checking each time text is copied. + */ + void updateTimestampHasBrackets(); + void rowsRemoved(); void clickTimeout(); @@ -210,6 +251,8 @@ private: qreal _firstColHandlePos, _secondColHandlePos; int _defaultFirstColHandlePos, _defaultSecondColHandlePos; CutoffMode _cutoffMode; + /// Whether to re-add hidden brackets around sender for all message types + bool _alwaysBracketSender; ChatItem *_selectingItem; int _selectionStartCol, _selectionMinCol; @@ -226,6 +269,12 @@ private: bool _showWebPreview; + bool _showSenderBrackets; /// If true, show brackets around sender names + + bool _useCustomTimestampFormat; /// If true, use the custom timestamp format + QString _timestampFormatString; /// Format of the timestamp string + bool _timestampHasBrackets; /// If true, timestamp format has [brackets] of some sort + static const int _webSearchSelectionTextMaxVisible = 24; #if defined HAVE_WEBKIT || defined HAVE_WEBENGINE @@ -237,13 +286,13 @@ private: ShowPreview, HidePreview }; - ChatItem *parentItem; - QGraphicsItem *previewItem; + ChatItem *parentItem{nullptr}; + QGraphicsItem *previewItem{nullptr}; QUrl url; QRectF urlRect; - PreviewState previewState; + PreviewState previewState{NoPreview}; QTimer timer; - WebPreview() : parentItem(0), previewItem(0), previewState(NoPreview) {} + WebPreview() {} }; WebPreview webPreview; #endif // HAVE_WEBKIT || HAVE_WEBENGINE