Source Code (Use browser search to find items of interest.)
Class Index
khelpcenter'KWidgetConfig (./kdebase/khelpcenter/kcmhelpcenter/widget.h:26)
class KWidgetConfig : public KConfigWidget
{
Q_OBJECT
public:
KWidgetConfig( QWidget* parent = 0L, const char* name = NULL, bool init=FALSE );
virtual ~KWidgetConfig();
public slots:
void loadSettings();
void saveSettings();
void applySettings();
void defaultSettings();
protected slots:
void slotAddHighlight();
void slotRemoveHighlight();
void slotRemoveEyes();
void slotNumberChanged( int );
void slotDelayChanged( int );
void slotEyesCheckbox( bool );
void slotHighlightCheckbox( bool );
void slotWarpCheckbox( bool );
void slotTest();
protected:
QLabel* newLabel( const char *text, QWidget *parent );
QGroupBox* newGroupBox( const char *text );
QCheckBox* newCheckbox( const char *text, QWidget *parent );
QLCDNumber* newLCD( QWidget *parent );
QLabel *pNumberLabel, *pTimesLabel, *pMsLabel, *pDelayLabel;
QLabel *pFindMeLabel;
QPushButton *pTestButton;
QLCDNumber *pNumberLCD, *pDelayLCD;
QSlider *pNumberSlider, *pDelaySlider;
QCheckBox *pEyesCheckbox, *pHighlightCheckbox, *pWarpCheckbox;
QGroupBox *pHighGB, *pEyesGB, *pPointerGB, *pTestGB;
KEyesWidget *eyes;
private:
QTimer *timer;
void updateGUI();
void setHighlightEnabled( bool );
int number, delay, count;
bool bEyesEnabled, bHighlightEnabled, bWarpPointer;
};
khelpcenter'KWidgetConfig::KWidgetConfig() (./kdebase/khelpcenter/kcmhelpcenter/widget.cpp:18)
KWidgetConfig::KWidgetConfig( QWidget* parent, const char* name, bool )
: KConfigWidget( parent, name )
{
// main groupboxes
pHighGB = newGroupBox( "Highlighting" );
pEyesGB = newGroupBox( "Eyes" );
pPointerGB = newGroupBox( "Pointer" );
pTestGB = newGroupBox( "Test" );
// all widgets
pNumberLabel = newLabel( "Number:", pHighGB );
pTimesLabel = newLabel( "times", pHighGB );
pDelayLabel = newLabel( "Delay:", pHighGB );
pMsLabel = newLabel( "ms", pHighGB );
pFindMeLabel = newLabel( "Find Me", pTestGB );
pNumberLCD = newLCD( pHighGB );
pDelayLCD = newLCD( pHighGB );
pNumberSlider = new QSlider( 1, 10, 1, 1, QSlider::Horizontal, pHighGB );
pDelaySlider = new QSlider( 100, 1000, 50, 100, QSlider::Horizontal, pHighGB );
pNumberSlider->setTickmarks( QSlider::Below );
pDelaySlider ->setTickmarks( QSlider::Below );
pHighlightCheckbox = newCheckbox( "Enable Highlighting", pHighGB );
pEyesCheckbox = newCheckbox( "Enable Eyes", pEyesGB );
pWarpCheckbox = newCheckbox( "Warp pointer to center of widget", pPointerGB );
pTestButton = new QPushButton( i18n("Test"), pTestGB );
pTestButton->setFixedSize( pTestButton->sizeHint() );
// layout management
QVBoxLayout *pTop = new QVBoxLayout( this, 10, 5 );
pTop->addWidget( pHighGB, 3 );
QHBoxLayout *hbox = new QHBoxLayout();
pTop->addLayout( hbox );
hbox->addWidget( pEyesGB, 2 );
hbox->addSpacing( 10 );
hbox->addWidget( pPointerGB, 3 );
pTop->addWidget( pTestGB, 2 );
// Create a layout for the Highlight check box
QVBoxLayout *vbox = new QVBoxLayout( pHighGB, 10 );
vbox->addSpacing( pHighGB->fontMetrics().height() );
vbox->addWidget( pHighlightCheckbox );
vbox->addStretch();
QGridLayout *grid = new QGridLayout( 6, 3 );
vbox->addLayout( grid );
grid->addWidget( pNumberLabel, 0, 0 );
grid->addWidget( pNumberLCD, 0, 2 );
grid->addWidget( pTimesLabel, 0, 4 );
grid->addWidget( pNumberSlider, 0, 6 );
grid->addRowSpacing( 1, pNumberLCD->height() );
grid->addWidget( pDelayLabel, 2, 0 );
grid->addWidget( pDelayLCD, 2, 2 );
grid->addWidget( pMsLabel, 2, 4 );
grid->addWidget( pDelaySlider, 2, 6 );
vbox->addStretch();
// Create a layout for the Eyes group box
vbox = new QVBoxLayout( pEyesGB, 10 );
vbox->addSpacing( pEyesGB->fontMetrics().height() );
vbox->addWidget( pEyesCheckbox );
// Create a layout for the Pointer group box
vbox = new QVBoxLayout( pPointerGB, 10 );
vbox->addSpacing( pPointerGB->fontMetrics().height() );
vbox->addWidget( pWarpCheckbox );
// Create a layout for the test group box
hbox = new QHBoxLayout( pTestGB, 10 );
hbox->addSpacing( pTestGB->fontMetrics().height() );
hbox->addWidget( pTestButton );
hbox->addStretch();
hbox->addWidget( pFindMeLabel );
hbox->addStretch();
// signal/slot
connect( pNumberSlider, SIGNAL(valueChanged(int)), SLOT(slotNumberChanged(int)) );
connect( pDelaySlider, SIGNAL(valueChanged(int)), SLOT(slotDelayChanged(int)) );
connect( pEyesCheckbox, SIGNAL(toggled(bool)), SLOT(slotEyesCheckbox(bool)) );
connect( pTestButton, SIGNAL(pressed()), SLOT(slotTest()) );
connect( pHighlightCheckbox, SIGNAL(toggled(bool)), SLOT(slotHighlightCheckbox(bool)) );
connect( pWarpCheckbox, SIGNAL(toggled(bool)), SLOT(slotWarpCheckbox(bool)) );
eyes = 0L;
timer = 0L;
// settings and GUI stuff
loadSettings();
updateGUI();
}
khelpcenter'KWidgetConfig::~KWidgetConfig() (./kdebase/khelpcenter/kcmhelpcenter/widget.cpp:117)
KWidgetConfig::~KWidgetConfig()
{
}
khelpcenter'KWidgetConfig::newLabel() (./kdebase/khelpcenter/kcmhelpcenter/widget.cpp:121)
QLabel *KWidgetConfig::newLabel( const char *text, QWidget *parent )
{
QLabel *l = new QLabel( i18n(text), parent, text );
CHECK_PTR( l );
l->setMinimumSize( l->sizeHint() );
return l;
}
khelpcenter'KWidgetConfig::newGroupBox() (./kdebase/khelpcenter/kcmhelpcenter/widget.cpp:129)
QGroupBox *KWidgetConfig::newGroupBox( const char *text )
{
QGroupBox *b = new QGroupBox( i18n(text), this, text );
CHECK_PTR( b );
return b;
}
khelpcenter'KWidgetConfig::newCheckbox() (./kdebase/khelpcenter/kcmhelpcenter/widget.cpp:136)
QCheckBox *KWidgetConfig::newCheckbox( const char *text, QWidget *parent )
{
QCheckBox *c = new QCheckBox( i18n(text), parent, text );
CHECK_PTR( c );
c->setMinimumSize( c->sizeHint() );
return c;
}
khelpcenter'KWidgetConfig::newLCD() (./kdebase/khelpcenter/kcmhelpcenter/widget.cpp:144)
QLCDNumber *KWidgetConfig::newLCD( QWidget *parent )
{
QLCDNumber *n = new QLCDNumber( 4, parent );
CHECK_PTR( n );
n->setSegmentStyle( QLCDNumber::Flat );
n->setFrameStyle( QFrame::Panel | QFrame::Sunken );
n->setMaximumHeight( parent->fontMetrics().height() );
return n;
}
khelpcenter'KWidgetConfig::slotNumberChanged() (./kdebase/khelpcenter/kcmhelpcenter/widget.cpp:154)
void KWidgetConfig::slotNumberChanged( int nr )
{
number = nr;
pNumberLCD->display( number );
}
khelpcenter'KWidgetConfig::slotDelayChanged() (./kdebase/khelpcenter/kcmhelpcenter/widget.cpp:160)
void KWidgetConfig::slotDelayChanged( int d )
{
delay = d;
pDelayLCD->display( delay );
}
khelpcenter'KWidgetConfig::slotEyesCheckbox() (./kdebase/khelpcenter/kcmhelpcenter/widget.cpp:166)
void KWidgetConfig::slotEyesCheckbox( bool enable )
{
bEyesEnabled = enable;
}
khelpcenter'KWidgetConfig::slotHighlightCheckbox() (./kdebase/khelpcenter/kcmhelpcenter/widget.cpp:171)
void KWidgetConfig::slotHighlightCheckbox( bool enable )
{
bHighlightEnabled = enable;
setHighlightEnabled( enable );
}
khelpcenter'KWidgetConfig::slotWarpCheckbox() (./kdebase/khelpcenter/kcmhelpcenter/widget.cpp:178)
void KWidgetConfig::slotWarpCheckbox( bool enable )
{
bWarpPointer = enable;
}
khelpcenter'KWidgetConfig::slotTest() (./kdebase/khelpcenter/kcmhelpcenter/widget.cpp:185)
void KWidgetConfig::slotTest()
{
int eyesWidth = 150, eyesHeight = 100, eyesPad = 20;
// center of found widget
QPoint pos = pTestGB->mapToGlobal( pFindMeLabel->pos() );
QPoint center = QPoint( pos.x() + pFindMeLabel->width()/2,
pos.y() + pFindMeLabel->height()/2 );
if( bEyesEnabled )
{
if( eyes )
delete eyes;
eyes = new KEyesWidget();
CHECK_PTR( eyes );
// placement of eyes: horizontal: align centered with widget
// vertical: choose side with more space
QRect geom;
QRect region = KWM::windowRegion( KWM::currentDesktop() );
if( center.y() - region.top() > region.bottom() - center.y() )
{
// place above
geom = QRect( center.x() - eyesWidth/2, pos.y() - eyesHeight - eyesPad,
eyesWidth, eyesHeight );
} else {
// place below
geom = QRect( center.x() - eyesWidth/2, pos.y() + pFindMeLabel->height() + eyesPad,
eyesWidth, eyesHeight );
}
// check wheter the eyes widget is fully visible
if( region.contains( geom ) == FALSE ) {
int d, dx = 0, dy = 0;
if( (d = region.top() - geom.top() ) > 0 )
dy = d;
if( (d = region.bottom() - geom.bottom() ) < 0 )
dy = d;
if( (d = region.left() - geom.left() ) > 0 )
dx = d;
if( (d = region.right() - geom.right() ) < 0 )
dx = d;
geom.moveBy( dx, dy );
}
eyes->setGeometry( geom );
eyes->lookAt( center );
eyes->show();
if( !bHighlightEnabled ) {
if( timer )
delete timer;
timer = new QTimer( this );
connect( timer, SIGNAL(timeout()), this, SLOT(slotRemoveEyes()) );
timer->start( number*delay << 1 );
}
}
if( bHighlightEnabled ) {
count = number;
if( timer )
delete timer;
timer = new QTimer( this );
connect( timer, SIGNAL(timeout()), this, SLOT(slotAddHighlight()) );
timer->start( 0, TRUE );
}
if( bWarpPointer ) {
XWarpPointer( qt_xdisplay(), qt_xrootwin(), qt_xrootwin(), 0, 0, 0, 0, center.x(), center.y() );
}
}
khelpcenter'KWidgetConfig::slotAddHighlight() (./kdebase/khelpcenter/kcmhelpcenter/widget.cpp:259)
void KWidgetConfig::slotAddHighlight()
{
QPainter paint( pFindMeLabel );
paint.setRasterOp( QPainter::XorROP );
paint.fillRect( 0, 0, 100, 100, QColor(255,255,255) );
disconnect( timer, SIGNAL(timeout()), this, SLOT(slotAddHighlight()) );
connect( timer, SIGNAL(timeout()), this, SLOT(slotRemoveHighlight()) );
timer->start( delay, TRUE );
}
khelpcenter'KWidgetConfig::slotRemoveHighlight() (./kdebase/khelpcenter/kcmhelpcenter/widget.cpp:270)
void KWidgetConfig::slotRemoveHighlight()
{
QPainter paint( pFindMeLabel );
paint.setRasterOp( QPainter::XorROP );
paint.fillRect( 0, 0, 100, 100, QColor(255,255,255) );
disconnect( timer, SIGNAL(timeout()), this, SLOT(slotRemoveHighlight()) );
count--;
if( count > 0 ) {
connect( timer, SIGNAL(timeout()), this, SLOT(slotAddHighlight()) );
timer->start( delay, TRUE );
}
else {
if( eyes ) {
delete eyes;
eyes = 0L;
}
if( timer ) {
delete timer;
timer = 0L;
}
}
}
khelpcenter'KWidgetConfig::slotRemoveEyes() (./kdebase/khelpcenter/kcmhelpcenter/widget.cpp:295)
void KWidgetConfig::slotRemoveEyes()
{
disconnect( timer, SIGNAL(timeout()), this, SLOT(slotRemoveEyes()) );
delete timer;
timer = 0L;
if( eyes ) {
delete eyes;
eyes = 0L;
}
}
khelpcenter'KWidgetConfig::updateGUI() (./kdebase/khelpcenter/kcmhelpcenter/widget.cpp:307)
void KWidgetConfig::updateGUI()
{
// highlight
pHighlightCheckbox->setChecked( bHighlightEnabled );
pNumberLCD->display( number );
pNumberSlider->setValue( number );
pDelayLCD->display( delay );
pDelaySlider->setValue( delay );
setHighlightEnabled( bHighlightEnabled );
// eyes
pEyesCheckbox->setChecked( bEyesEnabled );
// pointer
pWarpCheckbox->setChecked( bWarpPointer );
}
khelpcenter'KWidgetConfig::setHighlightEnabled() (./kdebase/khelpcenter/kcmhelpcenter/widget.cpp:324)
void KWidgetConfig::setHighlightEnabled( bool e )
{
pNumberLCD->setEnabled( e );
pNumberSlider->setEnabled( e );
pDelayLCD->setEnabled( e );
pDelaySlider->setEnabled( e );
pNumberLabel->setEnabled( e );
pDelayLabel->setEnabled( e );
pTimesLabel->setEnabled( e );
pMsLabel->setEnabled( e );
}
khelpcenter'KWidgetConfig::loadSettings() (./kdebase/khelpcenter/kcmhelpcenter/widget.cpp:337)
void KWidgetConfig::loadSettings()
{
pConfig->setGroup("Widget");
// highlight
bHighlightEnabled = pConfig->readBoolEntry( "HighlightEnabled", WIS_DEFAULT_HIGHLIGHT_ENABLED );
number = pConfig->readNumEntry( "HighlightNumber", WIS_DEFAULT_HIGHLIGHT_NUMBER );
delay = pConfig->readNumEntry( "HighlightDelay", WIS_DEFAULT_HIGHLIGHT_DELAY );
// eyes
bEyesEnabled = pConfig->readBoolEntry( "EyesEnabled", WIS_DEFAULT_EYES_ENABLED );
// pointer
bWarpPointer = pConfig->readBoolEntry( "WarpPointer", WIS_DEFAULT_WARP_POINTER );
}
khelpcenter'KWidgetConfig::saveSettings() (./kdebase/khelpcenter/kcmhelpcenter/widget.cpp:354)
void KWidgetConfig::saveSettings()
{
pConfig->setGroup("Widget");
// highlight
pConfig->writeEntry( "HighlightEnabled", bHighlightEnabled );
pConfig->writeEntry( "HighlightNumber", number );
pConfig->writeEntry( "HighlightDelay", delay );
// eyes
pConfig->writeEntry( "EyesEnabled", bEyesEnabled );
// pointer
pConfig->writeEntry( "WarpPointer", bWarpPointer );
pConfig->sync();
}
khelpcenter'KWidgetConfig::applySettings() (./kdebase/khelpcenter/kcmhelpcenter/widget.cpp:372)
void KWidgetConfig::applySettings()
{
saveSettings();
}
khelpcenter'KWidgetConfig::defaultSettings() (./kdebase/khelpcenter/kcmhelpcenter/widget.cpp:377)
void KWidgetConfig::defaultSettings()
{
bHighlightEnabled = WIS_DEFAULT_HIGHLIGHT_ENABLED;
number = WIS_DEFAULT_HIGHLIGHT_NUMBER;
delay = WIS_DEFAULT_HIGHLIGHT_DELAY;
bEyesEnabled = WIS_DEFAULT_EYES_ENABLED;
bWarpPointer = WIS_DEFAULT_WARP_POINTER;
updateGUI();
}