summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/styles/theme/othemebase.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/noncore/styles/theme/othemebase.cpp b/noncore/styles/theme/othemebase.cpp
index 00cea03..21d16f2 100644
--- a/noncore/styles/theme/othemebase.cpp
+++ b/noncore/styles/theme/othemebase.cpp
@@ -847,258 +847,262 @@ void OThemeBase::applyMiscResourceGroup( Config *config )
847 defaultFrame = config->readNumEntry( "FrameWidth", 2 ); 847 defaultFrame = config->readNumEntry( "FrameWidth", 2 );
848 cacheSize = config->readNumEntry( "Cache", 1024 ); 848 cacheSize = config->readNumEntry( "Cache", 1024 );
849 sbExtent = config->readNumEntry( "ScrollBarExtent", 16 ); 849 sbExtent = config->readNumEntry( "ScrollBarExtent", 16 );
850 850
851 config-> setGroup ( "General" ); 851 config-> setGroup ( "General" );
852 852
853 if ( config-> hasKey ( "foreground" )) fgcolor = strToColor ( config-> readEntry ( "foreground" )); 853 if ( config-> hasKey ( "foreground" )) fgcolor = strToColor ( config-> readEntry ( "foreground" ));
854 if ( config-> hasKey ( "background" )) bgcolor = strToColor ( config-> readEntry ( "background" )); 854 if ( config-> hasKey ( "background" )) bgcolor = strToColor ( config-> readEntry ( "background" ));
855 if ( config-> hasKey ( "selectForeground" )) selfgcolor = strToColor ( config-> readEntry ( "selectForeground" )); 855 if ( config-> hasKey ( "selectForeground" )) selfgcolor = strToColor ( config-> readEntry ( "selectForeground" ));
856 if ( config-> hasKey ( "selectBackground" )) selbgcolor = strToColor ( config-> readEntry ( "selectBackground" )); 856 if ( config-> hasKey ( "selectBackground" )) selbgcolor = strToColor ( config-> readEntry ( "selectBackground" ));
857 if ( config-> hasKey ( "windowForeground" )) winfgcolor = strToColor ( config-> readEntry ( "windowForeground" )); 857 if ( config-> hasKey ( "windowForeground" )) winfgcolor = strToColor ( config-> readEntry ( "windowForeground" ));
858 if ( config-> hasKey ( "windowBackground" )) winbgcolor = strToColor ( config-> readEntry ( "windowBackground" )); 858 if ( config-> hasKey ( "windowBackground" )) winbgcolor = strToColor ( config-> readEntry ( "windowBackground" ));
859} 859}
860 860
861void OThemeBase::readMiscResourceGroup() 861void OThemeBase::readMiscResourceGroup()
862{} 862{}
863 863
864void OThemeBase::applyResourceGroup( Config *config, int i, QString *copyfrom, QString *pixnames, QString *brdnames ) 864void OThemeBase::applyResourceGroup( Config *config, int i, QString *copyfrom, QString *pixnames, QString *brdnames )
865{ 865{
866 QString tmpStr; 866 QString tmpStr;
867 867
868 config-> setGroup ( widgetEntries [ i ] ); 868 config-> setGroup ( widgetEntries [ i ] );
869 869
870 tmpStr = config->readEntry( "CopyWidget", "" ); 870 tmpStr = config->readEntry( "CopyWidget", "" );
871 copyfrom [ i ] = tmpStr; 871 copyfrom [ i ] = tmpStr;
872 if ( !tmpStr.isEmpty() ) 872 if ( !tmpStr.isEmpty() )
873 return ; 873 return ;
874 874
875 // Scale hint 875 // Scale hint
876 tmpStr = config->readEntry( "Scale" ); 876 tmpStr = config->readEntry( "Scale" );
877 if ( tmpStr == "Full" ) 877 if ( tmpStr == "Full" )
878 scaleHints [ i ] = FullScale; 878 scaleHints [ i ] = FullScale;
879 else if ( tmpStr == "Horizontal" ) 879 else if ( tmpStr == "Horizontal" )
880 scaleHints [ i ] = HorizontalScale; 880 scaleHints [ i ] = HorizontalScale;
881 else if ( tmpStr == "Vertical" ) 881 else if ( tmpStr == "Vertical" )
882 scaleHints [ i ] = VerticalScale; 882 scaleHints [ i ] = VerticalScale;
883 else { 883 else {
884 if ( tmpStr != "Tile" && !tmpStr.isEmpty() ) 884 if ( tmpStr != "Tile" && !tmpStr.isEmpty() )
885 qDebug ( "OThemeBase: Unrecognized scale option %s, using Tile.\n", tmpStr.ascii() ); 885 qDebug ( "OThemeBase: Unrecognized scale option %s, using Tile.\n", tmpStr.ascii() );
886 scaleHints [ i ] = TileScale; 886 scaleHints [ i ] = TileScale;
887 } 887 }
888 888
889 889
890 // Gradient type 890 // Gradient type
891 tmpStr = config->readEntry( "Gradient" ); 891 tmpStr = config->readEntry( "Gradient" );
892 if ( tmpStr == "Diagonal" ) 892 if ( tmpStr == "Diagonal" )
893 gradients [ i ] = GrDiagonal; 893 gradients [ i ] = GrDiagonal;
894 else if ( tmpStr == "Horizontal" ) 894 else if ( tmpStr == "Horizontal" )
895 gradients [ i ] = GrHorizontal; 895 gradients [ i ] = GrHorizontal;
896 else if ( tmpStr == "Vertical" ) 896 else if ( tmpStr == "Vertical" )
897 gradients [ i ] = GrVertical; 897 gradients [ i ] = GrVertical;
898 else if ( tmpStr == "Pyramid" ) 898 else if ( tmpStr == "Pyramid" )
899 gradients [ i ] = GrPyramid; 899 gradients [ i ] = GrPyramid;
900 else if ( tmpStr == "Rectangle" ) 900 else if ( tmpStr == "Rectangle" )
901 gradients [ i ] = GrRectangle; 901 gradients [ i ] = GrRectangle;
902 else if ( tmpStr == "Elliptic" ) 902 else if ( tmpStr == "Elliptic" )
903 gradients [ i ] = GrElliptic; 903 gradients [ i ] = GrElliptic;
904 else if ( tmpStr == "ReverseBevel" ) 904 else if ( tmpStr == "ReverseBevel" )
905 gradients [ i ] = GrReverseBevel; 905 gradients [ i ] = GrReverseBevel;
906 else { 906 else {
907 if ( tmpStr != "None" && !tmpStr.isEmpty() ) 907 if ( tmpStr != "None" && !tmpStr.isEmpty() )
908 qDebug ( "OThemeBase: Unrecognized gradient option %s, using None.\n", tmpStr.ascii() ); 908 qDebug ( "OThemeBase: Unrecognized gradient option %s, using None.\n", tmpStr.ascii() );
909 gradients [ i ] = GrNone; 909 gradients [ i ] = GrNone;
910 } 910 }
911 911
912 // Blend intensity 912 // Blend intensity
913 blends[ i ] = config->readEntry( "BlendIntensity", "0.0" ).toDouble(); 913 blends[ i ] = config->readEntry( "BlendIntensity", "0.0" ).toDouble();
914 914
915 // Bevel contrast 915 // Bevel contrast
916 bContrasts[ i ] = config->readNumEntry( "BevelContrast", 0 ); 916 bContrasts[ i ] = config->readNumEntry( "BevelContrast", 0 );
917 917
918 // Border width 918 // Border width
919 borders [ i ] = config->readNumEntry( "Border", 1 ); 919 borders [ i ] = config->readNumEntry( "Border", 1 );
920 920
921 // Highlight width 921 // Highlight width
922 highlights [ i ] = config->readNumEntry( "Highlight", 1 ); 922 highlights [ i ] = config->readNumEntry( "Highlight", 1 );
923 923
924 // Gradient low color or blend background 924 // Gradient low color or blend background
925 if ( config->hasKey( "GradientLow" ) && ( gradients[ i ] != GrNone || blends[ i ] != 0.0 )) 925 if ( config->hasKey( "GradientLow" ) && ( gradients[ i ] != GrNone || blends[ i ] != 0.0 ))
926 grLowColors[ i ] = new QColor( strToColor ( config->readEntry( "GradientLow", qApp->palette().normal().background().name() ))); 926 grLowColors[ i ] = new QColor( strToColor ( config->readEntry( "GradientLow", qApp->palette().normal().background().name() )));
927 else 927 else
928 grLowColors[ i ] = NULL; 928 grLowColors[ i ] = NULL;
929 929
930 930
931 // Gradient high color 931 // Gradient high color
932 if ( config->hasKey( "GradientHigh" ) && ( gradients[ i ] != GrNone )) 932 if ( config->hasKey( "GradientHigh" ) && ( gradients[ i ] != GrNone ))
933 grHighColors[ i ] = new QColor( strToColor ( config->readEntry( "GradientHigh", qApp->palette().normal().background().name() ))); 933 grHighColors[ i ] = new QColor( strToColor ( config->readEntry( "GradientHigh", qApp->palette().normal().background().name() )));
934 else 934 else
935 grHighColors[ i ] = NULL; 935 grHighColors[ i ] = NULL;
936 936
937 // Extended color attributes 937 // Extended color attributes
938 if ( config->hasKey( "Foreground" ) || config->hasKey( "Background" ) ) { 938 if ( config->hasKey( "Foreground" ) || config->hasKey( "Background" ) ) {
939 QColor bg = strToColor( config->readEntry( "Background", qApp->palette().normal().background().name() )); 939 QColor bg = strToColor( config->readEntry( "Background", qApp->palette().normal().background().name() ));
940 QColor fg = strToColor( config->readEntry( "Foreground", qApp->palette().normal().foreground().name() )); 940 QColor fg = strToColor( config->readEntry( "Foreground", qApp->palette().normal().foreground().name() ));
941 941
942 colors[ i ] = makeColorGroup( fg, bg, Qt::WindowsStyle ); 942 colors[ i ] = makeColorGroup( fg, bg, Qt::WindowsStyle );
943 } 943 }
944 else 944 else
945 colors[ i ] = NULL; 945 colors[ i ] = NULL;
946 946
947 // Pixmap 947 // Pixmap
948 tmpStr = config->readEntry( "Pixmap", "" ); 948 tmpStr = config->readEntry( "Pixmap", "" );
949 pixnames[ i ] = tmpStr; 949 pixnames[ i ] = tmpStr;
950 duplicate[ i ] = false; 950 duplicate[ i ] = false;
951 pixmaps[ i ] = NULL; 951 pixmaps[ i ] = NULL;
952 images[ i ] = NULL; 952 images[ i ] = NULL;
953 953
954 954
955 // Pixmap border 955 // Pixmap border
956 tmpStr = config->readEntry( "PixmapBorder", "" ); 956 tmpStr = config->readEntry( "PixmapBorder", "" );
957 brdnames[ i ] = tmpStr; 957 brdnames[ i ] = tmpStr;
958 pbDuplicate[ i ] = false; 958 pbDuplicate[ i ] = false;
959 pbPixmaps[ i ] = NULL; 959 pbPixmaps[ i ] = NULL;
960 pbWidth[ i ] = 0; 960 pbWidth[ i ] = 0;
961 if ( !tmpStr.isEmpty() ) { 961 if ( !tmpStr.isEmpty() ) {
962 pbWidth[ i ] = config->readNumEntry( "PixmapBWidth", 0 ); 962 pbWidth[ i ] = config->readNumEntry( "PixmapBWidth", 0 );
963 if ( pbWidth[ i ] == 0 ) { 963 if ( pbWidth[ i ] == 0 ) {
964 qDebug ( "OThemeBase: No border width specified for pixmapped border widget %s\n", widgetEntries[ i ] ); 964 qDebug ( "OThemeBase: No border width specified for pixmapped border widget %s\n", widgetEntries[ i ] );
965 qDebug ( "OThemeBase: Using default of 2.\n" ); 965 qDebug ( "OThemeBase: Using default of 2.\n" );
966 pbWidth[ i ] = 2; 966 pbWidth[ i ] = 2;
967 } 967 }
968 } 968 }
969 969
970 970
971 // Various widget specific settings. This was more efficent when bunched 971 // Various widget specific settings. This was more efficent when bunched
972 // together in the misc group, but this makes an easier to read config. 972 // together in the misc group, but this makes an easier to read config.
973 if ( i == SliderGroove ) 973 if ( i == SliderGroove )
974 roundedSlider = config->readBoolEntry( "SmallGroove", false ); 974 roundedSlider = config->readBoolEntry( "SmallGroove", false );
975 else if ( i == ActiveTab || i == InactiveTab ) 975 else if ( i == ActiveTab ) {
976 aTabLine = iTabLine = config->readBoolEntry( "BottomLine", true ); 976 aTabLine = config->readBoolEntry( "BottomLine", true );
977 }
978 else if ( i == InactiveTab ) {
979 iTabLine = config->readBoolEntry( "BottomLine", true );
980 }
977 else if ( i == Splitter ) 981 else if ( i == Splitter )
978 splitterWidth = config->readNumEntry( "Width", 10 ); 982 splitterWidth = config->readNumEntry( "Width", 10 );
979 else if ( i == ComboBox || i == ComboBoxDown ) { 983 else if ( i == ComboBox || i == ComboBoxDown ) {
980 roundedCombo = config->readBoolEntry( "Round", false ); 984 roundedCombo = config->readBoolEntry( "Round", false );
981 } 985 }
982 else if ( i == PushButton || i == PushButtonDown ) { 986 else if ( i == PushButton || i == PushButtonDown ) {
983 btnXShift = config->readNumEntry( "XShift", 0 ); 987 btnXShift = config->readNumEntry( "XShift", 0 );
984 btnYShift = config->readNumEntry( "YShift", 0 ); 988 btnYShift = config->readNumEntry( "YShift", 0 );
985 focus3D = config->readBoolEntry( "3DFocusRect", false ); 989 focus3D = config->readBoolEntry( "3DFocusRect", false );
986 focus3DOffset = config->readBoolEntry( "3DFocusOffset", 0 ); 990 focus3DOffset = config->readBoolEntry( "3DFocusOffset", 0 );
987 roundedButton = config->readBoolEntry( "Round", false ); 991 roundedButton = config->readBoolEntry( "Round", false );
988 } 992 }
989} 993}
990 994
991 995
992void OThemeBase::readResourceGroup( int i, QString *copyfrom, QString *pixnames, QString *brdnames, 996void OThemeBase::readResourceGroup( int i, QString *copyfrom, QString *pixnames, QString *brdnames,
993 bool *loadArray ) 997 bool *loadArray )
994{ 998{
995 if ( loadArray[ i ] == true ) { 999 if ( loadArray[ i ] == true ) {
996 return ; // already been preloaded. 1000 return ; // already been preloaded.
997 } 1001 }
998 1002
999 int tmpVal; 1003 int tmpVal;
1000 QString tmpStr; 1004 QString tmpStr;
1001 1005
1002 tmpStr = copyfrom [ i ]; 1006 tmpStr = copyfrom [ i ];
1003 if ( !tmpStr.isEmpty() ) { // Duplicate another widget's config 1007 if ( !tmpStr.isEmpty() ) { // Duplicate another widget's config
1004 int sIndex; 1008 int sIndex;
1005 loadArray[ i ] = true; 1009 loadArray[ i ] = true;
1006 for ( sIndex = 0; sIndex < WIDGETS; ++sIndex ) { 1010 for ( sIndex = 0; sIndex < WIDGETS; ++sIndex ) {
1007 if ( tmpStr == widgetEntries[ sIndex ] ) { 1011 if ( tmpStr == widgetEntries[ sIndex ] ) {
1008 if ( !loadArray[ sIndex ] ) // hasn't been loaded yet 1012 if ( !loadArray[ sIndex ] ) // hasn't been loaded yet
1009 readResourceGroup( sIndex, copyfrom, pixnames, brdnames, 1013 readResourceGroup( sIndex, copyfrom, pixnames, brdnames,
1010 loadArray ); 1014 loadArray );
1011 break; 1015 break;
1012 } 1016 }
1013 } 1017 }
1014 if ( loadArray[ sIndex ] ) { 1018 if ( loadArray[ sIndex ] ) {
1015 copyWidgetConfig( sIndex, i, pixnames, brdnames ); 1019 copyWidgetConfig( sIndex, i, pixnames, brdnames );
1016 } 1020 }
1017 else 1021 else
1018 qDebug ( "OThemeBase: Unable to identify source widget for %s\n", widgetEntries[ i ] ); 1022 qDebug ( "OThemeBase: Unable to identify source widget for %s\n", widgetEntries[ i ] );
1019 return ; 1023 return ;
1020 } 1024 }
1021 // special inheritance for disabled arrows (these are tri-state unlike 1025 // special inheritance for disabled arrows (these are tri-state unlike
1022 // the rest of what we handle). 1026 // the rest of what we handle).
1023 for ( tmpVal = DisArrowUp; tmpVal <= DisArrowRight; ++tmpVal ) { 1027 for ( tmpVal = DisArrowUp; tmpVal <= DisArrowRight; ++tmpVal ) {
1024 if ( tmpVal == i ) { 1028 if ( tmpVal == i ) {
1025 tmpStr = pixnames [ i ]; 1029 tmpStr = pixnames [ i ];
1026 if ( tmpStr.isEmpty() ) { 1030 if ( tmpStr.isEmpty() ) {
1027 copyWidgetConfig( ArrowUp + ( tmpVal - DisArrowUp ), i, pixnames, 1031 copyWidgetConfig( ArrowUp + ( tmpVal - DisArrowUp ), i, pixnames,
1028 brdnames ); 1032 brdnames );
1029 return ; 1033 return ;
1030 } 1034 }
1031 } 1035 }
1032 } 1036 }
1033 1037
1034 // Pixmap 1038 // Pixmap
1035 int existing; 1039 int existing;
1036 // Scan for duplicate pixmaps(two identical pixmaps, tile scale, no blend, 1040 // Scan for duplicate pixmaps(two identical pixmaps, tile scale, no blend,
1037 // no pixmapped border) 1041 // no pixmapped border)
1038 if ( !pixnames [ i ].isEmpty() ) { 1042 if ( !pixnames [ i ].isEmpty() ) {
1039 for ( existing = 0; existing < i; ++existing ) { 1043 for ( existing = 0; existing < i; ++existing ) {
1040 if ( pixnames[ i ] == pixnames[ existing ] && scaleHints[ i ] == TileScale && 1044 if ( pixnames[ i ] == pixnames[ existing ] && scaleHints[ i ] == TileScale &&
1041 scaleHints[ existing ] == TileScale && blends[ existing ] == 0.0 && 1045 scaleHints[ existing ] == TileScale && blends[ existing ] == 0.0 &&
1042 blends[ i ] == 0.0 ) { 1046 blends[ i ] == 0.0 ) {
1043 pixmaps[ i ] = pixmaps[ existing ]; 1047 pixmaps[ i ] = pixmaps[ existing ];
1044 duplicate[ i ] = true; 1048 duplicate[ i ] = true;
1045 break; 1049 break;
1046 } 1050 }
1047 } 1051 }
1048 } 1052 }
1049 // load 1053 // load
1050 if ( !duplicate[ i ] && !pixnames[ i ].isEmpty() ) { 1054 if ( !duplicate[ i ] && !pixnames[ i ].isEmpty() ) {
1051 pixmaps[ i ] = loadPixmap( pixnames[ i ] ); 1055 pixmaps[ i ] = loadPixmap( pixnames[ i ] );
1052 // load and save images for scaled/blended widgets for speed. 1056 // load and save images for scaled/blended widgets for speed.
1053 if ( scaleHints[ i ] == TileScale && blends[ i ] == 0.0 ) 1057 if ( scaleHints[ i ] == TileScale && blends[ i ] == 0.0 )
1054 images[ i ] = NULL; 1058 images[ i ] = NULL;
1055 else 1059 else
1056 images[ i ] = loadImage( pixnames[ i ] ); 1060 images[ i ] = loadImage( pixnames[ i ] );
1057 } 1061 }
1058 1062
1059 // Pixmap border 1063 // Pixmap border
1060 if ( !brdnames [ i ]. isEmpty () ) { 1064 if ( !brdnames [ i ]. isEmpty () ) {
1061 // duplicate check 1065 // duplicate check
1062 for ( existing = 0; existing < i; ++existing ) { 1066 for ( existing = 0; existing < i; ++existing ) {
1063 if ( brdnames [i] == brdnames[ existing ] ) { 1067 if ( brdnames [i] == brdnames[ existing ] ) {
1064 pbPixmaps[ i ] = pbPixmaps[ existing ]; 1068 pbPixmaps[ i ] = pbPixmaps[ existing ];
1065 pbDuplicate[ i ] = true; 1069 pbDuplicate[ i ] = true;
1066 break; 1070 break;
1067 } 1071 }
1068 } 1072 }
1069 } 1073 }
1070 // load 1074 // load
1071 if ( !pbDuplicate[ i ] && !brdnames[ i ].isEmpty() ) 1075 if ( !pbDuplicate[ i ] && !brdnames[ i ].isEmpty() )
1072 pbPixmaps[ i ] = loadPixmap( brdnames[ i ] ); 1076 pbPixmaps[ i ] = loadPixmap( brdnames[ i ] );
1073 1077
1074 if ( pbPixmaps[ i ] && !pbDuplicate[ i ] ) 1078 if ( pbPixmaps[ i ] && !pbDuplicate[ i ] )
1075 generateBorderPix( i ); 1079 generateBorderPix( i );
1076 1080
1077 loadArray[ i ] = true; 1081 loadArray[ i ] = true;
1078} 1082}
1079 1083
1080 1084
1081OThemePixmap::OThemePixmap( bool timer ) 1085OThemePixmap::OThemePixmap( bool timer )
1082 : QPixmap() 1086 : QPixmap()
1083{ 1087{
1084 if(timer){ 1088 if(timer){
1085 t = new QTime; 1089 t = new QTime;
1086 t->start(); 1090 t->start();
1087 } 1091 }
1088 else 1092 else
1089 t = NULL; 1093 t = NULL;
1090 int i; 1094 int i;
1091 for ( i = 0; i < 8; ++i ) 1095 for ( i = 0; i < 8; ++i )
1092 b[ i ] = NULL; 1096 b[ i ] = NULL;
1093} 1097}
1094 1098
1095OThemePixmap::OThemePixmap( const OThemePixmap &p ) 1099OThemePixmap::OThemePixmap( const OThemePixmap &p )
1096 : QPixmap( p ) 1100 : QPixmap( p )
1097{ 1101{
1098 if(p.t){ 1102 if(p.t){
1099 t = new QTime; 1103 t = new QTime;
1100 t->start(); 1104 t->start();
1101 } 1105 }
1102 else 1106 else
1103 t = NULL; 1107 t = NULL;
1104 int i; 1108 int i;