X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fchatviewsettings.h;h=19aed61e0de9094129fe84d9d1ad029ed72bf87c;hp=ef5f4d382a0323d0a9bad65ba551820009d81789;hb=00e1a9c29e792ba4d65dba21b7ba04131bcb13bc;hpb=960ed1ea65124794286c15a2d03bce60577556ee diff --git a/src/qtui/chatviewsettings.h b/src/qtui/chatviewsettings.h index ef5f4d38..19aed61e 100644 --- a/src/qtui/chatviewsettings.h +++ b/src/qtui/chatviewsettings.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-09 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 * @@ -15,37 +15,99 @@ * 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 CHATVIEWSETTINGS_H #define CHATVIEWSETTINGS_H #include "qtuisettings.h" +#include "uistyle.h" class ChatScene; class ChatView; -class ChatViewSettings : public QtUiSettings { +class ChatViewSettings : public QtUiSettings +{ +public: + Q_ENUMS(OperationMode) public: - Q_ENUMS(OperationMode) - public: enum OperationMode { - InvalidMode = 0, - OptIn = 1, - OptOut = 2 + InvalidMode = 0, + OptIn = 1, + OptOut = 2 }; - Q_DECLARE_FLAGS(operationModes, OperationMode); + Q_DECLARE_FLAGS(operationModes, OperationMode) + + ChatViewSettings(const QString &id = "__default__"); + ChatViewSettings(ChatScene *scene); + ChatViewSettings(ChatView *view); + + inline bool showWebPreview() { return localValue("ShowWebPreview", false).toBool(); } + inline void enableWebPreview(bool enabled) { setLocalValue("ShowWebPreview", enabled); } + + /** + * Gets if a custom timestamp format is used. + * + * @returns True if custom timestamp format used, otherwise false + */ + inline bool useCustomTimestampFormat() { return localValue("UseCustomTimestampFormat", false).toBool(); } + /** + * Sets whether a custom timestamp format is used. + * + * @param[in] enabled True if custom timestamp format used, otherwise false + */ + inline void setUseCustomTimestampFormat(bool enabled) { setLocalValue("UseCustomTimestampFormat", enabled); } - ChatViewSettings(const QString &id = "__default__"); - ChatViewSettings(ChatScene *scene); - ChatViewSettings(ChatView *view); + /** + * Gets the format string for chat log timestamps. + * + * @returns String representing timestamp format, e.g. "[hh:mm:ss]" or " hh:mm:ss" + */ + inline QString timestampFormatString() { return localValue("TimestampFormat", " hh:mm:ss").toString(); } + // Include a space in the default TimestampFormat to give the timestamp a small bit of padding + // between the border of the chat buffer window and the numbers. Helps with readability. + /** + * Sets the format string for chat log timestamps + * + * @param[in] format String representing timestamp format, e.g. "[hh:mm:ss]" or " hh:mm:ss" + */ + inline void setTimestampFormatString(const QString &format) { setLocalValue("TimestampFormat", format); } - inline bool showWebPreview() { return localValue("ShowWebPreview", true).toBool(); } - inline void enableWebPreview(bool enabled) { setLocalValue("ShowWebPreview", enabled); } + /** + * Gets how prefix modes are shown before sender names + * + * @returns SenderPrefixMode of what format to use for showing sender prefix modes + */ + inline UiStyle::SenderPrefixMode SenderPrefixDisplay() { + return static_cast( + localValue("SenderPrefixMode", + QVariant::fromValue( + UiStyle::SenderPrefixMode::HighestMode)).toInt()); + // Cast the QVariant to an integer, then cast that to the enum class. + // .canConvert() returned true, but + // .value(); always gave the default value 0. + // + // There's probably a cleaner way of doing this. I couldn't find it within 4 hours, so... + } - inline QString timestampFormatString() { return localValue("TimestampFormat", "[hh:mm:ss]").toString(); } - inline void setTimestampFormatString(const QString &format) { setLocalValue("TimestampFormat", format); } + /** + * Gets if brackets are shown around sender names + * + * @returns True if sender brackets enabled, otherwise false + */ + inline bool showSenderBrackets() { return localValue("ShowSenderBrackets", false).toBool(); } + /** + * Sets whether brackets are shown around around sender names. + * + * @param[in] enabled True if enabling sender brackets, otherwise false + */ + inline void enableSenderBrackets(bool enabled) { setLocalValue("ShowSenderBrackets", enabled); } + + inline QString webSearchUrlFormatString() { return localValue("WebSearchUrlFormat", "https://www.google.com/search?q=%s").toString(); } + inline void setWebSearchUrlFormatString(const QString &format) { setLocalValue("WebSearchUrlFormat", format); } }; -Q_DECLARE_METATYPE(ChatViewSettings::OperationMode); + + +Q_DECLARE_METATYPE(ChatViewSettings::OperationMode) #endif //CHATVIEWSETTINGS_H