You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
319 lines
11 KiB
319 lines
11 KiB
15 years ago
|
/*
|
||
|
kopeteprefs.cpp - Kopete Preferences Container-Class
|
||
|
|
||
|
Copyright (c) 2002 by Stefan Gehn <metz AT gehn.net>
|
||
|
Kopete (c) 2002-2005 by the Kopete developers <kopete-devel@kde.org>
|
||
|
|
||
|
*************************************************************************
|
||
|
* *
|
||
|
* This library is free software; you can redistribute it and/or *
|
||
|
* modify it under the terms of the GNU Lesser General Public *
|
||
|
* License as published by the Free Software Foundation; either *
|
||
|
* version 2 of the License, or (at your option) any later version. *
|
||
|
* *
|
||
|
*************************************************************************
|
||
|
*/
|
||
|
|
||
|
#ifndef __KOPETEPREFS_H__
|
||
|
#define __KOPETEPREFS_H__
|
||
|
|
||
|
#include <qobject.h>
|
||
|
#include <kdeversion.h>
|
||
|
#include <qcolor.h>
|
||
|
#include <qfont.h>
|
||
|
|
||
|
#include "kopete_export.h"
|
||
|
|
||
|
class KConfig;
|
||
|
|
||
|
class KOPETE_EXPORT KopetePrefs : public QObject
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
// here so we can use Qt to translate enums<-->strings
|
||
|
Q_PROPERTY( ContactDisplayMode contactListDisplayMode READ contactListDisplayMode WRITE setContactListDisplayMode )
|
||
|
Q_PROPERTY( IconDisplayMode contactListIconMode READ contactListIconMode WRITE setContactListIconMode )
|
||
|
Q_ENUMS( ContactDisplayMode IconDisplayMode )
|
||
|
|
||
|
public:
|
||
|
/**
|
||
|
* The prefs container-class is a singleton object. Use this method to retrieve
|
||
|
* the instance.
|
||
|
*/
|
||
|
static KopetePrefs *prefs();
|
||
|
|
||
|
/**
|
||
|
* Reads all pref-variables from KConfig
|
||
|
* usually you don't need this as KopetePrefs loads settings
|
||
|
* when an instance is created
|
||
|
*/
|
||
|
void load();
|
||
|
|
||
|
/**
|
||
|
* Stores all pref-variables into KConfig
|
||
|
*/
|
||
|
void save();
|
||
|
|
||
|
QString iconTheme() const { return mIconTheme; }
|
||
|
bool useEmoticons() const { return mUseEmoticons; }
|
||
|
bool showOffline() const { return mShowOffline; }
|
||
|
bool showEmptyGroups() const { return mShowEmptyGroups; }
|
||
|
bool treeView() const { return mTreeView; }
|
||
|
bool sortByGroup() const { return mSortByGroup; }
|
||
|
bool greyIdleMetaContacts() const { return mGreyIdle; }
|
||
|
bool startDocked() const { return mStartDocked; }
|
||
|
bool useQueue() const { return mUseQueue; }
|
||
|
bool useStack() const { return mUseStack; }
|
||
|
bool raiseMsgWindow() const{ return mRaiseMsgWindow; }
|
||
|
bool showEvents() const{ return mShowEvents; }
|
||
|
bool trayflashNotify() const { return mTrayflashNotify; }
|
||
|
bool spellCheck() const { return mSpellCheck; }
|
||
|
bool queueUnreadMessages() const { return mQueueUnreadMessages; }
|
||
|
bool queueOnlyHighlightedMessagesInGroupChats() const { return mQueueOnlyHighlightedMessagesInGroupChats; }
|
||
|
bool queueOnlyMessagesOnAnotherDesktop() const { return mQueueOnlyMessagesOnAnotherDesktop; }
|
||
|
bool trayflashNotifyLeftClickOpensMessage() const { return mTrayflashNotifyLeftClickOpensMessage; }
|
||
|
bool trayflashNotifySetCurrentDesktopToChatView() const { return mTrayflashNotifySetCurrentDesktopToChatView; }
|
||
|
bool balloonNotify() const { return mBalloonNotify; }
|
||
|
bool balloonNotifyIgnoreClosesChatView() const { return mBalloonNotifyIgnoreClosesChatView; }
|
||
|
bool balloonClose() const { return mBalloonClose; }
|
||
|
int balloonCloseDelay() const { return mBalloonCloseDelay; }
|
||
|
bool soundIfAway() const { return mSoundIfAway; }
|
||
|
int chatViewBufferSize() const { return mChatViewBufferSize; }
|
||
|
int rememberedMessages() const { return mRememberedMessages; }
|
||
|
const QColor &highlightBackground() const { return mHighlightBackground; }
|
||
|
const QColor &highlightForeground() const { return mHighlightForeground; }
|
||
|
const QColor &textColor() const { return mTextColor; }
|
||
|
const QColor &bgColor() const { return mBgColor; }
|
||
|
const QColor &linkColor() const { return mLinkColor; }
|
||
|
const QFont &fontFace() const { return mFontFace; }
|
||
|
const QColor &idleContactColor() const { return mIdleContactColor; }
|
||
|
bool highlightEnabled() const { return mHighlightEnabled; }
|
||
|
bool bgOverride() const { return mBgOverride; }
|
||
|
bool fgOverride() const { return mFgOverride; }
|
||
|
bool rtfOverride() const { return mRtfOverride; }
|
||
|
|
||
|
QString interfacePreference() const { return mInterfacePreference; }
|
||
|
bool showTray() const { return mShowTray; }
|
||
|
bool richText() const { return mRichText; }
|
||
|
bool chatWShowSend() const { return mChatWShowSend; }
|
||
|
bool autoConnect() const { return mAutoConnect; }
|
||
|
|
||
|
int chatWindowPolicy() const { return mChatWindowPolicy; }
|
||
|
|
||
|
//Styles
|
||
|
QString defaultTheme() const { return QString::fromLatin1("Default"); }
|
||
|
//for Adium (xhtml+css)
|
||
|
QString stylePath() const { return mStylePath; }
|
||
|
QString styleVariant() const { return mStyleVariant; }
|
||
|
|
||
|
QStringList toolTipContents() const { return mToolTipContents; }
|
||
|
|
||
|
///
|
||
|
enum ContactDisplayMode { Classic, RightAligned, Detailed, Yagami, Default = Classic };
|
||
|
///
|
||
|
enum IconDisplayMode { IconPic, PhotoPic, IconDefault = IconPic };
|
||
|
bool contactListIndentContacts() const { return mContactListIndentContacts; }
|
||
|
ContactDisplayMode contactListDisplayMode() const { return mContactListDisplayMode; }
|
||
|
IconDisplayMode contactListIconMode() const { return mContactListIconMode; }
|
||
|
bool contactListUseCustomFonts() const { return mContactListUseCustomFonts; }
|
||
|
QFont contactListCustomNormalFont() const { return mContactListNormalFont; }
|
||
|
QFont contactListCustomSmallFont() const { return mContactListSmallFont; }
|
||
|
QFont contactListSmallFont() const;
|
||
|
QColor contactListGroupNameColor() const { return mContactListGroupNameColor; }
|
||
|
bool contactListAnimation() const { return mContactListAnimation; }
|
||
|
bool contactListFading() const { return mContactListFading; }
|
||
|
bool contactListFolding() const { return mContactListFolding; }
|
||
|
bool contactListAutoHide() const { return mContactListAutoHide; }
|
||
|
unsigned int contactListAutoHideTimeout() const { return mContactListAutoHideTimeout; }
|
||
|
|
||
|
bool reconnectOnDisconnect() const { return mReconnectOnDisconnect; }
|
||
|
|
||
|
bool truncateContactNames() const { return mTruncateContactNames; }
|
||
|
int maxConactNameLength() const { return mMaxContactNameLength; }
|
||
|
bool emoticonsRequireSpaces() const { return mEmoticonsRequireSpaces; }
|
||
|
bool groupConsecutiveMessages() const { return mGroupConsecutiveMessages; }
|
||
|
|
||
|
void setIconTheme(const QString &value);
|
||
|
void setUseEmoticons(bool value);
|
||
|
void setShowOffline(bool value);
|
||
|
void setShowEmptyGroups(bool value);
|
||
|
void setTreeView(bool);
|
||
|
void setSortByGroup(bool);
|
||
|
void setGreyIdleMetaContacts(bool);
|
||
|
void setStartDocked(bool);
|
||
|
void setUseQueue(bool);
|
||
|
void setUseStack(bool);
|
||
|
void setRaiseMsgWindow(bool);
|
||
|
void setShowEvents(bool);
|
||
|
void setTrayflashNotify(bool);
|
||
|
void setSpellCheck(bool);
|
||
|
void setQueueUnreadMessages(bool);
|
||
|
void setQueueOnlyHighlightedMessagesInGroupChats(bool);
|
||
|
void setQueueOnlyMessagesOnAnotherDesktop(bool);
|
||
|
void setTrayflashNotifyLeftClickOpensMessage(bool);
|
||
|
void setTrayflashNotifySetCurrentDesktopToChatView(bool);
|
||
|
void setBalloonNotify(bool);
|
||
|
void setBalloonNotifyIgnoreClosesChatView(bool);
|
||
|
void setSoundIfAway(bool);
|
||
|
void setBeepNotify(bool);
|
||
|
void setChatWindowPolicy(int);
|
||
|
void setStylePath(const QString &);
|
||
|
void setStyleVariant(const QString &);
|
||
|
void setChatViewBufferSize(int);
|
||
|
void setHighlightBackground(const QColor &);
|
||
|
void setHighlightForeground(const QColor &);
|
||
|
void setHighlightEnabled(bool);
|
||
|
void setBgOverride(bool);
|
||
|
void setFgOverride(bool);
|
||
|
void setRtfOverride(bool);
|
||
|
void setInterfacePreference(const QString &viewPlugin);
|
||
|
void setTextColor(const QColor &);
|
||
|
void setBgColor(const QColor &);
|
||
|
void setLinkColor(const QColor &);
|
||
|
void setFontFace(const QFont &);
|
||
|
void setIdleContactColor(const QColor &);
|
||
|
void setShowTray(bool);
|
||
|
void setRichText(bool);
|
||
|
void setRememberedMessages(int);
|
||
|
void setToolTipContents(const QStringList &);
|
||
|
void setContactListIndentContacts( bool v );
|
||
|
void setContactListDisplayMode( ContactDisplayMode v );
|
||
|
void setContactListIconMode( IconDisplayMode v );
|
||
|
void setContactListUseCustomFonts( bool v );
|
||
|
void setContactListCustomNormalFont( const QFont & v );
|
||
|
void setContactListCustomSmallFont( const QFont & v );
|
||
|
void setContactListGroupNameColor( const QColor & v );
|
||
|
void setContactListAnimation( bool );
|
||
|
void setContactListFading( bool );
|
||
|
void setContactListFolding( bool );
|
||
|
void setContactListAutoHide( bool );
|
||
|
void setContactListAutoHideTimeout( unsigned int );
|
||
|
void setReconnectOnDisconnect( bool newSetting );
|
||
|
void setTruncateContactNames( bool );
|
||
|
void setMaxContactNameLength( int );
|
||
|
void setAutoConnect( bool );
|
||
|
void setEmoticonsRequireSpaces( bool );
|
||
|
void setBalloonClose( bool );
|
||
|
void setBalloonDelay( int );
|
||
|
void setGroupConsecutiveMessages( bool );
|
||
|
|
||
|
signals:
|
||
|
/**
|
||
|
* Emitted when config gets saved by save()
|
||
|
*/
|
||
|
void saved();
|
||
|
/**
|
||
|
* Emitted when config gets saved by save() and a certain
|
||
|
* setting has changed.
|
||
|
* Naming scheme is the same as with the config vars.
|
||
|
*/
|
||
|
void windowAppearanceChanged();
|
||
|
void messageAppearanceChanged();
|
||
|
void contactListAppearanceChanged();
|
||
|
/**
|
||
|
* Emitted when chat Window Style changed.
|
||
|
* @param stylePath New stylePath
|
||
|
*/
|
||
|
void styleChanged(const QString &stylePath);
|
||
|
/**
|
||
|
* Emitted when ChatWindowStyle variant changed.
|
||
|
* @param variantPath New variant Path.
|
||
|
*/
|
||
|
void styleVariantChanged(const QString &variantPath);
|
||
|
|
||
|
private:
|
||
|
/**
|
||
|
* Private constructor: we are a singleton
|
||
|
*/
|
||
|
KopetePrefs();
|
||
|
|
||
|
/**
|
||
|
* Our instance
|
||
|
*/
|
||
|
static KopetePrefs *s_prefs;
|
||
|
|
||
|
KConfig *config;
|
||
|
|
||
|
QString mIconTheme;
|
||
|
bool mUseEmoticons;
|
||
|
bool mShowOffline;
|
||
|
bool mShowEmptyGroups;
|
||
|
bool mGreyIdle;
|
||
|
bool mTreeView;
|
||
|
bool mSortByGroup;
|
||
|
bool mStartDocked;
|
||
|
bool mUseQueue;
|
||
|
bool mUseStack;
|
||
|
bool mRaiseMsgWindow;
|
||
|
bool mShowEvents;
|
||
|
bool mTrayflashNotify;
|
||
|
bool mSpellCheck;
|
||
|
bool mQueueUnreadMessages;
|
||
|
bool mQueueOnlyHighlightedMessagesInGroupChats;
|
||
|
bool mQueueOnlyMessagesOnAnotherDesktop;
|
||
|
bool mTrayflashNotifyLeftClickOpensMessage;
|
||
|
bool mTrayflashNotifySetCurrentDesktopToChatView;
|
||
|
bool mBalloonNotify;
|
||
|
bool mBalloonNotifyIgnoreClosesChatView;
|
||
|
bool mBalloonClose;
|
||
|
int mBalloonCloseDelay;
|
||
|
bool mSoundIfAway;
|
||
|
int mRememberedMessages;
|
||
|
QString mInterfacePreference;
|
||
|
int mChatViewBufferSize;
|
||
|
QColor mHighlightBackground;
|
||
|
QColor mHighlightForeground;
|
||
|
QColor mTextColor;
|
||
|
QColor mBgColor;
|
||
|
QColor mLinkColor;
|
||
|
QFont mFontFace;
|
||
|
QColor mIdleContactColor;
|
||
|
bool mHighlightEnabled;
|
||
|
bool mBgOverride;
|
||
|
bool mFgOverride;
|
||
|
bool mRtfOverride;
|
||
|
bool mShowTray;
|
||
|
bool mWindowAppearanceChanged;
|
||
|
bool mMessageAppearanceChanged;
|
||
|
bool mContactListAppearanceChanged;
|
||
|
bool mChatWShowSend;
|
||
|
bool mAutoConnect;
|
||
|
|
||
|
int mChatWindowPolicy;
|
||
|
|
||
|
bool mTruncateContactNames;
|
||
|
int mMaxContactNameLength;
|
||
|
|
||
|
bool mRichText;
|
||
|
|
||
|
// xhtml+css
|
||
|
//for Adium (xhtml+css)
|
||
|
QString mStylePath;
|
||
|
QString mStyleVariant;
|
||
|
bool mStylePathChanged;
|
||
|
bool mStyleVariantChanged;
|
||
|
|
||
|
QStringList mToolTipContents;
|
||
|
|
||
|
bool mContactListIndentContacts;
|
||
|
ContactDisplayMode mContactListDisplayMode;
|
||
|
IconDisplayMode mContactListIconMode;
|
||
|
bool mContactListUseCustomFonts;
|
||
|
QFont mContactListNormalFont;
|
||
|
QFont mContactListSmallFont;
|
||
|
QColor mContactListGroupNameColor;
|
||
|
bool mContactListAnimation;
|
||
|
bool mContactListFading;
|
||
|
bool mContactListFolding;
|
||
|
bool mContactListAutoHide;
|
||
|
unsigned int mContactListAutoHideTimeout;
|
||
|
|
||
|
bool mReconnectOnDisconnect;
|
||
|
bool mEmoticonsRequireSpaces;
|
||
|
bool mGroupConsecutiveMessages;
|
||
|
|
||
|
QString fileContents(const QString &path);
|
||
|
void _setStylePath (const QString &);
|
||
|
};
|
||
|
#endif
|
||
|
// vim: set noet ts=4 sts=4 sw=4:
|