2009-08-22 08:24:06 +00:00
|
|
|
#ifndef nitrogenexception_h
|
|
|
|
#define nitrogenexception_h
|
|
|
|
|
2009-08-24 16:12:50 +00:00
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
// nitrogenexception.h
|
|
|
|
// -------------------
|
|
|
|
//
|
2009-08-25 04:15:13 +00:00
|
|
|
// Copyright (c) 2009 Hugo Pereira Da Costa <hugo.pereira@free.fr>
|
2009-08-24 16:12:50 +00:00
|
|
|
//
|
|
|
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
|
|
// of this software and associated documentation files (the "Software"), to
|
|
|
|
// deal in the Software without restriction, including without limitation the
|
|
|
|
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
|
|
// sell copies of the Software, and to permit persons to whom the Software is
|
|
|
|
// furnished to do so, subject to the following conditions:
|
|
|
|
//
|
|
|
|
// The above copyright notice and this permission notice shall be included in
|
|
|
|
// all copies or substantial portions of the Software.
|
|
|
|
//
|
|
|
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
|
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
|
|
|
// IN THE SOFTWARE.
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
2009-08-22 08:24:06 +00:00
|
|
|
|
|
|
|
#include <QRegExp>
|
|
|
|
#include "nitrogenconfiguration.h"
|
|
|
|
|
|
|
|
|
|
|
|
namespace NitrogenConfig
|
|
|
|
{
|
|
|
|
|
|
|
|
//! needed for exceptions
|
|
|
|
static const QString TYPE = "Type";
|
|
|
|
static const QString PATTERN = "Pattern";
|
|
|
|
static const QString ENABLED = "Enabled";
|
|
|
|
static const QString MASK = "Mask";
|
|
|
|
|
2009-08-24 06:23:44 +00:00
|
|
|
}
|
2009-08-22 08:24:06 +00:00
|
|
|
|
|
|
|
namespace Nitrogen
|
|
|
|
{
|
|
|
|
|
|
|
|
//! nitrogen exception
|
|
|
|
class NitrogenException: public NitrogenConfiguration
|
|
|
|
{
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
//! exception type
|
|
|
|
enum Type
|
|
|
|
{
|
|
|
|
WindowTitle,
|
|
|
|
WindowClassName
|
|
|
|
};
|
|
|
|
|
|
|
|
//! mask
|
|
|
|
enum AttributesMask
|
|
|
|
{
|
|
|
|
None = 0,
|
|
|
|
TitleAlignment = 1<<0,
|
|
|
|
ShowStripes = 1<<1,
|
|
|
|
DrawSeparator = 1<<2,
|
|
|
|
OverwriteColors = 1<<3,
|
|
|
|
FrameBorder = 1<<4,
|
|
|
|
BlendColor = 1<<5,
|
2009-09-02 02:15:53 +00:00
|
|
|
SizeGripMode = 1<<6,
|
|
|
|
All = TitleAlignment|ShowStripes|DrawSeparator|OverwriteColors|FrameBorder|BlendColor|SizeGripMode
|
2009-08-22 08:24:06 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
//! constructor
|
|
|
|
NitrogenException( NitrogenConfiguration configuration = NitrogenConfiguration() ):
|
|
|
|
NitrogenConfiguration( configuration ),
|
|
|
|
enabled_( true ),
|
|
|
|
type_( WindowClassName ),
|
|
|
|
mask_( None )
|
|
|
|
{}
|
|
|
|
|
|
|
|
//! constructor
|
|
|
|
NitrogenException( KConfigGroup );
|
|
|
|
|
|
|
|
//! destructor
|
|
|
|
virtual ~NitrogenException( void )
|
|
|
|
{}
|
|
|
|
|
|
|
|
//! equal to operator
|
|
|
|
bool operator == (const NitrogenException& exception ) const
|
|
|
|
{
|
|
|
|
return
|
|
|
|
enabled() == exception.enabled() &&
|
|
|
|
type() == exception.type() &&
|
|
|
|
regExp().pattern() == exception.regExp().pattern() &&
|
|
|
|
mask() == exception.mask() &&
|
|
|
|
NitrogenConfiguration::operator == ( exception );
|
|
|
|
}
|
|
|
|
|
|
|
|
//! less than operator
|
|
|
|
bool operator < (const NitrogenException& exception ) const
|
|
|
|
{
|
|
|
|
if( enabled() != exception.enabled() ) return enabled() < exception.enabled();
|
|
|
|
else if( mask() != exception.mask() ) return mask() < exception.mask();
|
|
|
|
else if( type() != exception.type() ) return type() < exception.type();
|
|
|
|
else return regExp().pattern() < exception.regExp().pattern();
|
|
|
|
}
|
|
|
|
|
|
|
|
//! write to kconfig group
|
|
|
|
virtual void write( KConfigGroup& ) const;
|
|
|
|
|
|
|
|
//!@name enability
|
|
|
|
//@{
|
|
|
|
|
|
|
|
bool enabled( void ) const
|
|
|
|
{ return enabled_; }
|
|
|
|
|
|
|
|
void setEnabled( bool enabled )
|
|
|
|
{ enabled_ = enabled; }
|
|
|
|
|
|
|
|
//@}
|
|
|
|
|
|
|
|
//!@name exception type
|
|
|
|
//@{
|
|
|
|
|
|
|
|
static QString typeName( Type );
|
2009-08-24 11:31:11 +00:00
|
|
|
static Type type( const QString& name );
|
2009-08-22 08:24:06 +00:00
|
|
|
|
|
|
|
virtual QString typeName( void ) const
|
|
|
|
{ return typeName( type() ); }
|
|
|
|
|
|
|
|
virtual Type type( void ) const
|
|
|
|
{ return type_; }
|
|
|
|
|
|
|
|
virtual void setType( Type value )
|
|
|
|
{ type_ = value; }
|
|
|
|
|
|
|
|
//@}
|
|
|
|
|
|
|
|
//!@name regular expression
|
|
|
|
//@{
|
|
|
|
|
|
|
|
virtual QRegExp regExp( void ) const
|
|
|
|
{ return reg_exp_; }
|
|
|
|
|
|
|
|
virtual QRegExp& regExp( void )
|
|
|
|
{ return reg_exp_; }
|
|
|
|
|
|
|
|
//@}
|
|
|
|
|
|
|
|
|
|
|
|
//! mask
|
|
|
|
//!@{
|
|
|
|
|
|
|
|
unsigned int mask( void ) const
|
|
|
|
{ return mask_; }
|
|
|
|
|
|
|
|
void setMask( unsigned int mask )
|
|
|
|
{ mask_ = mask; }
|
|
|
|
|
|
|
|
//@}
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
//! enability
|
|
|
|
bool enabled_;
|
|
|
|
|
|
|
|
//! exception type
|
|
|
|
Type type_;
|
|
|
|
|
|
|
|
//! regular expression to match window caption
|
|
|
|
QRegExp reg_exp_;
|
|
|
|
|
|
|
|
//! attributes mask
|
|
|
|
unsigned int mask_;
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-08-24 06:23:44 +00:00
|
|
|
}
|
2009-08-22 08:24:06 +00:00
|
|
|
|
|
|
|
#endif
|