2010-07-07 10:49 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)

* contrib/hbide/idesaveload.prg
  * contrib/hbide/idestylesheets.prg
  * contrib/hbide/setup.ui
    + Implemented: application themes - a work-in-progress yet for 
      final implementation. Just have a fun to play with it currently.
      Next commit will see it to real fruitation.
This commit is contained in:
Pritpal Bedi
2010-07-07 17:54:56 +00:00
parent d01a607625
commit b0f79df642
4 changed files with 761 additions and 259 deletions

View File

@@ -16,6 +16,14 @@
The license applies to all entries newer than 2009-04-28.
*/
2010-07-07 10:49 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbide/idesaveload.prg
* contrib/hbide/idestylesheets.prg
* contrib/hbide/setup.ui
+ Implemented: application themes - a work-in-progress yet for
final implementation. Just have a fun to play with it currently.
Next commit will see it to real fruitation.
2010-07-07 19:02 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* src/pp/ppcore.c
! Extended one variable type to HB_ISIZ from int after

View File

@@ -165,6 +165,8 @@ CLASS IdeINI INHERIT IdeObject
DATA lCompletionWithArgs INIT .f.
DATA lCompleteArgumented INIT .f.
DATA aAppThemes INIT {}
METHOD new( oIde )
METHOD create( oIde )
METHOD load( cHbideIni )
@@ -377,6 +379,13 @@ METHOD IdeINI:save( cHbideIni )
NEXT
aadd( txt_, " " )
aadd( txt_, "[APPTHEMES]" )
aadd( txt_, " " )
FOR EACH s IN ::aAppThemes
aadd( txt_, "apptheme_" + hb_ntos( s:__enumIndex() ) + "=" + s )
NEXT
aadd( txt_, " " )
aadd( txt_, "[General]" )
aadd( txt_, " " )
@@ -448,6 +457,9 @@ METHOD IdeINI:load( cHbideIni )
CASE "[DBUPANELSINFO]"
nPart := "INI_DBUPANELSINFO"
EXIT
CASE "[APPTHEMES]"
nPart := "INI_APPTHEMES"
EXIT
OTHERWISE
DO CASE
CASE Left( s, 1 ) $ '#['
@@ -598,6 +610,11 @@ METHOD IdeINI:load( cHbideIni )
aadd( ::aDbuPanelsInfo, cVal )
ENDIF
CASE nPart == "INI_APPTHEMES"
IF hbide_parseKeyValPair( s, @cKey, @cVal )
aadd( ::aAppThemes, cVal )
ENDIF
ENDCASE
EXIT
ENDSWITCH
@@ -807,11 +824,13 @@ CLASS IdeSetup INHERIT IdeObject
"windowsvista", "cde", "motif", "plastique", "macintosh" }
DATA aKeyItems INIT {}
DATA nCurThemeSlot INIT 0
METHOD new( oIde )
METHOD create( oIde )
METHOD destroy()
METHOD show()
METHOD execEvent( cEvent, p )
METHOD execEvent( cEvent, p, p1 )
METHOD buildTree()
METHOD setSystemStyle( cStyle )
METHOD setBaseColor()
@@ -823,6 +842,11 @@ CLASS IdeSetup INHERIT IdeObject
METHOD eol()
METHOD buildKeywords()
METHOD populateKeyTableRow( nRow, cTxtCol1, cTxtCol2 )
METHOD populateThemeColors( nSlot, aRGB )
METHOD pullThemeColors( nSlot )
METHOD fetchThemeColorsString( nSlot )
METHOD pushThemeColors( nTheme )
METHOD pushThemesData()
ENDCLASS
@@ -877,6 +901,11 @@ METHOD IdeSetup:setIcons()
::oUI:q_buttonSelFont : setIcon( hbide_image( "font" ) )
::oUI:q_buttonThmAdd : setIcon( hbide_image( "dc_plus" ) )
::oUI:q_buttonThmDel : setIcon( hbide_image( "dc_delete" ) )
::oUI:q_buttonThmCpy : setIcon( hbide_image( "copy" ) )
::oUI:q_buttonThmSav : setIcon( hbide_image( "save" ) )
RETURN Self
/*----------------------------------------------------------------------*/
@@ -935,6 +964,23 @@ METHOD IdeSetup:connectSlots()
::connect( ::oUI:q_checkHorzRuler , "stateChanged(int)" , {|i| ::execEvent( "checkHorzRuler_stateChanged" , i ) } )
::connect( ::oUI:q_checkLineNumbers, "stateChanged(int)" , {|i| ::execEvent( "checkLineNumbers_stateChanged", i ) } )
::connect( ::oUI:q_sliderRed , "valueChanged(int)" , {|i| ::execEvent( "sliderValue_changed", i, "R" ) } )
::connect( ::oUI:q_sliderGreen , "valueChanged(int)" , {|i| ::execEvent( "sliderValue_changed", i, "G" ) } )
::connect( ::oUI:q_sliderBlue , "valueChanged(int)" , {|i| ::execEvent( "sliderValue_changed", i, "B" ) } )
::connect( ::oUI:q_radioSec1 , "clicked()" , {| | ::execEvent( "radioSection_clicked", 1 ) } )
::connect( ::oUI:q_radioSec2 , "clicked()" , {| | ::execEvent( "radioSection_clicked", 2 ) } )
::connect( ::oUI:q_radioSec3 , "clicked()" , {| | ::execEvent( "radioSection_clicked", 3 ) } )
::connect( ::oUI:q_radioSec4 , "clicked()" , {| | ::execEvent( "radioSection_clicked", 4 ) } )
::connect( ::oUI:q_radioSec5 , "clicked()" , {| | ::execEvent( "radioSection_clicked", 5 ) } )
::connect( ::oUI:q_buttonThmAdd , "clicked()" , {| | ::execEvent( "buttonThmAdd_clicked" ) } )
::connect( ::oUI:q_buttonThmDel , "clicked()" , {| | ::execEvent( "buttonThmDel_clicked" ) } )
::connect( ::oUI:q_buttonThmCpy , "clicked()" , {| | ::execEvent( "buttonThmCpy_clicked" ) } )
::connect( ::oUI:q_buttonThmSav , "clicked()" , {| | ::execEvent( "buttonThmSav_clicked" ) } )
::connect( ::oUI:q_listThemes , "currentRowChanged(int)" , {|i| ::execEvent( "listThemes_currentRowChanged", i ) } )
RETURN Self
/*----------------------------------------------------------------------*/
@@ -1029,10 +1075,31 @@ METHOD IdeSetup:populate()
::oUI:q_editTmpBkpPrd : setText( hb_ntos( ::oINI:nTmpBkpPrd ) )
::oUI:q_editBkpPath : setText( ::oINI:cBkpPath )
::oUI:q_editBkpSuffix : setText( ::oINI:cBkpSuffix )
/* Selections - Code Completion */
::oUI:q_checkListlWithArgs : setChecked( ::oINI:lCompletionWithArgs )
::oUI:q_checkCmplInclArgs : setChecked( ::oINI:lCompleteArgumented )
/* Themes */
::oUI:q_sliderRed:setMinimum( 0 )
::oUI:q_sliderRed:setMaximum( 255 )
::oUI:q_sliderGreen:setMinimum( 0 )
::oUI:q_sliderGreen:setMaximum( 255 )
::oUI:q_sliderBlue:setMinimum( 0 )
::oUI:q_sliderBlue:setMaximum( 255 )
::oUI:q_editSec1:setText( "0" )
::oUI:q_editSec5:setText( "1" )
::oUI:q_editSec1:setReadOnly( .t. )
::oUI:q_editSec5:setReadOnly( .t. )
::pushThemesData()
::connectSlots()
RETURN Self
/*----------------------------------------------------------------------*/
@@ -1074,11 +1141,14 @@ METHOD IdeSetup:show()
/*----------------------------------------------------------------------*/
METHOD IdeSetup:execEvent( cEvent, p )
METHOD IdeSetup:execEvent( cEvent, p, p1 )
LOCAL qItem, nIndex, qFontDlg, qFont, nOK, nRow, b_, q0, q1, nCol, w0, w1
// LOCAL qEvent
LOCAL aRGB, nSlot, qFrame, aGrad, n, cCSS, cTheme
HB_SYMBOL_UNUSED( p1 )
SWITCH cEvent
CASE "buttonSelFont_clicked"
qFont := QFont():new( ::oINI:cFontName, ::oINI:nPointSize )
qFont:setFixedPitch( .t. )
@@ -1227,12 +1297,175 @@ METHOD IdeSetup:execEvent( cEvent, p )
#endif
ENDIF
CASE "radioSection_clicked"
::nCurThemeSlot := p
IF empty( aRGB := ::pullThemeColors( p ) )
aRGB := { 0,0,0 }
ENDIF
::oUI:q_sliderRed : setValue( aRGB[ 1 ] )
::oUI:q_sliderGreen : setValue( aRGB[ 2 ] )
::oUI:q_sliderBlue : setValue( aRGB[ 3 ] )
EXIT
CASE "sliderValue_changed"
#if 0
nSlot := iif( ::oUI:q_radioSec1:isChecked(), 1, ;
iif( ::oUI:q_radioSec2:isChecked(), 2, ;
iif( ::oUI:q_radioSec3:isChecked(), 3, ;
iif( ::oUI:q_radioSec4:isChecked(), 4, ;
iif( ::oUI:q_radioSec5:isChecked(), 5, 0 ) ) ) ) )
#endif
nSlot := ::nCurThemeSlot
IF nSlot > 0
qFrame := { ::oUI:q_frameSec1, ::oUI:q_frameSec2, ::oUI:q_frameSec3, ::oUI:q_frameSec4, ::oUI:q_frameSec5 }[ nSlot ]
aRGB := { ::oUI:q_sliderRed:value(), ::oUI:q_sliderGreen:value(), ::oUI:q_sliderBlue:value() }
::populateThemeColors( nSlot, aRGB )
qFrame:setStyleSheet( "background-color: " + hbide_rgbString( aRGB ) + ";" )
ENDIF
aGrad := {}
FOR nSlot := 1 TO 5
n := val( { ::oUI:q_editSec1, ::oUI:q_editSec2, ::oUI:q_editSec3, ::oUI:q_editSec4, ::oUI:q_editSec5 }[ nSlot ]:text() )
IF !empty( aRGB := ::pullThemeColors( nSlot ) )
aadd( aGrad, { n, aRGB[ 1 ], aRGB[ 2 ], aRGB[ 3 ] } )
ENDIF
NEXT
IF !empty( aGrad )
cCSS := 'background-color: qlineargradient(x1:0, y1:0, x2:1, y2:0, ' + hbide_buildGradientString( aGrad ) + ");"
::oUI:q_frameHorz:setStyleSheet( cCSS )
cCSS := 'background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, ' + hbide_buildGradientString( aGrad ) + ");"
::oUI:q_frameVert:setStyleSheet( cCSS )
ENDIF
EXIT
CASE "listThemes_currentRowChanged"
::pushThemeColors( p + 1 )
EXIT
CASE "buttonThmAdd_clicked"
IF !empty( cTheme := hbide_fetchAString( ::oDlg:oWidget, cTheme, "Name the Theme", "New Theme" ) )
aadd( ::oINI:aAppThemes, cTheme + "," + "," + "," + "," )
qItem := QListWidgetItem():new()
qItem:setText( cTheme )
::oUI:q_listThemes:addItem_1( qItem )
::oUI:q_listThemes:setCurrentRow( len( ::oINI:aAppThemes ) - 1 )
ENDIF
EXIT
CASE "buttonThmCpy_clicked"
EXIT
CASE "buttonThmDel_clicked"
EXIT
CASE "buttonThmSav_clicked"
IF ( n := ::oUI:q_listThemes:currentRow() ) > -1
::oINI:aAppThemes[ n + 1 ] := QListWidgetItem():from( ::oUI:q_listThemes:currentItem() ):text() + "," + ;
::fetchThemeColorsString()
ENDIF
EXIT
ENDSWITCH
RETURN nRow //Self
/*----------------------------------------------------------------------*/
METHOD IdeSetup:pushThemesData()
LOCAL s, a_, qItem
FOR EACH s IN ::oINI:aAppThemes
a_:= hb_aTokens( s, "," )
qItem := QListWidgetItem():new()
qItem:setText( a_[ 1 ] )
::oUI:q_listThemes:addItem_1( qItem )
::pushThemeColors( s:__enumIndex() )
NEXT
IF !empty( ::oINI:aAppThemes )
::oUI:q_listThemes:setCurrentRow( 0 )
ENDIF
::oUI:q_radioSec1:click()
RETURN Self
/*------------------------------------------------------------------------*/
METHOD IdeSetup:pushThemeColors( nTheme )
LOCAL n, a_, i, aRGB, nSlot
IF nTheme >= 1 .AND. nTheme <= len( ::oINI:aAppThemes )
a_:= hb_aTokens( ::oINI:aAppThemes[ nTheme ], "," )
aSize( a_, 6 )
DEFAULT a_[ 1 ] TO ""
DEFAULT a_[ 2 ] TO ""
DEFAULT a_[ 3 ] TO ""
DEFAULT a_[ 4 ] TO ""
DEFAULT a_[ 5 ] TO ""
DEFAULT a_[ 6 ] TO ""
FOR i := 2 TO 6
nSlot := i - 1
IF !empty( a_[ i ] )
aRGB := hb_aTokens( a_[ i ], " " )
FOR EACH n IN aRGB
n := val( n )
NEXT
{ ::oUI:q_editSec1, ::oUI:q_editSec2, ::oUI:q_editSec3, ::oUI:q_editSec4, ::oUI:q_editSec5 }[ nSlot ]:setText( hb_ntos( aRGB[ 1 ] ) )
::populateThemeColors( nSlot, { aRGB[ 2 ], aRGB[ 3 ], aRGB[ 4 ] } )
ENDIF
NEXT
{ ::oUI:q_radioSec1, ::oUI:q_radioSec2, ::oUI:q_radioSec3, ::oUI:q_radioSec4, ::oUI:q_radioSec5 }[ nSlot ]:click()
ENDIF
RETURN Self
/*------------------------------------------------------------------------*/
METHOD IdeSetup:populateThemeColors( nSlot, aRGB )
{ ::oUI:q_editR1, ::oUI:q_editR2, ::oUI:q_editR3, ::oUI:q_editR4, ::oUI:q_editR5 }[ nSlot ]:setText( hb_ntos( aRGB[ 1 ] ) )
{ ::oUI:q_editG1, ::oUI:q_editG2, ::oUI:q_editG3, ::oUI:q_editG4, ::oUI:q_editG5 }[ nSlot ]:setText( hb_ntos( aRGB[ 2 ] ) )
{ ::oUI:q_editB1, ::oUI:q_editB2, ::oUI:q_editB3, ::oUI:q_editB4, ::oUI:q_editB5 }[ nSlot ]:setText( hb_ntos( aRGB[ 3 ] ) )
RETURN Self
/*------------------------------------------------------------------------*/
METHOD IdeSetup:fetchThemeColorsString( nSlot )
LOCAL s := ""
IF empty( nSlot )
FOR nSlot := 1 TO 5
s += { ::oUI:q_editSec1, ::oUI:q_editSec2, ::oUI:q_editSec3, ::oUI:q_editSec4, ::oUI:q_editSec5 }[ nSlot ]:text() + " "
s += { ::oUI:q_editR1, ::oUI:q_editR2, ::oUI:q_editR3, ::oUI:q_editR4, ::oUI:q_editR5 }[ nSlot ]:text() + " "
s += { ::oUI:q_editG1, ::oUI:q_editG2, ::oUI:q_editG3, ::oUI:q_editG4, ::oUI:q_editG5 }[ nSlot ]:text() + " "
s += { ::oUI:q_editB1, ::oUI:q_editB2, ::oUI:q_editB3, ::oUI:q_editB4, ::oUI:q_editB5 }[ nSlot ]:text()
s += ","
NEXT
ELSE
ENDIF
RETURN s
/*------------------------------------------------------------------------*/
METHOD IdeSetup:pullThemeColors( nSlot )
LOCAL aRGB := {}
IF !empty( { ::oUI:q_editSec1, ::oUI:q_editSec2, ::oUI:q_editSec3, ::oUI:q_editSec4, ::oUI:q_editSec5 }[ nSlot ]:text() )
aadd( aRGB, val( { ::oUI:q_editR1, ::oUI:q_editR2, ::oUI:q_editR3, ::oUI:q_editR4, ::oUI:q_editR5 }[ nSlot ]:text() ) )
aadd( aRGB, val( { ::oUI:q_editG1, ::oUI:q_editG2, ::oUI:q_editG3, ::oUI:q_editG4, ::oUI:q_editG5 }[ nSlot ]:text() ) )
aadd( aRGB, val( { ::oUI:q_editB1, ::oUI:q_editB2, ::oUI:q_editB3, ::oUI:q_editB4, ::oUI:q_editB5 }[ nSlot ]:text() ) )
ENDIF
RETURN aRGB
/*------------------------------------------------------------------------*/
METHOD IdeSetup:populateKeyTableRow( nRow, cTxtCol1, cTxtCol2 )
LOCAL lAppend := len( ::aKeyItems ) < nRow
LOCAL q0, q1

