diff --git a/share/qtcreator/themes/dark.creatortheme b/share/qtcreator/themes/dark.creatortheme index 82fa00f6142..fe8807eab1d 100644 --- a/share/qtcreator/themes/dark.creatortheme +++ b/share/qtcreator/themes/dark.creatortheme @@ -385,6 +385,26 @@ QmlDesigner_FormeditorBackgroundColor=qmlDesignerButtonColor QmlDesigner_AlternateBackgroundColor=qmlDesignerButtonColor QmlDesigner_ScrollBarHandleColor=ff505050 +TerminalForeground=ffffffff +TerminalBackground=ff000000 +TerminalSelection=7fffffff +TerminalAnsi0=000000 +TerminalAnsi1=8b1b10 +TerminalAnsi2=4aa32e +TerminalAnsi3=9a9a2f +TerminalAnsi4=0000ab +TerminalAnsi5=a320ac +TerminalAnsi6=49a3b0 +TerminalAnsi7=bfbfbf +TerminalAnsi8=666666 +TerminalAnsi9=d22d1f +TerminalAnsi10=62d63f +TerminalAnsi11=e5e54b +TerminalAnsi12=0000fe +TerminalAnsi13=d22dde +TerminalAnsi14=69e2e4 +TerminalAnsi15=e5e5e6 + [Flags] ComboBoxDrawTextShadow=false DerivePaletteFromTheme=true diff --git a/share/qtcreator/themes/default.creatortheme b/share/qtcreator/themes/default.creatortheme index 06d36f669e9..52101b881bd 100644 --- a/share/qtcreator/themes/default.creatortheme +++ b/share/qtcreator/themes/default.creatortheme @@ -353,6 +353,26 @@ QmlDesigner_FormeditorBackgroundColor=qmlDesignerButtonColor QmlDesigner_AlternateBackgroundColor=qmlDesignerButtonColor QmlDesigner_ScrollBarHandleColor=ff7a7a7a +TerminalForeground=ff000000 +TerminalBackground=ffffffff +TerminalSelection=7fffffff +TerminalAnsi0=000000 +TerminalAnsi1=8b1b10 +TerminalAnsi2=4aa32e +TerminalAnsi3=9a9a2f +TerminalAnsi4=0000ab +TerminalAnsi5=a320ac +TerminalAnsi6=49a3b0 +TerminalAnsi7=bfbfbf +TerminalAnsi8=666666 +TerminalAnsi9=d22d1f +TerminalAnsi10=62d63f +TerminalAnsi11=e5e54b +TerminalAnsi12=0000fe +TerminalAnsi13=d22dde +TerminalAnsi14=69e2e4 +TerminalAnsi15=e5e5e6 + [Flags] ComboBoxDrawTextShadow=true DerivePaletteFromTheme=false diff --git a/share/qtcreator/themes/design-light.creatortheme b/share/qtcreator/themes/design-light.creatortheme index 12691562788..f3cf92f58ac 100644 --- a/share/qtcreator/themes/design-light.creatortheme +++ b/share/qtcreator/themes/design-light.creatortheme @@ -397,6 +397,26 @@ PaletteWindowTextDisabled=textDisabled PaletteBaseDisabled=backgroundColorDisabled PaletteTextDisabled=textDisabled +TerminalForeground=ff000000 +TerminalBackground=ffffffff +TerminalSelection=7fffffff +TerminalAnsi0=000000 +TerminalAnsi1=8b1b10 +TerminalAnsi2=4aa32e +TerminalAnsi3=9a9a2f +TerminalAnsi4=0000ab +TerminalAnsi5=a320ac +TerminalAnsi6=49a3b0 +TerminalAnsi7=bfbfbf +TerminalAnsi8=666666 +TerminalAnsi9=d22d1f +TerminalAnsi10=62d63f +TerminalAnsi11=e5e54b +TerminalAnsi12=0000fe +TerminalAnsi13=d22dde +TerminalAnsi14=69e2e4 +TerminalAnsi15=e5e5e6 + [Flags] ComboBoxDrawTextShadow=false DerivePaletteFromTheme=true diff --git a/share/qtcreator/themes/design.creatortheme b/share/qtcreator/themes/design.creatortheme index 93355132175..1783ba8e9d0 100644 --- a/share/qtcreator/themes/design.creatortheme +++ b/share/qtcreator/themes/design.creatortheme @@ -497,6 +497,26 @@ PaletteTextDisabled=textDisabled PaletteMid=ffafafaf PalettePlaceholderText=ff808081 +TerminalForeground=ffffffff +TerminalBackground=ff000000 +TerminalSelection=7fffffff +TerminalAnsi0=000000 +TerminalAnsi1=8b1b10 +TerminalAnsi2=4aa32e +TerminalAnsi3=9a9a2f +TerminalAnsi4=0000ab +TerminalAnsi5=a320ac +TerminalAnsi6=49a3b0 +TerminalAnsi7=bfbfbf +TerminalAnsi8=666666 +TerminalAnsi9=d22d1f +TerminalAnsi10=62d63f +TerminalAnsi11=e5e54b +TerminalAnsi12=0000fe +TerminalAnsi13=d22dde +TerminalAnsi14=69e2e4 +TerminalAnsi15=e5e5e6 + [Flags] ComboBoxDrawTextShadow=false DerivePaletteFromTheme=true diff --git a/share/qtcreator/themes/flat-dark.creatortheme b/share/qtcreator/themes/flat-dark.creatortheme index 1e282303310..16bf4e26e72 100644 --- a/share/qtcreator/themes/flat-dark.creatortheme +++ b/share/qtcreator/themes/flat-dark.creatortheme @@ -389,6 +389,26 @@ PaletteTextDisabled=textDisabled PaletteMid=ffa0a0a0 PalettePlaceholderText=ff7f7f80 +TerminalForeground=ffffffff +TerminalBackground=ff000000 +TerminalSelection=7fffffff +TerminalAnsi0=000000 +TerminalAnsi1=8b1b10 +TerminalAnsi2=4aa32e +TerminalAnsi3=9a9a2f +TerminalAnsi4=0000ab +TerminalAnsi5=a320ac +TerminalAnsi6=49a3b0 +TerminalAnsi7=bfbfbf +TerminalAnsi8=666666 +TerminalAnsi9=d22d1f +TerminalAnsi10=62d63f +TerminalAnsi11=e5e54b +TerminalAnsi12=0000fe +TerminalAnsi13=d22dde +TerminalAnsi14=69e2e4 +TerminalAnsi15=e5e5e6 + [Flags] ComboBoxDrawTextShadow=false DerivePaletteFromTheme=true diff --git a/share/qtcreator/themes/flat-light.creatortheme b/share/qtcreator/themes/flat-light.creatortheme index d3ff03a7985..512f511f735 100644 --- a/share/qtcreator/themes/flat-light.creatortheme +++ b/share/qtcreator/themes/flat-light.creatortheme @@ -362,6 +362,26 @@ QmlDesigner_FormeditorBackgroundColor=qmlDesignerButtonColor QmlDesigner_AlternateBackgroundColor=qmlDesignerButtonColor QmlDesigner_ScrollBarHandleColor=ffcccccc +TerminalForeground=ff000000 +TerminalBackground=ffffffff +TerminalSelection=7fffffff +TerminalAnsi0=000000 +TerminalAnsi1=8b1b10 +TerminalAnsi2=4aa32e +TerminalAnsi3=9a9a2f +TerminalAnsi4=0000ab +TerminalAnsi5=a320ac +TerminalAnsi6=49a3b0 +TerminalAnsi7=bfbfbf +TerminalAnsi8=666666 +TerminalAnsi9=d22d1f +TerminalAnsi10=62d63f +TerminalAnsi11=e5e54b +TerminalAnsi12=0000fe +TerminalAnsi13=d22dde +TerminalAnsi14=69e2e4 +TerminalAnsi15=e5e5e6 + [Flags] ComboBoxDrawTextShadow=false DerivePaletteFromTheme=false diff --git a/share/qtcreator/themes/flat.creatortheme b/share/qtcreator/themes/flat.creatortheme index 45ffe8537df..e0e27654329 100644 --- a/share/qtcreator/themes/flat.creatortheme +++ b/share/qtcreator/themes/flat.creatortheme @@ -360,6 +360,26 @@ QmlDesigner_FormeditorBackgroundColor=qmlDesignerButtonColor QmlDesigner_AlternateBackgroundColor=qmlDesignerButtonColor QmlDesigner_ScrollBarHandleColor=ff595b5c +TerminalForeground=ff000000 +TerminalBackground=ffffffff +TerminalSelection=7fffffff +TerminalAnsi0=000000 +TerminalAnsi1=8b1b10 +TerminalAnsi2=4aa32e +TerminalAnsi3=9a9a2f +TerminalAnsi4=0000ab +TerminalAnsi5=a320ac +TerminalAnsi6=49a3b0 +TerminalAnsi7=bfbfbf +TerminalAnsi8=666666 +TerminalAnsi9=d22d1f +TerminalAnsi10=62d63f +TerminalAnsi11=e5e54b +TerminalAnsi12=0000fe +TerminalAnsi13=d22dde +TerminalAnsi14=69e2e4 +TerminalAnsi15=e5e5e6 + [Flags] ComboBoxDrawTextShadow=false DerivePaletteFromTheme=false diff --git a/src/libs/utils/theme/theme.h b/src/libs/utils/theme/theme.h index 1fbae4934e2..d3ba34b3ee5 100644 --- a/src/libs/utils/theme/theme.h +++ b/src/libs/utils/theme/theme.h @@ -420,6 +420,27 @@ public: DSstatePanelBackground, DSstateHighlight, + + TerminalForeground, + TerminalBackground, + TerminalSelection, + + TerminalAnsi0, + TerminalAnsi1, + TerminalAnsi2, + TerminalAnsi3, + TerminalAnsi4, + TerminalAnsi5, + TerminalAnsi6, + TerminalAnsi7, + TerminalAnsi8, + TerminalAnsi9, + TerminalAnsi10, + TerminalAnsi11, + TerminalAnsi12, + TerminalAnsi13, + TerminalAnsi14, + TerminalAnsi15, }; enum ImageFile { diff --git a/src/plugins/terminal/terminalsettings.cpp b/src/plugins/terminal/terminalsettings.cpp index b43d964320b..a7c0d8fb2cf 100644 --- a/src/plugins/terminal/terminalsettings.cpp +++ b/src/plugins/terminal/terminalsettings.cpp @@ -7,6 +7,7 @@ #include #include +#include using namespace Utils; @@ -96,33 +97,42 @@ TerminalSettings::TerminalSettings() shell.setToolTip(Tr::tr("The shell executable to be started as terminal")); shell.setDefaultValue(defaultShell()); - setupColor(this, foregroundColor, "Foreground", QColor::fromRgb(0xff, 0xff, 0xff)); - setupColor(this, backgroundColor, "Background", QColor::fromRgb(0x0, 0x0, 0x0)); - setupColor(this, selectionColor, "Selection", QColor::fromRgb(0xFF, 0xFF, 0xFF, 0x7F)); + setupColor(this, + foregroundColor, + "Foreground", + Utils::creatorTheme()->color(Theme::TerminalForeground)); + setupColor(this, + backgroundColor, + "Background", + Utils::creatorTheme()->color(Theme::TerminalBackground)); + setupColor(this, + selectionColor, + "Selection", + Utils::creatorTheme()->color(Theme::TerminalSelection)); - setupColor(this, colors[0], "0", QColor::fromRgb(0x00, 0x00, 0x00)); - setupColor(this, colors[8], "8", QColor::fromRgb(102, 102, 102)); + setupColor(this, colors[0], "0", Utils::creatorTheme()->color(Theme::TerminalAnsi0)); + setupColor(this, colors[8], "8", Utils::creatorTheme()->color(Theme::TerminalAnsi8)); - setupColor(this, colors[1], "1", QColor::fromRgb(139, 27, 16)); - setupColor(this, colors[9], "9", QColor::fromRgb(210, 45, 31)); + setupColor(this, colors[1], "1", Utils::creatorTheme()->color(Theme::TerminalAnsi1)); + setupColor(this, colors[9], "9", Utils::creatorTheme()->color(Theme::TerminalAnsi9)); - setupColor(this, colors[2], "2", QColor::fromRgb(74, 163, 46)); - setupColor(this, colors[10], "10", QColor::fromRgb(98, 214, 63)); + setupColor(this, colors[2], "2", Utils::creatorTheme()->color(Theme::TerminalAnsi2)); + setupColor(this, colors[10], "10", Utils::creatorTheme()->color(Theme::TerminalAnsi10)); - setupColor(this, colors[3], "3", QColor::fromRgb(154, 154, 47)); - setupColor(this, colors[11], "11", QColor::fromRgb(229, 229, 75)); + setupColor(this, colors[3], "3", Utils::creatorTheme()->color(Theme::TerminalAnsi3)); + setupColor(this, colors[11], "11", Utils::creatorTheme()->color(Theme::TerminalAnsi11)); - setupColor(this, colors[4], "4", QColor::fromRgb(0, 0, 171)); - setupColor(this, colors[12], "12", QColor::fromRgb(0, 0, 254)); + setupColor(this, colors[4], "4", Utils::creatorTheme()->color(Theme::TerminalAnsi4)); + setupColor(this, colors[12], "12", Utils::creatorTheme()->color(Theme::TerminalAnsi12)); - setupColor(this, colors[5], "5", QColor::fromRgb(163, 32, 172)); - setupColor(this, colors[13], "13", QColor::fromRgb(210, 45, 222)); + setupColor(this, colors[5], "5", Utils::creatorTheme()->color(Theme::TerminalAnsi5)); + setupColor(this, colors[13], "13", Utils::creatorTheme()->color(Theme::TerminalAnsi13)); - setupColor(this, colors[6], "6", QColor::fromRgb(73, 163, 176)); - setupColor(this, colors[14], "14", QColor::fromRgb(105, 226, 228)); + setupColor(this, colors[6], "6", Utils::creatorTheme()->color(Theme::TerminalAnsi6)); + setupColor(this, colors[14], "14", Utils::creatorTheme()->color(Theme::TerminalAnsi14)); - setupColor(this, colors[7], "7", QColor::fromRgb(191, 191, 191)); - setupColor(this, colors[15], "15", QColor::fromRgb(229, 229, 230)); + setupColor(this, colors[7], "7", Utils::creatorTheme()->color(Theme::TerminalAnsi7)); + setupColor(this, colors[15], "15", Utils::creatorTheme()->color(Theme::TerminalAnsi15)); registerAspect(&font); registerAspect(&fontSize); diff --git a/src/plugins/terminal/terminalsettingspage.cpp b/src/plugins/terminal/terminalsettingspage.cpp index 7eabca19b06..54ddc4d35e9 100644 --- a/src/plugins/terminal/terminalsettingspage.cpp +++ b/src/plugins/terminal/terminalsettingspage.cpp @@ -337,6 +337,7 @@ QWidget *TerminalSettingsPage::widget() TerminalSettings &settings = TerminalSettings::instance(); QPushButton *loadThemeButton = new QPushButton(Tr::tr("Load Theme...")); + QPushButton *resetTheme = new QPushButton(Tr::tr("Reset Theme to default")); connect(loadThemeButton, &QPushButton::clicked, this, [widget] { const FilePath path = FileUtils::getOpenFilePath( @@ -363,6 +364,16 @@ QWidget *TerminalSettingsPage::widget() QMessageBox::warning(widget, Tr::tr("Error"), result.error()); }); + connect(resetTheme, &QPushButton::clicked, this, [] { + TerminalSettings &settings = TerminalSettings::instance(); + settings.foregroundColor.setVolatileValue(settings.foregroundColor.defaultValue()); + settings.backgroundColor.setVolatileValue(settings.backgroundColor.defaultValue()); + settings.selectionColor.setVolatileValue(settings.selectionColor.defaultValue()); + + for (auto &color : settings.colors) + color.setVolatileValue(color.defaultValue()); + }); + // clang-format off Column { Row { @@ -402,7 +413,7 @@ QWidget *TerminalSettingsPage::widget() settings.colors[14], settings.colors[15] }, Row { - loadThemeButton, st, + loadThemeButton, resetTheme, st, } }, },