/***************************************************************************
* Copyright ( C ) 2004 by Thomas L ü bking *
* thomas @ home *
* *
* This program is free software ; you can redistribute it and / or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation ; either version 2 of the License , or *
* ( at your option ) any later version . *
* *
* This program is distributed in the hope that it will be useful , *
* but WITHOUT ANY WARRANTY ; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the *
* GNU General Public License for more details . *
* *
* You should have received a copy of the GNU General Public License *
* along with this program ; if not , write to the *
* Free Software Foundation , Inc . , *
* 59 Temple Place - Suite 330 , Boston , MA 02111 - 1307 , USA . *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
# ifdef HAVE_CONFIG_H
# include "config.h"
# endif
# include <tqdesktopwidget.h>
# include <tqlayout.h>
# include <tqpushbutton.h>
# include <tqcombobox.h>
# include <tqcheckbox.h>
# include <tqdir.h>
# include <tqfile.h>
# include <tqfileinfo.h>
# include <tqgroupbox.h>
# include <tdefiledialog.h>
# include <tqpainter.h>
//#include <tqpalette.h>
// #include <tqsettings.h>
# include <tqslider.h>
# include <tqspinbox.h>
# include <tqstringlist.h>
# include <tqlabel.h>
# include <tqlineedit.h>
# include <tqpixmap.h>
# include <tdelistview.h>
# include <tqtabwidget.h>
# include <tqtimer.h>
# include <dcopclient.h>
# include <tdeapplication.h>
# include <kcolorbutton.h>
# include <tdeconfig.h>
# include <kimageeffect.h>
# include <tdelocale.h>
# include <tdemessagebox.h>
# include <tdeglobal.h>
# include <tdeglobalsettings.h>
# include <kprocess.h>
# include <tdeparts/genericfactory.h>
# include <kstandarddirs.h>
# include <X11/Xlib.h>
# include <X11/Xatom.h>
# include <X11/Xutil.h>
# include <fixx11h.h>
# include "tdestyle_baghira_config.h"
# include "pixmaps.h"
# include "colordialog.h"
# include "colorpicker.h"
//#define VERSION "0.7"
# ifndef TDE_VERSION_STRING
# define TDE_VERSION_STRING "error"
# endif
# ifndef TQT_BUILD_KEY
# define TQT_BUILD_KEY "error error error error"
# endif
# define CLAMP(x,l,u) x < l ? l :\
x > u ? u : \
x
# define SATURATION_COLOR(R,G,B) \
grey = ( 299 * R + 587 * G + 114 * B ) / 1000 ; \
delta = 255 - grey ; \
grey = ( grey * ( 10 - 5 ) ) / 10 ; \
iGrey = 255 - grey ; \
destR = ( iGrey * ( srcR - delta ) + grey * R ) / 255 ; \
destG = ( iGrey * ( srcG - delta ) + grey * G ) / 255 ; \
destB = ( iGrey * ( srcB - delta ) + grey * B ) / 255 ;
# define SATURATION_COLOR2(S,R,G,B) \
int max = ( int ) ( 255 + 0.65 * ( 100 - S ) ) ; \
destR = CLAMP ( ( srcR + R - 128 ) , 0 , max ) ; \
destG = CLAMP ( ( srcG + G - 128 ) , 0 , max ) ; \
destB = CLAMP ( ( srcB + B - 128 ) , 0 , max ) ; \
destR = ( S * destR + ( 100 - S ) * R ) / 100 ; \
destG = ( S * destG + ( 100 - S ) * G ) / 100 ; \
destB = ( S * destB + ( 100 - S ) * B ) / 100 ;
# define COLOR_SPACE(R,G,B) \
if ( R < 0 ) R = 0 ; else if ( R > 255 ) R = 255 ; \
if ( G < 0 ) G = 0 ; else if ( G > 255 ) G = 255 ; \
if ( B < 0 ) B = 0 ; else if ( B > 255 ) B = 255 ;
void tdestyle_baghira_config : : openHtml1 ( )
{
TQStringList args ;
args < < " exec " < < " http://baghira.sf.net/ " ;
kapp - > tdeinitExec ( " kfmclient " , args ) ;
}
void tdestyle_baghira_config : : openHtml2 ( )
{
TQStringList args ;
args < < " exec " < < " http://www.sf.net/projects/baghira/files/ " ;
kapp - > tdeinitExec ( " kfmclient " , args ) ;
}
void tdestyle_baghira_config : : startBab ( )
{
kapp - > tdeinitExec ( " bab " ) ;
}
void tdestyle_baghira_config : : startKRuler ( )
{
kapp - > tdeinitExec ( " kruler " ) ;
}
TQImage * tdestyle_baghira_config : : tintButton ( TQImage & src , TQColor c )
{
TQImage * dest = new TQImage ( src . width ( ) , src . height ( ) , 32 , 0 ) ;
dest - > setAlphaBuffer ( true ) ;
unsigned int * data = ( unsigned int * ) src . bits ( ) ;
unsigned int * destData = ( unsigned int * ) dest - > bits ( ) ;
int total = src . width ( ) * src . height ( ) ;
int red , green , blue ;
int destR , destG , destB , alpha ;
int srcR = c . red ( ) ;
int srcG = c . green ( ) ;
int srcB = c . blue ( ) ;
int hue , s , v ;
c . getHsv ( & hue , & s , & v ) ;
int sq = CLAMP ( ( int ) ( ( 45.0 / 128.0 ) * s + 55 ) , 0 , 100 ) ;
// float srcPercent, destPercent;
for ( int current = 0 ; current < total ; + + current ) {
alpha = tqAlpha ( data [ current ] ) ;
blue = tqBlue ( data [ current ] ) ;
red = tqRed ( data [ current ] ) ;
green = tqGreen ( data [ current ] ) ;
SATURATION_COLOR2 ( sq , red , green , blue ) ;
// force back to valid colorspace !
COLOR_SPACE ( destR , destG , destB ) ;
destData [ current ] = tqRgba ( destR , destG , destB , alpha ) ;
}
return ( dest ) ;
}
TQImage * tdestyle_baghira_config : : tintBrush ( TQImage & img , TQColor c )
{
TQImage * dest = new TQImage ( img . width ( ) , img . height ( ) , 32 , 0 ) ;
unsigned int * data = ( unsigned int * ) img . bits ( ) ;
unsigned int * destData = ( unsigned int * ) dest - > bits ( ) ;
int total = img . width ( ) * img . height ( ) ;
int current ;
int delta ;
int red , green , blue , grey , iGrey ;
int destR , destG , destB , alpha ;
int srcR = c . red ( ) ;
int srcG = c . green ( ) ;
int srcB = c . blue ( ) ;
// float srcPercent, destPercent;
for ( current = 0 ; current < total ; + + current ) {
alpha = tqAlpha ( data [ current ] ) ;
blue = tqBlue ( data [ current ] ) ;
red = tqRed ( data [ current ] ) ;
green = tqGreen ( data [ current ] ) ;
SATURATION_COLOR ( red , green , blue ) ;
// force back to valid colorspace !
COLOR_SPACE ( destR , destG , destB ) ;
destData [ current ] = tqRgba ( destR , destG , destB , alpha ) ;
}
return ( dest ) ;
}
void tdestyle_baghira_config : : sliderButtonRedChanged ( int value )
{
sliderButtonRedValue = value ;
dialog_ - > valueButtonRed - > setNum ( value ) ;
dialog_ - > pixmapButtonPreview - > setPixmap ( * tintButton ( baseImage , TQColor ( sliderButtonRedValue , sliderButtonGreenValue , sliderButtonBlueValue ) ) ) ;
dialog_ - > pixmapButtonPreview - > repaint ( false ) ;
configChanged ( ) ;
}
void tdestyle_baghira_config : : sliderButtonGreenChanged ( int value )
{
sliderButtonGreenValue = value ;
dialog_ - > valueButtonGreen - > setNum ( value ) ;
dialog_ - > pixmapButtonPreview - > setPixmap ( * tintButton ( baseImage , TQColor ( sliderButtonRedValue , sliderButtonGreenValue , sliderButtonBlueValue ) ) ) ;
dialog_ - > pixmapButtonPreview - > repaint ( false ) ;
configChanged ( ) ;
}
void tdestyle_baghira_config : : sliderButtonBlueChanged ( int value )
{
sliderButtonBlueValue = value ;
dialog_ - > valueButtonBlue - > setNum ( value ) ;
dialog_ - > pixmapButtonPreview - > setPixmap ( * tintButton ( baseImage , TQColor ( sliderButtonRedValue , sliderButtonGreenValue , sliderButtonBlueValue ) ) ) ;
dialog_ - > pixmapButtonPreview - > repaint ( false ) ;
configChanged ( ) ;
}
void tdestyle_baghira_config : : sliderBrushRedChanged ( int value )
{
sliderBrushRedValue = value ;
dialog_ - > pixmapBrushPreview - > setPixmap ( * tintBrush ( baseImage2 , TQColor ( sliderBrushRedValue , sliderBrushGreenValue , sliderBrushBlueValue ) ) ) ;
dialog_ - > pixmapBrushPreview - > repaint ( false ) ;
configChanged ( ) ;
}
void tdestyle_baghira_config : : sliderBrushGreenChanged ( int value )
{
sliderBrushGreenValue = value ;
dialog_ - > pixmapBrushPreview - > setPixmap ( * tintBrush ( baseImage2 , TQColor ( sliderBrushRedValue , sliderBrushGreenValue , sliderBrushBlueValue ) ) ) ;
dialog_ - > pixmapBrushPreview - > repaint ( false ) ;
configChanged ( ) ;
}
void tdestyle_baghira_config : : sliderBrushBlueChanged ( int value )
{
sliderBrushBlueValue = value ;
dialog_ - > pixmapBrushPreview - > setPixmap ( * tintBrush ( baseImage2 , TQColor ( sliderBrushRedValue , sliderBrushGreenValue , sliderBrushBlueValue ) ) ) ;
dialog_ - > pixmapBrushPreview - > repaint ( false ) ;
configChanged ( ) ;
}
// void tdestyle_baghira_config::sliderBrushSaturationChanged(int value)
// {
// sliderBrushSaturationValue = value;
// dialog_->pixmapBrushPreview->setPixmap(*tintBrush(baseImage2, TQColor(sliderBrushRedValue, sliderBrushGreenValue, sliderBrushBlueValue), sliderBrushSaturationValue));
// dialog_->pixmapBrushPreview->repaint(false);
// emit changed(true);
// }
// button color preset table - internal only, AND DON'T CHANGE ONLY ONE!
enum ColorPreset { Aqua = 0 , Graphite , GraphiteDark , Orange , Lime , Black , Smoke , Girlie , Smaragd , Emerald , Yellow , DeepBlueSea , Blood , Turquoise , Lilac , NUMBEROFCOLORS } ;
const char * presetColorName [ NUMBEROFCOLORS ] = {
" Aqua " , " Graphite " , " Graphite (Dark) " , " Orange " , " Lime " , " Black " , " Smoke " , " Girlie " , " Smaragd " , " Emerald " , " Yellow " , " Deep Blue Sea " , " Blood " , " Turquoise " , " Lilac "
} ;
int presetColor [ NUMBEROFCOLORS ] [ 3 ] = { { 84 , 144 , 218 } , { 130 , 170 , 190 } , { 103 , 118 , 134 } , { 200 , 130 , 30 } , { 130 , 180 , 80 } , { 0 , 0 , 0 } , { 106 , 110 , 120 } , { 255 , 130 , 200 } , { 100 , 160 , 75 } , { 255 , 100 , 90 } , { 160 , 160 , 70 } , { 50 , 100 , 200 } , { 150 , 25 , 25 } , { 60 , 170 , 190 } , { 150 , 130 , 220 } } ;
// --------------------------------
typedef KGenericFactory < tdestyle_baghira_config , TQWidget > tdestyle_baghira_configFactory ;
K_EXPORT_COMPONENT_FACTORY ( tdecm_tdestyle_baghira_config , tdestyle_baghira_configFactory ( " tdestyle_baghira_config " ) )
//extern TQImage uic_findImage(const TQString& name);
//extern void qInitImages_baghira();
//extern void qCleanupImages_baghira();
void tdestyle_baghira_config : : updateCR ( )
{
if ( ! about_ - > isShown ( ) )
{
timer - > stop ( ) ;
return ;
}
if ( crCurrent < 2 )
crCurrent + + ;
else
crCurrent = 0 ;
about_ - > crLabel - > setText ( crNotes [ crCurrent ] ) ;
}
void tdestyle_baghira_config : : showAbout ( )
{
crCurrent = 0 ;
about_ - > crLabel - > setText ( crNotes [ 0 ] ) ;
timer - > start ( 4000 ) ;
about_ - > exec ( ) ;
}
tdestyle_baghira_config : : tdestyle_baghira_config ( TQWidget * parent , const char * name , const TQStringList & ) : TQWidget ( parent , name ) //, myAboutData(0)
{
loadDone = false ;
if ( parent ) parent - > setCaption ( " Configure Your Cat " ) ;
TQVBoxLayout * layout = new TQVBoxLayout ( this ) ;
dialog_ = new Config ( this ) ;
for ( int i = 0 ; i < NUMBEROFCOLORS ; i + + )
dialog_ - > colorPresets - > insertItem ( presetColorName [ i ] , i ) ;
TQWidget * rulesWidget = new TQWidget ( dialog_ - > tabWidget ) ;
TQHBoxLayout * rwlh = new TQHBoxLayout ( rulesWidget ) ;
applist = new TDEListView ( rulesWidget ) ;
applist - > setFullWidth ( true ) ;
# if KDE_IS_VERSION(3,3,91)
applist - > setShadeSortColumn ( false ) ;
# endif
applist - > setAllColumnsShowFocus ( true ) ;
applist - > setSelectionMode ( TQListView : : Single ) ;
applist - > addColumn ( i18n ( " Name " ) ) ;
applist - > addColumn ( i18n ( " Links to " ) ) ;
TQDir d ( TQDir : : homeDirPath ( ) + " /.baghira " , 0L , TQDir : : Name | TQDir : : IgnoreCase , TQDir : : Files | TQDir : : Readable | TQDir : : Writable ) ;
if ( ! d . exists ( ) )
d . mkdir ( TQDir : : homeDirPath ( ) + " /.baghira " ) ;
else
{
for ( uint i = 0 ; i < d . count ( ) ; i + + )
{
TQFileInfo FI = TQFileInfo ( d , d [ i ] ) ;
if ( FI . isSymLink ( ) )
applist - > insertItem ( new TDEListViewItem ( applist , d [ i ] , FI . readLink ( ) . section ( ' / ' , - 1 , - 1 ) ) ) ;
else
applist - > insertItem ( new TDEListViewItem ( applist , d [ i ] ) ) ;
}
}
rwlh - > addWidget ( applist ) ;
// rwlh->addLayout(rwlv);
TQVBoxLayout * rwlv = new TQVBoxLayout ( rwlh ) ;
rwlv - > addStretch ( ) ;
TQPushButton * btnNew = new TQPushButton ( " New... " , rulesWidget ) ;
TQPushButton * btnEdit = new TQPushButton ( " Edit... " , rulesWidget ) ;
TQPushButton * btnDel = new TQPushButton ( " Remove " , rulesWidget ) ;
TQPushButton * btnDet = new TQPushButton ( " Detect " , rulesWidget ) ;
rwlv - > addWidget ( btnNew ) ;
rwlv - > addWidget ( btnEdit ) ;
rwlv - > addWidget ( btnDel ) ;
rwlv - > addSpacing ( 5 ) ;
rwlv - > addWidget ( btnDet ) ;
rwlv - > addStretch ( ) ;
dialog_ - > tabWidget - > addTab ( rulesWidget , TQString ( " Rules " ) ) ;
appsetter = new AppSetter ( this ) ;
connect ( btnNew , SIGNAL ( clicked ( ) ) , appsetter , SLOT ( show ( ) ) ) ;
connect ( btnEdit , SIGNAL ( clicked ( ) ) , this , SLOT ( editApp ( ) ) ) ;
connect ( this , SIGNAL ( editApp ( TQString , TQString ) ) , appsetter , SLOT ( show ( TQString , TQString ) ) ) ;
connect ( btnDel , SIGNAL ( clicked ( ) ) , this , SLOT ( removeApp ( ) ) ) ;
connect ( btnDet , SIGNAL ( clicked ( ) ) , this , SLOT ( selectWindow ( ) ) ) ;
connect ( appsetter , SIGNAL ( addApp ( TQString , TQString ) ) , this , SLOT ( addApp ( TQString , TQString ) ) ) ;
connect ( appsetter , SIGNAL ( removeApp ( TQString ) ) , this , SLOT ( removeApp ( TQString ) ) ) ;
// preview stuff
baseImage = uic_findImage ( " button-base " ) ;
layout - > addWidget ( dialog_ ) ;
dialog_ - > show ( ) ;
help_ = new Help ( dialog_ ) ;
about_ = new About ( dialog_ ) ;
about_ - > versionLabel - > setText ( VERSION ) ;
about_ - > kdeLabel - > setText ( TDE_VERSION_STRING ) ;
crCurrent = 0 ;
crNotes [ 0 ] = " <qt>© 2003-2005 by Thomas Lübking<br>http://baghira.SourceForge.net</qt> " ;
crNotes [ 1 ] = " <qt>© \" Design \" 2001-2005 by Apple inc.<br>http://www.apple.com " ;
crNotes [ 2 ] = " <qt>© \" Milk \" 2002-2005 by Max Rudberg<br>http://www.maxthemes.com</qt> " ;
timer = new TQTimer ( ) ;
connect ( timer , SIGNAL ( timeout ( ) ) , this , SLOT ( updateCR ( ) ) ) ;
TQString tmpString ( TQT_BUILD_KEY ) ;
about_ - > systemLabel - > setText ( tmpString . section ( ' ' , 1 , 1 ) ) ;
about_ - > cpuLabel - > setText ( tmpString . section ( ' ' , 0 , 0 ) ) ;
about_ - > setFixedSize ( 380 , 430 ) ;
// connections
// buttons
connect ( dialog_ - > buttonHelp , SIGNAL ( clicked ( ) ) , help_ , SLOT ( exec ( ) ) ) ;
connect ( dialog_ - > buttonAbout , SIGNAL ( clicked ( ) ) , this , SLOT ( showAbout ( ) ) ) ;
connect ( about_ - > buttonInfo , SIGNAL ( clicked ( ) ) , this , SLOT ( openHtml1 ( ) ) ) ;
connect ( about_ - > buttonDownload , SIGNAL ( clicked ( ) ) , this , SLOT ( openHtml2 ( ) ) ) ;
connect ( help_ - > startBAB , SIGNAL ( clicked ( ) ) , this , SLOT ( startBab ( ) ) ) ;
connect ( dialog_ - > startKRuler , SIGNAL ( clicked ( ) ) , this , SLOT ( startKRuler ( ) ) ) ;
connect ( dialog_ - > buttonLoad , SIGNAL ( clicked ( ) ) , this , SLOT ( buttonLoadAction ( ) ) ) ;
connect ( dialog_ - > buttonSaveAs , SIGNAL ( clicked ( ) ) , this , SLOT ( buttonSaveAsAction ( ) ) ) ;
connect ( dialog_ - > colorPresets , SIGNAL ( activated ( int ) ) , this , SLOT ( setPresetColor ( int ) ) ) ;
// changes
connect ( dialog_ - > defaultStyle , SIGNAL ( activated ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > buttonStyle , SIGNAL ( activated ( int ) ) , this , SLOT ( handleButtonStyles ( int ) ) ) ;
connect ( dialog_ - > toolbuttonStyle , SIGNAL ( activated ( int ) ) , this , SLOT ( handleButtonStyles ( int ) ) ) ;
connect ( dialog_ - > animateButtons , SIGNAL ( stateChanged ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > stippleBackground , SIGNAL ( stateChanged ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > bevelHighlights , SIGNAL ( stateChanged ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > stippleContrast , SIGNAL ( valueChanged ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > shadowGroups , SIGNAL ( stateChanged ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > shadowIntensity , SIGNAL ( valueChanged ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > centerTabs , SIGNAL ( stateChanged ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > colorMode , SIGNAL ( activated ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > inactiveColorType , SIGNAL ( activated ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > animateSlider , SIGNAL ( stateChanged ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > shadowSlider , SIGNAL ( stateChanged ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > squeezeSlider , SIGNAL ( stateChanged ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > unhoveredToolButtons , SIGNAL ( activated ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > aquaTabs , SIGNAL ( activated ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > brushedTabs , SIGNAL ( activated ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > drawTreeLines , SIGNAL ( stateChanged ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > useCustomExpanderColor , SIGNAL ( stateChanged ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > treeLineMode , SIGNAL ( activated ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > expanderMode , SIGNAL ( activated ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > useCustomExpanderColor , SIGNAL ( stateChanged ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > useRectLVH , SIGNAL ( stateChanged ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > removeKickerBevel , SIGNAL ( stateChanged ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > replaceMenubar , SIGNAL ( toggled ( bool ) ) , this , SLOT ( menuToggled ( bool ) ) ) ;
connect ( dialog_ - > roundTasks , SIGNAL ( stateChanged ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > showProgressValue , SIGNAL ( stateChanged ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > progressType , SIGNAL ( activated ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > menuBackground , SIGNAL ( activated ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > menuOpacity , SIGNAL ( valueChanged ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > shadowMenuText , SIGNAL ( stateChanged ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > menuColorMode , SIGNAL ( activated ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > useCustomColors , SIGNAL ( stateChanged ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > drawMenuStripe , SIGNAL ( stateChanged ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > glossyMenus , SIGNAL ( stateChanged ( int ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > customInactiveColor , SIGNAL ( changed ( const TQColor & ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > toolbuttonHighColor , SIGNAL ( changed ( const TQColor & ) ) , this , SLOT ( changeTooluttonHighlightColor ( const TQColor & ) ) ) ;
connect ( dialog_ - > treeLineColor , SIGNAL ( changed ( const TQColor & ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > customExpanderColor , SIGNAL ( changed ( const TQColor & ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > menuTextColor , SIGNAL ( changed ( const TQColor & ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > menuTextColorHigh , SIGNAL ( changed ( const TQColor & ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > menuColor , SIGNAL ( changed ( const TQColor & ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > menuColorHigh , SIGNAL ( changed ( const TQColor & ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > menuColor2 , SIGNAL ( changed ( const TQColor & ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > radioOffColor , SIGNAL ( changed ( const TQColor & ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > radioOnColor , SIGNAL ( changed ( const TQColor & ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > checkOffColor , SIGNAL ( changed ( const TQColor & ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > checkOnColor , SIGNAL ( changed ( const TQColor & ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > sliderColor , SIGNAL ( changed ( const TQColor & ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > hoverSliderColorColor , SIGNAL ( changed ( const TQColor & ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > pressedSliderColor , SIGNAL ( changed ( const TQColor & ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > inactiveTabColor , SIGNAL ( changed ( const TQColor & ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > activeTabColor , SIGNAL ( changed ( const TQColor & ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > menuStripeColor , SIGNAL ( changed ( const TQColor & ) ) , this , SLOT ( configChanged ( ) ) ) ;
connect ( dialog_ - > sliderButtonRed , SIGNAL ( valueChanged ( int ) ) , this , SLOT ( sliderButtonRedChanged ( int ) ) ) ;
connect ( dialog_ - > sliderButtonGreen , SIGNAL ( valueChanged ( int ) ) , this , SLOT ( sliderButtonGreenChanged ( int ) ) ) ;
connect ( dialog_ - > sliderButtonBlue , SIGNAL ( valueChanged ( int ) ) , this , SLOT ( sliderButtonBlueChanged ( int ) ) ) ;
connect ( dialog_ - > sliderBrushRed , SIGNAL ( valueChanged ( int ) ) , this , SLOT ( sliderBrushRedChanged ( int ) ) ) ;
connect ( dialog_ - > sliderBrushGreen , SIGNAL ( valueChanged ( int ) ) , this , SLOT ( sliderBrushGreenChanged ( int ) ) ) ;
connect ( dialog_ - > sliderBrushBlue , SIGNAL ( valueChanged ( int ) ) , this , SLOT ( sliderBrushBlueChanged ( int ) ) ) ;
// GUI
connect ( dialog_ - > defaultStyle , SIGNAL ( activated ( int ) ) , this , SLOT ( setDesign ( int ) ) ) ;
connect ( dialog_ - > inactiveColorType , SIGNAL ( activated ( int ) ) , this , SLOT ( enableInButtonColor ( int ) ) ) ;
connect ( dialog_ - > drawTreeLines , SIGNAL ( toggled ( bool ) ) , dialog_ - > treeLineMode , SLOT ( setEnabled ( bool ) ) ) ;
connect ( dialog_ - > drawTreeLines , SIGNAL ( toggled ( bool ) ) , dialog_ - > treeLineColor , SLOT ( setEnabled ( bool ) ) ) ;
connect ( dialog_ - > useCustomExpanderColor , SIGNAL ( toggled ( bool ) ) , dialog_ - > customExpanderColor , SLOT ( setEnabled ( bool ) ) ) ;
connect ( dialog_ - > menuColorMode , SIGNAL ( activated ( int ) ) , this , SLOT ( enableMenuColorStuff ( int ) ) ) ;
connect ( dialog_ - > menuBackground , SIGNAL ( activated ( int ) ) , this , SLOT ( enableMenuColorStuff ( int ) ) ) ;
connect ( dialog_ - > drawMenuStripe , SIGNAL ( toggled ( bool ) ) , dialog_ - > menuStripeColor , SLOT ( setEnabled ( bool ) ) ) ;
// connect (dialog_->tintBrush, SIGNAL(toggled(bool)), dialog_->brushBox, SLOT(setEnabled(bool)));
connect ( dialog_ - > useCustomColors , SIGNAL ( toggled ( bool ) ) , dialog_ - > colorFrame , SLOT ( setEnabled ( bool ) ) ) ;
// load settings
load ( ) ;
loadDone = true ;
dialog_ - > pixmapButtonPreview - > setPixmap ( * tintButton ( baseImage , TQColor ( sliderButtonRedValue , sliderButtonGreenValue , sliderButtonBlueValue ) ) ) ;
} ;
tdestyle_baghira_config : : ~ tdestyle_baghira_config ( )
{
if ( timer ) delete timer ;
}
void tdestyle_baghira_config : : setPresetColor ( int i )
{
dialog_ - > sliderButtonRed - > setValue ( presetColor [ i ] [ 0 ] ) ;
dialog_ - > sliderButtonGreen - > setValue ( presetColor [ i ] [ 1 ] ) ;
dialog_ - > sliderButtonBlue - > setValue ( presetColor [ i ] [ 2 ] ) ;
}
void tdestyle_baghira_config : : load ( )
{
TQString tmpString = TQDir : : homeDirPath ( ) + " /.qt/baghirarc " ;
load ( tmpString ) ;
}
void tdestyle_baghira_config : : load ( TQString & fileName )
{
TDEConfig * config = new TDEConfig ( fileName ) ;
// TQSettings config;
config - > setGroup ( " BAB " ) ;
// general Design
dialog_ - > defaultStyle - > setCurrentItem ( config - > readNumEntry ( " defaultState " , 0 ) ) ;
// config->endGroup();
config - > setGroup ( " Style " ) ;
dialog_ - > buttonStyle - > setCurrentItem ( config - > readNumEntry ( " Special_ButtonStyle " , 1 ) ) ;
dialog_ - > toolbuttonStyle - > setCurrentItem ( config - > readNumEntry ( " Special_ToolbuttonStyle " , 1 ) ) ;
dialog_ - > stippleBackground - > setChecked ( config - > readBoolEntry ( " Design_StippleBackground " , true ) ) ;
dialog_ - > animateButtons - > setChecked ( config - > readBoolEntry ( " Design_AnimateButtons " , true ) ) ;
dialog_ - > stippleContrast - > setValue ( config - > readNumEntry ( " Design_StippleContrast " , 3 ) ) ;
dialog_ - > shadowGroups - > setChecked ( config - > readBoolEntry ( " Design_ShadowGroupBoxes " , true ) ) ;
dialog_ - > shadowIntensity - > setValue ( config - > readNumEntry ( " Design_GroupBoxeShadowDarkness " , 6 ) ) ;
dialog_ - > bevelHighlights - > setChecked ( config - > readBoolEntry ( " Design_BevelAsHighlight " , true ) ) ;
dialog_ - > colorMode - > setCurrentItem ( config - > readNumEntry ( " Design_ButtonStyle " , 0 ) ) ;
dialog_ - > inactiveColorType - > setCurrentItem ( config - > readNumEntry ( " Design_InactiveButtonStyle " , 1 ) ) ;
dialog_ - > customInactiveColor - > setColor ( TQColor ( config - > readNumEntry ( " Design_InactiveButtonColor " , ( int ) colorGroup ( ) . background ( ) . rgb ( ) ) ) ) ;
dialog_ - > centerTabs - > setChecked ( config - > readBoolEntry ( " Design_CenterTabs " , true ) ) ;
// button color stuff
TQColor tmpColor = TQColor ( config - > readNumEntry ( " Design_ButtonColor " , ( int ) colorGroup ( ) . button ( ) . rgb ( ) ) ) ;
dialog_ - > sliderButtonRed - > setValue ( sliderButtonRedValue = tmpColor . red ( ) ) ;
dialog_ - > sliderButtonGreen - > setValue ( sliderButtonGreenValue = tmpColor . green ( ) ) ;
dialog_ - > sliderButtonBlue - > setValue ( sliderButtonBlueValue = tmpColor . blue ( ) ) ;
dialog_ - > valueButtonRed - > setNum ( sliderButtonRedValue ) ;
dialog_ - > valueButtonGreen - > setNum ( sliderButtonGreenValue ) ;
dialog_ - > valueButtonBlue - > setNum ( sliderButtonBlueValue ) ;
// special Widgets
//ListViews
dialog_ - > useRectLVH - > setChecked ( config - > readBoolEntry ( " Special_UseFlatLVH " , false ) ) ;
dialog_ - > drawTreeLines - > setChecked ( config - > readBoolEntry ( " Special_DrawTreeLines " , false ) ) ;
dialog_ - > treeLineMode - > setCurrentItem ( config - > readNumEntry ( " Special_TreelineStyle " , 0 ) ) ;
dialog_ - > treeLineColor - > setColor ( TQColor ( config - > readNumEntry ( " Special_TreelineColor " , ( int ) colorGroup ( ) . mid ( ) . rgb ( ) ) ) ) ;
dialog_ - > expanderMode - > setCurrentItem ( config - > readNumEntry ( " Special_ExpanderStyle " , 0 ) ) ;
dialog_ - > useCustomExpanderColor - > setChecked ( config - > readBoolEntry ( " Special_CustomExpanderColor " , false ) ) ;
dialog_ - > customExpanderColor - > setColor ( TQColor ( config - > readNumEntry ( " Special_ExpanderColor " , ( int ) colorGroup ( ) . text ( ) . rgb ( ) ) ) ) ;
//Kicker
dialog_ - > removeKickerBevel - > setChecked ( config - > readBoolEntry ( " Special_RemoveKickerBevel " , true ) ) ;
dialog_ - > roundTasks - > setChecked ( config - > readBoolEntry ( " Special_RoundTaskbuttons " , false ) ) ;
TQFile file ( TDEGlobal : : dirs ( ) - > localtdedir ( ) + TDEStandardDirs : : kde_default ( " data " ) + " kicker/applets/menuapplet.desktop " ) ;
dialog_ - > replaceMenubar - > setChecked ( menuReplaced = file . exists ( ) ) ;
//Scrollbars
dialog_ - > animateSlider - > setChecked ( config - > readBoolEntry ( " Special_AnimateSlider " , true ) ) ;
dialog_ - > shadowSlider - > setChecked ( config - > readBoolEntry ( " Special_ShadowSlider " , false ) ) ;
dialog_ - > squeezeSlider - > setChecked ( config - > readBoolEntry ( " Special_SqueezeSlider " , false ) ) ;
//Progress
dialog_ - > progressType - > setCurrentItem ( config - > readNumEntry ( " Special_ProgressStyle " , 0 ) ) ;
dialog_ - > showProgressValue - > setChecked ( config - > readBoolEntry ( " Special_ShowProgressValue " , false ) ) ;
//Toolbars
dialog_ - > unhoveredToolButtons - > setCurrentItem ( config - > readNumEntry ( " Special_UnhoveredToolButtons " , 2 ) ) ;
//Tabs
dialog_ - > aquaTabs - > setCurrentItem ( config - > readNumEntry ( " Design_TabStyleAqua " , 0 ) ) ;
dialog_ - > brushedTabs - > setCurrentItem ( config - > readNumEntry ( " Design_TabStyleBrushed " , 1 ) ) ;
// menus
dialog_ - > menuBackground - > setCurrentItem ( config - > readNumEntry ( " Menu_Background " , 0 ) ) ;
dialog_ - > menuOpacity - > setValue ( config - > readNumEntry ( " Menu_Opacity " , 70 ) ) ;
//Look
dialog_ - > shadowMenuText - > setChecked ( config - > readBoolEntry ( " Menu_ShadowText " , true ) ) ;
dialog_ - > menuColorMode - > setCurrentItem ( config - > readNumEntry ( " Menu_ColorStyle " ) ) ;
dialog_ - > menuTextColor - > setColor ( TQColor ( config - > readNumEntry ( " Menu_TextColor " , ( int ) colorGroup ( ) . text ( ) . rgb ( ) ) ) ) ;
dialog_ - > menuTextColorHigh - > setColor ( TQColor ( config - > readNumEntry ( " Menu_TextColorHighlight " , ( int ) colorGroup ( ) . highlightedText ( ) . rgb ( ) ) ) ) ;
dialog_ - > menuColor - > setColor ( TQColor ( config - > readNumEntry ( " Menu_Color1 " , ( int ) colorGroup ( ) . background ( ) . rgb ( ) ) ) ) ;
dialog_ - > menuColor2 - > setColor ( TQColor ( config - > readNumEntry ( " Menu_Color2 " , ( int ) colorGroup ( ) . background ( ) . dark ( 130 ) . rgb ( ) ) ) ) ;
dialog_ - > menuColorHigh - > setColor ( TQColor ( config - > readNumEntry ( " Menu_ColorHighlight " , ( int ) colorGroup ( ) . highlight ( ) . rgb ( ) ) ) ) ;
dialog_ - > drawMenuStripe - > setChecked ( config - > readBoolEntry ( " Menu_DrawMenuStripe " , false ) ) ;
dialog_ - > glossyMenus - > setChecked ( config - > readBoolEntry ( " Menu_Glossy " , true ) ) ;
dialog_ - > menuStripeColor - > setColor ( TQColor ( config - > readNumEntry ( " Menu_StripeColor " , ( int ) TQt : : white . rgb ( ) ) ) ) ;
// custom colors
dialog_ - > useCustomColors - > setChecked ( config - > readBoolEntry ( " Colors_UseCustomColors " , false ) ) ;
dialog_ - > radioOffColor - > setColor ( TQColor ( config - > readNumEntry ( " Colors_RadioOff " , ( int ) colorGroup ( ) . background ( ) . rgb ( ) ) ) ) ;
dialog_ - > radioOnColor - > setColor ( TQColor ( config - > readNumEntry ( " Colors_RadioOn " , ( int ) colorGroup ( ) . button ( ) . rgb ( ) ) ) ) ;
dialog_ - > checkOffColor - > setColor ( TQColor ( config - > readNumEntry ( " Colors_CheckOff " , ( int ) colorGroup ( ) . background ( ) . rgb ( ) ) ) ) ;
dialog_ - > checkOnColor - > setColor ( TQColor ( config - > readNumEntry ( " Colors_CheckOn " , ( int ) colorGroup ( ) . button ( ) . rgb ( ) ) ) ) ;
dialog_ - > sliderColor - > setColor ( TQColor ( config - > readNumEntry ( " Colors_Slider " , ( int ) colorGroup ( ) . button ( ) . rgb ( ) ) ) ) ;
dialog_ - > hoverSliderColorColor - > setColor ( TQColor ( config - > readNumEntry ( " Colors_SliderHovered " , ( int ) colorGroup ( ) . button ( ) . rgb ( ) ) ) ) ;
dialog_ - > pressedSliderColor - > setColor ( TQColor ( config - > readNumEntry ( " Colors_SliderPressed " , ( int ) colorGroup ( ) . button ( ) . dark ( 110 ) . rgb ( ) ) ) ) ;
dialog_ - > sliderGrooveColor - > setColor ( TQColor ( config - > readNumEntry ( " Colors_SliderGroove " , ( int ) colorGroup ( ) . background ( ) . rgb ( ) ) ) ) ;
dialog_ - > inactiveTabColor - > setColor ( TQColor ( config - > readNumEntry ( " Colors_TabInactive " , ( int ) colorGroup ( ) . background ( ) . rgb ( ) ) ) ) ;
dialog_ - > activeTabColor - > setColor ( TQColor ( config - > readNumEntry ( " Colors_TabActive " , ( int ) colorGroup ( ) . button ( ) . rgb ( ) ) ) ) ;
dialog_ - > tintBrush - > setChecked ( config - > readBoolEntry ( " Colors_TintBrushedMetal " , false ) ) ;
brushTint = TQColor ( config - > readNumEntry ( " Colors_BrushTint " , ( int ) colorGroup ( ) . background ( ) . rgb ( ) ) ) ;
// dialog_->brushTintSaturaion->setValue(settings.readNumEntry( "/qt/Baghira/brushTintSaturation", 3));
baseImage2 = uic_findImage ( " brush-me " ) ;
dialog_ - > pixmapBrushPreview - > setPixmap ( * tintBrush ( baseImage2 , brushTint ) ) ;
dialog_ - > sliderBrushRed - > setValue ( sliderBrushRedValue = brushTint . red ( ) ) ;
dialog_ - > sliderBrushGreen - > setValue ( sliderBrushGreenValue = brushTint . green ( ) ) ;
dialog_ - > sliderBrushBlue - > setValue ( sliderBrushBlueValue = brushTint . blue ( ) ) ;
config - > setGroup ( " Menubar " ) ;
dialog_ - > menuMaxWidth - > setValue ( config - > readNumEntry ( " Width " , TQDesktopWidget ( ) . availableGeometry ( ) . width ( ) ) ) ;
config - > setGroup ( " Sidebar " ) ;
delete config ;
config = new TDEConfig ( " kdeglobals " ) ;
config - > setGroup ( " Toolbar style " ) ;
dialog_ - > toolbuttonHighColor - > setColor ( config - > readColorEntry ( " HighlightColor " , new TQColor ( 103 , 141 , 178 ) ) ) ;
delete config ;
}
void tdestyle_baghira_config : : defaults ( )
{
dialog_ - > defaultStyle - > setCurrentItem ( 0 ) ;
dialog_ - > buttonStyle - > setCurrentItem ( 1 ) ;
dialog_ - > toolbuttonStyle - > setCurrentItem ( 1 ) ;
dialog_ - > animateButtons - > setChecked ( true ) ;
dialog_ - > stippleBackground - > setChecked ( true ) ;
dialog_ - > stippleContrast - > setValue ( 30 ) ;
dialog_ - > shadowGroups - > setChecked ( true ) ;
dialog_ - > shadowIntensity - > setValue ( 50 ) ;
dialog_ - > bevelHighlights - > setChecked ( true ) ;
dialog_ - > centerTabs - > setChecked ( true ) ;
dialog_ - > colorMode - > setCurrentItem ( 0 ) ;
dialog_ - > inactiveColorType - > setCurrentItem ( 1 ) ;
dialog_ - > customInactiveColor - > setColor ( colorGroup ( ) . background ( ) . rgb ( ) ) ;
// button color stuff
dialog_ - > sliderButtonRed - > setValue ( sliderButtonRedValue = colorGroup ( ) . button ( ) . red ( ) ) ;
dialog_ - > sliderButtonGreen - > setValue ( sliderButtonGreenValue = colorGroup ( ) . button ( ) . green ( ) ) ;
dialog_ - > sliderButtonBlue - > setValue ( sliderButtonBlueValue = colorGroup ( ) . button ( ) . blue ( ) ) ;
dialog_ - > valueButtonRed - > setNum ( sliderButtonRedValue ) ;
dialog_ - > valueButtonGreen - > setNum ( sliderButtonGreenValue ) ;
dialog_ - > valueButtonBlue - > setNum ( sliderButtonBlueValue ) ;
// special Widgets
// dialog_->animateSlider;
dialog_ - > shadowSlider - > setChecked ( false ) ;
dialog_ - > squeezeSlider - > setChecked ( false ) ;
dialog_ - > unhoveredToolButtons - > setCurrentItem ( 2 ) ;
dialog_ - > toolbuttonHighColor - > setColor ( TQColor ( 103 , 141 , 178 ) ) ;
dialog_ - > drawTreeLines - > setChecked ( false ) ;
dialog_ - > useCustomExpanderColor - > setChecked ( false ) ;
dialog_ - > treeLineMode - > setCurrentItem ( 0 ) ;
dialog_ - > treeLineColor - > setColor ( colorGroup ( ) . mid ( ) . rgb ( ) ) ;
dialog_ - > expanderMode - > setCurrentItem ( 0 ) ;
dialog_ - > customExpanderColor - > setColor ( colorGroup ( ) . text ( ) . rgb ( ) ) ;
dialog_ - > useRectLVH - > setChecked ( false ) ;
dialog_ - > removeKickerBevel - > setChecked ( true ) ;
dialog_ - > roundTasks - > setChecked ( false ) ;
dialog_ - > showProgressValue - > setChecked ( false ) ;
dialog_ - > progressType - > setCurrentItem ( 0 ) ;
dialog_ - > aquaTabs - > setCurrentItem ( 0 ) ;
dialog_ - > brushedTabs - > setCurrentItem ( 1 ) ;
// menus
// dialog_->transGroup;
dialog_ - > menuBackground - > setCurrentItem ( 0 ) ;
dialog_ - > menuOpacity - > setValue ( 70 ) ;
dialog_ - > shadowMenuText - > setChecked ( true ) ;
dialog_ - > menuColorMode - > setCurrentItem ( 0 ) ;
dialog_ - > menuTextColor - > setColor ( colorGroup ( ) . text ( ) . rgb ( ) ) ;
dialog_ - > menuTextColorHigh - > setColor ( colorGroup ( ) . highlightedText ( ) . rgb ( ) ) ;
dialog_ - > menuColor - > setColor ( colorGroup ( ) . background ( ) . rgb ( ) ) ;
dialog_ - > menuColor2 - > setColor ( colorGroup ( ) . background ( ) . dark ( 130 ) . rgb ( ) ) ;
dialog_ - > menuColorHigh - > setColor ( colorGroup ( ) . highlight ( ) . rgb ( ) ) ;
dialog_ - > drawMenuStripe - > setChecked ( false ) ;
dialog_ - > glossyMenus - > setChecked ( true ) ;
dialog_ - > menuStripeColor - > setColor ( TQt : : white . rgb ( ) ) ;
// custom colors
dialog_ - > useCustomColors - > setChecked ( false ) ;
dialog_ - > radioOffColor - > setColor ( colorGroup ( ) . background ( ) . rgb ( ) ) ;
dialog_ - > radioOnColor - > setColor ( colorGroup ( ) . button ( ) . rgb ( ) ) ;
dialog_ - > checkOffColor - > setColor ( colorGroup ( ) . background ( ) . rgb ( ) ) ;
dialog_ - > checkOnColor - > setColor ( colorGroup ( ) . button ( ) . rgb ( ) ) ;
dialog_ - > sliderColor - > setColor ( colorGroup ( ) . button ( ) . rgb ( ) ) ;
dialog_ - > hoverSliderColorColor - > setColor ( colorGroup ( ) . button ( ) . rgb ( ) ) ;
dialog_ - > pressedSliderColor - > setColor ( colorGroup ( ) . button ( ) . dark ( 110 ) . rgb ( ) ) ;
dialog_ - > sliderGrooveColor - > setColor ( colorGroup ( ) . background ( ) . rgb ( ) ) ;
dialog_ - > inactiveTabColor - > setColor ( colorGroup ( ) . background ( ) . rgb ( ) ) ;
dialog_ - > activeTabColor - > setColor ( colorGroup ( ) . button ( ) . rgb ( ) ) ;
dialog_ - > tintBrush - > setChecked ( false ) ;
emit changed ( true ) ;
}
void tdestyle_baghira_config : : save ( )
{
TQString tmpString = TQDir : : homeDirPath ( ) + " /.qt/baghirarc " ;
save ( tmpString ) ;
// emit changed(true);
}
void tdestyle_baghira_config : : changeTooluttonHighlightColor ( const TQColor & color )
{
TDEConfig * config = new TDEConfig ( " kdeglobals " ) ;
config - > setGroup ( " Toolbar style " ) ;
config - > writeEntry ( " HighlightColor " , color ) ;
delete config ;
}
void tdestyle_baghira_config : : handleButtonStyles ( int i )
{
if ( i ! = 2 & & sender ( ) = = dialog_ - > buttonStyle & & dialog_ - > toolbuttonStyle - > currentItem ( ) ! = 2 )
dialog_ - > toolbuttonStyle - > setCurrentItem ( i ) ;
else if ( i ! = 2 & & sender ( ) = = dialog_ - > toolbuttonStyle & & dialog_ - > buttonStyle - > currentItem ( ) ! = 2 )
dialog_ - > buttonStyle - > setCurrentItem ( i ) ;
configChanged ( ) ;
}
void tdestyle_baghira_config : : save ( TQString & fileName )
{
// TQSettings *config = new TQSettings;
TDEConfig * config = new TDEConfig ( fileName ) ;
config - > setGroup ( " BAB " ) ;
//General Design
config - > writeEntry ( " defaultState " , dialog_ - > defaultStyle - > currentItem ( ) ) ;
// config->endGroup();
config - > setGroup ( " Style " ) ;
config - > writeEntry ( " Special_ButtonStyle " , dialog_ - > buttonStyle - > currentItem ( ) ) ;
config - > writeEntry ( " Special_ToolbuttonStyle " , dialog_ - > toolbuttonStyle - > currentItem ( ) ) ;
config - > writeEntry ( " Design_AnimateButtons " , dialog_ - > animateButtons - > isOn ( ) ) ;
config - > writeEntry ( " Design_Default " , dialog_ - > defaultStyle - > currentItem ( ) ) ;
config - > writeEntry ( " Design_StippleBackground " , dialog_ - > stippleBackground - > isOn ( ) ) ;
config - > writeEntry ( " Design_StippleContrast " , dialog_ - > stippleContrast - > value ( ) ) ;
config - > writeEntry ( " Design_ShadowGroupBoxes " , dialog_ - > shadowGroups - > isOn ( ) ) ;
config - > writeEntry ( " Design_GroupBoxeShadowDarkness " , dialog_ - > shadowIntensity - > value ( ) ) ;
config - > writeEntry ( " Design_BevelAsHighlight " , dialog_ - > bevelHighlights - > isOn ( ) ) ;
config - > writeEntry ( " Design_ButtonStyle " , dialog_ - > colorMode - > currentItem ( ) ) ;
config - > writeEntry ( " Design_InactiveButtonStyle " , dialog_ - > inactiveColorType - > currentItem ( ) ) ;
config - > writeEntry ( " Design_InactiveButtonColor " , ( int ) dialog_ - > customInactiveColor - > color ( ) . rgb ( ) ) ;
config - > writeEntry ( " Design_CenterTabs " , dialog_ - > centerTabs - > isOn ( ) ) ;
//button color stuff
config - > writeEntry ( " Design_ButtonColor " , ( int ) ( TQColor ( sliderButtonRedValue , sliderButtonGreenValue , sliderButtonBlueValue ) . rgb ( ) ) ) ;
// special Widgets
//listviews
// dialog_->animateSlider;
config - > writeEntry ( " Special_UseFlatLVH " , dialog_ - > useRectLVH - > isOn ( ) ) ;
config - > writeEntry ( " Special_DrawTreeLines " , dialog_ - > drawTreeLines - > isOn ( ) ) ;
config - > writeEntry ( " Special_TreelineStyle " , dialog_ - > treeLineMode - > currentItem ( ) ) ;
config - > writeEntry ( " Special_TreelineColor " , ( int ) dialog_ - > treeLineColor - > color ( ) . rgb ( ) ) ;
config - > writeEntry ( " Special_ExpanderStyle " , dialog_ - > expanderMode - > currentItem ( ) ) ;
config - > writeEntry ( " Special_CustomExpanderColor " , dialog_ - > useCustomExpanderColor - > isOn ( ) ) ;
config - > writeEntry ( " Special_ExpanderColor " , ( int ) dialog_ - > customExpanderColor - > color ( ) . rgb ( ) ) ;
//Kicker
config - > writeEntry ( " Special_RemoveKickerBevel " , dialog_ - > removeKickerBevel - > isOn ( ) ) ;
config - > writeEntry ( " Special_RoundTaskbuttons " , dialog_ - > roundTasks - > isOn ( ) ) ;
TQDir tmpDir ( TDEGlobal : : dirs ( ) - > localtdedir ( ) ) ;
if ( ! tmpDir . exists ( ) ) tmpDir . mkdir ( TDEGlobal : : dirs ( ) - > localtdedir ( ) ) ;
tmpDir . setPath ( TDEGlobal : : dirs ( ) - > localtdedir ( ) + " share " ) ;
if ( ! tmpDir . exists ( ) ) tmpDir . mkdir ( TDEGlobal : : dirs ( ) - > localtdedir ( ) + " share " ) ;
tmpDir . setPath ( TDEGlobal : : dirs ( ) - > localtdedir ( ) + TDEStandardDirs : : kde_default ( " data " ) ) ;
if ( ! tmpDir . exists ( ) ) tmpDir . mkdir ( TDEGlobal : : dirs ( ) - > localtdedir ( ) + TDEStandardDirs : : kde_default ( " data " ) ) ;
tmpDir . setPath ( TDEGlobal : : dirs ( ) - > localtdedir ( ) + TDEStandardDirs : : kde_default ( " data " ) + " kicker " ) ;
if ( ! tmpDir . exists ( ) ) tmpDir . mkdir ( TDEGlobal : : dirs ( ) - > localtdedir ( ) + TDEStandardDirs : : kde_default ( " data " ) + " kicker " ) ;
tmpDir . setPath ( TDEGlobal : : dirs ( ) - > localtdedir ( ) + TDEStandardDirs : : kde_default ( " data " ) + " kicker/applets " ) ;
if ( ! tmpDir . exists ( ) ) tmpDir . mkdir ( TDEGlobal : : dirs ( ) - > localtdedir ( ) + TDEStandardDirs : : kde_default ( " data " ) + " kicker/applets " ) ;
TQFile file ( TDEGlobal : : dirs ( ) - > localtdedir ( ) + TDEStandardDirs : : kde_default ( " data " ) + " kicker/applets/menuapplet.desktop " ) ;
if ( dialog_ - > replaceMenubar - > isOn ( ) )
{
file . open ( IO_WriteOnly ) ;
const char * msg =
" [Desktop Entry] \n \
Hidden = true \ n \
Type = Plugin \ n \
Encoding = UTF - 8 \ n \
Name = BaghiraMenu \ n \
X - TDE - Library = b_menu_panelapplet \ n \
X - TDE - UniqueApplet = true \ n " ;
file . writeBlock ( msg , tqstrlen ( msg ) ) ;
file . close ( ) ;
}
else
file . remove ( ) ;
if ( dialog_ - > replaceMenubar - > isOn ( ) ! = menuReplaced )
TDEApplication : : dcopClient ( ) - > send ( " kicker " , " default " , " restart() " , " " ) ;
//Srollbars
config - > writeEntry ( " Special_AnimateSlider " , dialog_ - > animateSlider - > isOn ( ) ) ;
config - > writeEntry ( " Special_ShadowSlider " , dialog_ - > shadowSlider - > isOn ( ) ) ;
config - > writeEntry ( " Special_SqueezeSlider " , dialog_ - > squeezeSlider - > isOn ( ) ) ;
//Progress
config - > writeEntry ( " Special_ProgressStyle " , dialog_ - > progressType - > currentItem ( ) ) ;
config - > writeEntry ( " Special_ShowProgressValue " , dialog_ - > showProgressValue - > isOn ( ) ) ;
//Toolbars
config - > writeEntry ( " Special_UnhoveredToolButtons " , dialog_ - > unhoveredToolButtons - > currentItem ( ) ) ;
//Tabs
config - > writeEntry ( " Design_TabStyleAqua " , dialog_ - > aquaTabs - > currentItem ( ) ) ;
config - > writeEntry ( " Design_TabStyleBrushed " , dialog_ - > brushedTabs - > currentItem ( ) ) ;
// menus
config - > writeEntry ( " Menu_Background " , dialog_ - > menuBackground - > currentItem ( ) ) ;
config - > writeEntry ( " Menu_Opacity " , dialog_ - > menuOpacity - > value ( ) ) ;
//Look
config - > writeEntry ( " Menu_ShadowText " , dialog_ - > shadowMenuText - > isOn ( ) ) ;
config - > writeEntry ( " Menu_ColorStyle " , dialog_ - > menuColorMode - > currentItem ( ) ) ;
config - > writeEntry ( " Menu_TextColor " , ( int ) dialog_ - > menuTextColor - > color ( ) . rgb ( ) ) ;
config - > writeEntry ( " Menu_TextColorHighlight " , ( int ) dialog_ - > menuTextColorHigh - > color ( ) . rgb ( ) ) ;
config - > writeEntry ( " Menu_Color1 " , ( int ) dialog_ - > menuColor - > color ( ) . rgb ( ) ) ;
config - > writeEntry ( " Menu_Color2 " , ( int ) dialog_ - > menuColor2 - > color ( ) . rgb ( ) ) ;
config - > writeEntry ( " Menu_ColorHighlight " , ( int ) dialog_ - > menuColorHigh - > color ( ) . rgb ( ) ) ;
config - > writeEntry ( " Menu_DrawMenuStripe " , dialog_ - > drawMenuStripe - > isOn ( ) ) ;
config - > writeEntry ( " Menu_Glossy " , dialog_ - > glossyMenus - > isOn ( ) ) ;
config - > writeEntry ( " Menu_StripeColor " , ( int ) dialog_ - > menuStripeColor - > color ( ) . rgb ( ) ) ;
// custom colors
config - > writeEntry ( " Colors_UseCustomColors " , dialog_ - > useCustomColors - > isOn ( ) ) ;
config - > writeEntry ( " Colors_RadioOff " , ( int ) dialog_ - > radioOffColor - > color ( ) . rgb ( ) ) ;
config - > writeEntry ( " Colors_RadioOn " , ( int ) dialog_ - > radioOnColor - > color ( ) . rgb ( ) ) ;
config - > writeEntry ( " Colors_CheckOff " , ( int ) dialog_ - > checkOffColor - > color ( ) . rgb ( ) ) ;
config - > writeEntry ( " Colors_CheckOn " , ( int ) dialog_ - > checkOnColor - > color ( ) . rgb ( ) ) ;
config - > writeEntry ( " Colors_Slider " , ( int ) dialog_ - > sliderColor - > color ( ) . rgb ( ) ) ;
config - > writeEntry ( " Colors_SliderHovered " , ( int ) dialog_ - > hoverSliderColorColor - > color ( ) . rgb ( ) ) ;
config - > writeEntry ( " Colors_SliderPressed " , ( int ) dialog_ - > pressedSliderColor - > color ( ) . rgb ( ) ) ;
config - > writeEntry ( " Colors_SliderGroove " , ( int ) dialog_ - > sliderGrooveColor - > color ( ) . rgb ( ) ) ;
config - > writeEntry ( " Colors_TabInactive " , ( int ) dialog_ - > inactiveTabColor - > color ( ) . rgb ( ) ) ;
config - > writeEntry ( " Colors_TabActive " , ( int ) dialog_ - > activeTabColor - > color ( ) . rgb ( ) ) ;
config - > writeEntry ( " Colors_TintBrushedMetal " , dialog_ - > tintBrush - > isOn ( ) ) ;
config - > writeEntry ( " Colors_BrushTint " , ( int ) tqRgb ( sliderBrushRedValue , sliderBrushGreenValue , sliderBrushBlueValue ) ) ;
config - > setGroup ( " Menubar " ) ;
config - > writeEntry ( " Width " , dialog_ - > menuMaxWidth - > value ( ) ) ;
config - > sync ( ) ;
// config->endGroup();
delete config ;
}
void tdestyle_baghira_config : : configChanged ( )
{
if ( loadDone )
{
dialog_ - > statusWarning - > setText ( " Config changed " ) ;
emit changed ( true ) ;
}
}
TQString tdestyle_baghira_config : : quickHelp ( ) const
{
return i18n ( " Configure Your Cat " ) ;
}
void tdestyle_baghira_config : : setDesign ( int d )
{
bool b = ( d = = 0 ) ;
dialog_ - > stippleBackground - > setEnabled ( b ) ;
dialog_ - > stippleContrast - > setEnabled ( b ) ;
dialog_ - > shadowGroups - > setEnabled ( b ) ;
dialog_ - > shadowIntensity - > setEnabled ( b ) ;
}
void tdestyle_baghira_config : : enableInButtonColor ( int d )
{
dialog_ - > customInactiveColor - > setEnabled ( d = = 3 ) ;
}
void tdestyle_baghira_config : : enableMenuColorStuff ( int d )
{
bool b = ( d = = 2 ) ;
dialog_ - > menuTextColor - > setEnabled ( b ) ;
dialog_ - > menuColor - > setEnabled ( b & & dialog_ - > menuBackground - > currentItem ( ) > 0 ) ;
dialog_ - > menuColor2 - > setEnabled ( b & & dialog_ - > menuBackground - > currentItem ( ) > 1 ) ;
}
void tdestyle_baghira_config : : buttonLoadAction ( )
{
TQString tmpString = KFileDialog : : getOpenFileName ( TQDir : : homeDirPath ( ) , " * " , this , " Select a Baghira config file " ) ;
if ( ! tmpString . isEmpty ( ) )
load ( tmpString ) ;
}
void tdestyle_baghira_config : : buttonSaveAsAction ( )
{
TQString tmpString = KFileDialog : : getSaveFileName ( TQDir : : homeDirPath ( ) , " * " , this , " Save current Baghira configuration as " ) ;
save ( tmpString ) ;
}
void tdestyle_baghira_config : : editApp ( )
{
emit editApp ( applist - > currentItem ( ) - > text ( 0 ) , applist - > currentItem ( ) - > text ( 1 ) ) ;
}
void tdestyle_baghira_config : : removeApp ( )
{
TQString string = TQDir : : homeDirPath ( ) + " /.baghira/ " + applist - > currentItem ( ) - > text ( 0 ) ;
TQFile : : remove ( string ) ;
applist - > takeItem ( applist - > currentItem ( ) ) ;
}
void tdestyle_baghira_config : : removeApp ( TQString name )
{
TQString string = TQDir : : homeDirPath ( ) + " /.baghira/ " + name ;
TQFile : : remove ( string ) ;
applist - > takeItem ( applist - > findItem ( name , 0 , TQt : : ExactMatch ) ) ;
}
void tdestyle_baghira_config : : addApp ( TQString string , TQString linkString )
{
applist - > insertItem ( new TDEListViewItem ( applist , string , linkString ) ) ;
applist - > sort ( ) ;
}
void tdestyle_baghira_config : : selectWindow ( )
// taken from kcmkwin
{
// use a dialog, so that all user input is blocked
// use WX11BypassWM and moving away so that it's not actually visible
// grab only mouse, so that keyboard can be used e.g. for switching windows
grabber = new TQDialog ( NULL , NULL , true , WX11BypassWM ) ;
grabber - > move ( - 1000 , - 1000 ) ;
grabber - > show ( ) ;
grabber - > grabMouse ( crossCursor ) ;
grabber - > installEventFilter ( this ) ;
}
Atom wm_state = XInternAtom ( tqt_xdisplay ( ) , " WM_STATE " , False ) ;
// Atom wm_state = XInternAtom( tqt_xdisplay(), "WM_COMMAND", False );
bool tdestyle_baghira_config : : eventFilter ( TQObject * o , TQEvent * e )
// adapted from kcmkwin... again ;)
{
if ( o ! = grabber )
return false ;
if ( e - > type ( ) ! = TQEvent : : MouseButtonRelease )
return false ;
delete grabber ;
grabber = NULL ;
if ( static_cast < TQMouseEvent * > ( e ) - > button ( ) ! = LeftButton )
return true ;
WId winId = findWindow ( ) ;
XClassHint classHint ;
if ( XGetClassHint ( tqt_xdisplay ( ) , winId , & classHint ) )
{
TQString tmpString = TQString ( classHint . res_class ) . lower ( ) + " (uncertain) " ;
appsetter - > show ( tmpString , TQString ( ) ) ;
// tqWarning("class: %s",TQString( classHint.res_class ).lower().ascii());
XFree ( classHint . res_name ) ;
XFree ( classHint . res_class ) ;
}
return true ;
}
WId tdestyle_baghira_config : : findWindow ( )
// taken from kcmkwin... as well =)
{
Window root ;
Window child ;
uint mask ;
int rootX , rootY , x , y ;
Window parent = tqt_xrootwin ( ) ;
// Atom wm_state = XInternAtom( tqt_xdisplay(), "WM_STATE", False );
for ( int i = 0 ;
i < 10 ;
+ + i )
{
XQueryPointer ( tqt_xdisplay ( ) , parent , & root , & child ,
& rootX , & rootY , & x , & y , & mask ) ;
if ( child = = None )
return 0 ;
Atom type ;
int format ;
unsigned long nitems , after ;
unsigned char * prop ;
if ( XGetWindowProperty ( tqt_xdisplay ( ) , child , wm_state , 0 , 0 , False , AnyPropertyType , & type , & format , & nitems , & after , & prop ) = = Success )
{
if ( prop ! = NULL )
XFree ( prop ) ;
if ( type ! = None )
return child ;
}
parent = child ;
}
return 0 ;
}
void tdestyle_baghira_config : : menuToggled ( bool active )
{
if ( ! active | | ! loadDone )
return ;
TDEConfigGroup menuConfig ( TDEGlobal : : config ( ) , " KDE " ) ;
if ( ! menuConfig . readBoolEntry ( " macStyle " , false ) )
if ( KMessageBox : : questionYesNo ( 0 , i18n ( " <qt>You just selected to replace kickers menu applet for the Mac like Menubar on top of the screen, but the Mac like style isn't selected anyway<br>Do you want to activate it now?</qt> " ) , 0L , KStdGuiItem : : yes ( ) , KStdGuiItem : : no ( ) ) = = KMessageBox : : Yes )
{
TDEProcess proc ;
proc < < " tdecmshell " < < " desktopbehavior " ;
proc . start ( TDEProcess : : DontCare ) ;
proc . detach ( ) ;
}
configChanged ( ) ;
}
//////////////////////////////////////////////////////////////////////////////
// Plugin Stuff //
//////////////////////////////////////////////////////////////////////////////
extern " C "
{
KDE_EXPORT TQWidget * allocate_tdestyle_config ( TQWidget * parent ) {
return ( new tdestyle_baghira_config ( parent , " BaghiraConfig " ) ) ;
}
}
AppSetter : : AppSetter ( TQWidget * parent , const char * name ) : TQWidget ( parent , name , TQt : : WType_Dialog | TQt : : WShowModal )
{
isEdit = FALSE ;
TQLabel * label1 = new TQLabel ( i18n ( " <qt><b>Application Name</b></qt> " ) , this ) ;
command = new TQLineEdit ( this ) ;
TQLabel * linkTo = new TQLabel ( i18n ( " <qt><b>Just like</b></qt> " ) , this ) ;
link = new TQComboBox ( this ) ;
box = new TQGroupBox ( 2 , TQt : : Horizontal , i18n ( " Custom Settings " ) , this ) ;
box - > setCheckable ( true ) ;
new TQLabel ( i18n ( " <qt><b>Style</b></qt> " ) , box ) ;
new TQLabel ( " <qt><b>Deco</b></qt> " , box ) ;
style = new TQComboBox ( box ) ;
style - > insertItem ( i18n ( " Don't set " ) ) ;
style - > insertItem ( " Jaguar " ) ;
style - > insertItem ( " Panther " ) ;
style - > insertItem ( " Brushed Metal " ) ;
style - > insertItem ( " Tiger " ) ;
style - > insertItem ( " Milk " ) ;
deco = new TQComboBox ( box ) ;
deco - > insertItem ( i18n ( " Don't set " ) ) ;
deco - > insertItem ( " Jaguar " ) ;
deco - > insertItem ( " Panther " ) ;
deco - > insertItem ( " Brushed Metal " ) ;
deco - > insertItem ( " Tiger " ) ;
deco - > insertItem ( " Milk " ) ;
new TQLabel ( i18n ( " <qt><b>Buttons</b></qt> " ) , box ) ;
new TQLabel ( i18n ( " <qt><b>Toolbuttons</b></qt> " ) , box ) ;
buttons = new TQComboBox ( box ) ;
buttons - > insertItem ( " Jaguar " ) ;
buttons - > insertItem ( " Panther " ) ;
buttons - > insertItem ( " iTunes " ) ;
buttons - > insertItem ( " Tiger " ) ;
buttons - > insertItem ( " Milk " ) ;
toolButtons = new TQComboBox ( box ) ;
toolButtons - > insertItem ( " Jaguar " ) ;
toolButtons - > insertItem ( " Panther " ) ;
toolButtons - > insertItem ( " iTunes " ) ;
toolButtons - > insertItem ( " Tiger " ) ;
toolButtons - > insertItem ( " Milk " ) ;
new TQLabel ( i18n ( " <qt><b>Tab vs. Chooser</b></qt> " ) , box ) ;
new TQLabel ( i18n ( " <qt>Inactive Button</qt> " ) , box ) ;
tabs = new TQComboBox ( box ) ;
tabs - > insertItem ( i18n ( " Don't set " ) ) ;
tabs - > insertItem ( " Tabs " ) ;
tabs - > insertItem ( " Adaptive " ) ;
tabs - > insertItem ( " Choosers " ) ;
inbutton = new TQComboBox ( box ) ;
inbutton - > insertItem ( " Fixed " ) ;
inbutton - > insertItem ( " Background " ) ;
inbutton - > insertItem ( " Active Button " ) ;
scanlines = new TQCheckBox ( " Show scanlines " , box ) ;
TQWidget * dumb = new TQWidget ( box ) ;
customColors = new TQCheckBox ( dumb ) ;
buttonColors = new TQPushButton ( " Custom Colors " , dumb ) ;
TQHBoxLayout * clh = new TQHBoxLayout ( dumb ) ;
clh - > addWidget ( customColors ) ;
clh - > addWidget ( buttonColors ) ;
TQVBoxLayout * lv = new TQVBoxLayout ( this , 11 , 6 ) ;
lv - > addWidget ( label1 ) ;
lv - > addWidget ( command ) ;
TQHBoxLayout * lh0 = new TQHBoxLayout ( lv ) ;
lh0 - > addWidget ( linkTo ) ;
lh0 - > addWidget ( link ) ;
lv - > addWidget ( box ) ;
TQHBoxLayout * lh = new TQHBoxLayout ( lv ) ;
TQPushButton * cancel = new TQPushButton ( " Cancel " , this ) ;
lh - > addWidget ( cancel ) ;
TQPushButton * ok = new TQPushButton ( " Ok " , this ) ;
lh - > addWidget ( ok ) ;
colorDialog = new ColorDialog ( this ) ;
connect ( box , SIGNAL ( toggled ( bool ) ) , link , SLOT ( setDisabled ( bool ) ) ) ;
connect ( box , SIGNAL ( toggled ( bool ) ) , linkTo , SLOT ( setDisabled ( bool ) ) ) ;
connect ( style , SIGNAL ( activated ( int ) ) , this , SLOT ( handler ( int ) ) ) ;
connect ( buttons , SIGNAL ( activated ( int ) ) , this , SLOT ( handleButtonStyles ( int ) ) ) ;
connect ( toolButtons , SIGNAL ( activated ( int ) ) , this , SLOT ( handleButtonStyles ( int ) ) ) ;
connect ( cancel , SIGNAL ( clicked ( ) ) , this , SLOT ( reset ( ) ) ) ;
connect ( ok , SIGNAL ( clicked ( ) ) , this , SLOT ( save ( ) ) ) ;
connect ( customColors , SIGNAL ( toggled ( bool ) ) , buttonColors , SLOT ( setEnabled ( bool ) ) ) ;
connect ( buttonColors , SIGNAL ( clicked ( ) ) , colorDialog , SLOT ( exec ( ) ) ) ;
connect ( colorDialog - > buttonOk , SIGNAL ( clicked ( ) ) , this , SLOT ( updateColors ( ) ) ) ;
connect ( colorDialog - > buttonCancel , SIGNAL ( clicked ( ) ) , this , SLOT ( resetColorPicker ( ) ) ) ;
reset ( ) ;
}
AppSetter : : ~ AppSetter ( )
{
}
void AppSetter : : handleButtonStyles ( int i )
{
if ( i ! = 2 & & sender ( ) = = buttons & & toolButtons - > currentItem ( ) ! = 2 )
toolButtons - > setCurrentItem ( i ) ;
else if ( i ! = 2 & & sender ( ) = = toolButtons & & buttons - > currentItem ( ) ! = 2 )
buttons - > setCurrentItem ( i ) ;
}
void AppSetter : : handler ( int i )
{
scanlines - > setEnabled ( i ! = 3 ) ;
}
void AppSetter : : updateColors ( )
{
for ( int i = 0 ; i < 8 ; i + + )
colors [ i ] = ( int ) colorDialog - > picker [ i ] - > color ( ) . rgb ( ) ;
}
void AppSetter : : show ( )
{
link - > clear ( ) ;
TQDir d ( TQDir : : homeDirPath ( ) + " /.baghira " , 0L , TQDir : : Name | TQDir : : IgnoreCase , TQDir : : Files | TQDir : : NoSymLinks | TQDir : : Readable | TQDir : : Writable ) ;
for ( uint i = 0 ; i < d . count ( ) ; i + + )
link - > insertItem ( d [ i ] ) ;
TQWidget : : show ( ) ;
}
void AppSetter : : show ( TQString appName , TQString linkString )
{
isEdit = true ;
oldName = appName ;
oldLink = linkString ;
command - > setText ( appName ) ;
FILE * file = NULL ;
TQString tmpString = TQDir : : homeDirPath ( ) + " /.baghira/ " + appName ;
if ( ( file = fopen ( tmpString . latin1 ( ) , " r " ) ) ! = NULL )
{
uint s , d , b , t , tc , sc , ib ;
s = d = 4 ;
b = t = sc = 2 ;
tc = 3 ;
for ( int i = 0 ; i < 8 ; i + + )
colors [ i ] = - 1 ;
fscanf ( file , " %u \n %u \n %u \n %u \n %u \n %u \n %d \n %d \n %d \n %d \n %d \n %d \n %d \n %d \n %d \n " , & s , & d , & b , & t , & tc , & sc , & colors [ 0 ] , & colors [ 1 ] , & colors [ 2 ] , & colors [ 3 ] , & colors [ 4 ] , & colors [ 5 ] , & colors [ 6 ] , & colors [ 7 ] , & ib ) ;
fclose ( file ) ;
if ( s < 5 ) style - > setCurrentItem ( s + 1 ) ;
if ( d < 5 ) deco - > setCurrentItem ( d + 1 ) ;
if ( b < 5 ) buttons - > setCurrentItem ( b ) ;
if ( t < 5 ) toolButtons - > setCurrentItem ( t ) ;
if ( tc < 3 ) tabs - > setCurrentItem ( tc + 1 ) ;
if ( ib < 3 ) inbutton - > setCurrentItem ( ib ) ;
scanlines - > setChecked ( sc < 2 ? sc : true ) ;
scanlines - > setEnabled ( s ! = 2 ) ;
customColors - > setChecked ( colors [ 0 ] ! = - 1 ) ;
buttonColors - > setEnabled ( customColors - > isChecked ( ) ) ;
resetColorPicker ( ) ;
}
show ( ) ;
if ( ! linkString . isNull ( ) )
{
for ( int i = 0 ; i < link - > count ( ) ; i + + )
{
if ( link - > text ( i ) = = linkString )
{
link - > setCurrentItem ( i ) ;
break ;
}
}
}
else
{
box - > setChecked ( true ) ;
}
}
void AppSetter : : resetColorPicker ( )
{
if ( colors [ 0 ] ! = - 1 )
{
for ( int i = 0 ; i < 8 ; i + + )
{
colorDialog - > picker [ i ] - > blockSignals ( true ) ;
colorDialog - > picker [ i ] - > setColor ( TQColor ( colors [ i ] ) ) ;
colorDialog - > picker [ i ] - > blockSignals ( false ) ;
}
( ( TQWidget * ) colorDialog - > demo ) - > repaint ( false ) ;
}
else
{
for ( int i = 0 ; i < 8 ; i + + )
colorDialog - > picker [ i ] - > blockSignals ( true ) ;
colorDialog - > picker [ Back ] - > setColor ( colorGroup ( ) . background ( ) ) ;
colorDialog - > picker [ Button ] - > setColor ( colorGroup ( ) . button ( ) ) ;
colorDialog - > picker [ Base ] - > setColor ( colorGroup ( ) . base ( ) ) ;
colorDialog - > picker [ Text ] - > setColor ( colorGroup ( ) . text ( ) ) ;
colorDialog - > picker [ High ] - > setColor ( colorGroup ( ) . highlight ( ) ) ;
colorDialog - > picker [ HighText ] - > setColor ( colorGroup ( ) . highlightedText ( ) ) ;
colorDialog - > picker [ ButText ] - > setColor ( colorGroup ( ) . buttonText ( ) ) ;
colorDialog - > picker [ Alternate ] - > setColor ( TDEGlobalSettings : : alternateBackgroundColor ( ) ) ;
for ( int i = 0 ; i < 8 ; i + + )
colorDialog - > picker [ i ] - > blockSignals ( false ) ;
( ( TQWidget * ) colorDialog - > demo ) - > repaint ( false ) ;
}
}
void AppSetter : : save ( )
{
if ( command - > text ( ) ! = " " & & ( ! box - > isChecked ( ) | | ( style - > currentItem ( ) ! = 0 & & deco - > currentItem ( ) ! = 0 ) ) )
{
if ( ! isEdit )
emit addApp ( command - > text ( ) , box - > isChecked ( ) ? TQString ( ) : link - > currentText ( ) ) ;
else if ( command - > text ( ) ! = oldName | | link - > currentText ( ) ! = oldLink )
{
emit removeApp ( oldName ) ;
emit addApp ( command - > text ( ) , box - > isChecked ( ) ? TQString ( ) : link - > currentText ( ) ) ;
}
if ( ! customColors - > isChecked ( ) )
{
for ( int i = 0 ; i < 8 ; i + + )
colors [ i ] = - 1 ;
}
FILE * file = NULL ;
TQString tmpString = TQDir : : homeDirPath ( ) + " /.baghira/ " + command - > text ( ) ;
if ( box - > isChecked ( ) ) // custom settings
{
if ( ( file = fopen ( tmpString . latin1 ( ) , " w " ) ) ! = NULL )
{
fprintf ( file , " %u \n %u \n %u \n %u \n %u \n %u \n %d \n %d \n %d \n %d \n %d \n %d \n %d \n %d \n %d \n " , style - > currentItem ( ) - 1 , deco - > currentItem ( ) - 1 , buttons - > currentItem ( ) , toolButtons - > currentItem ( ) , tabs - > currentItem ( ) - 1 , scanlines - > isChecked ( ) , colors [ 0 ] , colors [ 1 ] , colors [ 2 ] , colors [ 3 ] , colors [ 4 ] , colors [ 5 ] , colors [ 6 ] , colors [ 7 ] , inbutton - > currentItem ( ) ) ;
fclose ( file ) ;
}
}
else // just link
{
TQString tmpString2 = TQDir : : homeDirPath ( ) + " /.baghira/ " + link - > currentText ( ) ;
TQFile : : remove ( tmpString ) ; // just to be sure ;)
symlink ( tmpString2 . latin1 ( ) , tmpString . latin1 ( ) ) ;
}
}
reset ( ) ;
}
void AppSetter : : reset ( )
{
hide ( ) ;
isEdit = false ;
style - > setCurrentItem ( 0 ) ;
deco - > setCurrentItem ( 0 ) ;
buttons - > setCurrentItem ( 1 ) ;
inbutton - > setCurrentItem ( 0 ) ;
toolButtons - > setCurrentItem ( 1 ) ;
tabs - > setCurrentItem ( 0 ) ;
scanlines - > setChecked ( false ) ;
command - > clear ( ) ;
customColors - > setChecked ( false ) ;
for ( int i = 0 ; i < 8 ; i + + )
colors [ i ] = - 1 ;
box - > setChecked ( false ) ;
}
# include "tdestyle_baghira_config.moc"