Browse Source

style: add style for QSlider

Le Tan 7 years ago
parent
commit
94fd430c06

+ 7 - 1
src/resources/themes/v_detorte/v_detorte.palette

@@ -9,7 +9,7 @@ mdhl_file=v_detorte.mdhl
 css_file=v_detorte.css
 codeblock_css_file=v_detorte_codeblock.css
 mermaid_css_file=v_detorte_mermaid.css
-version=10
+version=11
 
 ; This mapping will be used to translate colors when the content of HTML is copied
 ; without background. You could just specify the foreground colors mapping here.
@@ -386,3 +386,9 @@ doublerowitem_second_row_label_fg=#9E9E9E
 ; GroupBox.
 groupbox_border=@border_bg
 groupbox_title_fg=@base_fg
+
+; Slider.
+slider_border_bg=@border_bg
+slider_groove_bg=@edit_bg
+slider_handle_bg=@master_bg
+slider_subpage_bg=@master_dark_bg

+ 67 - 16
src/resources/themes/v_detorte/v_detorte.qss

@@ -1359,6 +1359,73 @@ QProgressBar::chunk {
 }
 /* End QProgressBar */
 
+/* QGroupBox */
+QGroupBox {
+    border: 2px solid @groupbox_border;
+    border-radius: 5px;
+    margin-top: 2ex;
+}
+
+QGroupBox::title {
+    color: @groupbox_title_fg;
+    subcontrol-origin: margin;
+    subcontrol-position: top left;
+    position: absolute;
+    padding: 0 $3px;
+    top: 0px; left: $10px; bottom: 0px;
+}
+/* End QGroupBox */
+
+/* QSlider */
+QSlider::groove:horizontal {
+    border: $1px solid @slider_border_bg;
+    height: $8px;
+    background: @slider_groove_bg;
+    margin: $2px 0;
+}
+
+QSlider::handle:horizontal {
+    border: $1px solid @slider_border_bg;
+    background: @slider_handle_bg;
+    width: $18px;
+    margin: $-2px 0;
+}
+
+QSlider::add-page:horizontal {
+    background: transparent;
+}
+
+QSlider::sub-page:horizontal {
+    border: $1px solid @slider_border_bg;
+    background: @slider_subpage_bg;
+    margin: $2px 0;
+}
+
+QSlider::groove:vertical {
+    border: $1px solid @slider_border_bg;
+    width: $8px;
+    background: @slider_groove_bg;
+    margin: 0 $2px;
+}
+
+QSlider::handle:vertical {
+    border: $1px solid @slider_border_bg;
+    background: @slider_handle_bg;
+    height: $18px;
+    margin: 0 $-2px;
+}
+
+QSlider::add-page:vertical {
+    background: transparent;
+}
+
+QSlider::sub-page:vertical {
+    border: $1px solid @slider_border_bg;
+    background: @slider_subpage_bg;
+    margin: 0 $2px;
+}
+/* End QSlider */
+
 /* QWidget */
 QWidget#FindReplaceTitleWidget {
     background: @title_bg;
@@ -1392,19 +1459,3 @@ VUniversalEntry {
     border: 1px solid @universalentry_border_bg;
 }
 /* End QWidget */
-
-/* QGroupBox */
-QGroupBox {
-    border: 2px solid @groupbox_border;
-    border-radius: 5px;
-    margin-top: 2ex;
-}
-
-QGroupBox::title {
-    color: @groupbox_title_fg;
-    subcontrol-origin: margin;
-    subcontrol-position: top left;
-    position: absolute;
-    padding: 0 $3px;
-    top: 0px; left: $10px; bottom: 0px;
-}

+ 7 - 1
src/resources/themes/v_moonlight/v_moonlight.palette

@@ -7,7 +7,7 @@ mdhl_file=v_moonlight.mdhl
 css_file=v_moonlight.css
 codeblock_css_file=v_moonlight_codeblock.css
 mermaid_css_file=v_moonlight_mermaid.css
