Fixed KSplash icon flashing position problem for 'default' theme engine.

Removed nasty hardcoded hack and added 'Icon Offsets' option to Theme.rc file.
pull/2/head
Michele Calgaro 10 years ago
parent 504dfac148
commit e861c6188b

@ -238,6 +238,16 @@ true.</entry>
<entry>[true/false]</entry>
<entry>Indicates whether icons should <quote>flash</quote>. Default is true.</entry>
</row>
<row>
<entry>Icon Offsets</entry>
<entry>[7-int list]</entry>
<entry>A comma separated list of 7 integers, default is 0, 0, 0, 0, 0, 0, 0.
By default, each of the 7 icons is allowed 58 pixels on the screen. If some icons are
wider or narrower, you can use this list to specify an offset to the default x-coordinate
start point of each icon (0, 58, 116, 174, 232, 290, 348). For example, if the first 3 icons
are 68, 53 and 53 pixels wide, you will need to specify the offsets as follow: 0, 10, 5, 0, 0, 0, 0.
</entry>
</row>
</tbody>
</tgroup>
</table>

@ -17,3 +17,6 @@ Always Show Progress = false
# Status text colour
Label Foreground = #FFFFFF
# Offset of each of the 7 icons, useful for adjusting flashing positon for different size icons
Icon Offsets = 0, 0, 0, 0, 0, 0, -8

@ -15,9 +15,5 @@ Engine = Default
# Should icons blink ala TDE, or not?
Icons Flashing = true
# Configurable Messages. You may specify messages in as many
# languages as you prefer. Messages may be copied verbatim from
# this file, if you wish to maintain the default settings.
#Message1 = Please wait, starting TDE...
#Message1[es] = Por favor escuchar, estarto TDE...
#Message2 = Loading ...
# Offset of each of the 7 icons, useful for adjusting flashing positon for different size icons
# Icon Offsets = 0, 0, 0, 0, 0, 0, 0

@ -25,12 +25,15 @@
#include <tqpixmap.h>
#include <tqwidget.h>
#include <tqtimer.h>
#include <tqvaluelist.h>
#include "objkstheme.h"
#include "themeengine.h"
#include "themelegacy.h"
#include "themelegacy.moc"
const int MAX_STATES=8;
DefaultConfig::DefaultConfig( TQWidget *parent, TDEConfig *config )
:ThemeEngineConfig( parent, config )
{
@ -59,6 +62,8 @@ ThemeDefault::ThemeDefault( TQWidget *parent, const char *name, const TQStringLi
mActivePixmap = mInactivePixmap = 0L;
mState = 0;
for (int i=0; i<MAX_ICONS; ++i)
mIconOffsets[i]=0;
_readSettings();
_initUi();
@ -197,11 +202,11 @@ void ThemeDefault::_initUi()
// Attempt to find overrides elsewhere?
void ThemeDefault::_readSettings()
{
if( !mTheme )
if (!mTheme)
return;
TDEConfig *cfg = mTheme->themeConfig();
if( !cfg )
if (!cfg)
return;
cfg->setGroup( TQString("KSplash Theme: %1").arg(mTheme->theme()) );
@ -209,6 +214,14 @@ void ThemeDefault::_readSettings()
mIconsFlashing = cfg->readBoolEntry( "Icons Flashing", true );
TQColor df(Qt::white);
mLabelForeground = cfg->readColorEntry( "Label Foreground", &df );
TQValueList<int> io_list=cfg->readIntListEntry("Icon Offsets");
if (io_list.size() == MAX_ICONS)
{
TQValueList<int>::iterator io_it;
int i=0;
for (io_it = io_list.begin(); io_it != io_list.end(); ++io_it, ++i)
mIconOffsets[i]=*io_it;
}
}
/*
@ -219,8 +232,8 @@ void ThemeDefault::_readSettings()
*/
void ThemeDefault::slotUpdateState()
{
if( mState > 8 )
mState = 8;
if (mState >= MAX_STATES)
mState = MAX_STATES-1;
if( mIconsFlashing )
{
@ -230,7 +243,7 @@ void ThemeDefault::slotUpdateState()
mBarLabel->setPixmap(*mFlashPixmap2);
mFlashTimer->stop();
if( mState < 8 )
if( mState < MAX_STATES )
mFlashTimer->start(400);
}
else
@ -252,8 +265,6 @@ TQPixmap ThemeDefault::updateBarPixmap( int state )
TQPixmap x;
if( !mActivePixmap ) return( x );
#if BIDI
if( TQApplication::reverseLayout() )
{
if ( state > 7 )
@ -261,12 +272,10 @@ TQPixmap ThemeDefault::updateBarPixmap( int state )
}
#endif
offs = state * 58;
if (state == 3)
offs += 8;
else if (state == 6)
offs -= 8;
offs = state*58;
if (state>=0 && state<MAX_ICONS)
offs += mIconOffsets[state];
TQPixmap tmp(*mActivePixmap);
TQPainter p(&tmp);
#if BIDI

@ -19,6 +19,9 @@
#include <tqwidget.h>
#include "themeengine.h"
static const int MAX_ICONS=7;
class TQPixmap;
class TQTimer;
@ -88,8 +91,9 @@ private:
TQString _findPicture( const TQString &pic );
// Configurable Options
bool mIconsFlashing;
bool mIconsFlashing;
TQColor mLabelForeground;
int mIconOffsets[MAX_ICONS];
// Internals.
KProgress *mProgressBar;

Loading…
Cancel
Save