X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcommon%2Fquassel.h;h=17e252c13d3cf28050d4eb77f73657156435c172;hb=493043890c74e4679bb3fdaf512a0e1e52c426d3;hp=87d525f8d45187de7ddcd95c7898737f71b74447;hpb=ced382f4e6d6613151bdbf95c1569ca2c83da78e;p=quassel.git diff --git a/src/common/quassel.h b/src/common/quassel.h index 87d525f8..17e252c1 100644 --- a/src/common/quassel.h +++ b/src/common/quassel.h @@ -32,10 +32,13 @@ #include #include "abstractcliparser.h" +#include "singleton.h" class QFile; -class Quassel : public QObject +class Logger; + +class Quassel : public QObject, public Singleton { // TODO Qt5: Use Q_GADGET Q_OBJECT @@ -131,12 +134,27 @@ public: SenderPrefixes, ///< Show prefixes for senders in backlog RemoteDisconnect, ///< Allow this peer to be remotely disconnected ExtendedFeatures, ///< Extended features + LongTime, ///< Serialize time as 64-bit values + RichMessages, ///< Real Name and Avatar URL in backlog + BacklogFilterType, ///< BacklogManager supports filtering backlog by MessageType +#if QT_VERSION >= 0x050500 + EcdsaCertfpKeys, ///< ECDSA keys for CertFP in identities +#endif + LongMessageId, ///< 64-bit IDs for messages + SyncedCoreInfo, ///< CoreInfo dynamically updated using signals }; Q_ENUMS(Feature) class Features; - static Quassel *instance(); + Quassel(); + + /** + * Provides access to the Logger instance. + * + * @returns The Logger instance + */ + Logger *logger() const; static void setupBuildInfo(); static const BuildInfo &buildInfo(); @@ -174,20 +192,6 @@ public: static QString optionValue(const QString &option); static bool isOptionSet(const QString &option); - enum LogLevel { - DebugLevel, - InfoLevel, - WarningLevel, - ErrorLevel - }; - - static LogLevel logLevel(); - static void setLogLevel(LogLevel logLevel); - static QFile *logFile(); - static bool logToSyslog(); - - static void logFatalMessage(const char *msg); - using ReloadHandler = std::function; static void registerReloadHandler(ReloadHandler handler); @@ -196,9 +200,13 @@ public: static void registerQuitHandler(QuitHandler quitHandler); + const QString &coreDumpFileName(); + +signals: + void messageLogged(const QDateTime &timeStamp, const QString &msg); + protected: static bool init(); - static void destroy(); static void setRunMode(Quassel::RunMode runMode); @@ -211,12 +219,9 @@ protected: friend class MonolithicApplication; private: - Quassel(); void setupEnvironment(); void registerMetaTypes(); - const QString &coreDumpFileName(); - /** * Requests a reload of relevant runtime configuration. * @@ -249,12 +254,10 @@ private: QStringList _dataDirPaths; QString _translationDirPath; - LogLevel _logLevel{InfoLevel}; - bool _logToSyslog{false}; - std::unique_ptr _logFile; - std::shared_ptr _cliParser; + Logger *_logger; + std::vector _reloadHandlers; std::vector _quitHandlers; };