View File

@@ -461,12 +461,17 @@ FUNCTION hbide_cssColorString( cPart )
/*----------------------------------------------------------------------*/
STATIC FUNCTION hbide_rgbString( nR, nG, nB )
RETURN "rgb(" + hb_ntos( nR ) + "," + hb_ntos( nG ) + "," + hb_ntos( nB ) + ")"
FUNCTION hbide_rgbString( nR, nG, nB )
IF hb_isArray( nR )
RETURN "rgb(" + hb_ntos( nR[ 1 ] ) + "," + hb_ntos( nR[ 2 ] ) + "," + hb_ntos( nR[ 3 ] ) + ")"
ELSE
RETURN "rgb(" + hb_ntos( nR ) + "," + hb_ntos( nG ) + "," + hb_ntos( nB ) + ")"
ENDIF
RETURN ""
/*----------------------------------------------------------------------*/
STATIC FUNCTION hbide_buildGradientString( aGrands )
FUNCTION hbide_buildGradientString( aGrands )
LOCAL a_, s := ""
FOR EACH a_ IN aGrands

View File

@@ -1636,33 +1636,17 @@
<x>10</x>
<y>8</y>
<width>99</width>
<height>135</height>
<height>123</height>
</rect>
</property>
</widget>
<widget class="QFrame" name="frameVert">
<property name="geometry">
<rect>
<x>118</x>
<y>8</y>
<width>65</width>
<height>135</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
<widget class="QFrame" name="frameHorz">
<property name="geometry">
<rect>
<x>193</x>
<y>9</y>
<width>149</width>
<height>133</height>
<x>144</x>
<y>8</y>
<width>53</width>
<height>123</height>
</rect>
</property>
<property name="frameShape">
@@ -1672,75 +1656,451 @@
<enum>QFrame::Raised</enum>
</property>
</widget>
<widget class="QLineEdit" name="editSec1">
<widget class="QFrame" name="frameVert">
<property name="geometry">
<rect>
<x>12</x>
<y>174</y>
<width>49</width>
<height>20</height>
<x>207</x>
<y>8</y>
<width>135</width>
<height>123</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
<widget class="QLabel" name="label_19">
<widget class="QGroupBox" name="groupBox_23">
<property name="geometry">
<rect>
<x>12</x>
<y>152</y>
<width>53</width>
<height>16</height>
<x>10</x>
<y>138</y>
<width>331</width>
<height>155</height>
</rect>
</property>
<property name="text">
<string>Sections</string>
<property name="title">
<string/>
</property>
<widget class="QLineEdit" name="editSec5">
<property name="geometry">
<rect>
<x>50</x>
<y>128</y>
<width>49</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QLineEdit" name="editSec1">
<property name="geometry">
<rect>
<x>50</x>
<y>16</y>
<width>49</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QLineEdit" name="editSec2">
<property name="geometry">
<rect>
<x>50</x>
<y>44</y>
<width>49</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QLineEdit" name="editSec4">
<property name="geometry">
<rect>
<x>50</x>
<y>100</y>
<width>49</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QLineEdit" name="editSec3">
<property name="geometry">
<rect>
<x>50</x>
<y>72</y>
<width>49</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QLabel" name="label_19">
<property name="geometry">
<rect>
<x>8</x>
<y>18</y>
<width>43</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>Sec 0</string>
</property>
</widget>
<widget class="QLabel" name="label_23">
<property name="geometry">
<rect>
<x>8</x>
<y>130</y>
<width>43</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>Sec 1</string>
</property>
</widget>
<widget class="QLabel" name="label_24">
<property name="geometry">
<rect>
<x>8</x>
<y>48</y>
<width>37</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>Sec ?</string>
</property>
</widget>
<widget class="QLabel" name="label_25">
<property name="geometry">
<rect>
<x>8</x>
<y>76</y>
<width>37</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>Sec ?</string>
</property>
</widget>
<widget class="QLabel" name="label_26">
<property name="geometry">
<rect>
<x>8</x>
<y>104</y>
<width>37</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>Sec ?</string>
</property>
</widget>
<widget class="QLineEdit" name="editR1">
<property name="geometry">
<rect>
<x>198</x>
<y>16</y>
<width>29</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QLineEdit" name="editG1">
<property name="geometry">
<rect>
<x>242</x>
<y>16</y>
<width>29</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QLineEdit" name="editB1">
<property name="geometry">
<rect>
<x>284</x>
<y>16</y>
<width>29</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QLineEdit" name="editG2">
<property name="geometry">
<rect>
<x>242</x>
<y>44</y>
<width>29</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QLineEdit" name="editB2">
<property name="geometry">
<rect>
<x>284</x>
<y>44</y>
<width>29</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QLineEdit" name="editR2">
<property name="geometry">
<rect>
<x>198</x>
<y>44</y>
<width>29</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QLineEdit" name="editG3">
<property name="geometry">
<rect>
<x>242</x>
<y>72</y>
<width>29</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QLineEdit" name="editB3">
<property name="geometry">
<rect>
<x>284</x>
<y>72</y>
<width>29</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QLineEdit" name="editR3">
<property name="geometry">
<rect>
<x>198</x>
<y>72</y>
<width>29</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QLineEdit" name="editG4">
<property name="geometry">
<rect>
<x>242</x>
<y>100</y>
<width>29</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QLineEdit" name="editB4">
<property name="geometry">
<rect>
<x>284</x>
<y>100</y>
<width>29</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QLineEdit" name="editR4">
<property name="geometry">
<rect>
<x>198</x>
<y>100</y>
<width>29</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QLineEdit" name="editG5">
<property name="geometry">
<rect>
<x>242</x>
<y>128</y>
<width>29</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QLineEdit" name="editB5">
<property name="geometry">
<rect>
<x>284</x>
<y>128</y>
<width>29</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QLineEdit" name="editR5">
<property name="geometry">
<rect>
<x>196</x>
<y>128</y>
<width>31</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QRadioButton" name="radioSec1">
<property name="geometry">
<rect>
<x>110</x>
<y>16</y>
<width>19</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QRadioButton" name="radioSec2">
<property name="geometry">
<rect>
<x>110</x>
<y>44</y>
<width>19</width>
<height>19</height>
</rect>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QRadioButton" name="radioSec3">
<property name="geometry">
<rect>
<x>110</x>
<y>72</y>
<width>19</width>
<height>19</height>
</rect>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QRadioButton" name="radioSec4">
<property name="geometry">
<rect>
<x>110</x>
<y>100</y>
<width>19</width>
<height>19</height>
</rect>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QRadioButton" name="radioSec5">
<property name="geometry">
<rect>
<x>110</x>
<y>128</y>
<width>19</width>
<height>19</height>
</rect>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QFrame" name="frameSec1">
<property name="geometry">
<rect>
<x>134</x>
<y>16</y>
<width>51</width>
<height>20</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
<widget class="QFrame" name="frameSec2">
<property name="geometry">
<rect>
<x>134</x>
<y>44</y>
<width>51</width>
<height>20</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
<widget class="QFrame" name="frameSec3">
<property name="geometry">
<rect>
<x>134</x>
<y>72</y>
<width>51</width>
<height>20</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
<widget class="QFrame" name="frameSec4">
<property name="geometry">
<rect>
<x>134</x>
<y>100</y>
<width>51</width>
<height>20</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
<widget class="QFrame" name="frameSec5">
<property name="geometry">
<rect>
<x>134</x>
<y>128</y>
<width>51</width>
<height>20</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</widget>
<widget class="QLineEdit" name="editSec2">
<widget class="QSlider" name="sliderRed">
<property name="geometry">
<rect>
<x>12</x>
<y>202</y>
<width>49</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QLineEdit" name="editSec3">
<property name="geometry">
<rect>
<x>12</x>
<y>230</y>
<width>49</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QLineEdit" name="editSec4">
<property name="geometry">
<rect>
<x>12</x>
<y>258</y>
<width>49</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QLineEdit" name="editSec5">
<property name="geometry">
<rect>
<x>12</x>
<y>286</y>
<width>49</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QSlider" name="sldrRed1">
<property name="geometry">
<rect>
<x>118</x>
<y>176</y>
<width>65</width>
<x>60</x>
<y>300</y>
<width>277</width>
<height>16</height>
</rect>
</property>
@@ -1748,12 +2108,12 @@
<enum>Qt::Horizontal</enum>
</property>
</widget>
<widget class="QSlider" name="sldrGreen1">
<widget class="QSlider" name="sliderGreen">
<property name="geometry">
<rect>
<x>196</x>
<y>176</y>
<width>65</width>
<x>60</x>
<y>322</y>
<width>277</width>
<height>16</height>
</rect>
</property>
@@ -1761,168 +2121,12 @@
<enum>Qt::Horizontal</enum>
</property>
</widget>
<widget class="QSlider" name="sldrBlue1">
<widget class="QSlider" name="sliderBlue">
<property name="geometry">
<rect>
<x>274</x>
<y>176</y>
<width>65</width>
<height>16</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
<widget class="QSlider" name="sldrRed2">
<property name="geometry">
<rect>
<x>118</x>
<y>204</y>
<width>65</width>
<height>16</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
<widget class="QSlider" name="sldrGreen2">
<property name="geometry">
<rect>
<x>196</x>
<y>204</y>
<width>65</width>
<height>16</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
<widget class="QSlider" name="sldrBlue2">
<property name="geometry">
<rect>
<x>274</x>
<y>204</y>
<width>65</width>
<height>16</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
<widget class="QSlider" name="sldrRed3">
<property name="geometry">
<rect>
<x>118</x>
<y>232</y>
<width>65</width>
<height>16</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
<widget class="QSlider" name="sldrGreen3">
<property name="geometry">
<rect>
<x>196</x>
<y>232</y>
<width>65</width>
<height>16</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
<widget class="QSlider" name="sldrBlue3">
<property name="geometry">
<rect>
<x>274</x>
<y>232</y>
<width>65</width>
<height>16</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
<widget class="QSlider" name="sldrRed4">
<property name="geometry">
<rect>
<x>118</x>
<y>260</y>
<width>65</width>
<height>16</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
<widget class="QSlider" name="sldrGreen4">
<property name="geometry">
<rect>
<x>196</x>
<y>260</y>
<width>65</width>
<height>16</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
<widget class="QSlider" name="sldrBlue4">
<property name="geometry">
<rect>
<x>274</x>
<y>260</y>
<width>65</width>
<height>16</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
<widget class="QSlider" name="sldrRed5">
<property name="geometry">
<rect>
<x>118</x>
<y>288</y>
<width>65</width>
<height>16</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
<widget class="QSlider" name="sldrGreen5">
<property name="geometry">
<rect>
<x>196</x>
<y>288</y>
<width>65</width>
<height>16</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
<widget class="QSlider" name="sldrBlue5">
<property name="geometry">
<rect>
<x>274</x>
<y>288</y>
<width>65</width>
<x>60</x>
<y>344</y>
<width>277</width>
<height>16</height>
</rect>
</property>
@@ -1933,10 +2137,10 @@
<widget class="QLabel" name="label_20">
<property name="geometry">
<rect>
<x>144</x>
<y>156</y>
<width>27</width>
<height>16</height>
<x>12</x>
<y>302</y>
<width>46</width>
<height>14</height>
</rect>
</property>
<property name="text">
@@ -1946,10 +2150,10 @@
<widget class="QLabel" name="label_21">
<property name="geometry">
<rect>
<x>216</x>
<y>156</y>
<width>37</width>
<height>16</height>
<x>12</x>
<y>322</y>
<width>46</width>
<height>14</height>
</rect>
</property>
<property name="text">
@@ -1959,16 +2163,68 @@
<widget class="QLabel" name="label_22">
<property name="geometry">
<rect>
<x>298</x>
<y>156</y>
<width>31</width>
<height>16</height>
<x>12</x>
<y>342</y>
<width>46</width>
<height>14</height>
</rect>
</property>
<property name="text">
<string>Blue</string>
</property>
</widget>
<widget class="QToolButton" name="buttonThmAdd">
<property name="geometry">
<rect>
<x>114</x>
<y>8</y>
<width>25</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
<widget class="QToolButton" name="buttonThmDel">
<property name="geometry">
<rect>
<x>114</x>
<y>32</y>
<width>25</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
<widget class="QToolButton" name="buttonThmCpy">
<property name="geometry">
<rect>
<x>114</x>
<y>58</y>
<width>25</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
<widget class="QToolButton" name="buttonThmSav">
<property name="geometry">
<rect>
<x>114</x>
<y>110</y>
<width>25</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
</widget>
</widget>
</widget>