X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fchatviewsettings.h;h=19aed61e0de9094129fe84d9d1ad029ed72bf87c;hp=c891f0f3f083fb2e6bbef96818295d1a19fed7cd;hb=00e1a9c29e792ba4d65dba21b7ba04131bcb13bc;hpb=d30eb5039971db578ba6e777d737344187e5b02a diff --git a/src/qtui/chatviewsettings.h b/src/qtui/chatviewsettings.h index c891f0f3..19aed61e 100644 --- a/src/qtui/chatviewsettings.h +++ b/src/qtui/chatviewsettings.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 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 * @@ -22,6 +22,7 @@ #define CHATVIEWSETTINGS_H #include "qtuisettings.h" +#include "uistyle.h" class ChatScene; class ChatView; @@ -36,22 +37,77 @@ public: 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", true).toBool(); } + inline bool showWebPreview() { return localValue("ShowWebPreview", false).toBool(); } inline void enableWebPreview(bool enabled) { setLocalValue("ShowWebPreview", enabled); } - inline QString timestampFormatString() { return localValue("TimestampFormat", "[hh:mm:ss]").toString(); } + /** + * 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); } + + /** + * 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); } + /** + * 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... + } + + /** + * 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