-version=21
+version=22
 
 ; This mapping will be used to translate colors when the content of HTML is copied
 ; without background. You could just specify the foreground colors mapping here.
@@ -384,3 +384,9 @@ doublerowitem_second_row_label_fg=#808080
 ; GroupBox.
 groupbox_border=@border_bg
 groupbox_title_fg=@base_fg
+
+; Slider.
+slider_border_bg=@border_bg
+slider_groove_bg=@edit_bg
+slider_handle_bg=@master_bg
+slider_subpage_bg=@master_dark_bg

+ 67 - 16
src/resources/themes/v_moonlight/v_moonlight.qss

@@ -1359,6 +1359,73 @@ QProgressBar::chunk {
 }
 /* End QProgressBar */
 
+/* QGroupBox */
+QGroupBox {
+    border: 2px solid @groupbox_border;
+    border-radius: 5px;
+    margin-top: 2ex;
+}
+
+QGroupBox::title {
+    color: @groupbox_title_fg;
+    subcontrol-origin: margin;
+    subcontrol-position: top left;
+    position: absolute;
+    padding: 0 $3px;
+    top: 0px; left: $10px; bottom: 0px;
+}
+/* End QGroupBox */
+
+/* QSlider */
+QSlider::groove:horizontal {
+    border: $1px solid @slider_border_bg;
+    height: $8px;
+    background: @slider_groove_bg;
+    margin: $2px 0;
+}
+
+QSlider::handle:horizontal {
+    border: $1px solid @slider_border_bg;
+    background: @slider_handle_bg;
+    width: $18px;
+    margin: $-2px 0;
+}
+
+QSlider::add-page:horizontal {
+    background: transparent;
+}
+
+QSlider::sub-page:horizontal {
+    border: $1px solid @slider_border_bg;
+    background: @slider_subpage_bg;
+    margin: $2px 0;
+}
+
+QSlider::groove:vertical {
+    border: $1px solid @slider_border_bg;
+    width: $8px;
+    background: @slider_groove_bg;
+    margin: 0 $2px;
+}
+
+QSlider::handle:vertical {
+    border: $1px solid @slider_border_bg;
+    background: @slider_handle_bg;
+    height: $18px;
+    margin: 0 $-2px;
+}
+
+QSlider::add-page:vertical {
+    background: transparent;
+}
+
+QSlider::sub-page:vertical {
+    border: $1px solid @slider_border_bg;
+    background: @slider_subpage_bg;
+    margin: 0 $2px;
+}
+/* End QSlider */
+
 /* QWidget */
 QWidget#FindReplaceTitleWidget {
     background: @title_bg;
@@ -1392,19 +1459,3 @@ VUniversalEntry {
     border: 1px solid @universalentry_border_bg;
 }
 /* End QWidget */
-
-/* QGroupBox */
-QGroupBox {
-    border: 2px solid @groupbox_border;
-    border-radius: 5px;
-    margin-top: 2ex;
-}
-
-QGroupBox::title {
-    color: @groupbox_title_fg;
-    subcontrol-origin: margin;
-    subcontrol-position: top left;
-    position: absolute;
-    padding: 0 $3px;
-    top: 0px; left: $10px; bottom: 0px;
-}

+ 7 - 1
src/resources/themes/v_pure/v_pure.palette

@@ -7,7 +7,7 @@ mdhl_file=v_pure.mdhl
 css_file=v_pure.css
 codeblock_css_file=v_pure_codeblock.css
 mermaid_css_file=v_pure_mermaid.css
-version=21
+version=22
 
 [phony]
 ; Abstract color attributes.
@@ -377,3 +377,9 @@ doublerowitem_second_row_label_fg=#6C6C6C
 ; GroupBox.
 groupbox_border=@border_bg
 groupbox_title_fg=@base_fg
+
+; Slider.
+slider_border_bg=@border_bg
+slider_groove_bg=@edit_bg
+slider_handle_bg=@master_bg
+slider_subpage_bg=@master_light_bg

