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.
219 lines
4.2 KiB
219 lines
4.2 KiB
|
|
#ifndef _KSOPTS_H_
|
|
#define _KSOPTS_H_
|
|
#include <qmap.h>
|
|
#include <qdict.h>
|
|
#include <qstring.h>
|
|
#include <qstringlist.h>
|
|
#include <qcolor.h>
|
|
#include <qfont.h>
|
|
#include <qrect.h>
|
|
#include <qpixmap.h>
|
|
#include <qdatetime.h>
|
|
|
|
#define IRC_SAFE_MAX_LINE 450
|
|
|
|
#include "boundscheckingarray.h"
|
|
#include "ksircchannel.h"
|
|
#include "ksircserver.h"
|
|
|
|
// Central place to hold KSirc's options
|
|
// and manage default values. The base classes
|
|
// are only used directly by the prefs dialog.
|
|
// The constructors initialize all options with default values.
|
|
class KSOGeneral
|
|
{
|
|
public:
|
|
KSOGeneral();
|
|
|
|
enum { SDI, MDI } displayMode;
|
|
bool autoCreateWin : 1;
|
|
bool autoCreateWinForNotice : 1;
|
|
bool nickCompletion : 1;
|
|
bool displayTopic : 1;
|
|
bool oneLineEntry : 1;
|
|
bool runDocked : 1;
|
|
// bool timeStamp : 1;
|
|
// bool beepNotify : 1;
|
|
bool colorPicker : 1;
|
|
bool autoRejoin : 1;
|
|
// bool beepOnMsg : 1;
|
|
// bool logging : 1;
|
|
bool publicAway : 1;
|
|
bool useColourNickList : 1;
|
|
// bool topicShow : 1;
|
|
bool dockPopups : 1;
|
|
bool autoSaveHistory : 1;
|
|
int windowLength;
|
|
QString backgroundFile;
|
|
|
|
QPixmap backgroundPixmap();
|
|
|
|
private:
|
|
QPixmap m_backgroundPixmap;
|
|
};
|
|
|
|
class KSOChannel
|
|
{
|
|
public:
|
|
KSOChannel();
|
|
|
|
QString server;
|
|
QString channel;
|
|
|
|
bool timeStamp : 1;
|
|
bool beepNotify : 1;
|
|
bool beepOnMsg : 1;
|
|
bool logging : 1;
|
|
bool topicShow : 1;
|
|
bool filterJoinPart : 1;
|
|
QString encoding;
|
|
|
|
QDateTime lastUsed;
|
|
|
|
static bool applyGlobally;
|
|
|
|
|
|
|
|
};
|
|
|
|
class KSOServer
|
|
{
|
|
public:
|
|
KSOServer();
|
|
|
|
QString server;
|
|
bool globalCopy;
|
|
|
|
QString nick;
|
|
QString altNick;
|
|
QString realName;
|
|
QString userID;
|
|
QStringList notifyList;
|
|
|
|
QDateTime lastUsed;
|
|
};
|
|
|
|
class KSOStartup
|
|
{
|
|
public:
|
|
KSOStartup();
|
|
|
|
QRect geometry;
|
|
// QString nick;
|
|
// QString altNick;
|
|
// QString realName;
|
|
// QString userID;
|
|
// QStringList notifyList;
|
|
};
|
|
|
|
class KSOColors
|
|
{
|
|
public:
|
|
enum { numColors = 16 };
|
|
|
|
KSOColors();
|
|
|
|
QColor textColor;
|
|
QColor linkColor;
|
|
QColor infoColor;
|
|
QColor channelColor;
|
|
QColor errorColor;
|
|
QColor ownNickColor;
|
|
bool ownNickBold : 1;
|
|
bool ownNickUl : 1;
|
|
bool ownNickRev : 1;
|
|
|
|
QColor msgContainNick; // needs config + impl
|
|
QColor msg1Contain; // needs config
|
|
QString msg1String; // needs config
|
|
bool msg1Regex;
|
|
QColor msg2Contain; // need config
|
|
QString msg2String; // needs config
|
|
bool msg2Regex;
|
|
|
|
QColor nickForeground;
|
|
QColor nickBackground;
|
|
QColor backgroundColor;
|
|
QColor selBackgroundColor;
|
|
QColor selForegroundColor;
|
|
//QColor ircColors[numColors];
|
|
BoundsCheckingArray<QColor, numColors> ircColors;
|
|
BoundsCheckingArray<bool, numColors> nickHighlight;
|
|
|
|
QString colourTheme;
|
|
|
|
QFont defaultFont;
|
|
bool ksircColors : 1;
|
|
bool mircColors : 1;
|
|
bool nickColourization : 1;
|
|
|
|
};
|
|
|
|
class KSORMBMenu
|
|
{
|
|
public:
|
|
KSORMBMenu();
|
|
};
|
|
|
|
class KSOServChan
|
|
{
|
|
public:
|
|
KSOServChan();
|
|
};
|
|
|
|
typedef QMap<QString, KSOChannel> ChannelOpMap;
|
|
typedef QMap<QString, ChannelOpMap> ServerChannelOpMap;
|
|
typedef QMap<QString, KSOServer> ServerOpMap;
|
|
|
|
class KSOptions
|
|
: public KSOGeneral,
|
|
public KSOStartup,
|
|
public KSOColors,
|
|
public KSORMBMenu,
|
|
public KSOServChan
|
|
{
|
|
public:
|
|
KSOptions() { s_options = this; }
|
|
|
|
void load( int sections = -1 );
|
|
void save( int sections = -1 );
|
|
|
|
static KSOptions *options() { return s_options; }
|
|
|
|
ServerChannelOpMap channel;
|
|
ServerOpMap server;
|
|
|
|
KSOChannel &chan( const KSircChannel &chanInfo )
|
|
{
|
|
return channel[chanInfo.server()][chanInfo.channel()];
|
|
}
|
|
|
|
KSOServer &serv( const KSircServer &servInfo )
|
|
{
|
|
return server[servInfo.server()];
|
|
}
|
|
|
|
void channelSetup(QString serv, QString chan);
|
|
void applyChannelGlobal(void);
|
|
|
|
void serverSetup(QString server);
|
|
void serverSetup( const KSircServer &servInfo )
|
|
{
|
|
serverSetup(servInfo.server());
|
|
}
|
|
|
|
enum {
|
|
All = -1, General = 1, Startup = 2,
|
|
Colors = 4, RMBMenu = 8, ServChan = 16,
|
|
Channels = 32, Servers = 64
|
|
};
|
|
|
|
private:
|
|
static KSOptions *s_options;
|
|
};
|
|
|
|
#define ksopts (KSOptions::options())
|
|
|
|
#endif
|