summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichele Calgaro <[email protected]>2014-03-25 13:27:22 +0900
committerMichele Calgaro <[email protected]>2014-03-25 13:27:22 +0900
commite861c6188bc38088422b32b505daff627915d53b (patch)
treeebdd3cd02aabbe185ccca63a7d6abc408e8c523d
parent504dfac148d5fdaaa88c7b932284329bc5d4e6a8 (diff)
downloadtdebase-e861c6188bc38088422b32b505daff627915d53b.tar.gz
tdebase-e861c6188bc38088422b32b505daff627915d53b.zip
Fixed KSplash icon flashing position problem for 'default' theme engine.
Removed nasty hardcoded hack and added 'Icon Offsets' option to Theme.rc file.
-rw-r--r--doc/ksplashml/index.docbook10
-rw-r--r--ksplashml/pics/themes/TDE-Classic/Theme.rc3
-rw-r--r--ksplashml/pics/themes/default/Theme.rc8
-rw-r--r--ksplashml/themeengine/default/themelegacy.cpp35
-rw-r--r--ksplashml/themeengine/default/themelegacy.h6
5 files changed, 42 insertions, 20 deletions
diff --git a/doc/ksplashml/index.docbook b/doc/ksplashml/index.docbook
index bdd73ceae..f92e36a96 100644
--- a/doc/ksplashml/index.docbook
+++ b/doc/ksplashml/index.docbook
@@ -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>
diff --git a/ksplashml/pics/themes/TDE-Classic/Theme.rc b/ksplashml/pics/themes/TDE-Classic/Theme.rc
index f18415a0c..a03e5d2fb 100644
--- a/ksplashml/pics/themes/TDE-Classic/Theme.rc
+++ b/ksplashml/pics/themes/TDE-Classic/Theme.rc
@@ -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
diff --git a/ksplashml/pics/themes/default/Theme.rc b/ksplashml/pics/themes/default/Theme.rc
index 723b77571..00896eb33 100644
--- a/ksplashml/pics/themes/default/Theme.rc
+++ b/ksplashml/pics/themes/default/Theme.rc
@@ -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 \ No newline at end of file
diff --git a/ksplashml/themeengine/default/themelegacy.cpp b/ksplashml/themeengine/default/themelegacy.cpp
index 7cebc5a33..0e1242120 100644
--- a/ksplashml/themeengine/default/themelegacy.cpp
+++ b/ksplashml/themeengine/default/themelegacy.cpp
@@ -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
diff --git a/ksplashml/themeengine/default/themelegacy.h b/ksplashml/themeengine/default/themelegacy.h
index 0f73e80c1..1f56d05b0 100644
--- a/ksplashml/themeengine/default/themelegacy.h
+++ b/ksplashml/themeengine/default/themelegacy.h
@@ -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;