+ 67 - 16
src/resources/themes/v_pure/v_pure.qss

@@ -1358,6 +1358,73 @@ QProgressBar::chunk {
 }
 /* End QProgressBar */
 
+/* QGroupBox */
+QGroupBox {
+    border: 2px solid @groupbox_border;
+    border-radius: 5px;
+    margin-top: 2ex;
+}
+
+QGroupBox::title {
+    color: @groupbox_title_fg;
+    subcontrol-origin: margin;
+    subcontrol-position: top left;
+    position: absolute;
+    padding: 0 $3px;
+    top: 0px; left: $10px; bottom: 0px;
+}
+/* End QGroupBox */
+
+/* QSlider */
+QSlider::groove:horizontal {
+    border: $1px solid @slider_border_bg;
+    height: $8px;
+    background: @slider_groove_bg;
+    margin: $2px 0;
+}
+
+QSlider::handle:horizontal {
+    border: $1px solid @slider_border_bg;
+    background: @slider_handle_bg;
+    width: $18px;
+    margin: $-2px 0;
+}
+
+QSlider::add-page:horizontal {
+    background: transparent;
+}
+
+QSlider::sub-page:horizontal {
+    border: $1px solid @slider_border_bg;
+    background: @slider_subpage_bg;
+    margin: $2px 0;
+}
+
+QSlider::groove:vertical {
+    border: $1px solid @slider_border_bg;
+    width: $8px;
+    background: @slider_groove_bg;
+    margin: 0 $2px;
+}
+
+QSlider::handle:vertical {
+    border: $1px solid @slider_border_bg;
+    background: @slider_handle_bg;
+    height: $18px;
+    margin: 0 $-2px;
+}
+
+QSlider::add-page:vertical {
+    background: transparent;
+}
+
+QSlider::sub-page:vertical {
+    border: $1px solid @slider_border_bg;
+    background: @slider_subpage_bg;
+    margin: 0 $2px;
+}
+/* End QSlider */
+
 /* QWidget */
 QWidget#FindReplaceTitleWidget {
     background: @title_bg;
@@ -1391,19 +1458,3 @@ VUniversalEntry {
     border: 1px solid @universalentry_border_bg;
 }
 /* End QWidget */
-
-/* QGroupBox */
-QGroupBox {
-    border: 2px solid @groupbox_border;
-    border-radius: 5px;
-    margin-top: 2ex;
-}
-
-QGroupBox::title {
-    color: @groupbox_title_fg;
-    subcontrol-origin: margin;
-    subcontrol-position: top left;
-    position: absolute;
-    padding: 0 $3px;
-    top: 0px; left: $10px; bottom: 0px;
-}

+ 5 - 4
src/vpalette.cpp

@@ -308,8 +308,9 @@ void VPalette::fillFontFamily(QString &p_text) const
 
 void VPalette::fillScaledSize(QString &p_text) const
 {
-    // Cap(2) is the number string.
-    QRegExp reg("(\\s|:)\\$(\\d+)(?=\\D)");
+    // Cap(2) is the sign.
+    // Cap(3) is the number string.
+    QRegExp reg("(\\s|:)\\$([+-]?)(\\d+)(?=\\D)");
     const qreal factor = VUtils::calculateScaleFactor();
 
     int pos = 0;
@@ -319,7 +320,7 @@ void VPalette::fillScaledSize(QString &p_text) const
             break;
         }
 
-        QString str = reg.cap(2);
+        QString str = reg.cap(3);
         bool ok;
         int val = str.toInt(&ok);
         if (!ok) {
@@ -328,7 +329,7 @@ void VPalette::fillScaledSize(QString &p_text) const
         }
 
         val = val * factor + 0.5;
-        QString newStr = QString("%1%2").arg(reg.cap(1)).arg(val);
+        QString newStr = QString("%1%2%3").arg(reg.cap(1)).arg(reg.cap(2)).arg(val);
         p_text.replace(idx, reg.matchedLength(), newStr);
         pos = idx + newStr.size();
     }