From 521c84bf58a19f8f4bbfa4318a52a0217957f072 Mon Sep 17 00:00:00 2001 From: Kite Date: Sep 08 2020 02:11:49 +0000 Subject: All New Icons (And GUI Cleanup) (#3457) * Update .gitignore * Update Stylesheets - Support the new icon sizes - XSheet and Timeline significantly redesigned - Lots of margin fixes and refactoring - Remove deprecated icons, as some icons are moved into binary - New Light theme * New Icons - Redesigns almost every icon as symbolic - Adds icons for most commands * Add Option for Icon Themes - Adds option for icon themes - Removes useless label from Preferences category list * Update Icon Functions - Adds themePath() boolean - Adds function for recoloring black pixels in pixmaps to any color - Rebuilds createQIcon to use fromTheme() and recolorPixmap() - Removes createQIconOnOff as it seemed to be a rarely used duplicate of createQIcon - Removes a grey horizontal line drawn above the console play bar in the viewer * Set Default Icon Theme and Paths - Sets search paths for icons for use with QIcon::fromTheme() - Sets default start icon theme on first install - Sets flag for displaying icons in menus, so we can selectively hide them * Set Icons for Commands - Sets icons for the commands - Hides icons being displayed in menus as most icons are 20x20, they will look blurry when shrunk to 16x16 - Selectively allows icons to display for Tools in menus * Change Icon Sizes, General Fixes and Stylesheet Additions - Change icon sizes to new size - Remove margin around FX Editor window - Remove white line under color sliders in Style Editor - Make keyframe icons uniform and color stylable in the stylesheets - Removes deprecated stylesheet strings - Redesign GUI for palette list view - Make tree list header sort row stylable - Remove black lines from scrollbars in New Project window - Remove margin around combobox in Level Strip - Alter how some lines are drawn in the Timeline to fix some alpha issues - Make conditional fixed onion skin and normal onion skin dots contrast more against a light background area to make sure they have good visibility - Make text always viewable in the FPS field in console bar - Increase size of radio buttons in Cleanup Settings - Increase size of switches in motion path nodes - Remove unessesary "Layer" label in Timeline and other rects - Various colors made stylable in the stylesheets; palette numpad and selection frame, cleanup settings border, scene cast folder path, schematic lines, ruler, xsheet lines, keyframes, cell input box and more - Moves some external stylesheet icons into binary * Make TPanelTitleBar Icon States Stylable - Makes icon states for TPanelTitleBar buttons stylable in stylesheets * Travis Fixes * Swap Startup Popup Logos They were in the wrong folders * Revert "Swap Startup Popup Logos" This reverts commit 815908a9f3e725f48507dab8a2270bdfa045649d. * Fix Startup Popup Logo It wasn't switching * Feedback Changes - Change render visualization to clapboard - Fix text contrast on levels in XSheet * Make Cell Selection More Clear * Darken Light Theme and Tint Empty Cell Selection * Fix Play Range Area (Light) Make play range area more visible * Feedback - Increase padding of toolbar buttons - Increase width of TPanelTitleBarButtons - Revert folder icon style - Fix clapperboard icons that were using the older shape before some were fixed - Change Xsheet transparent table button icon style to represent the same style as before * Schematic Transparent Table Icon - I forgot to add this one * Nudge Tools Expand Button - Nudges the big white arrow expand tools icon to align properly --- diff --git a/.gitignore b/.gitignore index 0d21508..2c3ab03 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ build* Thumbs.db # bundled thirdparty libraries +/thirdparty/boost /thirdparty/lzo /thirdparty/tiff-4.0.3 /thirdparty/LibJPEG/jpeg-9 diff --git a/stuff/config/qss/Blue/Blue.qss b/stuff/config/qss/Blue/Blue.qss index b2e709a..0518673 100644 --- a/stuff/config/qss/Blue/Blue.qss +++ b/stuff/config/qss/Blue/Blue.qss @@ -1,111 +1,90 @@ /* ----------------------------------------------------------------------------- Component: Button Styles ----------------------------------------------------------------------------- */ -.button-show, -#LoadLevelShowButton, -#CleanupSettingsShowButton, -#OutputSettingsShowButton, -#FxSettingsPreviewShowButton { - image: url('../Default/imgs/white/plus.svg'); - image-position: center center; - margin: 0; - padding: 1; - min-width: 10; - min-height: 10; -} -.button-show:checked, -#LoadLevelShowButton:checked, -#CleanupSettingsShowButton:checked, -#OutputSettingsShowButton:checked, -#FxSettingsPreviewShowButton:checked { - background-color: #2b2c2d; - border-color: #262728; - image: url('../Default/imgs/white/minus.svg'); -} -.button-show:checked:pressed, -#LoadLevelShowButton:checked:pressed, -#CleanupSettingsShowButton:checked:pressed, -#OutputSettingsShowButton:checked:pressed, -#FxSettingsPreviewShowButton:checked:pressed { - background-color: #2b2c2d; - border-color: #262728; -} -.button-show:checked:hover, -#LoadLevelShowButton:checked:hover, -#CleanupSettingsShowButton:checked:hover, -#OutputSettingsShowButton:checked:hover, -#FxSettingsPreviewShowButton:checked:hover { - background-color: #303133; -} .button-tool, QToolButton, +#FileBrowser QToolBar QToolButton, #CameraSettingsRadioButton::indicator, #ForceSquaredPixelButton, -#SchematicBottomFrame QToolBar QToolButton, #EditToolLockButton::indicator, -#flipCustomize { - background-color: rgba(255, 255, 255, 0); - border: 1 solid rgba(255, 255, 255, 0); +#flipCustomize, +#SceneCast QToolBar QToolButton { + background-color: transparent; + border: 1 solid transparent; border-radius: 2; color: #e4e5e9; - margin: 1; - padding: 0; } .button-tool:hover, QToolButton:hover, +#FileBrowser QToolBar QToolButton:hover, #CameraSettingsRadioButton::indicator:hover, #ForceSquaredPixelButton:hover, #colorSliderAddButton:hover, #colorSliderSubButton:hover, -#SchematicBottomFrame QToolBar QToolButton:hover, #EditToolLockButton::indicator:hover, -#flipCustomize:hover { - background-color: #6e7174; - border-color: #6e7174; +#flipCustomize:hover, +#SceneCast QToolBar QToolButton:hover { + background-color: #696c6f; + border-color: #696c6f; color: #e4e5e9; } .button-tool:pressed, QToolButton:pressed, +#FileBrowser QToolBar QToolButton:pressed, #CameraSettingsRadioButton::indicator:pressed, #ForceSquaredPixelButton:pressed, #colorSliderAddButton:pressed, #colorSliderSubButton:pressed, -#SchematicBottomFrame QToolBar QToolButton:pressed, #EditToolLockButton::indicator:pressed, -#flipCustomize:pressed { - background-color: #2b2c2d; - border-color: #262728; +#flipCustomize:pressed, +#SceneCast QToolBar QToolButton:pressed { + background-color: #262728; + border-color: #212223; color: #e4e5e9; } .button-tool:checked, QToolButton:checked, +#FileBrowser QToolBar QToolButton:checked, #CameraSettingsRadioButton::indicator:checked, #ForceSquaredPixelButton:checked, -#SchematicBottomFrame QToolBar QToolButton:checked, #EditToolLockButton::indicator:checked, -#flipCustomize:checked { +#flipCustomize:checked, +#SceneCast QToolBar QToolButton:checked { background-color: #5385a6; border-color: #5385a6; color: #ffffff; } .button-tool:checked:hover, QToolButton:checked:hover, +#FileBrowser QToolBar QToolButton:checked:hover, #CameraSettingsRadioButton::indicator:checked:hover, #ForceSquaredPixelButton:checked:hover, -#SchematicBottomFrame QToolBar QToolButton:checked:hover, #EditToolLockButton::indicator:checked:hover, -#flipCustomize:checked:hover { +#flipCustomize:checked:hover, +#SceneCast QToolBar QToolButton:checked:hover { background-color: #6c98b6; border-color: #6c98b6; } .button-tool:disabled, QToolButton:disabled, +#FileBrowser QToolBar QToolButton:disabled, #CameraSettingsRadioButton::indicator:disabled, #ForceSquaredPixelButton:disabled, -#SchematicBottomFrame QToolBar QToolButton:disabled, #EditToolLockButton::indicator:disabled, -#flipCustomize:disabled { - color: rgba(230, 230, 230, 0.4); +#flipCustomize:disabled, +#SceneCast QToolBar QToolButton:disabled { + color: rgba(214, 216, 221, 0.4); +} +.button-tool:disabled:checked, +QToolButton:disabled:checked, +#FileBrowser QToolBar QToolButton:disabled:checked, +#CameraSettingsRadioButton::indicator:disabled:checked, +#ForceSquaredPixelButton:disabled:checked, +#EditToolLockButton::indicator:disabled:checked, +#flipCustomize:disabled:checked, +#SceneCast QToolBar QToolButton:disabled:checked { + background-color: rgba(83, 133, 166, 0.4); + border-color: rgba(83, 133, 166, 0.4); } .button-flat, PaletteViewer QToolBar QToolButton { @@ -116,11 +95,11 @@ PaletteViewer QToolBar QToolButton { } .button-flat:hover, PaletteViewer QToolBar QToolButton:hover { - background-color: #6e7174; + background-color: #696c6f; } .button-flat:pressed, PaletteViewer QToolBar QToolButton:pressed { - background-color: #212223; + background-color: #262728; } /* ----------------------------------------------------------------------------- Component: Frames @@ -129,13 +108,14 @@ PaletteViewer QToolBar QToolButton:pressed { .GroupBox, #LoadLevelFrame, #PsdSettingsGroupBox, -#CleanupSettingsFrame, +#CleanupSettings #CleanupSettingsFrame, +#CleanupSettings QScrollArea, #OutputSettingsBox, #OutputSettingsCameraBox, #SolidLineFrame, #FunctionParametersPanel, QGroupBox { - border: 1 solid #212223; + border: 1 solid #262728; border-radius: 2; } /* ----------------------------------------------------------------------------- @@ -144,59 +124,46 @@ QGroupBox { /* ----------------------------------------------------------------------------- Component: Tabs ----------------------------------------------------------------------------- */ -.tab-container, -#TabBarContainer { - background-color: transparent; +.tab-container { + background-color: #323435; qproperty-BottomAboveLineColor: #323435; - qproperty-BottomBelowLineColor: #212223; + qproperty-BottomBelowLineColor: #262728; } .tab-flat, -#StopMotionTabBar::tab, -#StyleEditorTabBar::tab, -#PaletteTabBar::tab, -#FxSettingsTabBar::tab { +QTabBar::tab { background-color: #323435; border-right: 1 solid #212223; - border-bottom: 1 solid #212223; + border-bottom: 1 solid #262728; color: #94969a; padding: 3 4 3 4; } .tab-flat:hover, -#StopMotionTabBar::tab:hover, -#StyleEditorTabBar::tab:hover, -#PaletteTabBar::tab:hover, -#FxSettingsTabBar::tab:hover { - background-color: #414345; +QTabBar::tab:hover { + background-color: #3f4042; color: #94969a; } .tab-flat:selected, -#StopMotionTabBar::tab:selected, -#StyleEditorTabBar::tab:selected, -#PaletteTabBar::tab:selected, -#FxSettingsTabBar::tab:selected { +QTabBar::tab:selected { background-color: #414345; - color: #ffffff; + color: #fff; border-bottom-color: #414345; } .tab-flat:only-one, -#StopMotionTabBar::tab:only-one, -#StyleEditorTabBar::tab:only-one, -#PaletteTabBar::tab:only-one, -#FxSettingsTabBar::tab:only-one { +QTabBar::tab:only-one { margin: 0; } .tab-round { background-color: #323435; - border-top: 1 solid #212223; - border-right: 1 solid #212223; - border-left: 1 solid #212223; - border-bottom: 1 solid #212223; + border-top: 1 solid #262728; + border-right: 1 solid #262728; + border-left: 1 solid #262728; + border-bottom: 1 solid #262728; color: #94969a; margin: 3 -1 0 0; padding: 2 7 1 7; } .tab-round:hover { - background-color: #414345; + background-color: #3f4042; color: #94969a; } .tab-round:selected { @@ -204,7 +171,7 @@ QGroupBox { border-top-right-radius: 2; border-top-left-radius: 2; border-bottom-color: #414345; - color: #ffffff; + color: #fff; margin: 1 -1 -1 0; padding: 2 7 2 7; } @@ -227,7 +194,7 @@ QWidget { color: #d6d8dd; } QWidget:disabled { - color: rgba(230, 230, 230, 0.4); + color: rgba(214, 216, 221, 0.4); } QFrame { border: 0; @@ -236,23 +203,23 @@ QFrame { } QToolTip, #helpToolTip { - background-color: #fff; - border: 1 solid #000; - color: #000; + background-color: #292B2D; + border: 1 solid #CFD1D4; + color: #CFD2D4; padding: 1 1; } #DockSeparator, QMainWindow::separator, QSplitter::handle { - background-color: #141516; + background-color: #191a1b; height: 4; width: 4; } #TDockPlaceholder { - background-color: #F77272; + background-color: #f55454; } TPanel { - background-color: #141516; + background-color: #191a1b; } /* ----------------------------------------------------------------------------- Topbar @@ -260,8 +227,7 @@ TPanel { #TopBar { background: #414345; border: 0; - border-bottom: 1 solid #212223; - height: 21; + border-bottom: 1 solid #262728; } #TopBar #EditToolLockButton { background: #414345; @@ -270,8 +236,6 @@ TPanel { #TopBar #EditToolLockButton::indicator { background: none; border: none; - height: 18; - margin: 1 2 0 0; padding-left: 0; padding-right: 0; } @@ -292,10 +256,10 @@ QMenuBar::item { background-color: #414345; border-left: 1 solid #414345; margin: 0; - padding: 3 5; + padding: 3 5 3 5; } QMenuBar::item:selected { - background-color: rgba(255, 255, 255, 0.15); + background-color: rgba(255, 255, 255, 0.1); color: #d6d8dd; } QMenuBar::item:pressed { @@ -314,33 +278,42 @@ QMenuBar::item:pressed { border-top: 1 solid #212223; border-right: 1 solid #212223; color: #94969a; - margin: 0 0 0 0; + margin: 0 0 -1 0; padding: 2 8 3 8; } #TopBarTab::tab:hover { - background-color: #414345; + background-color: #3f4042; color: #94969a; } #TopBarTab::tab:selected { - background-color: #414345; + background-color: #5385a6; color: #ffffff; } #TopBarTab::tab:first { - border-left: 1 solid #212223; + border-left: 1 solid #262728; } #TopBarTab::tab:last { - border-right: 1 solid #212223; + border-right: 1 solid #262728; +} +#TopBarTab QToolButton { + border-left: 2 solid #262728; + border-top: 1 solid #262728; + border-right: 1 solid #262728; + border-bottom: 0; + margin-left: -1; + margin-top: 0; } /* ----------------------------------------------------------------------------- Menu ----------------------------------------------------------------------------- */ QMenu { background-color: #414345; - border: 1 solid #212223; + border: 1 solid #262728; color: #d6d8dd; padding: 2 0; } QMenu::item { + border: 0; padding: 3 28; } QMenu::item:selected { @@ -356,26 +329,28 @@ QMenu::item:checked:selected { } QMenu::item:disabled { background: none; - color: rgba(230, 230, 230, 0.4); + color: rgba(214, 216, 221, 0.4); } QMenu::item:disabled:selected { - background-color: #55575a; - border-color: transparent; - color: rgba(230, 230, 230, 0.4); + color: rgba(214, 216, 221, 0.4); /* fix for disabled indicator */ } QMenu::separator { - border-top: 1 solid #212223; + border-top: 1 solid #262728; height: 0; margin: 2 0; } QMenu::icon { border-radius: 2; - margin: 0 0 0 3; - padding: 1; + position: absolute; + left: 5; + padding: 0; + margin: 0; + qproperty-icon: url('../Default/imgs/white/none'); } QMenu::icon:checked { background-color: #5385a6; + border: 1 solid #5385a6; } QMenu::indicator { margin-left: 7; @@ -385,11 +360,9 @@ QMenu::indicator { ----------------------------------------------------------------------------- */ TPanelTitleBar { background-color: #323435; - border-color: #212223; - border-style: solid; - border-width: 0 0 1 0; - height: 20; - min-height: 20; + border-bottom: 1px solid #262728; + height: 18; + min-height: 18; qproperty-TitleColor: #8c9093; qproperty-ActiveTitleColor: #43AEE5; qproperty-BorderPixmap: url('none'); @@ -397,6 +370,12 @@ TPanelTitleBar { qproperty-FloatBorderPixmap: url('none'); qproperty-FloatActiveBorderPixmap: url('../Default/imgs/white/none'); } +TPanelTitleBarButton { + qproperty-PressedColor: #5385a6; + qproperty-FreezeColor: #C34040; + qproperty-PreviewColor: #1baf7e; + qproperty-OverColor: #696c6f; +} /* ----------------------------------------------------------------------------- Scrollbars ----------------------------------------------------------------------------- */ @@ -408,35 +387,35 @@ QScrollBar { border: 0; } QScrollBar:horizontal { - height: 16; + height: 15; margin: 0; } QScrollBar:vertical { margin: 0; - width: 16; + width: 15; } QScrollBar::handle { - border: 1 solid #4b4d50; + border: 0 solid #55575a; border-radius: 4; } QScrollBar::handle:horizontal:hover, QScrollBar::handle:vertical:hover { - background-color: #5f6265; - border-color: #5f6265; + background-color: #696c6f; + border-color: #696c6f; } QScrollBar::handle:horizontal:pressed, QScrollBar::handle:vertical:pressed { - background-color: #72767a; - border-color: #72767a; + background-color: #7c8084; + border-color: #7c8084; } QScrollBar::handle:horizontal { - background-color: #4b4d50; + background-color: #55575a; margin: 3 16; min-width: 20; } QScrollBar::handle:vertical { - background-color: #4b4d50; - margin: 16 3; + background-color: #55575a; + margin: 16 3 16 3; min-height: 20; } QScrollBar::add-line { @@ -506,18 +485,21 @@ QScrollBar::add-page:vertical { background: none; } /* ----------------------------------------------------------------------------- - Tool Bars + QToolBar ----------------------------------------------------------------------------- */ +/* This applies to QToolBar, this is not the #ToolBar window, although the + properties here also apply in the window, you should look in + [layouts/toolbar] if you want window control. */ QToolBar { padding: 0; } QToolBar::separator:horizontal { - border-left: 1 solid #212223; + border-left: 1 solid #262728; margin: 0 1; width: 0; } QToolBar::separator:vertical { - border-top: 1 solid #212223; + border-top: 1 solid #262728; height: 0; margin: 1 0; } @@ -527,23 +509,37 @@ QToolBar QLabel { QToolBar QToolBar { border: 0; } +QToolButton { + margin-left: 1; + margin-right: 1; + padding: 0; +} QToolButton::menu-indicator { image: none; } QToolButton::menu-button { border-image: none; } -/* -------------------------------------------------------------------------- */ -/* Scrollable QToolBar Buttons -/* -------------------------------------------------------------------------- */ +QToolButton#qt_toolbar_ext_button { + padding: 0; + border: 0; + margin: 0; + qproperty-icon: url('../Default/imgs/white/toolbar_extension_horizontal.png'); +} +QToolButton#qt_toolbar_ext_button:hover { + background-color: #696c6f; +} +QToolButton#qt_toolbar_ext_button:pressed { + background-color: #262728; +} .DvScrollWidget QPushButton, DvScrollWidget QPushButton, #ScrollLeftButton QPushButton, #ScrollRightButton QPushButton, #ScrollUpButton QPushButton, #ScrollDownButton QPushButton { - background-color: #616467; - border: 0 solid red; + background-color: #5c5f62; + border: 0 solid #262728; border-radius: 0; padding: 0; max-width: 16; @@ -554,7 +550,7 @@ DvScrollWidget QPushButton:hover, #ScrollRightButton QPushButton:hover, #ScrollUpButton QPushButton:hover, #ScrollDownButton QPushButton:hover { - background-color: #6e7174; + background-color: #696c6f; } .DvScrollWidget QPushButton:pressed, DvScrollWidget QPushButton:pressed, @@ -562,7 +558,12 @@ DvScrollWidget QPushButton:pressed, #ScrollRightButton QPushButton:pressed, #ScrollUpButton QPushButton:pressed, #ScrollDownButton QPushButton:pressed { - background-color: #2b2c2d; + background-color: #262728; +} +DvScrollWidget { + /* Multiple classes can use the same style as DvScrollWidget, and + since the compiler can't handle extending to Qt names we place the + style in a mixin and extend the name to it instead. */ } #ScrollLeftButton, #ScrollRightButton, @@ -572,11 +573,11 @@ DvScrollWidget QPushButton:pressed, min-width: 16; } #ScrollLeftButton { - border-right: 1 solid #212223; + border-right: 1 solid #262728; image: url('../Default/imgs/white/scroll-left.svg'); } #ScrollRightButton { - border-left: 1 solid #212223; + border-left: 1 solid #262728; margin-left: 3; image: url('../Default/imgs/white/scroll-right.svg'); } @@ -587,41 +588,119 @@ DvScrollWidget QPushButton:pressed, image: url('../Default/imgs/white/scroll-down.svg'); } /* -------------------------------------------------------------------------- */ +/* For the buttons to display a BG color we need to set a blank image, setting + an empty URL solves this. */ #keyFrameNavigator { - background: none; + background: transparent; margin: 0; padding: 0; } -#keyFrameNavigator QToolButton { - min-width: 18; -} #keyFrameNavigator #PreviousKey { - image: url('../Default/imgs/white/prevkey.svg'); -} -#keyFrameNavigator #PreviousKey:hover { - image: url('../Default/imgs/white/prevkey_over.svg'); + margin: 0 2; + padding-right: -1; + width: 20px; + height: 20px; + image: url(''); } #keyFrameNavigator #PreviousKey:disabled { - image: url('../Default/imgs/white/prevkey_disabled.svg'); + image: url(''); } #keyFrameNavigator #NextKey { - image: url('../Default/imgs/white/nextkey.svg'); -} -#keyFrameNavigator #NextKey:hover { - image: url('../Default/imgs/white/nextkey_over.svg'); + margin: 0 2; + padding-right: -1; + width: 20px; + height: 20px; + image: url(''); } #keyFrameNavigator #NextKey:disabled { - image: url('../Default/imgs/white/nextkey_disabled.svg'); + image: url(''); +} +#keyFrameNavigator #KeyNo, +#keyFrameNavigator #KeyPartial, +#keyFrameNavigator #KeyTotal { + margin: 0; + padding-right: -1; + width: 20px; + height: 20px; + image: url(''); +} +#keyFrameNavigator #KeyNo:disabled, +#keyFrameNavigator #KeyPartial:disabled, +#keyFrameNavigator #KeyTotal:disabled { + image: url(''); +} +#keyFrameNavigator #KeyNo { + background-color: rgba(0, 0, 0, 0); + border: 1 solid rgba(0, 0, 0, 0); + image: url(''); +} +#keyFrameNavigator #KeyNo:disabled { + image: url(''); +} +#keyFrameNavigator #KeyNo:hover { + background-color: #696c6f; + border-color: #696c6f; +} +#keyFrameNavigator #KeyPartial { + background-color: #be7323; + border: 1 solid #be7323; + image: url(''); +} +#keyFrameNavigator #KeyPartial:hover { + background-color: #db8d39; + border-color: #db8d39; +} +#keyFrameNavigator #KeyTotal { + background-color: #be7323; + border: 1 solid #be7323; +} +#keyFrameNavigator #KeyTotal:hover { + background-color: #db8d39; + border-color: #db8d39; +} +#keyFrameNavigator QToolButton#qt_toolbar_ext_button { + padding-bottom: 3; + border-radius: 2; +} +/* ----------------------------------------------------------------------------- + Tab Containers +----------------------------------------------------------------------------- */ +#TabBarContainer { + background-color: #323435; + qproperty-BottomAboveLineColor: #323435; + qproperty-BottomBelowLineColor: #262728; +} +QTabBar { + background-color: #323435; +} +/* ----------------------------------------------------------------------------- + Tabs +----------------------------------------------------------------------------- */ +QTabBar QToolButton { + /* Scroll buttons */ + margin: 0; + background-color: #414345; + border-radius: 0; + border: 1 solid #262728; + border-top: 0; + padding: 3 2 2 2; +} +QTabBar QToolButton:hover, +QTabBar QToolButton:pressed { + border-color: #262728; +} +QTabBar QToolButton:disabled { + color: rgba(214, 216, 221, 0.4); } /* ----------------------------------------------------------------------------- - Trees + Item Tree ----------------------------------------------------------------------------- */ .treeview, QTreeWidget, QTreeView, #FunctionEditorTree { - background-color: #2d2f30; - alternate-background-color: #323435; + background-color: #28292b; + alternate-background-color: #303133; border: 0; margin: 0; outline: 0; @@ -637,6 +716,7 @@ QTreeView::item:selected, QTreeWidget::branch:adjoins-item, QTreeView::branch:adjoins-item, #FunctionEditorTree::branch:adjoins-item { + /* blank URL hides default Qt branch icons where it is not wanted */ border-image: url(''); } .treeview::branch:has-siblings, @@ -688,20 +768,14 @@ QTreeView::branch:has-children:has-siblings:open, } QListView { outline: 0; - background: #2d2f30; - alternate-background-color: #323435; -} -/* ----------------------------------------------------------------------------- - Tab Systems ------------------------------------------------------------------------------ */ -#TabBarContainer { - background-color: #323435; + background: #28292b; + alternate-background-color: #303133; } /* ----------------------------------------------------------------------------- Tool Options - Override DvScroll Widget ----------------------------------------------------------------------------- */ #toolOptionsPanel QPushButton { - background-color: #616467; + background-color: #5c5f62; border: 1 solid #414345; border-radius: 2; color: #e4e5e9; @@ -709,30 +783,30 @@ QListView { padding: 0; } #toolOptionsPanel QPushButton:hover { - background-color: #6e7174; + background-color: #696c6f; border-color: #414345; color: #e4e5e9; } #toolOptionsPanel QPushButton:pressed { - background-color: #2b2c2d; - border-color: #262728; + background-color: #262728; + border-color: #212223; color: #e4e5e9; } #toolOptionsPanel QPushButton:checked { - background-color: #2b2c2d; - border-color: #262728; + background-color: #262728; + border-color: #212223; color: #e4e5e9; } #toolOptionsPanel QPushButton:checked:hover { - background-color: #303133; + background-color: #3a3b3d; } #toolOptionsPanel QPushButton:checked:hover:pressed { - background: #2b2c2d; + background: #2d2f30; } #toolOptionsPanel QPushButton:disabled { background-color: #4d5052; border-color: #414345; - color: rgba(230, 230, 230, 0.4); + color: rgba(214, 216, 221, 0.4); } /* ----------------------------------------------------------------------------- Push Button @@ -740,11 +814,12 @@ QListView { .Button, QPushButton, .ComboBox, -.ComboBox:checked, -QComboBox, -QComboBox:checked { - background-color: #616467; - border: 1 solid #414345; +#enableBlankFrameButton, +QComboBox { + background-color: #5c5f62; + border-color: #414345; + border-width: 1; + border-style: solid; border-radius: 2; color: #e4e5e9; margin: 0; @@ -753,53 +828,58 @@ QComboBox:checked { .Button:hover, QPushButton:hover, #ViewerFpsSlider::sub-line:horizontal:hover, -#ViewerFpsSlider::add-line:horizontal:hover { - background-color: #6e7174; +#ViewerFpsSlider::add-line:horizontal:hover, +#enableBlankFrameButton:hover { + background-color: #696c6f; border-color: #414345; color: #e4e5e9; } .Button:pressed, QPushButton:pressed, #ViewerFpsSlider::sub-line:horizontal:pressed, -#ViewerFpsSlider::add-line:horizontal:pressed { - background-color: #2b2c2d; - border-color: #262728; +#ViewerFpsSlider::add-line:horizontal:pressed, +#enableBlankFrameButton:pressed { + background-color: #262728; + border-color: #212223; color: #e4e5e9; } .Button:checked, -QPushButton:checked { - background-color: #2b2c2d; - border-color: #262728; +QPushButton:checked, +#enableBlankFrameButton:checked { + background-color: #262728; + border-color: #212223; color: #e4e5e9; } .Button:checked:hover, -QPushButton:checked:hover { - background-color: #303133; +QPushButton:checked:hover, +#enableBlankFrameButton:checked:hover { + background-color: #3a3b3d; + border-color: #2d2f30; } .Button:checked:hover:pressed, -QPushButton:checked:hover:pressed { - background: #2b2c2d; +QPushButton:checked:hover:pressed, +#enableBlankFrameButton:checked:hover:pressed { + background: #2d2f30; } .Button:disabled, QPushButton:disabled, .ComboBox:disabled, #ViewerFpsSlider::sub-line:horizontal:disabled, #ViewerFpsSlider::add-line:horizontal:disabled, +#enableBlankFrameButton:disabled, QComboBox:disabled { background-color: #4d5052; border-color: #414345; - color: rgba(230, 230, 230, 0.4); + color: rgba(214, 216, 221, 0.4); } #PushButton_NoPadding { padding: 3; } /* ----------------------------------------------------------------------------- - Combo Box + ComboBox ----------------------------------------------------------------------------- */ .ComboBox, -.ComboBox:checked, -QComboBox, -QComboBox:checked { +QComboBox { padding: 1 0 1 4; margin: 1 0; } @@ -810,23 +890,25 @@ QComboBox:editable { background-color: #28292b; border-color: #262728; padding: 1 0 1 3; + selection-background-color: #5385a6; + selection-color: #ffffff; } .ComboBox:hover, QComboBox:hover { - background-color: #6e7174; + background-color: #696c6f; } .ComboBox:hover:editable, QComboBox:hover:editable { background-color: #28292b; } -.ComboBox:focus, -QComboBox:focus { - border-color: #5385a6; -} .ComboBox:checked, QComboBox:checked { border-color: #5385a6; } +.ComboBox:focus, +QComboBox:focus { + border-color: #5385a6; +} .ComboBox::drop-down, QComboBox::drop-down { border: 0; @@ -836,18 +918,18 @@ QComboBox::drop-down { } .ComboBox::drop-down:editable, QComboBox::drop-down:editable { - background-color: #616467; + background-color: #5c5f62; border-left: 0 solid #414345; border-top-right-radius: 1; border-bottom-right-radius: 1; } .ComboBox::drop-down:hover, QComboBox::drop-down:hover { - border-color: #6e7174; + border-color: #696c6f; } .ComboBox::drop-down:hover:editable, QComboBox::drop-down:hover:editable { - background-color: #6e7174; + background-color: #696c6f; border-color: #414345; } .ComboBox::drop-down:disabled, @@ -861,7 +943,7 @@ QComboBox::drop-down:disabled:editable { .ComboBox QAbstractItemView, QComboBox QAbstractItemView { background-color: #414345; - border: 1 solid #212223; + border: 1 solid #262728; selection-background-color: #5385a6; selection-color: #ffffff; } @@ -900,7 +982,7 @@ QLineEdit:disabled, #tasksAddBox:disabled { background-color: #353638; border-color: #333537; - color: rgba(230, 230, 230, 0.4); + color: rgba(214, 216, 221, 0.4); } /* ----------------------------------------------------------------------------- CheckBox @@ -915,7 +997,7 @@ QCheckBox:hover { } .CheckBox:disabled, QCheckBox:disabled { - color: rgba(230, 230, 230, 0.4); + color: rgba(214, 216, 221, 0.4); } .CheckBox::indicator, QMenu::indicator:non-exclusive, @@ -1012,7 +1094,7 @@ QGroupBox::indicator:disabled { border-color: #353638; } /* ----------------------------------------------------------------------------- - Radio Button + RadioButton ----------------------------------------------------------------------------- */ .RadioButton, QRadioButton { @@ -1030,15 +1112,15 @@ QRadioButton:checked { } .RadioButton:disabled, QRadioButton:disabled { - color: rgba(230, 230, 230, 0.4); + color: rgba(214, 216, 221, 0.4); } .RadioButton::indicator, QMenu::indicator:exclusive, QMenu::indicator:exclusive, QRadioButton::indicator, #CameraSettingsRadioButton_Small::indicator { - width: 11; - height: 11; + width: 13; + height: 13; background-color: transparent; border: 0; image-position: center center; @@ -1100,7 +1182,7 @@ QGroupBox::title:hover { } .GroupBox::title:disabled, QGroupBox::title:disabled { - color: rgba(230, 230, 230, 0.4); + color: rgba(214, 216, 221, 0.4); } .GroupBox::indicator, QGroupBox::indicator { @@ -1109,7 +1191,7 @@ QGroupBox::indicator { } .GroupBox:disabled, QGroupBox:disabled { - color: rgba(230, 230, 230, 0.4); + color: rgba(214, 216, 221, 0.4); } /* ----------------------------------------------------------------------------- Slider @@ -1158,7 +1240,7 @@ QSlider::handle:horizontal:disabled { QProgressBar { text-align: center; background-color: #28292b; - border: 1 solid #212223; + border: 1 solid #262728; border-radius: 3; /* 2 fits inside 3 */ padding: 0; @@ -1167,7 +1249,7 @@ QProgressBar::chunk { margin: -1; /* hide border of chunk except for right side */ background-color: #15a136; - border: 1 solid #212223; + border: 1 solid #262728; border-radius: 2; } /* ----------------------------------------------------------------------------- @@ -1176,44 +1258,55 @@ QProgressBar::chunk { /* Left Pane ----------------------------------------------------------------------------- */ #DirTreeView { - background-color: #2d2f30; - alternate-background-color: #2d2f30; - border: 1 solid #212223; + background-color: #28292b; + alternate-background-color: #28292b; + border: 1 solid #262728; border-right: 0; } /* Right Pane ----------------------------------------------------------------------------- */ DvItemViewerPanel { + background-color: #353638; qproperty-TextColor: #d6d8dd; - qproperty-AlternateBackground: #3a3b3d; + qproperty-AlternateBackground: #3c3e40; qproperty-SelectedTextColor: #ffffff; qproperty-FolderTextColor: #9fdaff; qproperty-SelectedItemBackground: #5385a6; } -#FileBrowser DvItemViewerPanel, -#SceneCast DvItemViewerPanel { +DvItemViewerTitleBar { + qproperty-ColColor: #353638; + qproperty-ColSortedColor: #353638; + qproperty-ColTextColor: #d6d8dd; + qproperty-ColBorderColor: #262728; +} +#FileBrowser, +#SceneCast { + background-color: #414345; +} +#FileBrowser QLabel, +#SceneCast QLabel { + background-color: transparent; +} +#FileBrowser QToolBar, +#SceneCast QToolBar { background-color: #414345; } #FileBrowser #castFrame, #SceneCast #castFrame { - border-top: 1 solid #212223; - border-right: 1 solid #212223; - border-bottom: 1 solid #212223; + border-top: 1 solid #262728; + border-right: 1 solid #262728; + border-bottom: 1 solid #262728; margin: 0; } -#FileBrowser QToolButton, -#SceneCast QToolButton { - padding: 1; -} StyledTreeView { qproperty-TextColor: #d6d8dd; qproperty-SelectedTextColor: #ffffff; qproperty-SelectedItemBackground: #5385a6; qproperty-FolderTextColor: #9fdaff; qproperty-SelectedFolderTextColor: #ffffff; - alternate-background-color: #323435; - background-color: #2d2f30; - border: 1 solid #212223; + alternate-background-color: #303133; + background-color: #28292b; + border: 1 solid #262728; } #FileDoesNotExistLabel { color: #ff0000; @@ -1222,22 +1315,39 @@ StyledTreeView { Scene Cast ----------------------------------------------------------------------------- */ #SceneCast QToolBar { - border-top: 1 solid #212223; + border-top: 1 solid #262728; +} +#SceneCast QToolBar::separator:horizontal { + margin-left: 2; + margin-right: 0; } #SceneCast QToolButton { - margin: 3 1 2 1; + margin: 3 0 2 2; padding: 1; } #CastBrowser { border: 0; margin: 0; } +#CastBrowser QSplitter::handle { + height: 4; +} +#CastBrowserFolderName { + border-bottom: 1px solid #262728; +} /* ----------------------------------------------------------------------------- Level Strip ----------------------------------------------------------------------------- */ +#filmLevelCombo { + margin: -1; +} +#FilmStrip { + qproperty-BGColor: #414345; + margin: 0; + padding: 0; +} #FilmStrip QComboBox { border-radius: 0; - border-width: 0; } #FilmStrip QComboBox QAbstractItemView { background-color: #414345; @@ -1265,13 +1375,17 @@ ParamsPage { background: none; } #CameraSettingsRadioButton::indicator { - border: 1 solid rgba(255, 255, 255, 0); + border: 1 solid transparent; height: 18; - padding: 0; - width: 18; + padding: 0 -1 0 1; + width: 19; + margin-left: 1; } #CameraSettingsRadioButton::indicator:unchecked { - image: url('../Default/imgs/white/lock_off.svg'); + image: url('../Default/imgs/white/lock.svg'); +} +#CameraSettingsRadioButton::indicator:unchecked:hover { + image: url('../Default/imgs/white/lock_over.svg'); } #CameraSettingsRadioButton::indicator:checked { background-color: #C34040; @@ -1291,20 +1405,14 @@ ParamsPage { #CameraSettingsRadioButton_Small::indicator { background-color: transparent; border: 0; - height: 21; margin: 0; - width: 11; } #ForceSquaredPixelButton { + margin: 0; height: 16; - border: 1 solid rgba(255, 255, 255, 0); - image: url('../Default/imgs/white/fsp_unchecked.svg'); - padding: 2; width: 16; - margin: 0; -} -#ForceSquaredPixelButton:checked { - image: url('../Default/imgs/white/fsp_checked.svg'); + border: 1 solid transparent; + padding: 2; } /* ----------------------------------------------------------------------------- Output Settings @@ -1347,15 +1455,12 @@ PencilTestPopup { margin-left: -4; } #StopMotionController #bottomWidget { - border-top: 1 solid #212223; + border-top: 1 solid #262728; padding: 3 2 8 3; } #StopMotionController #bottomWidget QPushButton { padding: 3 5; } -#StopMotionTabBar::tab::first { - border-left: 1 solid #212223; -} /* ----------------------------------------------------------------------------- Unknowns + Legacy ----------------------------------------------------------------------------- */ @@ -1385,22 +1490,15 @@ QStatusBar #StatusBarLabel { Style Editor ----------------------------------------------------------------------------- */ #StyleEditor #TabBarContainer { - margin-left: -5; + margin-left: -5px; } #StyleEditor #bottomWidget { - border-top: 1 solid #212223; + border-top: 1 solid #262728; padding: 3 2 8 3; } #StyleEditor #bottomWidget QPushButton { padding: 3 5; } -#StyleEditorTabBar { - padding: 0; - margin: 0; -} -#StyleEditorTabBar::tab:first { - border-left: 1 solid #212223; -} #HexagonalColorWheel { qproperty-BGColor: #414345; } @@ -1421,7 +1519,7 @@ QStatusBar #StatusBarLabel { image-position: center center; min-height: 16; padding: 0; - min-width: 18; + min-width: 10; } #colorSliderAddButton { image: url('../Default/imgs/white/scroll-right.svg'); @@ -1430,7 +1528,7 @@ QStatusBar #StatusBarLabel { image: url('../Default/imgs/white/scroll-left.svg'); } #PlainColorPageParts { - border-bottom: 1 solid #212223; + border-bottom: 1 solid #262728; } #PlainColorPageParts QLineEdit { max-width: 35; @@ -1457,18 +1555,37 @@ PaletteViewer DvScrollWidget #ScrollRightButton { max-width: 16; min-width: 16; } +PaletteViewer QToolBar { + background: transparent; +} PaletteViewer QToolBar::separator:horizontal { margin: 0; } PaletteViewer QToolBar QToolButton { + padding: 0; + padding-right: -2; + padding-left: -1; +} +PaletteViewer QToolBar #keyFrameNavigator #NextKey, +PaletteViewer QToolBar #keyFrameNavigator #PreviousKey, +PaletteViewer QToolBar #keyFrameNavigator #KeyNo, +PaletteViewer QToolBar #keyFrameNavigator #KeyPartial, +PaletteViewer QToolBar #keyFrameNavigator #KeyTotal { + max-width: 20px; + max-height: 20px; + padding: 1; + border: 0; margin: 0; - padding: 2 0 2 0; -} -#PaletteTabBar::tab { - padding-bottom: 4; } #PageViewer { qproperty-TextColor: #d6d8dd; + qproperty-SelectedBorderColor: #ffffff; + qproperty-NumpadShortcutBgColor: rgba(0, 0, 0, 0.3); + qproperty-NumpadShortcutBorderColor: #8d8d8d; + qproperty-SeparatorColor: #262728; + qproperty-CurrentCellColor: rgba(83, 133, 166, 0.5); + qproperty-SelectedCellColor: #5385a6; + qproperty-ListNumpadShortcutBorderColor: #afafaf; } #PaletteLockButton { border-radius: 0; @@ -1496,7 +1613,7 @@ QDialog { } QDialog #dialogButtonFrame { background-color: #37393a; - border-top: 1 solid #212223; + border-top: 1 solid #262728; } QDialog #dialogButtonFrame QPushButton { border-color: #37393a; @@ -1511,8 +1628,8 @@ QDialog #dialogButtonFrame QPushButton:focus:hover { background-color: #6c98b6; } QDialog #dialogButtonFrame QPushButton:focus:pressed { - background-color: #2b2c2d; - border-color: #262728; + background-color: #262728; + border-color: #212223; color: #e4e5e9; } /* ----------------------------------------------------------------------------- @@ -1527,7 +1644,7 @@ QDialog #dialogButtonFrame QPushButton:focus:pressed { #PreferencesPopup QListWidget { background-color: #2d2f30; alternate-background-color: #2d2f30; - border: 1 solid #212223; + border: 1 solid #262728; font-size: 13px; } #PreferencesPopup QListWidget::item { @@ -1535,8 +1652,8 @@ QDialog #dialogButtonFrame QPushButton:focus:pressed { padding: 3; } #PreferencesPopup QListWidget::item:hover { + background-color: rgba(255, 255, 255, 0.1); color: #d6d8dd; - background-color: rgba(255, 255, 255, 0.15); } #PreferencesPopup QListWidget::item:selected { background-color: #5385a6; @@ -1546,7 +1663,7 @@ QDialog #dialogButtonFrame QPushButton:focus:pressed { Keyboard Shortcuts ----------------------------------------------------------------------------- */ #ShortcutTree { - border: 1 solid #212223; + border: 1 solid #262728; } #ShortcutTree::item { padding: 1 0; @@ -1564,59 +1681,59 @@ ProjectPopup QLabel { /* ----------------------------------------------------------------------------- PencilTestPopup / CameraCapture Window ----------------------------------------------------------------------------- */ -#GearButton { - qproperty-icon: url('../Default/imgs/white/gear.svg'); -} #GearButton::menu-indicator { - image: ""; + image: url(""); } #SubfolderButton { - qproperty-icon: url('../Default/imgs/white/subfolder.svg'); - padding-left: 6px; - padding-right: 6px; + padding-left: 5px; + padding-right: 5px; } #SubcameraButton { - qproperty-icon: url('../Default/imgs/white/subcamera.svg'); - padding-left: 6px; - padding-right: 6px; + padding-left: 5px; + padding-right: 5px; } /* ----------------------------------------------------------------------------- Schematic Viewer ----------------------------------------------------------------------------- */ SchematicViewer { qproperty-TextColor: #d6d8dd; - qproperty-VerticalLineColor: rgba(0, 0, 0, 0.6); + qproperty-VerticalLineColor: rgba(0, 0, 0, 0.3); qproperty-LevelColumnColor: #4C6E4C; qproperty-VectorColumnColor: #7B7B4C; qproperty-ChildColumnColor: #6A526B; qproperty-FullcolorColumnColor: #657A96; - qproperty-FxColumnColor: #56553C; - qproperty-PaletteColumnColor: #3A655F; - qproperty-MeshColumnColor: #684D86; - qproperty-ReferenceColumnColor: #616161; + qproperty-FxColumnColor: #6d6349; + qproperty-PaletteColumnColor: #42756e; + qproperty-MeshColumnColor: #5e4d72; + qproperty-ReferenceColumnColor: #4d5052; qproperty-TableColor: #62628c; - qproperty-ActiveCameraColor: #2d7dca; - qproperty-OtherCameraColor: #6c797b; + qproperty-ActiveCameraColor: #4073a3; + qproperty-OtherCameraColor: #5e9aa3; qproperty-GroupColor: #3b6e9c; qproperty-PegColor: #9f6e3c; qproperty-SplineColor: #6a9d1c; - qproperty-ActiveOutputColor: #2d7dca; - qproperty-OtherOutputColor: #6c797b; + qproperty-ActiveOutputColor: #4073a3; + qproperty-OtherOutputColor: #5e9aa3; qproperty-XsheetColor: #62628c; - qproperty-NormalFxColor: #6a7e96; + qproperty-NormalFxColor: #5b90a3; qproperty-MacroFxColor: #815c79; qproperty-ImageAdjustFxColor: #656287; - qproperty-LayerBlendingFxColor: #4f757d; + qproperty-LayerBlendingFxColor: #57958f; qproperty-MatteFxColor: #ae7171; qproperty-SchematicPreviewButtonBgOnColor: #c8c864; - qproperty-SchematicPreviewButtonOnImage: url('../Default/imgs/white/x_prev_eye_on.svg'); - qproperty-SchematicPreviewButtonBgOffColor: #616161; - qproperty-SchematicPreviewButtonOffImage: url('../Default/imgs/white/x_prev_eye_off.svg'); + qproperty-SchematicPreviewButtonOnImage: url('../Default/imgs/white/schematic_preview_on.svg'); + qproperty-SchematicPreviewButtonBgOffColor: #4d5052; + qproperty-SchematicPreviewButtonOffImage: url('../Default/imgs/white/schematic_preview_off.svg'); qproperty-SchematicCamstandButtonBgOnColor: #eb906b; - qproperty-SchematicCamstandButtonOnImage: url('../Default/imgs/white/x_table_view_on.svg'); - qproperty-SchematicCamstandButtonTranspImage: url('../Default/imgs/white/x_table_view_transp.svg'); - qproperty-SchematicCamstandButtonBgOffColor: #616161; - qproperty-SchematicCamstandButtonOffImage: url('../Default/imgs/white/x_table_view_off.svg'); + qproperty-SchematicCamstandButtonOnImage: url('../Default/imgs/white/schematic_table_on.svg'); + qproperty-SchematicCamstandButtonTranspImage: url('../Default/imgs/white/schematic_table_transp.svg'); + qproperty-SchematicCamstandButtonBgOffColor: #4d5052; + qproperty-SchematicCamstandButtonOffImage: url('../Default/imgs/white/schematic_table_off.svg'); + qproperty-SelectedBorderColor: #ffffff; + qproperty-LinkColor: #dfdfdf; + qproperty-SelectedLinkColor: cyan; + qproperty-MotionPathLinkColor: #94ee1e; + qproperty-MotionPathSelectedLinkColor: yellow; } /* ----------------------------------------------------------------------------- Schematic Node Viewer @@ -1626,53 +1743,75 @@ SchematicViewer { border: 0; margin: 0; padding: 0; + padding-left: 1; } #SchematicBottomFrame QToolBar::separator:horizontal { margin: 0; + margin-right: 1; } #SchematicBottomFrame QToolBar QToolButton { - padding: 0; - margin: 2; + padding: -2; + margin-right: 2; + margin-top: 2; + margin-bottom: 2; } #SchematicSceneViewer { background-color: #353638; - border-bottom: 1 solid #212223; + border-bottom: 1 solid #262728; } /* ----------------------------------------------------------------------------- FX Settings ----------------------------------------------------------------------------- */ -#FxSettingsTabBar::tab { - border-top: 1 solid #212223; -} -#FxSettingsTabBar::tab::first, -#FxSettingsTabBar::tab::only-one { - border-left: 1 solid #212223; -} FxSettings QToolBar { - border-top: 1 solid #212223; - border-right: 1 solid #212223; - border-left: 1 solid #212223; - min-height: 23; + border: 1 1 0 1 solid #262728; + min-height: 19; padding: 3 0; + border-top: 1 solid #262728; + border-left: 1 solid #262728; + border-right: 1 solid #262728; + border-top-left-radius: 2; + border-top-right-radius: 2; + margin-bottom: -1; } FxSettings QToolBar QToolBar { border: 0; } +FxSettings QToolBar QToolButton { + margin: 0; + padding: 0; + width: 22; + padding-right: -2; + padding-bottom: -1; +} #FxSettingsLabel { color: #a0e680; } #FxSettingsHelpButton { - background-color: #80a0dc; - color: #000; + background-color: transparent; + border: 0; padding-top: 0; padding-bottom: 0; } #FxSettingsHelpButton:hover { - background-color: #a8bee7; + background-color: #696c6f; } ChannelBar { qproperty-TextColor: #d6d8dd; } +/* Keyframe Button Colors +----------------------------------------------------------------------------- */ +ParamFieldKeyToggle { + qproperty-KeyOffColor: rgba(0, 0, 0, 0); + qproperty-KeyBorderOffColor: rgba(0, 0, 0, 0); + qproperty-KeyModifiedColor: #beb062; + qproperty-KeyBorderModifiedColor: #beb062; + qproperty-KeyOnColor: #be7323; + qproperty-KeyBorderOnColor: #be7323; + qproperty-KeyInbetweenColor: #80795b; + qproperty-KeyBorderInbetweenColor: #80795b; + qproperty-KeyHighlightColor: rgba(255, 255, 255, 0.3); + qproperty-KeyBorderHighlightColor: rgba(255, 255, 255, 0.3); +} /* ----------------------------------------------------------------------------- Script Console ----------------------------------------------------------------------------- */ @@ -1695,7 +1834,7 @@ ChannelBar { color: #d6d8dd; } #Tasks QToolBar { - border-bottom: 1 solid #212223; + border-bottom: 1 solid #262728; margin: 0; padding: 0; } @@ -1703,24 +1842,46 @@ ChannelBar { margin: 2 2 3 2; } /* ----------------------------------------------------------------------------- - Tool Bar + Tools Window ----------------------------------------------------------------------------- */ #ToolBar QToolBar { - padding-left: 2; + padding-left: 3px; +} +#ToolBar QToolButton { + padding: 1 0 0 1; + margin-top: 1; + margin-bottom: 1; +} +#ToolBar QToolButton#qt_toolbar_ext_button { + qproperty-icon: url('../Default/imgs/white/toolbar_extension_vertical.png'); + padding-bottom: 1; +} +#ToolBar QToolButton#qt_toolbar_ext_button:hover { + background-color: #696c6f; +} +#ToolBar QToolButton#qt_toolbar_ext_button:pressed { + background-color: #262728; +} +#expandButton:checked { + background-color: transparent; + border-color: transparent; + color: #d6d8dd; +} +#expandButton:checked:hover { + background-color: #696c6f; + border-color: #696c6f; +} +#expandButton:checked:pressed { + background-color: #262728; + border-color: #212223; } /* ----------------------------------------------------------------------------- - Tool Options + Tool Options Window ----------------------------------------------------------------------------- */ #ToolOptions TPanelTitleBar { - border-right: 1 solid #212223; border-bottom: 0; -} -#CommandBar TPanelTitleBar { - border-right: 1 solid #212223; - border-bottom: 0; -} -IconViewField { - qproperty-ThicknessPixmap: url("../Default/imgs/white/selectiontool_thickness.svg"); + border-right: 1px solid #262728; + max-width: 18; } #EditToolLockButton { spacing: 0; @@ -1729,13 +1890,17 @@ IconViewField { background: none; } #EditToolLockButton::indicator { - border: 1 solid rgba(255, 255, 255, 0); + border: 1 solid transparent; height: 18; - padding: 0; - width: 18; + padding: 0 -1 0 1; + width: 19; + margin-left: 1; } #EditToolLockButton::indicator:unchecked { - image: url('../Default/imgs/white/lock_off.svg'); + image: url('../Default/imgs/white/lock.svg'); +} +#EditToolLockButton::indicator:unchecked:hover { + image: url('../Default/imgs/white/lock_over.svg'); } #EditToolLockButton::indicator:checked { background-color: #C34040; @@ -1776,12 +1941,34 @@ PopupButton::menu-indicator:disabled { padding: 0; } QToolBar#MediumPaddingToolBar QToolButton { - padding-left: 3; - padding-right: 3; + padding-left: 2; + padding-right: 1; } QToolBar#WidePaddingToolBar QToolButton { - padding-left: 6; - padding-right: 6; + padding-left: 2; + padding-right: 1; +} +/* XSheet Toolbar & Command Bar +----------------------------------------------------------------------------- */ +#XSheetToolbar { + padding: 0; + margin: 0; + border-bottom: 1 solid #262728; +} +#XSheetToolbar QToolButton#qt_toolbar_ext_button { + margin: 0; + margin-top: 3; +} +#XSheetToolbar QToolButton { + padding: 0; + padding-right: -1; + padding-bottom: -1; + min-height: 20px; + margin-left: 2; + margin-right: 0; +} +#XSheetToolbar::separator:horizontal { + margin: 0 0 0 2; } #CommandBar { margin: 0; @@ -1789,43 +1976,60 @@ QToolBar#WidePaddingToolBar QToolButton { border: 0; } #CommandBar::separator:horizontal { - margin-right: 3; - margin-left: 3; + margin-right: 0; + margin-left: 2; } -#expandButton:checked { - background-color: transparent; - border-color: transparent; - color: #d6d8dd; +#CommandBar QToolButton { + margin: 0 0 0 2; + padding: 0; + padding-top: -1; + padding-left: 0; + padding-right: -1; + padding-bottom: 0; + min-height: 20px; } -#expandButton:checked:hover { - background-color: #6e7174; - border-color: #6e7174; +#CommandBar QToolButton#qt_toolbar_ext_button { + margin-top: 1; } -#expandButton:checked:pressed { - background-color: #2b2c2d; - border-color: #262728; +#CommandBar TPanelTitleBar { + border-right: 1px solid #262728; + border-bottom: 0; + max-width: 18; } /* ----------------------------------------------------------------------------- ComboViewer / Viewer / FlipBook ----------------------------------------------------------------------------- */ #ComboViewerPanel Toolbar { - border-bottom: 1 solid #212223; + border-bottom: 1 solid #262728; } #ComboViewerPanel Toolbar::separator:horizontal { margin: 0 0 0 2; + padding: 0; } #ComboViewerPanel Toolbar QToolButton { - margin: 2 0 3 2; + margin: 0; + margin-bottom: 3; + margin-left: 2; + margin-right: 0; + margin-top: 2; + padding-top: 1; + padding-left: 1; + padding-right: 0; + padding-bottom: 0; +} +#ComboViewerPanel Toolbar QToolButton#qt_toolbar_ext_button { + margin-bottom: 1; + qproperty-icon: url('../Default/imgs/white/toolbar_extension_horizontal.png'); } #ComboViewerToolOptions { - border-bottom: 1 solid #212223; + border-bottom: 1 solid #262728; } #ComboViewer #ToolBarContainer, #ViewerPanel #ToolBarContainer, FlipBook #ToolBarContainer { background-color: transparent; - border-top: 2 solid #212223; - border-bottom: 1 solid #212223; + border-top: 1 solid #262728; + border-bottom: 1 solid #262728; padding-right: -1; } #flipCustomize { @@ -1839,14 +2043,31 @@ FlipBook #ToolBarContainer { image: none; } QToolBar#FlipConsolePlayToolBar::separator:horizontal { - margin: 0 3; + border-color: #262728; + margin: 0 1 0 1; } QToolBar#FlipConsolePlayToolBar QToolButton { - margin-top: 2; - margin-bottom: 2; - height: 16; - padding-left: 1; + padding-left: 0; + padding-top: -1; + padding-right: -1; + padding-bottom: -2; + margin: 2 1 2 1; +} +QToolBar#FlipConsolePlayToolBar #KeyNo, +QToolBar#FlipConsolePlayToolBar #KeyPartial, +QToolBar#FlipConsolePlayToolBar #KeyTotal, +QToolBar#FlipConsolePlayToolBar #PreviousKey, +QToolBar#FlipConsolePlayToolBar #NextKey { padding-right: 1; + padding-left: 1; + max-width: 20px; + max-height: 20px; + padding-bottom: 0; + padding-top: 0; +} +QToolBar#FlipConsolePlayToolBar #PreviousKey, +QToolBar#FlipConsolePlayToolBar #NextKey { + margin: 0 2; } #ViewerFpsSlider { background-color: transparent; @@ -1861,7 +2082,7 @@ QToolBar#FlipConsolePlayToolBar QToolButton { } #ViewerFpsSlider::sub-line:horizontal { subcontrol-origin: absolute; - background-color: #616467; + background-color: #5c5f62; border: 1 solid #414345; border-top-left-radius: 2; border-bottom-left-radius: 2; @@ -1871,7 +2092,7 @@ QToolBar#FlipConsolePlayToolBar QToolButton { } #ViewerFpsSlider::add-line:horizontal { subcontrol-position: left; - background-color: #616467; + background-color: #5c5f62; border: 1 solid #414345; border-top-right-radius: 2; border-bottom-right-radius: 2; @@ -1889,6 +2110,9 @@ QToolBar#FlipConsolePlayToolBar QToolButton { width: 9; max-width: 9; } +FlipConsole { + qproperty-FpsFieldColor: #28292b; +} FlipSlider { qproperty-PBHeight: 15; qproperty-PBOverlay: url('../Default/imgs/white/flipslider.svg'); @@ -1906,11 +2130,24 @@ FlipSlider { } Ruler { qproperty-ParentBGColor: #414345; - qproperty-ScaleColor: #d6d8dd; + qproperty-ScaleColor: rgba(214, 216, 221, 0.7); + qproperty-HandleColor: #64b0e2; + qproperty-HandleDragColor: yellow; + qproperty-BorderColor: rgba(38, 39, 40, 0.7); } #RulerToolOptionValues { color: #000000; } +#enableBlankFrameButton { + background-color: transparent; + border-color: transparent; + color: rgba(214, 216, 221, 0.4); + padding: 0; + font-weight: bold; +} +#enableBlankFrameButton:checked { + border-width: 2px; +} /* ----------------------------------------------------------------------------- XSheet Viewer ----------------------------------------------------------------------------- */ @@ -1918,7 +2155,7 @@ Ruler { ----------------------------------------------------------------------------- */ #xsheetArea, #ScrollArea { - background-color: #2d2f30; + background-color: #414345; border: 0; } #xsheetScrollArea { @@ -1927,6 +2164,19 @@ Ruler { #cornerWidget QToolButton { padding: 0; } +#XsheetCellArea QLineEdit { + margin-top: 1; +} +#XsheetCellArea QLineEdit:focus { + border-radius: 0; + border-width: 2; + border-left-width: 2; + border-color: #000; + background-color: #000000; +} +#RenameCellField { + padding-right: 3; +} /* xsheetColumnHeader (Context Menus) ----------------------------------------------------------------------------- */ #xsheetColumnAreaMenu_Preview { @@ -1946,136 +2196,130 @@ Ruler { #noteTextEdit { color: #000; } +#DvMiniToolBar { + border: 1 solid #262728; +} /* XSheet Spreadsheet ----------------------------------------------------------------------------- */ XsheetViewer { qproperty-TextColor: #d6d8dd; - qproperty-BGColor: #353638; - qproperty-LightLineColor: rgba(0, 0, 0, 0.25); - qproperty-MarkerLineColor: #1E96C4; - qproperty-VerticalLineColor: rgba(0, 0, 0, 0.6); - qproperty-VerticalLineHeadColor: #777b7f; + qproperty-ErrorTextColor: #ff7b7b; + qproperty-BGColor: #3a3b3d; + qproperty-LightLineColor: rgba(0, 0, 0, 0.2); + qproperty-MarkerLineColor: rgba(255, 255, 255, 0.15); + qproperty-VerticalLineColor: rgba(0, 0, 0, 0.3); + qproperty-VerticalLineHeadColor: #212223; qproperty-PreviewFrameTextColor: #9fdaff; - qproperty-CurrentRowBgColor: #506082; - qproperty-OnionSkinAreaBgColor: #303133; - qproperty-EmptyColumnHeadColor: #5a5d60; - qproperty-EmptyCellColor: #393b3d; - qproperty-NotEmptyColumnColor: #414345; - qproperty-SelectedEmptyCellColor: #64676a; + qproperty-CurrentRowBgColor: rgba(83, 133, 166, 0.7); + qproperty-OnionSkinAreaBgColor: #323435; + qproperty-CellFocusColor: #000; + qproperty-ColumnIconLineColor: #262728; + qproperty-EmptyColumnHeadColor: #414345; + qproperty-ColumnHeadPastelizer: rgba(0, 0, 0, 0); + qproperty-SelectedColumnHead: rgba(221, 231, 237, 0.3); + qproperty-PlayRangeColor: #414345; + qproperty-FoldedColumnBGColor: #5a5d5f; + qproperty-FoldedColumnLineColor: #353638; + qproperty-EmptyCellColor: #323435; + qproperty-NotEmptyColumnColor: #3a3b3d; + qproperty-SelectedEmptyCellColor: rgba(96, 109, 118, 0.5); qproperty-LevelColumnColor: #4C6E4C; - qproperty-LevelColumnBorderColor: #8FB38F; - qproperty-SelectedLevelColumnColor: #678667; + qproperty-LevelColumnBorderColor: #375037; + qproperty-SelectedLevelColumnColor: #59846c; qproperty-VectorColumnColor: #7B7B4C; - qproperty-VectorColumnBorderColor: #BBBB9A; - qproperty-SelectedVectorColumnColor: #949466; + qproperty-VectorColumnBorderColor: #5b5b39; + qproperty-SelectedVectorColumnColor: #85906c; qproperty-ChildColumnColor: #6A526B; - qproperty-ChildColumnBorderColor: #B1A3B3; - qproperty-SelectedChildColumnColor: #816e82; + qproperty-ChildColumnBorderColor: #4d3c4e; + qproperty-SelectedChildColumnColor: #756a89; qproperty-FullcolorColumnColor: #657A96; - qproperty-FullcolorColumnBorderColor: #9EB8BB; - qproperty-SelectedFullcolorColumnColor: #8895a6; - qproperty-FxColumnColor: #56553C; - qproperty-FxColumnBorderColor: #95958A; - qproperty-SelectedFxColumnColor: #6f6e56; - qproperty-ReferenceColumnColor: #616161; - qproperty-ReferenceColumnBorderColor: #A2A2A2; - qproperty-SelectedReferenceColumnColor: #7a7a7a; - qproperty-PaletteColumnColor: #3A655F; - qproperty-PaletteColumnBorderColor: #86ACA7; - qproperty-SelectedPaletteColumnColor: #52807a; - qproperty-MeshColumnColor: #684D86; - qproperty-MeshColumnBorderColor: #BA92EF; - qproperty-SelectedMeshColumnColor: #82689e; - qproperty-SoundTextColumnColor: #c8c8c8; - qproperty-SoundTextColumnBorderColor: #8c8c8c; - qproperty-SelectedSoundTextColumnColor: #e2e2e2; - qproperty-SoundColumnColor: #657456; - qproperty-SoundColumnBorderColor: #A0AF7D; - qproperty-SelectedSoundColumnColor: #7e8b72; + qproperty-FullcolorColumnBorderColor: #506178; + qproperty-SelectedFullcolorColumnColor: #708fb1; + qproperty-FxColumnColor: #6d6349; + qproperty-FxColumnBorderColor: #4e4735; + qproperty-SelectedFxColumnColor: #787a6a; + qproperty-ReferenceColumnColor: #4d5052; + qproperty-ReferenceColumnBorderColor: #353638; + qproperty-SelectedReferenceColumnColor: #5b6872; + qproperty-PaletteColumnColor: #42756e; + qproperty-PaletteColumnBorderColor: #30544f; + qproperty-SelectedPaletteColumnColor: #508b8c; + qproperty-MeshColumnColor: #5e4d72; + qproperty-MeshColumnBorderColor: #453854; + qproperty-SelectedMeshColumnColor: #6a6690; + qproperty-SoundTextColumnColor: #a7a7a7; + qproperty-SoundTextColumnBorderColor: #8e8e8e; + qproperty-SelectedSoundTextColumnColor: #adb9c0; + qproperty-SoundColumnColor: #578a8a; + qproperty-SoundColumnBorderColor: #436b6b; + qproperty-SelectedSoundColumnColor: #639ea6; qproperty-SoundColumnHlColor: #34FE5E; - qproperty-SoundColumnTrackColor: #B6C29D; - qproperty-ColumnHeadPastelizer: #000; - qproperty-SelectedColumnHead: #506082; - qproperty-LightLightBGColor: #393b3d; + qproperty-SoundColumnTrackColor: rgba(0, 0, 0, 0.8); + qproperty-ActiveCameraColor: #4073a3; + qproperty-SelectedActiveCameraColor: #4e89bd; + qproperty-OtherCameraColor: #5e9aa3; + qproperty-SelectedOtherCameraColor: #6aadbd; + qproperty-LightLightBGColor: #323435; qproperty-LightBGColor: #eaebec; qproperty-DarkBGColor: #dbdcdd; qproperty-DarkLineColor: #8e9194; + qproperty-TimelineIconLineColor: rgba(0, 0, 0, 0.3); qproperty-XsheetColumnNameBgColor: rgba(0, 0, 0, 0); - qproperty-XsheetDragBarHighlightColor: rgba(255, 255, 255, 0.5); + qproperty-XsheetDragBarHighlightColor: rgba(255, 255, 255, 0.15); qproperty-XsheetPreviewButtonBgOnColor: #c8c864; qproperty-XsheetPreviewButtonOnImage: url('../Default/imgs/white/x_prev_eye_on.svg'); - qproperty-XsheetPreviewButtonBgOffColor: rgba(255, 255, 255, 0); + qproperty-XsheetPreviewButtonBgOffColor: transparent; qproperty-XsheetPreviewButtonOffImage: url('../Default/imgs/white/x_prev_eye_off.svg'); qproperty-XsheetCamstandButtonBgOnColor: #eb906b; qproperty-XsheetCamstandButtonOnImage: url('../Default/imgs/white/x_table_view_on.svg'); qproperty-XsheetCamstandButtonTranspImage: url('../Default/imgs/white/x_table_view_transp.svg'); - qproperty-XsheetCamstandButtonBgOffColor: rgba(255, 255, 255, 0); + qproperty-XsheetCamstandButtonBgOffColor: transparent; qproperty-XsheetCamstandButtonOffImage: url('../Default/imgs/white/x_table_view_off.svg'); - qproperty-XsheetLockButtonBgOnColor: rgba(255, 255, 255, 0.3); + qproperty-XsheetLockButtonBgOnColor: rgba(255, 255, 255, 0.6); qproperty-XsheetLockButtonOnImage: url('../Default/imgs/white/x_lock_on.svg'); - qproperty-XsheetLockButtonBgOffColor: rgba(255, 255, 255, 0); + qproperty-XsheetLockButtonBgOffColor: transparent; qproperty-XsheetLockButtonOffImage: url('../Default/imgs/white/x_lock_off.svg'); qproperty-XsheetConfigButtonBgColor: rgba(255, 255, 255, 0); qproperty-XsheetConfigButtonImage: url('../Default/imgs/white/x_config.svg'); - qproperty-TimelinePreviewButtonBgOnColor: rgba(255, 255, 255, 0); - qproperty-TimelinePreviewButtonOnImage: url('../Default/imgs/white/timeline_toggle_on.svg'); - qproperty-TimelinePreviewButtonBgOffColor: rgba(255, 255, 255, 0); - qproperty-TimelinePreviewButtonOffImage: url('../Default/imgs/white/timeline_toggle_off.svg'); - qproperty-TimelineCamstandButtonBgOnColor: rgba(255, 255, 255, 0); - qproperty-TimelineCamstandButtonOnImage: url('../Default/imgs/white/timeline_toggle_on.svg'); - qproperty-TimelineCamstandButtonTranspImage: url('../Default/imgs/white/timeline_toggle_transp.svg'); - qproperty-TimelineCamstandButtonBgOffColor: rgba(255, 255, 255, 0); - qproperty-TimelineCamstandButtonOffImage: url('../Default/imgs/white/timeline_toggle_off.svg'); - qproperty-TimelineLockButtonBgOnColor: rgba(255, 255, 255, 0); - qproperty-TimelineLockButtonOnImage: url('../Default/imgs/white/timeline_toggle_on.svg'); - qproperty-TimelineLockButtonBgOffColor: rgba(255, 255, 255, 0); - qproperty-TimelineLockButtonOffImage: url('../Default/imgs/white/timeline_toggle_off.svg'); - qproperty-TimelineConfigButtonBgColor: rgba(255, 255, 255, 0); + qproperty-FrameRangeMarkerLineColor: #66696c; + qproperty-TimelinePreviewButtonBgOnColor: #414345; + qproperty-TimelinePreviewButtonOnImage: url('../Default/imgs/white/preview_small.svg'); + qproperty-TimelinePreviewButtonBgOffColor: #414345; + qproperty-TimelinePreviewButtonOffImage: url('none'); + qproperty-TimelineCamstandButtonBgOnColor: #414345; + qproperty-TimelineCamstandButtonOnImage: url('../Default/imgs/white/table_small.svg'); + qproperty-TimelineCamstandButtonTranspImage: url('../Default/imgs/white/trans_small.svg'); + qproperty-TimelineCamstandButtonBgOffColor: #414345; + qproperty-TimelineCamstandButtonOffImage: url('none'); + qproperty-TimelineLockButtonBgOnColor: #414345; + qproperty-TimelineLockButtonOnImage: url('../Default/imgs/white/lock_on_small.svg'); + qproperty-TimelineLockButtonBgOffColor: #414345; + qproperty-TimelineLockButtonOffImage: url('none'); + qproperty-TimelineConfigButtonBgColor: #414345; qproperty-TimelineConfigButtonImage: url('../Default/imgs/white/timeline_config.svg'); qproperty-LayerHeaderPreviewImage: url('../Default/imgs/white/layer_header_prev_eye.svg'); qproperty-LayerHeaderPreviewOverImage: url('../Default/imgs/white/layer_header_prev_eye_over.svg'); qproperty-LayerHeaderCamstandImage: url('../Default/imgs/white/layer_header_table_view.svg'); qproperty-LayerHeaderCamstandOverImage: url('../Default/imgs/white/layer_header_table_view_over.svg'); - qproperty-LayerHeaderLockImage: url('../Default/imgs/white/lock_on.svg'); - qproperty-LayerHeaderLockOverImage: url('../Default/imgs/white/lock_on_over.svg'); - qproperty-ActiveCameraColor: #2d7dca; - qproperty-SelectedActiveCameraColor: #5796d3; - qproperty-OtherCameraColor: #6c797b; - qproperty-SelectedOtherCameraColor: #8b8e8f; -} -/* XSheet Toolbar ------------------------------------------------------------------------------ */ -#XSheetToolbar { - margin: 0; - padding: 0; - border: 0; -} -#XSheetToolbar QToolButton { - padding: 0; - margin: 4 1; - min-height: 19; - height: 19; -} -#XSheetToolbar::separator:horizontal { - margin: 0 4; + qproperty-LayerHeaderLockImage: url('../Default/imgs/white/layer_lock_on.svg'); + qproperty-LayerHeaderLockOverImage: url('../Default/imgs/white/layer_lock_on_over.svg'); } /* ----------------------------------------------------------------------------- Function Editor ----------------------------------------------------------------------------- */ #FunctionEditor QToolBar { - border-bottom: 1 solid #212223; + border-bottom: 1 solid #262728; + background-color: transparent; + padding-bottom: 10; } #FunctionEditor QToolBar QToolBar { border: 0; } -#FunctionEditor QToolBar QLabel { - margin-left: 5; -} #FunctionEditor QToolBar QToolButton { - height: 18; + margin-bottom: 2; } #FunctionEditorTree { - border-top: 1 solid #212223; + border-top: 1 solid #262728; } FunctionTreeView { qproperty-TextColor: #d6d8dd; @@ -2083,50 +2327,35 @@ FunctionTreeView { /* Function Editor Spreadsheet ----------------------------------------------------------------------------- */ FunctionPanel { - qproperty-BGColor: #343638; - qproperty-ValueLineColor: #28292b; - qproperty-FrameLineColor: #28292b; - qproperty-OtherCurvesColor: #7f8386; - qproperty-RulerBackground: #2d2e30; + qproperty-BGColor: #3a3b3d; + qproperty-ValueLineColor: rgba(0, 0, 0, 0.1); + qproperty-FrameLineColor: rgba(0, 0, 0, 0.1); + qproperty-OtherCurvesColor: #84888b; + qproperty-RulerBackground: #323435; qproperty-TextColor: #d6d8dd; - qproperty-SubColor: #000; + qproperty-SubColor: #3a3b3d; qproperty-SelectedColor: #FFA500; } SpreadsheetViewer { - qproperty-LightLightBGColor: #393b3d; - qproperty-CurrentRowBgColor: #506082; - qproperty-LightLineColor: rgba(0, 0, 0, 0.25); - qproperty-MarkerLineColor: #1E96C4; - qproperty-BGColor: #414345; - qproperty-VerticalLineColor: rgba(0, 0, 0, 0.6); + qproperty-LightLightBGColor: #323435; + qproperty-CurrentRowBgColor: rgba(83, 133, 166, 0.7); + qproperty-LightLineColor: rgba(0, 0, 0, 0.2); + qproperty-MarkerLineColor: rgba(255, 255, 255, 0.15); + qproperty-BGColor: #3a3b3d; + qproperty-VerticalLineColor: rgba(0, 0, 0, 0.3); qproperty-KeyFrameColor: #995d1d; - qproperty-KeyFrameBorderColor: #c9b04b; - qproperty-SelectedKeyFrameColor: #be772b; + qproperty-KeyFrameBorderColor: #db9041; + qproperty-SelectedKeyFrameColor: #a2835b; qproperty-InBetweenColor: #666250; - qproperty-InBetweenBorderColor: #cdcec8; - qproperty-SelectedInBetweenColor: #7d7a6c; - qproperty-SelectedEmptyColor: #64676a; - qproperty-SelectedSceneRangeEmptyColor: #6d7073; + qproperty-InBetweenBorderColor: #b0aa91; + qproperty-SelectedInBetweenColor: #717970; + qproperty-SelectedEmptyColor: rgba(96, 109, 118, 0.5); + qproperty-SelectedSceneRangeEmptyColor: rgba(96, 109, 118, 0.5); qproperty-TextColor: #d6d8dd; - qproperty-ColumnHeaderBorderColor: #777b7f; + qproperty-ColumnHeaderBorderColor: #212223; } #ExpressionField { background-color: #e0e1e2; border: 1 solid #2d2e2f; margin: 0; } -#FunctionSegmentViewerLinkButton { - background-image: url('../Default/imgs/white/segment_unlinked.svg'); - background-repeat: no-repeat; -} -#FunctionSegmentViewerLinkButton:hover { - background-repeat: no-repeat; -} -#FunctionSegmentViewerLinkButton:checked { - background-image: url('../Default/imgs/white/segment_linked.svg'); - background-repeat: no-repeat; -} -#FunctionSegmentViewerLinkButton:disabled { - background-image: url('../Default/imgs/white/segment_disabled.svg'); - background-repeat: no-repeat; -} diff --git a/stuff/config/qss/Dark/Dark.qss b/stuff/config/qss/Dark/Dark.qss index feebdcc..9b4e543 100644 --- a/stuff/config/qss/Dark/Dark.qss +++ b/stuff/config/qss/Dark/Dark.qss @@ -1,111 +1,90 @@ /* ----------------------------------------------------------------------------- Component: Button Styles ----------------------------------------------------------------------------- */ -.button-show, -#LoadLevelShowButton, -#CleanupSettingsShowButton, -#OutputSettingsShowButton, -#FxSettingsPreviewShowButton { - image: url('../Default/imgs/white/plus.svg'); - image-position: center center; - margin: 0; - padding: 1; - min-width: 10; - min-height: 10; -} -.button-show:checked, -#LoadLevelShowButton:checked, -#CleanupSettingsShowButton:checked, -#OutputSettingsShowButton:checked, -#FxSettingsPreviewShowButton:checked { - background-color: #1e1e1e; - border-color: #191919; - image: url('../Default/imgs/white/minus.svg'); -} -.button-show:checked:pressed, -#LoadLevelShowButton:checked:pressed, -#CleanupSettingsShowButton:checked:pressed, -#OutputSettingsShowButton:checked:pressed, -#FxSettingsPreviewShowButton:checked:pressed { - background-color: #1e1e1e; - border-color: #191919; -} -.button-show:checked:hover, -#LoadLevelShowButton:checked:hover, -#CleanupSettingsShowButton:checked:hover, -#OutputSettingsShowButton:checked:hover, -#FxSettingsPreviewShowButton:checked:hover { - background-color: #232323; -} .button-tool, QToolButton, +#FileBrowser QToolBar QToolButton, #CameraSettingsRadioButton::indicator, #ForceSquaredPixelButton, -#SchematicBottomFrame QToolBar QToolButton, #EditToolLockButton::indicator, -#flipCustomize { - background-color: rgba(255, 255, 255, 0); - border: 1 solid rgba(255, 255, 255, 0); +#flipCustomize, +#SceneCast QToolBar QToolButton { + background-color: transparent; + border: 1 solid transparent; border-radius: 2; - color: #f6f6f6; - margin: 1; - padding: 0; + color: #f3f3f3; } .button-tool:hover, QToolButton:hover, +#FileBrowser QToolBar QToolButton:hover, #CameraSettingsRadioButton::indicator:hover, #ForceSquaredPixelButton:hover, #colorSliderAddButton:hover, #colorSliderSubButton:hover, -#SchematicBottomFrame QToolBar QToolButton:hover, #EditToolLockButton::indicator:hover, -#flipCustomize:hover { - background-color: #636363; - border-color: #636363; - color: #f6f6f6; +#flipCustomize:hover, +#SceneCast QToolBar QToolButton:hover { + background-color: #595959; + border-color: #595959; + color: #f3f3f3; } .button-tool:pressed, QToolButton:pressed, +#FileBrowser QToolBar QToolButton:pressed, #CameraSettingsRadioButton::indicator:pressed, #ForceSquaredPixelButton:pressed, #colorSliderAddButton:pressed, #colorSliderSubButton:pressed, -#SchematicBottomFrame QToolBar QToolButton:pressed, #EditToolLockButton::indicator:pressed, -#flipCustomize:pressed { - background-color: #1e1e1e; - border-color: #191919; - color: #f6f6f6; +#flipCustomize:pressed, +#SceneCast QToolBar QToolButton:pressed { + background-color: #141414; + border-color: #0f0f0f; + color: #f3f3f3; } .button-tool:checked, QToolButton:checked, +#FileBrowser QToolBar QToolButton:checked, #CameraSettingsRadioButton::indicator:checked, #ForceSquaredPixelButton:checked, -#SchematicBottomFrame QToolBar QToolButton:checked, #EditToolLockButton::indicator:checked, -#flipCustomize:checked { +#flipCustomize:checked, +#SceneCast QToolBar QToolButton:checked { background-color: #5385a6; border-color: #5385a6; color: #ffffff; } .button-tool:checked:hover, QToolButton:checked:hover, +#FileBrowser QToolBar QToolButton:checked:hover, #CameraSettingsRadioButton::indicator:checked:hover, #ForceSquaredPixelButton:checked:hover, -#SchematicBottomFrame QToolBar QToolButton:checked:hover, #EditToolLockButton::indicator:checked:hover, -#flipCustomize:checked:hover { +#flipCustomize:checked:hover, +#SceneCast QToolBar QToolButton:checked:hover { background-color: #6c98b6; border-color: #6c98b6; } .button-tool:disabled, QToolButton:disabled, +#FileBrowser QToolBar QToolButton:disabled, #CameraSettingsRadioButton::indicator:disabled, #ForceSquaredPixelButton:disabled, -#SchematicBottomFrame QToolBar QToolButton:disabled, #EditToolLockButton::indicator:disabled, -#flipCustomize:disabled { - color: rgba(233, 233, 233, 0.4); +#flipCustomize:disabled, +#SceneCast QToolBar QToolButton:disabled { + color: rgba(230, 230, 230, 0.4); +} +.button-tool:disabled:checked, +QToolButton:disabled:checked, +#FileBrowser QToolBar QToolButton:disabled:checked, +#CameraSettingsRadioButton::indicator:disabled:checked, +#ForceSquaredPixelButton:disabled:checked, +#EditToolLockButton::indicator:disabled:checked, +#flipCustomize:disabled:checked, +#SceneCast QToolBar QToolButton:disabled:checked { + background-color: rgba(83, 133, 166, 0.4); + border-color: rgba(83, 133, 166, 0.4); } .button-flat, PaletteViewer QToolBar QToolButton { @@ -116,11 +95,11 @@ PaletteViewer QToolBar QToolButton { } .button-flat:hover, PaletteViewer QToolBar QToolButton:hover { - background-color: #636363; + background-color: #595959; } .button-flat:pressed, PaletteViewer QToolBar QToolButton:pressed { - background-color: #161616; + background-color: #111111; } /* ----------------------------------------------------------------------------- Component: Frames @@ -129,13 +108,14 @@ PaletteViewer QToolBar QToolButton:pressed { .GroupBox, #LoadLevelFrame, #PsdSettingsGroupBox, -#CleanupSettingsFrame, +#CleanupSettings #CleanupSettingsFrame, +#CleanupSettings QScrollArea, #OutputSettingsBox, #OutputSettingsCameraBox, #SolidLineFrame, #FunctionParametersPanel, QGroupBox { - border: 1 solid #161616; + border: 1 solid #111111; border-radius: 2; } /* ----------------------------------------------------------------------------- @@ -144,67 +124,54 @@ QGroupBox { /* ----------------------------------------------------------------------------- Component: Tabs ----------------------------------------------------------------------------- */ -.tab-container, -#TabBarContainer { - background-color: transparent; +.tab-container { + background-color: #262626; qproperty-BottomAboveLineColor: #262626; - qproperty-BottomBelowLineColor: #161616; + qproperty-BottomBelowLineColor: #111111; } .tab-flat, -#StopMotionTabBar::tab, -#StyleEditorTabBar::tab, -#PaletteTabBar::tab, -#FxSettingsTabBar::tab { +QTabBar::tab { background-color: #262626; - border-right: 1 solid #161616; - border-bottom: 1 solid #161616; - color: #9b9b9b; + border-right: 1 solid #0c0c0c; + border-bottom: 1 solid #111111; + color: #999999; padding: 3 4 3 4; } .tab-flat:hover, -#StopMotionTabBar::tab:hover, -#StyleEditorTabBar::tab:hover, -#PaletteTabBar::tab:hover, -#FxSettingsTabBar::tab:hover { - background-color: #303030; - color: #9b9b9b; +QTabBar::tab:hover { + background-color: #333333; + color: #999999; } .tab-flat:selected, -#StopMotionTabBar::tab:selected, -#StyleEditorTabBar::tab:selected, -#PaletteTabBar::tab:selected, -#FxSettingsTabBar::tab:selected { +QTabBar::tab:selected { background-color: #303030; - color: #ffffff; + color: #fff; border-bottom-color: #303030; } .tab-flat:only-one, -#StopMotionTabBar::tab:only-one, -#StyleEditorTabBar::tab:only-one, -#PaletteTabBar::tab:only-one, -#FxSettingsTabBar::tab:only-one { +QTabBar::tab:only-one { margin: 0; } .tab-round { background-color: #262626; - border-top: 1 solid #161616; - border-right: 1 solid #161616; - border-left: 1 solid #161616; - border-bottom: 1 solid #161616; - color: #9b9b9b; + border-top: 1 solid #111111; + border-right: 1 solid #111111; + border-left: 1 solid #111111; + border-bottom: 1 solid #111111; + color: #999999; margin: 3 -1 0 0; padding: 2 7 1 7; } .tab-round:hover { - background-color: #303030; - color: #9b9b9b; + background-color: #333333; + color: #999999; } .tab-round:selected { background-color: #303030; border-top-right-radius: 2; border-top-left-radius: 2; border-bottom-color: #303030; - color: #ffffff; + color: #fff; margin: 1 -1 -1 0; padding: 2 7 2 7; } @@ -224,10 +191,10 @@ QGroupBox { ----------------------------------------------------------------------------- */ QWidget { background-color: #303030; - color: #e9e9e9; + color: #e6e6e6; } QWidget:disabled { - color: rgba(233, 233, 233, 0.4); + color: rgba(230, 230, 230, 0.4); } QFrame { border: 0; @@ -236,23 +203,23 @@ QFrame { } QToolTip, #helpToolTip { - background-color: #fff; - border: 1 solid #000; - color: #000; + background-color: #292B2D; + border: 1 solid #CFD1D4; + color: #CFD2D4; padding: 1 1; } #DockSeparator, QMainWindow::separator, QSplitter::handle { - background-color: #0c0c0c; + background-color: #111111; height: 4; width: 4; } #TDockPlaceholder { - background-color: #F77272; + background-color: #f55454; } TPanel { - background-color: #0c0c0c; + background-color: #111111; } /* ----------------------------------------------------------------------------- Topbar @@ -260,8 +227,7 @@ TPanel { #TopBar { background: #303030; border: 0; - border-bottom: 1 solid #161616; - height: 21; + border-bottom: 1 solid #111111; } #TopBar #EditToolLockButton { background: #303030; @@ -270,8 +236,6 @@ TPanel { #TopBar #EditToolLockButton::indicator { background: none; border: none; - height: 18; - margin: 1 2 0 0; padding-left: 0; padding-right: 0; } @@ -292,11 +256,11 @@ QMenuBar::item { background-color: #303030; border-left: 1 solid #303030; margin: 0; - padding: 3 5; + padding: 3 5 3 5; } QMenuBar::item:selected { - background-color: rgba(255, 255, 255, 0.15); - color: #e9e9e9; + background-color: rgba(255, 255, 255, 0.1); + color: #e6e6e6; } QMenuBar::item:pressed { background-color: #5385a6; @@ -311,25 +275,33 @@ QMenuBar::item:pressed { } #TopBarTab::tab { background-color: #262626; - border-top: 1 solid #161616; - border-right: 1 solid #161616; - color: #9b9b9b; - margin: 0 0 0 0; + border-top: 1 solid #0c0c0c; + border-right: 1 solid #0c0c0c; + color: #999999; + margin: 0 0 -1 0; padding: 2 8 3 8; } #TopBarTab::tab:hover { - background-color: #303030; - color: #9b9b9b; + background-color: #333333; + color: #999999; } #TopBarTab::tab:selected { - background-color: #303030; + background-color: #5385a6; color: #ffffff; } #TopBarTab::tab:first { - border-left: 1 solid #161616; + border-left: 1 solid #111111; } #TopBarTab::tab:last { - border-right: 1 solid #161616; + border-right: 1 solid #111111; +} +#TopBarTab QToolButton { + border-left: 2 solid #111111; + border-top: 1 solid #111111; + border-right: 1 solid #111111; + border-bottom: 0; + margin-left: -1; + margin-top: 0; } /* ----------------------------------------------------------------------------- Menu @@ -337,10 +309,11 @@ QMenuBar::item:pressed { QMenu { background-color: #262626; border: 1 solid #4c4c4c; - color: #e9e9e9; + color: #e6e6e6; padding: 2 0; } QMenu::item { + border: 0; padding: 3 28; } QMenu::item:selected { @@ -348,7 +321,7 @@ QMenu::item:selected { color: #ffffff; } QMenu::item:checked { - color: #e9e9e9; + color: #e6e6e6; } QMenu::item:checked:selected { background-color: #5385a6; @@ -356,12 +329,10 @@ QMenu::item:checked:selected { } QMenu::item:disabled { background: none; - color: rgba(233, 233, 233, 0.4); + color: rgba(230, 230, 230, 0.4); } QMenu::item:disabled:selected { - background-color: #3a3a3a; - border-color: transparent; - color: rgba(233, 233, 233, 0.4); + color: rgba(230, 230, 230, 0.4); /* fix for disabled indicator */ } QMenu::separator { @@ -371,11 +342,15 @@ QMenu::separator { } QMenu::icon { border-radius: 2; - margin: 0 0 0 3; - padding: 1; + position: absolute; + left: 5; + padding: 0; + margin: 0; + qproperty-icon: url('../Default/imgs/white/none'); } QMenu::icon:checked { background-color: #5385a6; + border: 1 solid #5385a6; } QMenu::indicator { margin-left: 7; @@ -385,11 +360,9 @@ QMenu::indicator { ----------------------------------------------------------------------------- */ TPanelTitleBar { background-color: #262626; - border-color: #161616; - border-style: solid; - border-width: 0 0 1 0; - height: 20; - min-height: 20; + border-bottom: 1px solid #111111; + height: 18; + min-height: 18; qproperty-TitleColor: #7d7d7d; qproperty-ActiveTitleColor: #fff; qproperty-BorderPixmap: url('none'); @@ -397,46 +370,52 @@ TPanelTitleBar { qproperty-FloatBorderPixmap: url('none'); qproperty-FloatActiveBorderPixmap: url('../Default/imgs/white/none'); } +TPanelTitleBarButton { + qproperty-PressedColor: #5385a6; + qproperty-FreezeColor: #C34040; + qproperty-PreviewColor: #1baf7e; + qproperty-OverColor: #595959; +} /* ----------------------------------------------------------------------------- Scrollbars ----------------------------------------------------------------------------- */ QAbstractScrollArea::corner { - background-color: #262626; + background-color: #232323; } QScrollBar { - background-color: #262626; + background-color: #232323; border: 0; } QScrollBar:horizontal { - height: 16; + height: 15; margin: 0; } QScrollBar:vertical { margin: 0; - width: 16; + width: 15; } QScrollBar::handle { - border: 1 solid #3a3a3a; + border: 0 solid #444444; border-radius: 4; } QScrollBar::handle:horizontal:hover, QScrollBar::handle:vertical:hover { - background-color: #4f4f4f; - border-color: #4f4f4f; + background-color: #595959; + border-color: #595959; } QScrollBar::handle:horizontal:pressed, QScrollBar::handle:vertical:pressed { - background-color: #636363; - border-color: #636363; + background-color: #6d6d6d; + border-color: #6d6d6d; } QScrollBar::handle:horizontal { - background-color: #3a3a3a; + background-color: #444444; margin: 3 16; min-width: 20; } QScrollBar::handle:vertical { - background-color: #3a3a3a; - margin: 16 3; + background-color: #444444; + margin: 16 3 16 3; min-height: 20; } QScrollBar::add-line { @@ -445,13 +424,13 @@ QScrollBar::add-line { } QScrollBar::add-line:horizontal { subcontrol-position: right; - background-color: #262626; + background-color: #232323; margin: 0; width: 16; } QScrollBar::add-line:vertical { subcontrol-position: bottom; - background-color: #262626; + background-color: #232323; margin: 0; height: 16; } @@ -461,13 +440,13 @@ QScrollBar::sub-line { } QScrollBar::sub-line:horizontal { subcontrol-position: left; - background-color: #262626; + background-color: #232323; margin: 0; width: 16; } QScrollBar::sub-line:vertical { subcontrol-position: top; - background-color: #262626; + background-color: #232323; margin: 0; height: 16; } @@ -506,18 +485,21 @@ QScrollBar::add-page:vertical { background: none; } /* ----------------------------------------------------------------------------- - Tool Bars + QToolBar ----------------------------------------------------------------------------- */ +/* This applies to QToolBar, this is not the #ToolBar window, although the + properties here also apply in the window, you should look in + [layouts/toolbar] if you want window control. */ QToolBar { padding: 0; } QToolBar::separator:horizontal { - border-left: 1 solid #161616; + border-left: 1 solid #111111; margin: 0 1; width: 0; } QToolBar::separator:vertical { - border-top: 1 solid #161616; + border-top: 1 solid #111111; height: 0; margin: 1 0; } @@ -527,23 +509,37 @@ QToolBar QLabel { QToolBar QToolBar { border: 0; } +QToolButton { + margin-left: 1; + margin-right: 1; + padding: 0; +} QToolButton::menu-indicator { image: none; } QToolButton::menu-button { border-image: none; } -/* -------------------------------------------------------------------------- */ -/* Scrollable QToolBar Buttons -/* -------------------------------------------------------------------------- */ +QToolButton#qt_toolbar_ext_button { + padding: 0; + border: 0; + margin: 0; + qproperty-icon: url('../Default/imgs/white/toolbar_extension_horizontal.png'); +} +QToolButton#qt_toolbar_ext_button:hover { + background-color: #595959; +} +QToolButton#qt_toolbar_ext_button:pressed { + background-color: #141414; +} .DvScrollWidget QPushButton, DvScrollWidget QPushButton, #ScrollLeftButton QPushButton, #ScrollRightButton QPushButton, #ScrollUpButton QPushButton, #ScrollDownButton QPushButton { - background-color: #565656; - border: 0 solid red; + background-color: #4c4c4c; + border: 0 solid #111111; border-radius: 0; padding: 0; max-width: 16; @@ -554,7 +550,7 @@ DvScrollWidget QPushButton:hover, #ScrollRightButton QPushButton:hover, #ScrollUpButton QPushButton:hover, #ScrollDownButton QPushButton:hover { - background-color: #636363; + background-color: #595959; } .DvScrollWidget QPushButton:pressed, DvScrollWidget QPushButton:pressed, @@ -562,7 +558,12 @@ DvScrollWidget QPushButton:pressed, #ScrollRightButton QPushButton:pressed, #ScrollUpButton QPushButton:pressed, #ScrollDownButton QPushButton:pressed { - background-color: #1e1e1e; + background-color: #141414; +} +DvScrollWidget { + /* Multiple classes can use the same style as DvScrollWidget, and + since the compiler can't handle extending to Qt names we place the + style in a mixin and extend the name to it instead. */ } #ScrollLeftButton, #ScrollRightButton, @@ -572,11 +573,11 @@ DvScrollWidget QPushButton:pressed, min-width: 16; } #ScrollLeftButton { - border-right: 1 solid #161616; + border-right: 1 solid #111111; image: url('../Default/imgs/white/scroll-left.svg'); } #ScrollRightButton { - border-left: 1 solid #161616; + border-left: 1 solid #111111; margin-left: 3; image: url('../Default/imgs/white/scroll-right.svg'); } @@ -587,41 +588,119 @@ DvScrollWidget QPushButton:pressed, image: url('../Default/imgs/white/scroll-down.svg'); } /* -------------------------------------------------------------------------- */ +/* For the buttons to display a BG color we need to set a blank image, setting + an empty URL solves this. */ #keyFrameNavigator { - background: none; + background: transparent; margin: 0; padding: 0; } -#keyFrameNavigator QToolButton { - min-width: 18; -} #keyFrameNavigator #PreviousKey { - image: url('../Default/imgs/white/prevkey.svg'); -} -#keyFrameNavigator #PreviousKey:hover { - image: url('../Default/imgs/white/prevkey_over.svg'); + margin: 0 2; + padding-right: -1; + width: 20px; + height: 20px; + image: url(''); } #keyFrameNavigator #PreviousKey:disabled { - image: url('../Default/imgs/white/prevkey_disabled.svg'); + image: url(''); } #keyFrameNavigator #NextKey { - image: url('../Default/imgs/white/nextkey.svg'); -} -#keyFrameNavigator #NextKey:hover { - image: url('../Default/imgs/white/nextkey_over.svg'); + margin: 0 2; + padding-right: -1; + width: 20px; + height: 20px; + image: url(''); } #keyFrameNavigator #NextKey:disabled { - image: url('../Default/imgs/white/nextkey_disabled.svg'); + image: url(''); +} +#keyFrameNavigator #KeyNo, +#keyFrameNavigator #KeyPartial, +#keyFrameNavigator #KeyTotal { + margin: 0; + padding-right: -1; + width: 20px; + height: 20px; + image: url(''); +} +#keyFrameNavigator #KeyNo:disabled, +#keyFrameNavigator #KeyPartial:disabled, +#keyFrameNavigator #KeyTotal:disabled { + image: url(''); +} +#keyFrameNavigator #KeyNo { + background-color: rgba(0, 0, 0, 0); + border: 1 solid rgba(0, 0, 0, 0); + image: url(''); +} +#keyFrameNavigator #KeyNo:disabled { + image: url(''); +} +#keyFrameNavigator #KeyNo:hover { + background-color: #595959; + border-color: #595959; +} +#keyFrameNavigator #KeyPartial { + background-color: #be7323; + border: 1 solid #be7323; + image: url(''); +} +#keyFrameNavigator #KeyPartial:hover { + background-color: #db8d39; + border-color: #db8d39; +} +#keyFrameNavigator #KeyTotal { + background-color: #be7323; + border: 1 solid #be7323; +} +#keyFrameNavigator #KeyTotal:hover { + background-color: #db8d39; + border-color: #db8d39; +} +#keyFrameNavigator QToolButton#qt_toolbar_ext_button { + padding-bottom: 3; + border-radius: 2; +} +/* ----------------------------------------------------------------------------- + Tab Containers +----------------------------------------------------------------------------- */ +#TabBarContainer { + background-color: #262626; + qproperty-BottomAboveLineColor: #262626; + qproperty-BottomBelowLineColor: #111111; +} +QTabBar { + background-color: #262626; } /* ----------------------------------------------------------------------------- - Trees + Tabs +----------------------------------------------------------------------------- */ +QTabBar QToolButton { + /* Scroll buttons */ + margin: 0; + background-color: #303030; + border-radius: 0; + border: 1 solid #111111; + border-top: 0; + padding: 3 2 2 2; +} +QTabBar QToolButton:hover, +QTabBar QToolButton:pressed { + border-color: #111111; +} +QTabBar QToolButton:disabled { + color: rgba(230, 230, 230, 0.4); +} +/* ----------------------------------------------------------------------------- + Item Tree ----------------------------------------------------------------------------- */ .treeview, QTreeWidget, QTreeView, #FunctionEditorTree { background-color: #262626; - alternate-background-color: #2b2b2b; + alternate-background-color: #2d2d2d; border: 0; margin: 0; outline: 0; @@ -637,6 +716,7 @@ QTreeView::item:selected, QTreeWidget::branch:adjoins-item, QTreeView::branch:adjoins-item, #FunctionEditorTree::branch:adjoins-item { + /* blank URL hides default Qt branch icons where it is not wanted */ border-image: url(''); } .treeview::branch:has-siblings, @@ -689,50 +769,44 @@ QTreeView::branch:has-children:has-siblings:open, QListView { outline: 0; background: #262626; - alternate-background-color: #2b2b2b; -} -/* ----------------------------------------------------------------------------- - Tab Systems ------------------------------------------------------------------------------ */ -#TabBarContainer { - background-color: #262626; + alternate-background-color: #2d2d2d; } /* ----------------------------------------------------------------------------- Tool Options - Override DvScroll Widget ----------------------------------------------------------------------------- */ #toolOptionsPanel QPushButton { - background-color: #565656; + background-color: #4c4c4c; border: 1 solid #303030; border-radius: 2; - color: #f6f6f6; + color: #f3f3f3; margin: 0; padding: 0; } #toolOptionsPanel QPushButton:hover { - background-color: #636363; + background-color: #595959; border-color: #303030; - color: #f6f6f6; + color: #f3f3f3; } #toolOptionsPanel QPushButton:pressed { - background-color: #1e1e1e; - border-color: #191919; - color: #f6f6f6; + background-color: #141414; + border-color: #0f0f0f; + color: #f3f3f3; } #toolOptionsPanel QPushButton:checked { - background-color: #1e1e1e; - border-color: #191919; - color: #f6f6f6; + background-color: #141414; + border-color: #0f0f0f; + color: #f3f3f3; } #toolOptionsPanel QPushButton:checked:hover { - background-color: #232323; + background-color: #282828; } #toolOptionsPanel QPushButton:checked:hover:pressed { - background: #1e1e1e; + background: #1c1c1c; } #toolOptionsPanel QPushButton:disabled { background-color: #3d3d3d; border-color: #303030; - color: rgba(233, 233, 233, 0.4); + color: rgba(230, 230, 230, 0.4); } /* ----------------------------------------------------------------------------- Push Button @@ -740,93 +814,101 @@ QListView { .Button, QPushButton, .ComboBox, -.ComboBox:checked, -QComboBox, -QComboBox:checked { - background-color: #565656; - border: 1 solid #303030; +#enableBlankFrameButton, +QComboBox { + background-color: #4c4c4c; + border-color: #303030; + border-width: 1; + border-style: solid; border-radius: 2; - color: #f6f6f6; + color: #f3f3f3; margin: 0; padding: 3 15; } .Button:hover, QPushButton:hover, #ViewerFpsSlider::sub-line:horizontal:hover, -#ViewerFpsSlider::add-line:horizontal:hover { - background-color: #636363; +#ViewerFpsSlider::add-line:horizontal:hover, +#enableBlankFrameButton:hover { + background-color: #595959; border-color: #303030; - color: #f6f6f6; + color: #f3f3f3; } .Button:pressed, QPushButton:pressed, #ViewerFpsSlider::sub-line:horizontal:pressed, -#ViewerFpsSlider::add-line:horizontal:pressed { - background-color: #1e1e1e; - border-color: #191919; - color: #f6f6f6; +#ViewerFpsSlider::add-line:horizontal:pressed, +#enableBlankFrameButton:pressed { + background-color: #141414; + border-color: #0f0f0f; + color: #f3f3f3; } .Button:checked, -QPushButton:checked { - background-color: #1e1e1e; - border-color: #191919; - color: #f6f6f6; +QPushButton:checked, +#enableBlankFrameButton:checked { + background-color: #141414; + border-color: #0f0f0f; + color: #f3f3f3; } .Button:checked:hover, -QPushButton:checked:hover { - background-color: #232323; +QPushButton:checked:hover, +#enableBlankFrameButton:checked:hover { + background-color: #282828; + border-color: #1c1c1c; } .Button:checked:hover:pressed, -QPushButton:checked:hover:pressed { - background: #1e1e1e; +QPushButton:checked:hover:pressed, +#enableBlankFrameButton:checked:hover:pressed { + background: #1c1c1c; } .Button:disabled, QPushButton:disabled, .ComboBox:disabled, #ViewerFpsSlider::sub-line:horizontal:disabled, #ViewerFpsSlider::add-line:horizontal:disabled, +#enableBlankFrameButton:disabled, QComboBox:disabled { background-color: #3d3d3d; border-color: #303030; - color: rgba(233, 233, 233, 0.4); + color: rgba(230, 230, 230, 0.4); } #PushButton_NoPadding { padding: 3; } /* ----------------------------------------------------------------------------- - Combo Box + ComboBox ----------------------------------------------------------------------------- */ .ComboBox, -.ComboBox:checked, -QComboBox, -QComboBox:checked { +QComboBox { padding: 1 0 1 4; margin: 1 0; } .ComboBox:editable, QComboBox:editable { /* for editable ComboBox */ - color: #e9e9e9; + color: #e6e6e6; background-color: #1c1c1c; - border-color: #4a4a4a; + border-color: #565656; padding: 1 0 1 3; + selection-background-color: #5385a6; + selection-color: #ffffff; } .ComboBox:hover, QComboBox:hover { - background-color: #636363; + background-color: #595959; } .ComboBox:hover:editable, QComboBox:hover:editable { background-color: #1c1c1c; } -.ComboBox:focus, -QComboBox:focus { - border-color: #5385a6; -} .ComboBox:checked, QComboBox:checked { border-color: #5385a6; } +.ComboBox:focus, +QComboBox:focus { + border-color: #5385a6; +} .ComboBox::drop-down, QComboBox::drop-down { border: 0; @@ -836,18 +918,18 @@ QComboBox::drop-down { } .ComboBox::drop-down:editable, QComboBox::drop-down:editable { - background-color: #565656; + background-color: #4c4c4c; border-left: 0 solid #303030; border-top-right-radius: 1; border-bottom-right-radius: 1; } .ComboBox::drop-down:hover, QComboBox::drop-down:hover { - border-color: #636363; + border-color: #595959; } .ComboBox::drop-down:hover:editable, QComboBox::drop-down:hover:editable { - background-color: #636363; + background-color: #595959; border-color: #303030; } .ComboBox::drop-down:disabled, @@ -875,9 +957,9 @@ QLineEdit, #tasksRemoveBox, #tasksAddBox { background-color: #1c1c1c; - border: 1 solid #4a4a4a; + border: 1 solid #565656; border-radius: 2; - color: #e9e9e9; + color: #e6e6e6; selection-background-color: #5385a6; selection-color: #ffffff; padding: 0 0 0 1; @@ -890,7 +972,7 @@ QLineEdit:focus, #tasksAddBox:focus { background-color: #1c1c1c; border-color: #5385a6; - color: #e9e9e9; + color: #e6e6e6; } .LineEdit:disabled, QPlainTextEdit:disabled, @@ -899,15 +981,15 @@ QLineEdit:disabled, #tasksRemoveBox:disabled, #tasksAddBox:disabled { background-color: #262626; - border-color: #3d3d3d; - color: rgba(233, 233, 233, 0.4); + border-color: #434343; + color: rgba(230, 230, 230, 0.4); } /* ----------------------------------------------------------------------------- CheckBox ----------------------------------------------------------------------------- */ .CheckBox, QCheckBox { - color: #e9e9e9; + color: #e6e6e6; } .CheckBox:hover, QCheckBox:hover { @@ -915,7 +997,7 @@ QCheckBox:hover { } .CheckBox:disabled, QCheckBox:disabled { - color: rgba(233, 233, 233, 0.4); + color: rgba(230, 230, 230, 0.4); } .CheckBox::indicator, QMenu::indicator:non-exclusive, @@ -924,7 +1006,7 @@ QCheckBox::indicator, .GroupBox::indicator, QGroupBox::indicator { background-color: #1c1c1c; - border: 1 solid #636363; + border: 1 solid #565656; border-radius: 2; height: 9; /* fix for QGroupBox */ @@ -1009,14 +1091,14 @@ QCheckBox::indicator:disabled, .GroupBox::indicator:disabled, QGroupBox::indicator:disabled { background-color: #262626; - border-color: #3d3d3d; + border-color: #434343; } /* ----------------------------------------------------------------------------- - Radio Button + RadioButton ----------------------------------------------------------------------------- */ .RadioButton, QRadioButton { - color: #e9e9e9; + color: #e6e6e6; padding: 0; margin: 0; } @@ -1026,19 +1108,19 @@ QRadioButton:hover { } .RadioButton:checked, QRadioButton:checked { - color: #e9e9e9; + color: #e6e6e6; } .RadioButton:disabled, QRadioButton:disabled { - color: rgba(233, 233, 233, 0.4); + color: rgba(230, 230, 230, 0.4); } .RadioButton::indicator, QMenu::indicator:exclusive, QMenu::indicator:exclusive, QRadioButton::indicator, #CameraSettingsRadioButton_Small::indicator { - width: 11; - height: 11; + width: 13; + height: 13; background-color: transparent; border: 0; image-position: center center; @@ -1100,7 +1182,7 @@ QGroupBox::title:hover { } .GroupBox::title:disabled, QGroupBox::title:disabled { - color: rgba(233, 233, 233, 0.4); + color: rgba(230, 230, 230, 0.4); } .GroupBox::indicator, QGroupBox::indicator { @@ -1109,7 +1191,7 @@ QGroupBox::indicator { } .GroupBox:disabled, QGroupBox:disabled { - color: rgba(233, 233, 233, 0.4); + color: rgba(230, 230, 230, 0.4); } /* ----------------------------------------------------------------------------- Slider @@ -1158,7 +1240,7 @@ QSlider::handle:horizontal:disabled { QProgressBar { text-align: center; background-color: #262626; - border: 1 solid #161616; + border: 1 solid #111111; border-radius: 3; /* 2 fits inside 3 */ padding: 0; @@ -1167,7 +1249,7 @@ QProgressBar::chunk { margin: -1; /* hide border of chunk except for right side */ background-color: #15a136; - border: 1 solid #161616; + border: 1 solid #111111; border-radius: 2; } /* ----------------------------------------------------------------------------- @@ -1178,42 +1260,53 @@ QProgressBar::chunk { #DirTreeView { background-color: #262626; alternate-background-color: #262626; - border: 1 solid #161616; + border: 1 solid #111111; border-right: 0; } /* Right Pane ----------------------------------------------------------------------------- */ DvItemViewerPanel { - qproperty-TextColor: #e9e9e9; - qproperty-AlternateBackground: #282828; + background-color: #282828; + qproperty-TextColor: #e6e6e6; + qproperty-AlternateBackground: #303030; qproperty-SelectedTextColor: #ffffff; qproperty-FolderTextColor: #9fdaff; qproperty-SelectedItemBackground: #5385a6; } -#FileBrowser DvItemViewerPanel, -#SceneCast DvItemViewerPanel { +DvItemViewerTitleBar { + qproperty-ColColor: #232323; + qproperty-ColSortedColor: #232323; + qproperty-ColTextColor: #e6e6e6; + qproperty-ColBorderColor: #111111; +} +#FileBrowser, +#SceneCast { + background-color: #303030; +} +#FileBrowser QLabel, +#SceneCast QLabel { + background-color: transparent; +} +#FileBrowser QToolBar, +#SceneCast QToolBar { background-color: #303030; } #FileBrowser #castFrame, #SceneCast #castFrame { - border-top: 1 solid #161616; - border-right: 1 solid #161616; - border-bottom: 1 solid #161616; + border-top: 1 solid #111111; + border-right: 1 solid #111111; + border-bottom: 1 solid #111111; margin: 0; } -#FileBrowser QToolButton, -#SceneCast QToolButton { - padding: 1; -} StyledTreeView { - qproperty-TextColor: #e9e9e9; + qproperty-TextColor: #e6e6e6; qproperty-SelectedTextColor: #ffffff; qproperty-SelectedItemBackground: #5385a6; qproperty-FolderTextColor: #9fdaff; qproperty-SelectedFolderTextColor: #ffffff; - alternate-background-color: #2b2b2b; + alternate-background-color: #2d2d2d; background-color: #262626; - border: 1 solid #161616; + border: 1 solid #111111; } #FileDoesNotExistLabel { color: #ff0000; @@ -1222,22 +1315,39 @@ StyledTreeView { Scene Cast ----------------------------------------------------------------------------- */ #SceneCast QToolBar { - border-top: 1 solid #161616; + border-top: 1 solid #111111; +} +#SceneCast QToolBar::separator:horizontal { + margin-left: 2; + margin-right: 0; } #SceneCast QToolButton { - margin: 3 1 2 1; + margin: 3 0 2 2; padding: 1; } #CastBrowser { border: 0; margin: 0; } +#CastBrowser QSplitter::handle { + height: 4; +} +#CastBrowserFolderName { + border-bottom: 1px solid #111111; +} /* ----------------------------------------------------------------------------- Level Strip ----------------------------------------------------------------------------- */ +#filmLevelCombo { + margin: -1; +} +#FilmStrip { + qproperty-BGColor: #303030; + margin: 0; + padding: 0; +} #FilmStrip QComboBox { border-radius: 0; - border-width: 0; } #FilmStrip QComboBox QAbstractItemView { background-color: #262626; @@ -1253,7 +1363,7 @@ StyledTreeView { margin-bottom: 3; } ParamsPage { - qproperty-TextColor: #e9e9e9; + qproperty-TextColor: #e6e6e6; } /* ----------------------------------------------------------------------------- Camera Settings @@ -1265,13 +1375,17 @@ ParamsPage { background: none; } #CameraSettingsRadioButton::indicator { - border: 1 solid rgba(255, 255, 255, 0); + border: 1 solid transparent; height: 18; - padding: 0; - width: 18; + padding: 0 -1 0 1; + width: 19; + margin-left: 1; } #CameraSettingsRadioButton::indicator:unchecked { - image: url('../Default/imgs/white/lock_off.svg'); + image: url('../Default/imgs/white/lock.svg'); +} +#CameraSettingsRadioButton::indicator:unchecked:hover { + image: url('../Default/imgs/white/lock_over.svg'); } #CameraSettingsRadioButton::indicator:checked { background-color: #C34040; @@ -1291,20 +1405,14 @@ ParamsPage { #CameraSettingsRadioButton_Small::indicator { background-color: transparent; border: 0; - height: 21; margin: 0; - width: 11; } #ForceSquaredPixelButton { + margin: 0; height: 16; - border: 1 solid rgba(255, 255, 255, 0); - image: url('../Default/imgs/white/fsp_unchecked.svg'); - padding: 2; width: 16; - margin: 0; -} -#ForceSquaredPixelButton:checked { - image: url('../Default/imgs/white/fsp_checked.svg'); + border: 1 solid transparent; + padding: 2; } /* ----------------------------------------------------------------------------- Output Settings @@ -1347,15 +1455,12 @@ PencilTestPopup { margin-left: -4; } #StopMotionController #bottomWidget { - border-top: 1 solid #161616; + border-top: 1 solid #111111; padding: 3 2 8 3; } #StopMotionController #bottomWidget QPushButton { padding: 3 5; } -#StopMotionTabBar::tab::first { - border-left: 1 solid #161616; -} /* ----------------------------------------------------------------------------- Unknowns + Legacy ----------------------------------------------------------------------------- */ @@ -1385,22 +1490,15 @@ QStatusBar #StatusBarLabel { Style Editor ----------------------------------------------------------------------------- */ #StyleEditor #TabBarContainer { - margin-left: -5; + margin-left: -5px; } #StyleEditor #bottomWidget { - border-top: 1 solid #161616; + border-top: 1 solid #111111; padding: 3 2 8 3; } #StyleEditor #bottomWidget QPushButton { padding: 3 5; } -#StyleEditorTabBar { - padding: 0; - margin: 0; -} -#StyleEditorTabBar::tab:first { - border-left: 1 solid #161616; -} #HexagonalColorWheel { qproperty-BGColor: #303030; } @@ -1421,7 +1519,7 @@ QStatusBar #StatusBarLabel { image-position: center center; min-height: 16; padding: 0; - min-width: 18; + min-width: 10; } #colorSliderAddButton { image: url('../Default/imgs/white/scroll-right.svg'); @@ -1430,7 +1528,7 @@ QStatusBar #StatusBarLabel { image: url('../Default/imgs/white/scroll-left.svg'); } #PlainColorPageParts { - border-bottom: 1 solid #161616; + border-bottom: 1 solid #111111; } #PlainColorPageParts QLineEdit { max-width: 35; @@ -1457,18 +1555,37 @@ PaletteViewer DvScrollWidget #ScrollRightButton { max-width: 16; min-width: 16; } +PaletteViewer QToolBar { + background: transparent; +} PaletteViewer QToolBar::separator:horizontal { margin: 0; } PaletteViewer QToolBar QToolButton { + padding: 0; + padding-right: -2; + padding-left: -1; +} +PaletteViewer QToolBar #keyFrameNavigator #NextKey, +PaletteViewer QToolBar #keyFrameNavigator #PreviousKey, +PaletteViewer QToolBar #keyFrameNavigator #KeyNo, +PaletteViewer QToolBar #keyFrameNavigator #KeyPartial, +PaletteViewer QToolBar #keyFrameNavigator #KeyTotal { + max-width: 20px; + max-height: 20px; + padding: 1; + border: 0; margin: 0; - padding: 2 0 2 0; -} -#PaletteTabBar::tab { - padding-bottom: 4; } #PageViewer { - qproperty-TextColor: #e9e9e9; + qproperty-TextColor: #e6e6e6; + qproperty-SelectedBorderColor: #ffffff; + qproperty-NumpadShortcutBgColor: rgba(0, 0, 0, 0.3); + qproperty-NumpadShortcutBorderColor: #8d8d8d; + qproperty-SeparatorColor: #111111; + qproperty-CurrentCellColor: rgba(83, 133, 166, 0.5); + qproperty-SelectedCellColor: #5385a6; + qproperty-ListNumpadShortcutBorderColor: #afafaf; } #PaletteLockButton { border-radius: 0; @@ -1495,25 +1612,25 @@ QDialog { background-color: #303030; } QDialog #dialogButtonFrame { - background-color: #282828; - border-top: 1 solid #161616; + background-color: #262626; + border-top: 1 solid #111111; } QDialog #dialogButtonFrame QPushButton { - border-color: #282828; + border-color: #262626; outline: 0; } QDialog #dialogButtonFrame QPushButton:focus { background-color: #5385a6; - border-color: #282828; + border-color: #262626; color: #ffffff; } QDialog #dialogButtonFrame QPushButton:focus:hover { background-color: #6c98b6; } QDialog #dialogButtonFrame QPushButton:focus:pressed { - background-color: #1e1e1e; - border-color: #191919; - color: #f6f6f6; + background-color: #141414; + border-color: #0f0f0f; + color: #f3f3f3; } /* ----------------------------------------------------------------------------- Scene Settings @@ -1527,7 +1644,7 @@ QDialog #dialogButtonFrame QPushButton:focus:pressed { #PreferencesPopup QListWidget { background-color: #262626; alternate-background-color: #262626; - border: 1 solid #161616; + border: 1 solid #111111; font-size: 13px; } #PreferencesPopup QListWidget::item { @@ -1535,8 +1652,8 @@ QDialog #dialogButtonFrame QPushButton:focus:pressed { padding: 3; } #PreferencesPopup QListWidget::item:hover { - color: #e9e9e9; - background-color: rgba(255, 255, 255, 0.15); + background-color: rgba(255, 255, 255, 0.1); + color: #e6e6e6; } #PreferencesPopup QListWidget::item:selected { background-color: #5385a6; @@ -1546,7 +1663,7 @@ QDialog #dialogButtonFrame QPushButton:focus:pressed { Keyboard Shortcuts ----------------------------------------------------------------------------- */ #ShortcutTree { - border: 1 solid #161616; + border: 1 solid #111111; } #ShortcutTree::item { padding: 1 0; @@ -1564,59 +1681,59 @@ ProjectPopup QLabel { /* ----------------------------------------------------------------------------- PencilTestPopup / CameraCapture Window ----------------------------------------------------------------------------- */ -#GearButton { - qproperty-icon: url('../Default/imgs/white/gear.svg'); -} #GearButton::menu-indicator { - image: ""; + image: url(""); } #SubfolderButton { - qproperty-icon: url('../Default/imgs/white/subfolder.svg'); - padding-left: 6px; - padding-right: 6px; + padding-left: 5px; + padding-right: 5px; } #SubcameraButton { - qproperty-icon: url('../Default/imgs/white/subcamera.svg'); - padding-left: 6px; - padding-right: 6px; + padding-left: 5px; + padding-right: 5px; } /* ----------------------------------------------------------------------------- Schematic Viewer ----------------------------------------------------------------------------- */ SchematicViewer { - qproperty-TextColor: #e9e9e9; - qproperty-VerticalLineColor: rgba(0, 0, 0, 0.6); + qproperty-TextColor: #e6e6e6; + qproperty-VerticalLineColor: rgba(0, 0, 0, 0.4); qproperty-LevelColumnColor: #4C6E4C; qproperty-VectorColumnColor: #7B7B4C; qproperty-ChildColumnColor: #6A526B; qproperty-FullcolorColumnColor: #657A96; - qproperty-FxColumnColor: #56553C; - qproperty-PaletteColumnColor: #3A655F; - qproperty-MeshColumnColor: #684D86; - qproperty-ReferenceColumnColor: #616161; + qproperty-FxColumnColor: #6d6349; + qproperty-PaletteColumnColor: #42756e; + qproperty-MeshColumnColor: #5e4d72; + qproperty-ReferenceColumnColor: #3d3d3d; qproperty-TableColor: #62628c; - qproperty-ActiveCameraColor: #2d7dca; - qproperty-OtherCameraColor: #6c797b; + qproperty-ActiveCameraColor: #4073a3; + qproperty-OtherCameraColor: #5e9aa3; qproperty-GroupColor: #3b6e9c; qproperty-PegColor: #9f6e3c; qproperty-SplineColor: #6a9d1c; - qproperty-ActiveOutputColor: #2d7dca; - qproperty-OtherOutputColor: #6c797b; + qproperty-ActiveOutputColor: #4073a3; + qproperty-OtherOutputColor: #5e9aa3; qproperty-XsheetColor: #62628c; - qproperty-NormalFxColor: #6a7e96; + qproperty-NormalFxColor: #5b90a3; qproperty-MacroFxColor: #815c79; qproperty-ImageAdjustFxColor: #656287; - qproperty-LayerBlendingFxColor: #4f757d; + qproperty-LayerBlendingFxColor: #57958f; qproperty-MatteFxColor: #ae7171; qproperty-SchematicPreviewButtonBgOnColor: #c8c864; - qproperty-SchematicPreviewButtonOnImage: url('../Default/imgs/white/x_prev_eye_on.svg'); - qproperty-SchematicPreviewButtonBgOffColor: #616161; - qproperty-SchematicPreviewButtonOffImage: url('../Default/imgs/white/x_prev_eye_off.svg'); + qproperty-SchematicPreviewButtonOnImage: url('../Default/imgs/white/schematic_preview_on.svg'); + qproperty-SchematicPreviewButtonBgOffColor: #3d3d3d; + qproperty-SchematicPreviewButtonOffImage: url('../Default/imgs/white/schematic_preview_off.svg'); qproperty-SchematicCamstandButtonBgOnColor: #eb906b; - qproperty-SchematicCamstandButtonOnImage: url('../Default/imgs/white/x_table_view_on.svg'); - qproperty-SchematicCamstandButtonTranspImage: url('../Default/imgs/white/x_table_view_transp.svg'); - qproperty-SchematicCamstandButtonBgOffColor: #616161; - qproperty-SchematicCamstandButtonOffImage: url('../Default/imgs/white/x_table_view_off.svg'); + qproperty-SchematicCamstandButtonOnImage: url('../Default/imgs/white/schematic_table_on.svg'); + qproperty-SchematicCamstandButtonTranspImage: url('../Default/imgs/white/schematic_table_transp.svg'); + qproperty-SchematicCamstandButtonBgOffColor: #3d3d3d; + qproperty-SchematicCamstandButtonOffImage: url('../Default/imgs/white/schematic_table_off.svg'); + qproperty-SelectedBorderColor: #ffffff; + qproperty-LinkColor: #dfdfdf; + qproperty-SelectedLinkColor: cyan; + qproperty-MotionPathLinkColor: #94ee1e; + qproperty-MotionPathSelectedLinkColor: yellow; } /* ----------------------------------------------------------------------------- Schematic Node Viewer @@ -1626,52 +1743,74 @@ SchematicViewer { border: 0; margin: 0; padding: 0; + padding-left: 1; } #SchematicBottomFrame QToolBar::separator:horizontal { margin: 0; + margin-right: 1; } #SchematicBottomFrame QToolBar QToolButton { - padding: 0; - margin: 2; + padding: -2; + margin-right: 2; + margin-top: 2; + margin-bottom: 2; } #SchematicSceneViewer { background-color: #232323; - border-bottom: 1 solid #161616; + border-bottom: 1 solid #111111; } /* ----------------------------------------------------------------------------- FX Settings ----------------------------------------------------------------------------- */ -#FxSettingsTabBar::tab { - border-top: 1 solid #161616; -} -#FxSettingsTabBar::tab::first, -#FxSettingsTabBar::tab::only-one { - border-left: 1 solid #161616; -} FxSettings QToolBar { - border-top: 1 solid #161616; - border-right: 1 solid #161616; - border-left: 1 solid #161616; - min-height: 23; + border: 1 1 0 1 solid #111111; + min-height: 19; padding: 3 0; + border-top: 1 solid #111111; + border-left: 1 solid #111111; + border-right: 1 solid #111111; + border-top-left-radius: 2; + border-top-right-radius: 2; + margin-bottom: -1; } FxSettings QToolBar QToolBar { border: 0; } +FxSettings QToolBar QToolButton { + margin: 0; + padding: 0; + width: 22; + padding-right: -2; + padding-bottom: -1; +} #FxSettingsLabel { color: #a0e680; } #FxSettingsHelpButton { - background-color: #80a0dc; - color: #000; + background-color: transparent; + border: 0; padding-top: 0; padding-bottom: 0; } #FxSettingsHelpButton:hover { - background-color: #a8bee7; + background-color: #595959; } ChannelBar { - qproperty-TextColor: #e9e9e9; + qproperty-TextColor: #e6e6e6; +} +/* Keyframe Button Colors +----------------------------------------------------------------------------- */ +ParamFieldKeyToggle { + qproperty-KeyOffColor: rgba(0, 0, 0, 0); + qproperty-KeyBorderOffColor: rgba(0, 0, 0, 0); + qproperty-KeyModifiedColor: #beb062; + qproperty-KeyBorderModifiedColor: #beb062; + qproperty-KeyOnColor: #be7323; + qproperty-KeyBorderOnColor: #be7323; + qproperty-KeyInbetweenColor: #80795b; + qproperty-KeyBorderInbetweenColor: #80795b; + qproperty-KeyHighlightColor: rgba(255, 255, 255, 0.3); + qproperty-KeyBorderHighlightColor: rgba(255, 255, 255, 0.3); } /* ----------------------------------------------------------------------------- Script Console @@ -1692,10 +1831,10 @@ ChannelBar { Task Viewer ----------------------------------------------------------------------------- */ #TaskSheetItemLabel { - color: #e9e9e9; + color: #e6e6e6; } #Tasks QToolBar { - border-bottom: 1 solid #161616; + border-bottom: 1 solid #111111; margin: 0; padding: 0; } @@ -1703,24 +1842,46 @@ ChannelBar { margin: 2 2 3 2; } /* ----------------------------------------------------------------------------- - Tool Bar + Tools Window ----------------------------------------------------------------------------- */ #ToolBar QToolBar { - padding-left: 2; + padding-left: 3px; +} +#ToolBar QToolButton { + padding: 1 0 0 1; + margin-top: 1; + margin-bottom: 1; +} +#ToolBar QToolButton#qt_toolbar_ext_button { + qproperty-icon: url('../Default/imgs/white/toolbar_extension_vertical.png'); + padding-bottom: 1; +} +#ToolBar QToolButton#qt_toolbar_ext_button:hover { + background-color: #595959; +} +#ToolBar QToolButton#qt_toolbar_ext_button:pressed { + background-color: #141414; +} +#expandButton:checked { + background-color: transparent; + border-color: transparent; + color: #e6e6e6; +} +#expandButton:checked:hover { + background-color: #595959; + border-color: #595959; +} +#expandButton:checked:pressed { + background-color: #141414; + border-color: #0f0f0f; } /* ----------------------------------------------------------------------------- - Tool Options + Tool Options Window ----------------------------------------------------------------------------- */ #ToolOptions TPanelTitleBar { - border-right: 1 solid #161616; border-bottom: 0; -} -#CommandBar TPanelTitleBar { - border-right: 1 solid #161616; - border-bottom: 0; -} -IconViewField { - qproperty-ThicknessPixmap: url("../Default/imgs/white/selectiontool_thickness.svg"); + border-right: 1px solid #111111; + max-width: 18; } #EditToolLockButton { spacing: 0; @@ -1729,13 +1890,17 @@ IconViewField { background: none; } #EditToolLockButton::indicator { - border: 1 solid rgba(255, 255, 255, 0); + border: 1 solid transparent; height: 18; - padding: 0; - width: 18; + padding: 0 -1 0 1; + width: 19; + margin-left: 1; } #EditToolLockButton::indicator:unchecked { - image: url('../Default/imgs/white/lock_off.svg'); + image: url('../Default/imgs/white/lock.svg'); +} +#EditToolLockButton::indicator:unchecked:hover { + image: url('../Default/imgs/white/lock_over.svg'); } #EditToolLockButton::indicator:checked { background-color: #C34040; @@ -1776,12 +1941,34 @@ PopupButton::menu-indicator:disabled { padding: 0; } QToolBar#MediumPaddingToolBar QToolButton { - padding-left: 3; - padding-right: 3; + padding-left: 2; + padding-right: 1; } QToolBar#WidePaddingToolBar QToolButton { - padding-left: 6; - padding-right: 6; + padding-left: 2; + padding-right: 1; +} +/* XSheet Toolbar & Command Bar +----------------------------------------------------------------------------- */ +#XSheetToolbar { + padding: 0; + margin: 0; + border-bottom: 1 solid #111111; +} +#XSheetToolbar QToolButton#qt_toolbar_ext_button { + margin: 0; + margin-top: 3; +} +#XSheetToolbar QToolButton { + padding: 0; + padding-right: -1; + padding-bottom: -1; + min-height: 20px; + margin-left: 2; + margin-right: 0; +} +#XSheetToolbar::separator:horizontal { + margin: 0 0 0 2; } #CommandBar { margin: 0; @@ -1789,43 +1976,60 @@ QToolBar#WidePaddingToolBar QToolButton { border: 0; } #CommandBar::separator:horizontal { - margin-right: 3; - margin-left: 3; + margin-right: 0; + margin-left: 2; } -#expandButton:checked { - background-color: transparent; - border-color: transparent; - color: #e9e9e9; +#CommandBar QToolButton { + margin: 0 0 0 2; + padding: 0; + padding-top: -1; + padding-left: 0; + padding-right: -1; + padding-bottom: 0; + min-height: 20px; } -#expandButton:checked:hover { - background-color: #636363; - border-color: #636363; +#CommandBar QToolButton#qt_toolbar_ext_button { + margin-top: 1; } -#expandButton:checked:pressed { - background-color: #1e1e1e; - border-color: #191919; +#CommandBar TPanelTitleBar { + border-right: 1px solid #111111; + border-bottom: 0; + max-width: 18; } /* ----------------------------------------------------------------------------- ComboViewer / Viewer / FlipBook ----------------------------------------------------------------------------- */ #ComboViewerPanel Toolbar { - border-bottom: 1 solid #161616; + border-bottom: 1 solid #111111; } #ComboViewerPanel Toolbar::separator:horizontal { margin: 0 0 0 2; + padding: 0; } #ComboViewerPanel Toolbar QToolButton { - margin: 2 0 3 2; + margin: 0; + margin-bottom: 3; + margin-left: 2; + margin-right: 0; + margin-top: 2; + padding-top: 1; + padding-left: 1; + padding-right: 0; + padding-bottom: 0; +} +#ComboViewerPanel Toolbar QToolButton#qt_toolbar_ext_button { + margin-bottom: 1; + qproperty-icon: url('../Default/imgs/white/toolbar_extension_horizontal.png'); } #ComboViewerToolOptions { - border-bottom: 1 solid #161616; + border-bottom: 1 solid #111111; } #ComboViewer #ToolBarContainer, #ViewerPanel #ToolBarContainer, FlipBook #ToolBarContainer { background-color: transparent; - border-top: 2 solid #161616; - border-bottom: 1 solid #161616; + border-top: 1 solid #111111; + border-bottom: 1 solid #111111; padding-right: -1; } #flipCustomize { @@ -1839,14 +2043,31 @@ FlipBook #ToolBarContainer { image: none; } QToolBar#FlipConsolePlayToolBar::separator:horizontal { - margin: 0 3; + border-color: #111111; + margin: 0 1 0 1; } QToolBar#FlipConsolePlayToolBar QToolButton { - margin-top: 2; - margin-bottom: 2; - height: 16; - padding-left: 1; + padding-left: 0; + padding-top: -1; + padding-right: -1; + padding-bottom: -2; + margin: 2 1 2 1; +} +QToolBar#FlipConsolePlayToolBar #KeyNo, +QToolBar#FlipConsolePlayToolBar #KeyPartial, +QToolBar#FlipConsolePlayToolBar #KeyTotal, +QToolBar#FlipConsolePlayToolBar #PreviousKey, +QToolBar#FlipConsolePlayToolBar #NextKey { padding-right: 1; + padding-left: 1; + max-width: 20px; + max-height: 20px; + padding-bottom: 0; + padding-top: 0; +} +QToolBar#FlipConsolePlayToolBar #PreviousKey, +QToolBar#FlipConsolePlayToolBar #NextKey { + margin: 0 2; } #ViewerFpsSlider { background-color: transparent; @@ -1861,7 +2082,7 @@ QToolBar#FlipConsolePlayToolBar QToolButton { } #ViewerFpsSlider::sub-line:horizontal { subcontrol-origin: absolute; - background-color: #565656; + background-color: #4c4c4c; border: 1 solid #303030; border-top-left-radius: 2; border-bottom-left-radius: 2; @@ -1871,7 +2092,7 @@ QToolBar#FlipConsolePlayToolBar QToolButton { } #ViewerFpsSlider::add-line:horizontal { subcontrol-position: left; - background-color: #565656; + background-color: #4c4c4c; border: 1 solid #303030; border-top-right-radius: 2; border-bottom-right-radius: 2; @@ -1889,6 +2110,9 @@ QToolBar#FlipConsolePlayToolBar QToolButton { width: 9; max-width: 9; } +FlipConsole { + qproperty-FpsFieldColor: #1c1c1c; +} FlipSlider { qproperty-PBHeight: 15; qproperty-PBOverlay: url('../Default/imgs/white/flipslider_dark.svg'); @@ -1901,16 +2125,29 @@ FlipSlider { qproperty-PBMarkerMarginRight: 3; qproperty-notStartedColor: rgba(205, 101, 101, 0.78); qproperty-startedColor: #1abc3f; - qproperty-baseColor: #1c1c1c; - qproperty-finishedColor: #1c1c1c; + qproperty-baseColor: #232323; + qproperty-finishedColor: #232323; } Ruler { qproperty-ParentBGColor: #303030; - qproperty-ScaleColor: #e9e9e9; + qproperty-ScaleColor: rgba(230, 230, 230, 0.7); + qproperty-HandleColor: #64b0e2; + qproperty-HandleDragColor: yellow; + qproperty-BorderColor: rgba(17, 17, 17, 0.7); } #RulerToolOptionValues { color: #000000; } +#enableBlankFrameButton { + background-color: transparent; + border-color: transparent; + color: rgba(230, 230, 230, 0.4); + padding: 0; + font-weight: bold; +} +#enableBlankFrameButton:checked { + border-width: 2px; +} /* ----------------------------------------------------------------------------- XSheet Viewer ----------------------------------------------------------------------------- */ @@ -1918,7 +2155,7 @@ Ruler { ----------------------------------------------------------------------------- */ #xsheetArea, #ScrollArea { - background-color: #1c1c1c; + background-color: #303030; border: 0; } #xsheetScrollArea { @@ -1927,6 +2164,19 @@ Ruler { #cornerWidget QToolButton { padding: 0; } +#XsheetCellArea QLineEdit { + margin-top: 1; +} +#XsheetCellArea QLineEdit:focus { + border-radius: 0; + border-width: 2; + border-left-width: 2; + border-color: #000; + background-color: #000000; +} +#RenameCellField { + padding-right: 3; +} /* xsheetColumnHeader (Context Menus) ----------------------------------------------------------------------------- */ #xsheetColumnAreaMenu_Preview { @@ -1946,187 +2196,166 @@ Ruler { #noteTextEdit { color: #000; } +#DvMiniToolBar { + border: 1 solid #111111; +} /* XSheet Spreadsheet ----------------------------------------------------------------------------- */ XsheetViewer { - qproperty-TextColor: #e9e9e9; - qproperty-BGColor: #2b2b2b; - qproperty-LightLineColor: rgba(0, 0, 0, 0.25); - qproperty-MarkerLineColor: #1E96C4; - qproperty-VerticalLineColor: rgba(0, 0, 0, 0.6); - qproperty-VerticalLineHeadColor: #686868; + qproperty-TextColor: #e6e6e6; + qproperty-ErrorTextColor: #ff7b7b; + qproperty-BGColor: #303030; + qproperty-LightLineColor: rgba(0, 0, 0, 0.3); + qproperty-MarkerLineColor: rgba(255, 255, 255, 0.15); + qproperty-VerticalLineColor: rgba(0, 0, 0, 0.4); + qproperty-VerticalLineHeadColor: #0f0f0f; qproperty-PreviewFrameTextColor: #9fdaff; - qproperty-CurrentRowBgColor: #506082; - qproperty-OnionSkinAreaBgColor: #262626; - qproperty-EmptyColumnHeadColor: #444444; - qproperty-EmptyCellColor: #303030; - qproperty-NotEmptyColumnColor: #383838; - qproperty-SelectedEmptyCellColor: #545454; + qproperty-CurrentRowBgColor: rgba(83, 133, 166, 0.7); + qproperty-OnionSkinAreaBgColor: #282828; + qproperty-CellFocusColor: #000; + qproperty-ColumnIconLineColor: #111111; + qproperty-EmptyColumnHeadColor: #303030; + qproperty-ColumnHeadPastelizer: rgba(0, 0, 0, 0); + qproperty-SelectedColumnHead: rgba(221, 231, 237, 0.3); + qproperty-PlayRangeColor: #383838; + qproperty-FoldedColumnBGColor: #4a4a4a; + qproperty-FoldedColumnLineColor: #232323; + qproperty-EmptyCellColor: #282828; + qproperty-NotEmptyColumnColor: #303030; + qproperty-SelectedEmptyCellColor: rgba(90, 100, 106, 0.5); qproperty-LevelColumnColor: #4C6E4C; - qproperty-LevelColumnBorderColor: #8FB38F; - qproperty-SelectedLevelColumnColor: #678667; + qproperty-LevelColumnBorderColor: #375037; + qproperty-SelectedLevelColumnColor: #59846c; qproperty-VectorColumnColor: #7B7B4C; - qproperty-VectorColumnBorderColor: #BBBB9A; - qproperty-SelectedVectorColumnColor: #949466; + qproperty-VectorColumnBorderColor: #5b5b39; + qproperty-SelectedVectorColumnColor: #85906c; qproperty-ChildColumnColor: #6A526B; - qproperty-ChildColumnBorderColor: #B1A3B3; - qproperty-SelectedChildColumnColor: #816e82; + qproperty-ChildColumnBorderColor: #4d3c4e; + qproperty-SelectedChildColumnColor: #756a89; qproperty-FullcolorColumnColor: #657A96; - qproperty-FullcolorColumnBorderColor: #9EB8BB; - qproperty-SelectedFullcolorColumnColor: #8895a6; - qproperty-FxColumnColor: #56553C; - qproperty-FxColumnBorderColor: #95958A; - qproperty-SelectedFxColumnColor: #6f6e56; - qproperty-ReferenceColumnColor: #616161; - qproperty-ReferenceColumnBorderColor: #A2A2A2; - qproperty-SelectedReferenceColumnColor: #7a7a7a; - qproperty-PaletteColumnColor: #3A655F; - qproperty-PaletteColumnBorderColor: #86ACA7; - qproperty-SelectedPaletteColumnColor: #52807a; - qproperty-MeshColumnColor: #684D86; - qproperty-MeshColumnBorderColor: #BA92EF; - qproperty-SelectedMeshColumnColor: #82689e; - qproperty-SoundTextColumnColor: #c8c8c8; - qproperty-SoundTextColumnBorderColor: #8c8c8c; - qproperty-SelectedSoundTextColumnColor: #e2e2e2; - qproperty-SoundColumnColor: #657456; - qproperty-SoundColumnBorderColor: #A0AF7D; - qproperty-SelectedSoundColumnColor: #7e8b72; + qproperty-FullcolorColumnBorderColor: #506178; + qproperty-SelectedFullcolorColumnColor: #708fb1; + qproperty-FxColumnColor: #6d6349; + qproperty-FxColumnBorderColor: #4e4735; + qproperty-SelectedFxColumnColor: #787a6a; + qproperty-ReferenceColumnColor: #3d3d3d; + qproperty-ReferenceColumnBorderColor: #232323; + qproperty-SelectedReferenceColumnColor: #4b575e; + qproperty-PaletteColumnColor: #42756e; + qproperty-PaletteColumnBorderColor: #30544f; + qproperty-SelectedPaletteColumnColor: #508b8c; + qproperty-MeshColumnColor: #5e4d72; + qproperty-MeshColumnBorderColor: #453854; + qproperty-SelectedMeshColumnColor: #6a6690; + qproperty-SoundTextColumnColor: #a7a7a7; + qproperty-SoundTextColumnBorderColor: #8e8e8e; + qproperty-SelectedSoundTextColumnColor: #adb9c0; + qproperty-SoundColumnColor: #578a8a; + qproperty-SoundColumnBorderColor: #436b6b; + qproperty-SelectedSoundColumnColor: #639ea6; qproperty-SoundColumnHlColor: #34FE5E; - qproperty-SoundColumnTrackColor: #B6C29D; - qproperty-ColumnHeadPastelizer: #000; - qproperty-SelectedColumnHead: #506082; - qproperty-LightLightBGColor: #303030; + qproperty-SoundColumnTrackColor: rgba(0, 0, 0, 0.8); + qproperty-ActiveCameraColor: #4073a3; + qproperty-SelectedActiveCameraColor: #4e89bd; + qproperty-OtherCameraColor: #5e9aa3; + qproperty-SelectedOtherCameraColor: #6aadbd; + qproperty-LightLightBGColor: #282828; qproperty-LightBGColor: #d8d8d8; qproperty-DarkBGColor: #c9c9c9; qproperty-DarkLineColor: #7e7e7e; + qproperty-TimelineIconLineColor: rgba(0, 0, 0, 0.4); qproperty-XsheetColumnNameBgColor: rgba(0, 0, 0, 0); - qproperty-XsheetDragBarHighlightColor: rgba(255, 255, 255, 0.5); + qproperty-XsheetDragBarHighlightColor: rgba(255, 255, 255, 0.15); qproperty-XsheetPreviewButtonBgOnColor: #c8c864; qproperty-XsheetPreviewButtonOnImage: url('../Default/imgs/white/x_prev_eye_on.svg'); - qproperty-XsheetPreviewButtonBgOffColor: rgba(255, 255, 255, 0); + qproperty-XsheetPreviewButtonBgOffColor: transparent; qproperty-XsheetPreviewButtonOffImage: url('../Default/imgs/white/x_prev_eye_off.svg'); qproperty-XsheetCamstandButtonBgOnColor: #eb906b; qproperty-XsheetCamstandButtonOnImage: url('../Default/imgs/white/x_table_view_on.svg'); qproperty-XsheetCamstandButtonTranspImage: url('../Default/imgs/white/x_table_view_transp.svg'); - qproperty-XsheetCamstandButtonBgOffColor: rgba(255, 255, 255, 0); + qproperty-XsheetCamstandButtonBgOffColor: transparent; qproperty-XsheetCamstandButtonOffImage: url('../Default/imgs/white/x_table_view_off.svg'); - qproperty-XsheetLockButtonBgOnColor: rgba(255, 255, 255, 0.3); + qproperty-XsheetLockButtonBgOnColor: rgba(255, 255, 255, 0.6); qproperty-XsheetLockButtonOnImage: url('../Default/imgs/white/x_lock_on.svg'); - qproperty-XsheetLockButtonBgOffColor: rgba(255, 255, 255, 0); + qproperty-XsheetLockButtonBgOffColor: transparent; qproperty-XsheetLockButtonOffImage: url('../Default/imgs/white/x_lock_off.svg'); qproperty-XsheetConfigButtonBgColor: rgba(255, 255, 255, 0); qproperty-XsheetConfigButtonImage: url('../Default/imgs/white/x_config.svg'); - qproperty-TimelinePreviewButtonBgOnColor: rgba(255, 255, 255, 0); - qproperty-TimelinePreviewButtonOnImage: url('../Default/imgs/white/timeline_toggle_on.svg'); - qproperty-TimelinePreviewButtonBgOffColor: rgba(255, 255, 255, 0); - qproperty-TimelinePreviewButtonOffImage: url('../Default/imgs/white/timeline_toggle_off.svg'); - qproperty-TimelineCamstandButtonBgOnColor: rgba(255, 255, 255, 0); - qproperty-TimelineCamstandButtonOnImage: url('../Default/imgs/white/timeline_toggle_on.svg'); - qproperty-TimelineCamstandButtonTranspImage: url('../Default/imgs/white/timeline_toggle_transp.svg'); - qproperty-TimelineCamstandButtonBgOffColor: rgba(255, 255, 255, 0); - qproperty-TimelineCamstandButtonOffImage: url('../Default/imgs/white/timeline_toggle_off.svg'); - qproperty-TimelineLockButtonBgOnColor: rgba(255, 255, 255, 0); - qproperty-TimelineLockButtonOnImage: url('../Default/imgs/white/timeline_toggle_on.svg'); - qproperty-TimelineLockButtonBgOffColor: rgba(255, 255, 255, 0); - qproperty-TimelineLockButtonOffImage: url('../Default/imgs/white/timeline_toggle_off.svg'); - qproperty-TimelineConfigButtonBgColor: rgba(255, 255, 255, 0); + qproperty-FrameRangeMarkerLineColor: #565656; + qproperty-TimelinePreviewButtonBgOnColor: #303030; + qproperty-TimelinePreviewButtonOnImage: url('../Default/imgs/white/preview_small.svg'); + qproperty-TimelinePreviewButtonBgOffColor: #303030; + qproperty-TimelinePreviewButtonOffImage: url('none'); + qproperty-TimelineCamstandButtonBgOnColor: #303030; + qproperty-TimelineCamstandButtonOnImage: url('../Default/imgs/white/table_small.svg'); + qproperty-TimelineCamstandButtonTranspImage: url('../Default/imgs/white/trans_small.svg'); + qproperty-TimelineCamstandButtonBgOffColor: #303030; + qproperty-TimelineCamstandButtonOffImage: url('none'); + qproperty-TimelineLockButtonBgOnColor: #303030; + qproperty-TimelineLockButtonOnImage: url('../Default/imgs/white/lock_on_small.svg'); + qproperty-TimelineLockButtonBgOffColor: #303030; + qproperty-TimelineLockButtonOffImage: url('none'); + qproperty-TimelineConfigButtonBgColor: #303030; qproperty-TimelineConfigButtonImage: url('../Default/imgs/white/timeline_config.svg'); qproperty-LayerHeaderPreviewImage: url('../Default/imgs/white/layer_header_prev_eye.svg'); qproperty-LayerHeaderPreviewOverImage: url('../Default/imgs/white/layer_header_prev_eye_over.svg'); qproperty-LayerHeaderCamstandImage: url('../Default/imgs/white/layer_header_table_view.svg'); qproperty-LayerHeaderCamstandOverImage: url('../Default/imgs/white/layer_header_table_view_over.svg'); - qproperty-LayerHeaderLockImage: url('../Default/imgs/white/lock_on.svg'); - qproperty-LayerHeaderLockOverImage: url('../Default/imgs/white/lock_on_over.svg'); - qproperty-ActiveCameraColor: #2d7dca; - qproperty-SelectedActiveCameraColor: #5796d3; - qproperty-OtherCameraColor: #6c797b; - qproperty-SelectedOtherCameraColor: #8b8e8f; -} -/* XSheet Toolbar ------------------------------------------------------------------------------ */ -#XSheetToolbar { - margin: 0; - padding: 0; - border: 0; -} -#XSheetToolbar QToolButton { - padding: 0; - margin: 4 1; - min-height: 19; - height: 19; -} -#XSheetToolbar::separator:horizontal { - margin: 0 4; + qproperty-LayerHeaderLockImage: url('../Default/imgs/white/layer_lock_on.svg'); + qproperty-LayerHeaderLockOverImage: url('../Default/imgs/white/layer_lock_on_over.svg'); } /* ----------------------------------------------------------------------------- Function Editor ----------------------------------------------------------------------------- */ #FunctionEditor QToolBar { - border-bottom: 1 solid #161616; + border-bottom: 1 solid #111111; + background-color: transparent; + padding-bottom: 10; } #FunctionEditor QToolBar QToolBar { border: 0; } -#FunctionEditor QToolBar QLabel { - margin-left: 5; -} #FunctionEditor QToolBar QToolButton { - height: 18; + margin-bottom: 2; } #FunctionEditorTree { - border-top: 1 solid #161616; + border-top: 1 solid #111111; } FunctionTreeView { - qproperty-TextColor: #e9e9e9; + qproperty-TextColor: #e6e6e6; } /* Function Editor Spreadsheet ----------------------------------------------------------------------------- */ FunctionPanel { - qproperty-BGColor: #232323; - qproperty-ValueLineColor: #161616; - qproperty-FrameLineColor: #161616; - qproperty-OtherCurvesColor: #707070; - qproperty-RulerBackground: #1b1b1b; - qproperty-TextColor: #e9e9e9; - qproperty-SubColor: #000; + qproperty-BGColor: #303030; + qproperty-ValueLineColor: rgba(0, 0, 0, 0.1); + qproperty-FrameLineColor: rgba(0, 0, 0, 0.1); + qproperty-OtherCurvesColor: #7d7d7d; + qproperty-RulerBackground: #282828; + qproperty-TextColor: #e6e6e6; + qproperty-SubColor: #303030; qproperty-SelectedColor: #FFA500; } SpreadsheetViewer { - qproperty-LightLightBGColor: #303030; - qproperty-CurrentRowBgColor: #506082; - qproperty-LightLineColor: rgba(0, 0, 0, 0.25); - qproperty-MarkerLineColor: #1E96C4; - qproperty-BGColor: #383838; - qproperty-VerticalLineColor: rgba(0, 0, 0, 0.6); + qproperty-LightLightBGColor: #282828; + qproperty-CurrentRowBgColor: rgba(83, 133, 166, 0.7); + qproperty-LightLineColor: rgba(0, 0, 0, 0.3); + qproperty-MarkerLineColor: rgba(255, 255, 255, 0.15); + qproperty-BGColor: #303030; + qproperty-VerticalLineColor: rgba(0, 0, 0, 0.4); qproperty-KeyFrameColor: #995d1d; - qproperty-KeyFrameBorderColor: #c9b04b; - qproperty-SelectedKeyFrameColor: #be772b; + qproperty-KeyFrameBorderColor: #db9041; + qproperty-SelectedKeyFrameColor: #a2835b; qproperty-InBetweenColor: #666250; - qproperty-InBetweenBorderColor: #cdcec8; - qproperty-SelectedInBetweenColor: #7d7a6c; - qproperty-SelectedEmptyColor: #545454; - qproperty-SelectedSceneRangeEmptyColor: #5d5d5d; - qproperty-TextColor: #e9e9e9; - qproperty-ColumnHeaderBorderColor: #686868; + qproperty-InBetweenBorderColor: #b0aa91; + qproperty-SelectedInBetweenColor: #717970; + qproperty-SelectedEmptyColor: rgba(90, 100, 106, 0.5); + qproperty-SelectedSceneRangeEmptyColor: rgba(90, 100, 106, 0.5); + qproperty-TextColor: #e6e6e6; + qproperty-ColumnHeaderBorderColor: #0f0f0f; } #ExpressionField { background-color: #cecece; border: 1 solid #1b1b1b; margin: 0; } -#FunctionSegmentViewerLinkButton { - background-image: url('../Default/imgs/white/segment_unlinked.svg'); - background-repeat: no-repeat; -} -#FunctionSegmentViewerLinkButton:hover { - background-repeat: no-repeat; -} -#FunctionSegmentViewerLinkButton:checked { - background-image: url('../Default/imgs/white/segment_linked.svg'); - background-repeat: no-repeat; -} -#FunctionSegmentViewerLinkButton:disabled { - background-image: url('../Default/imgs/white/segment_disabled.svg'); - background-repeat: no-repeat; -} diff --git a/stuff/config/qss/Default/Default.qss b/stuff/config/qss/Default/Default.qss index 66d69cf..2c02361 100644 --- a/stuff/config/qss/Default/Default.qss +++ b/stuff/config/qss/Default/Default.qss @@ -1,112 +1,91 @@ /* ----------------------------------------------------------------------------- Component: Button Styles ----------------------------------------------------------------------------- */ -.button-show, -#LoadLevelShowButton, -#CleanupSettingsShowButton, -#OutputSettingsShowButton, -#FxSettingsPreviewShowButton { - image: url('imgs/white/plus.svg'); - image-position: center center; - margin: 0; - padding: 1; - min-width: 10; - min-height: 10; -} -.button-show:checked, -#LoadLevelShowButton:checked, -#CleanupSettingsShowButton:checked, -#OutputSettingsShowButton:checked, -#FxSettingsPreviewShowButton:checked { - background-color: #313131; - border-color: #2c2c2c; - image: url('imgs/white/minus.svg'); -} -.button-show:checked:pressed, -#LoadLevelShowButton:checked:pressed, -#CleanupSettingsShowButton:checked:pressed, -#OutputSettingsShowButton:checked:pressed, -#FxSettingsPreviewShowButton:checked:pressed { - background-color: #313131; - border-color: #2c2c2c; -} -.button-show:checked:hover, -#LoadLevelShowButton:checked:hover, -#CleanupSettingsShowButton:checked:hover, -#OutputSettingsShowButton:checked:hover, -#FxSettingsPreviewShowButton:checked:hover { - background-color: #363636; -} .button-tool, QToolButton, +#FileBrowser QToolBar QToolButton, #CameraSettingsRadioButton::indicator, #ForceSquaredPixelButton, -#SchematicBottomFrame QToolBar QToolButton, #EditToolLockButton::indicator, -#flipCustomize { - background-color: rgba(255, 255, 255, 0); - border: 1 solid rgba(255, 255, 255, 0); +#flipCustomize, +#SceneCast QToolBar QToolButton { + background-color: transparent; + border: 1 solid transparent; border-radius: 2; color: #f3f3f3; - margin: 1; - padding: 0; } .button-tool:hover, QToolButton:hover, +#FileBrowser QToolBar QToolButton:hover, #CameraSettingsRadioButton::indicator:hover, #ForceSquaredPixelButton:hover, #colorSliderAddButton:hover, #colorSliderSubButton:hover, -#SchematicBottomFrame QToolBar QToolButton:hover, #EditToolLockButton::indicator:hover, -#flipCustomize:hover { - background-color: #767676; - border-color: #767676; +#flipCustomize:hover, +#SceneCast QToolBar QToolButton:hover { + background-color: #717171; + border-color: #717171; color: #f3f3f3; } .button-tool:pressed, QToolButton:pressed, +#FileBrowser QToolBar QToolButton:pressed, #CameraSettingsRadioButton::indicator:pressed, #ForceSquaredPixelButton:pressed, #colorSliderAddButton:pressed, #colorSliderSubButton:pressed, -#SchematicBottomFrame QToolBar QToolButton:pressed, #EditToolLockButton::indicator:pressed, -#flipCustomize:pressed { - background-color: #313131; - border-color: #2c2c2c; +#flipCustomize:pressed, +#SceneCast QToolBar QToolButton:pressed { + background-color: #2c2c2c; + border-color: #272727; color: #f3f3f3; } .button-tool:checked, QToolButton:checked, +#FileBrowser QToolBar QToolButton:checked, #CameraSettingsRadioButton::indicator:checked, #ForceSquaredPixelButton:checked, -#SchematicBottomFrame QToolBar QToolButton:checked, #EditToolLockButton::indicator:checked, -#flipCustomize:checked { +#flipCustomize:checked, +#SceneCast QToolBar QToolButton:checked { background-color: #5385a6; border-color: #5385a6; color: #ffffff; } .button-tool:checked:hover, QToolButton:checked:hover, +#FileBrowser QToolBar QToolButton:checked:hover, #CameraSettingsRadioButton::indicator:checked:hover, #ForceSquaredPixelButton:checked:hover, -#SchematicBottomFrame QToolBar QToolButton:checked:hover, #EditToolLockButton::indicator:checked:hover, -#flipCustomize:checked:hover { +#flipCustomize:checked:hover, +#SceneCast QToolBar QToolButton:checked:hover { background-color: #6c98b6; border-color: #6c98b6; } .button-tool:disabled, QToolButton:disabled, +#FileBrowser QToolBar QToolButton:disabled, #CameraSettingsRadioButton::indicator:disabled, #ForceSquaredPixelButton:disabled, -#SchematicBottomFrame QToolBar QToolButton:disabled, #EditToolLockButton::indicator:disabled, -#flipCustomize:disabled { +#flipCustomize:disabled, +#SceneCast QToolBar QToolButton:disabled { color: rgba(230, 230, 230, 0.4); } +.button-tool:disabled:checked, +QToolButton:disabled:checked, +#FileBrowser QToolBar QToolButton:disabled:checked, +#CameraSettingsRadioButton::indicator:disabled:checked, +#ForceSquaredPixelButton:disabled:checked, +#EditToolLockButton::indicator:disabled:checked, +#flipCustomize:disabled:checked, +#SceneCast QToolBar QToolButton:disabled:checked { + background-color: rgba(83, 133, 166, 0.4); + border-color: rgba(83, 133, 166, 0.4); +} .button-flat, PaletteViewer QToolBar QToolButton { background-color: none; @@ -116,11 +95,11 @@ PaletteViewer QToolBar QToolButton { } .button-flat:hover, PaletteViewer QToolBar QToolButton:hover { - background-color: #767676; + background-color: #717171; } .button-flat:pressed, PaletteViewer QToolBar QToolButton:pressed { - background-color: #272727; + background-color: #2c2c2c; } /* ----------------------------------------------------------------------------- Component: Frames @@ -129,13 +108,14 @@ PaletteViewer QToolBar QToolButton:pressed { .GroupBox, #LoadLevelFrame, #PsdSettingsGroupBox, -#CleanupSettingsFrame, +#CleanupSettings #CleanupSettingsFrame, +#CleanupSettings QScrollArea, #OutputSettingsBox, #OutputSettingsCameraBox, #SolidLineFrame, #FunctionParametersPanel, QGroupBox { - border: 1 solid #272727; + border: 1 solid #2c2c2c; border-radius: 2; } /* ----------------------------------------------------------------------------- @@ -144,59 +124,46 @@ QGroupBox { /* ----------------------------------------------------------------------------- Component: Tabs ----------------------------------------------------------------------------- */ -.tab-container, -#TabBarContainer { - background-color: transparent; +.tab-container { + background-color: #393939; qproperty-BottomAboveLineColor: #393939; - qproperty-BottomBelowLineColor: #272727; + qproperty-BottomBelowLineColor: #2c2c2c; } .tab-flat, -#StopMotionTabBar::tab, -#StyleEditorTabBar::tab, -#PaletteTabBar::tab, -#FxSettingsTabBar::tab { +QTabBar::tab { background-color: #393939; border-right: 1 solid #272727; - border-bottom: 1 solid #272727; + border-bottom: 1 solid #2c2c2c; color: #a1a1a1; padding: 3 4 3 4; } .tab-flat:hover, -#StopMotionTabBar::tab:hover, -#StyleEditorTabBar::tab:hover, -#PaletteTabBar::tab:hover, -#FxSettingsTabBar::tab:hover { - background-color: #484848; +QTabBar::tab:hover { + background-color: #454545; color: #a1a1a1; } .tab-flat:selected, -#StopMotionTabBar::tab:selected, -#StyleEditorTabBar::tab:selected, -#PaletteTabBar::tab:selected, -#FxSettingsTabBar::tab:selected { +QTabBar::tab:selected { background-color: #484848; - color: #ffffff; + color: #fff; border-bottom-color: #484848; } .tab-flat:only-one, -#StopMotionTabBar::tab:only-one, -#StyleEditorTabBar::tab:only-one, -#PaletteTabBar::tab:only-one, -#FxSettingsTabBar::tab:only-one { +QTabBar::tab:only-one { margin: 0; } .tab-round { background-color: #393939; - border-top: 1 solid #272727; - border-right: 1 solid #272727; - border-left: 1 solid #272727; - border-bottom: 1 solid #272727; + border-top: 1 solid #2c2c2c; + border-right: 1 solid #2c2c2c; + border-left: 1 solid #2c2c2c; + border-bottom: 1 solid #2c2c2c; color: #a1a1a1; margin: 3 -1 0 0; padding: 2 7 1 7; } .tab-round:hover { - background-color: #484848; + background-color: #454545; color: #a1a1a1; } .tab-round:selected { @@ -204,7 +171,7 @@ QGroupBox { border-top-right-radius: 2; border-top-left-radius: 2; border-bottom-color: #484848; - color: #ffffff; + color: #fff; margin: 1 -1 -1 0; padding: 2 7 2 7; } @@ -236,23 +203,23 @@ QFrame { } QToolTip, #helpToolTip { - background-color: #fff; - border: 1 solid #000; - color: #000; + background-color: #292B2D; + border: 1 solid #CFD1D4; + color: #CFD2D4; padding: 1 1; } #DockSeparator, QMainWindow::separator, QSplitter::handle { - background-color: #1a1a1a; + background-color: #1f1f1f; height: 4; width: 4; } #TDockPlaceholder { - background-color: #F77272; + background-color: #f55454; } TPanel { - background-color: #1a1a1a; + background-color: #1f1f1f; } /* ----------------------------------------------------------------------------- Topbar @@ -260,8 +227,7 @@ TPanel { #TopBar { background: #484848; border: 0; - border-bottom: 1 solid #272727; - height: 21; + border-bottom: 1 solid #2c2c2c; } #TopBar #EditToolLockButton { background: #484848; @@ -270,8 +236,6 @@ TPanel { #TopBar #EditToolLockButton::indicator { background: none; border: none; - height: 18; - margin: 1 2 0 0; padding-left: 0; padding-right: 0; } @@ -292,10 +256,10 @@ QMenuBar::item { background-color: #484848; border-left: 1 solid #484848; margin: 0; - padding: 3 5; + padding: 3 5 3 5; } QMenuBar::item:selected { - background-color: rgba(255, 255, 255, 0.15); + background-color: rgba(255, 255, 255, 0.1); color: #e6e6e6; } QMenuBar::item:pressed { @@ -314,33 +278,42 @@ QMenuBar::item:pressed { border-top: 1 solid #272727; border-right: 1 solid #272727; color: #a1a1a1; - margin: 0 0 0 0; + margin: 0 0 -1 0; padding: 2 8 3 8; } #TopBarTab::tab:hover { - background-color: #484848; + background-color: #454545; color: #a1a1a1; } #TopBarTab::tab:selected { - background-color: #484848; + background-color: #5385a6; color: #ffffff; } #TopBarTab::tab:first { - border-left: 1 solid #272727; + border-left: 1 solid #2c2c2c; } #TopBarTab::tab:last { - border-right: 1 solid #272727; + border-right: 1 solid #2c2c2c; +} +#TopBarTab QToolButton { + border-left: 2 solid #2c2c2c; + border-top: 1 solid #2c2c2c; + border-right: 1 solid #2c2c2c; + border-bottom: 0; + margin-left: -1; + margin-top: 0; } /* ----------------------------------------------------------------------------- Menu ----------------------------------------------------------------------------- */ QMenu { background-color: #484848; - border: 1 solid #272727; + border: 1 solid #2c2c2c; color: #e6e6e6; padding: 2 0; } QMenu::item { + border: 0; padding: 3 28; } QMenu::item:selected { @@ -359,23 +332,25 @@ QMenu::item:disabled { color: rgba(230, 230, 230, 0.4); } QMenu::item:disabled:selected { - background-color: #5c5c5c; - border-color: transparent; color: rgba(230, 230, 230, 0.4); /* fix for disabled indicator */ } QMenu::separator { - border-top: 1 solid #272727; + border-top: 1 solid #2c2c2c; height: 0; margin: 2 0; } QMenu::icon { border-radius: 2; - margin: 0 0 0 3; - padding: 1; + position: absolute; + left: 5; + padding: 0; + margin: 0; + qproperty-icon: url('imgs/white/none'); } QMenu::icon:checked { background-color: #5385a6; + border: 1 solid #5385a6; } QMenu::indicator { margin-left: 7; @@ -385,11 +360,9 @@ QMenu::indicator { ----------------------------------------------------------------------------- */ TPanelTitleBar { background-color: #393939; - border-color: #272727; - border-style: solid; - border-width: 0 0 1 0; - height: 20; - min-height: 20; + border-bottom: 1px solid #2c2c2c; + height: 18; + min-height: 18; qproperty-TitleColor: #949494; qproperty-ActiveTitleColor: #fff; qproperty-BorderPixmap: url('none'); @@ -397,6 +370,12 @@ TPanelTitleBar { qproperty-FloatBorderPixmap: url('none'); qproperty-FloatActiveBorderPixmap: url('imgs/white/none'); } +TPanelTitleBarButton { + qproperty-PressedColor: #5385a6; + qproperty-FreezeColor: #C34040; + qproperty-PreviewColor: #1baf7e; + qproperty-OverColor: #717171; +} /* ----------------------------------------------------------------------------- Scrollbars ----------------------------------------------------------------------------- */ @@ -408,35 +387,35 @@ QScrollBar { border: 0; } QScrollBar:horizontal { - height: 16; + height: 15; margin: 0; } QScrollBar:vertical { margin: 0; - width: 16; + width: 15; } QScrollBar::handle { - border: 1 solid #525252; + border: 0 solid #5c5c5c; border-radius: 4; } QScrollBar::handle:horizontal:hover, QScrollBar::handle:vertical:hover { - background-color: #676767; - border-color: #676767; + background-color: #717171; + border-color: #717171; } QScrollBar::handle:horizontal:pressed, QScrollBar::handle:vertical:pressed { - background-color: #7b7b7b; - border-color: #7b7b7b; + background-color: #858585; + border-color: #858585; } QScrollBar::handle:horizontal { - background-color: #525252; + background-color: #5c5c5c; margin: 3 16; min-width: 20; } QScrollBar::handle:vertical { - background-color: #525252; - margin: 16 3; + background-color: #5c5c5c; + margin: 16 3 16 3; min-height: 20; } QScrollBar::add-line { @@ -506,18 +485,21 @@ QScrollBar::add-page:vertical { background: none; } /* ----------------------------------------------------------------------------- - Tool Bars + QToolBar ----------------------------------------------------------------------------- */ +/* This applies to QToolBar, this is not the #ToolBar window, although the + properties here also apply in the window, you should look in + [layouts/toolbar] if you want window control. */ QToolBar { padding: 0; } QToolBar::separator:horizontal { - border-left: 1 solid #272727; + border-left: 1 solid #2c2c2c; margin: 0 1; width: 0; } QToolBar::separator:vertical { - border-top: 1 solid #272727; + border-top: 1 solid #2c2c2c; height: 0; margin: 1 0; } @@ -527,23 +509,37 @@ QToolBar QLabel { QToolBar QToolBar { border: 0; } +QToolButton { + margin-left: 1; + margin-right: 1; + padding: 0; +} QToolButton::menu-indicator { image: none; } QToolButton::menu-button { border-image: none; } -/* -------------------------------------------------------------------------- */ -/* Scrollable QToolBar Buttons -/* -------------------------------------------------------------------------- */ +QToolButton#qt_toolbar_ext_button { + padding: 0; + border: 0; + margin: 0; + qproperty-icon: url('imgs/white/toolbar_extension_horizontal.png'); +} +QToolButton#qt_toolbar_ext_button:hover { + background-color: #717171; +} +QToolButton#qt_toolbar_ext_button:pressed { + background-color: #2c2c2c; +} .DvScrollWidget QPushButton, DvScrollWidget QPushButton, #ScrollLeftButton QPushButton, #ScrollRightButton QPushButton, #ScrollUpButton QPushButton, #ScrollDownButton QPushButton { - background-color: #696969; - border: 0 solid red; + background-color: #646464; + border: 0 solid #2c2c2c; border-radius: 0; padding: 0; max-width: 16; @@ -554,7 +550,7 @@ DvScrollWidget QPushButton:hover, #ScrollRightButton QPushButton:hover, #ScrollUpButton QPushButton:hover, #ScrollDownButton QPushButton:hover { - background-color: #767676; + background-color: #717171; } .DvScrollWidget QPushButton:pressed, DvScrollWidget QPushButton:pressed, @@ -562,7 +558,12 @@ DvScrollWidget QPushButton:pressed, #ScrollRightButton QPushButton:pressed, #ScrollUpButton QPushButton:pressed, #ScrollDownButton QPushButton:pressed { - background-color: #313131; + background-color: #2c2c2c; +} +DvScrollWidget { + /* Multiple classes can use the same style as DvScrollWidget, and + since the compiler can't handle extending to Qt names we place the + style in a mixin and extend the name to it instead. */ } #ScrollLeftButton, #ScrollRightButton, @@ -572,11 +573,11 @@ DvScrollWidget QPushButton:pressed, min-width: 16; } #ScrollLeftButton { - border-right: 1 solid #272727; + border-right: 1 solid #2c2c2c; image: url('imgs/white/scroll-left.svg'); } #ScrollRightButton { - border-left: 1 solid #272727; + border-left: 1 solid #2c2c2c; margin-left: 3; image: url('imgs/white/scroll-right.svg'); } @@ -587,41 +588,119 @@ DvScrollWidget QPushButton:pressed, image: url('imgs/white/scroll-down.svg'); } /* -------------------------------------------------------------------------- */ +/* For the buttons to display a BG color we need to set a blank image, setting + an empty URL solves this. */ #keyFrameNavigator { - background: none; + background: transparent; margin: 0; padding: 0; } -#keyFrameNavigator QToolButton { - min-width: 18; -} #keyFrameNavigator #PreviousKey { - image: url('imgs/white/prevkey.svg'); -} -#keyFrameNavigator #PreviousKey:hover { - image: url('imgs/white/prevkey_over.svg'); + margin: 0 2; + padding-right: -1; + width: 20px; + height: 20px; + image: url(''); } #keyFrameNavigator #PreviousKey:disabled { - image: url('imgs/white/prevkey_disabled.svg'); + image: url(''); } #keyFrameNavigator #NextKey { - image: url('imgs/white/nextkey.svg'); -} -#keyFrameNavigator #NextKey:hover { - image: url('imgs/white/nextkey_over.svg'); + margin: 0 2; + padding-right: -1; + width: 20px; + height: 20px; + image: url(''); } #keyFrameNavigator #NextKey:disabled { - image: url('imgs/white/nextkey_disabled.svg'); + image: url(''); +} +#keyFrameNavigator #KeyNo, +#keyFrameNavigator #KeyPartial, +#keyFrameNavigator #KeyTotal { + margin: 0; + padding-right: -1; + width: 20px; + height: 20px; + image: url(''); +} +#keyFrameNavigator #KeyNo:disabled, +#keyFrameNavigator #KeyPartial:disabled, +#keyFrameNavigator #KeyTotal:disabled { + image: url(''); +} +#keyFrameNavigator #KeyNo { + background-color: rgba(0, 0, 0, 0); + border: 1 solid rgba(0, 0, 0, 0); + image: url(''); +} +#keyFrameNavigator #KeyNo:disabled { + image: url(''); +} +#keyFrameNavigator #KeyNo:hover { + background-color: #717171; + border-color: #717171; +} +#keyFrameNavigator #KeyPartial { + background-color: #be7323; + border: 1 solid #be7323; + image: url(''); +} +#keyFrameNavigator #KeyPartial:hover { + background-color: #db8d39; + border-color: #db8d39; +} +#keyFrameNavigator #KeyTotal { + background-color: #be7323; + border: 1 solid #be7323; +} +#keyFrameNavigator #KeyTotal:hover { + background-color: #db8d39; + border-color: #db8d39; +} +#keyFrameNavigator QToolButton#qt_toolbar_ext_button { + padding-bottom: 3; + border-radius: 2; +} +/* ----------------------------------------------------------------------------- + Tab Containers +----------------------------------------------------------------------------- */ +#TabBarContainer { + background-color: #393939; + qproperty-BottomAboveLineColor: #393939; + qproperty-BottomBelowLineColor: #2c2c2c; +} +QTabBar { + background-color: #393939; +} +/* ----------------------------------------------------------------------------- + Tabs +----------------------------------------------------------------------------- */ +QTabBar QToolButton { + /* Scroll buttons */ + margin: 0; + background-color: #484848; + border-radius: 0; + border: 1 solid #2c2c2c; + border-top: 0; + padding: 3 2 2 2; +} +QTabBar QToolButton:hover, +QTabBar QToolButton:pressed { + border-color: #2c2c2c; +} +QTabBar QToolButton:disabled { + color: rgba(230, 230, 230, 0.4); } /* ----------------------------------------------------------------------------- - Trees + Item Tree ----------------------------------------------------------------------------- */ .treeview, QTreeWidget, QTreeView, #FunctionEditorTree { - background-color: #343434; - alternate-background-color: #393939; + background-color: #2f2f2f; + alternate-background-color: #363636; border: 0; margin: 0; outline: 0; @@ -637,6 +716,7 @@ QTreeView::item:selected, QTreeWidget::branch:adjoins-item, QTreeView::branch:adjoins-item, #FunctionEditorTree::branch:adjoins-item { + /* blank URL hides default Qt branch icons where it is not wanted */ border-image: url(''); } .treeview::branch:has-siblings, @@ -688,20 +768,14 @@ QTreeView::branch:has-children:has-siblings:open, } QListView { outline: 0; - background: #343434; - alternate-background-color: #393939; -} -/* ----------------------------------------------------------------------------- - Tab Systems ------------------------------------------------------------------------------ */ -#TabBarContainer { - background-color: #393939; + background: #2f2f2f; + alternate-background-color: #363636; } /* ----------------------------------------------------------------------------- Tool Options - Override DvScroll Widget ----------------------------------------------------------------------------- */ #toolOptionsPanel QPushButton { - background-color: #696969; + background-color: #646464; border: 1 solid #484848; border-radius: 2; color: #f3f3f3; @@ -709,25 +783,25 @@ QListView { padding: 0; } #toolOptionsPanel QPushButton:hover { - background-color: #767676; + background-color: #717171; border-color: #484848; color: #f3f3f3; } #toolOptionsPanel QPushButton:pressed { - background-color: #313131; - border-color: #2c2c2c; + background-color: #2c2c2c; + border-color: #272727; color: #f3f3f3; } #toolOptionsPanel QPushButton:checked { - background-color: #313131; - border-color: #2c2c2c; + background-color: #2c2c2c; + border-color: #272727; color: #f3f3f3; } #toolOptionsPanel QPushButton:checked:hover { - background-color: #363636; + background-color: #404040; } #toolOptionsPanel QPushButton:checked:hover:pressed { - background: #313131; + background: #343434; } #toolOptionsPanel QPushButton:disabled { background-color: #555555; @@ -740,11 +814,12 @@ QListView { .Button, QPushButton, .ComboBox, -.ComboBox:checked, -QComboBox, -QComboBox:checked { - background-color: #696969; - border: 1 solid #484848; +#enableBlankFrameButton, +QComboBox { + background-color: #646464; + border-color: #484848; + border-width: 1; + border-style: solid; border-radius: 2; color: #f3f3f3; margin: 0; @@ -753,38 +828,45 @@ QComboBox:checked { .Button:hover, QPushButton:hover, #ViewerFpsSlider::sub-line:horizontal:hover, -#ViewerFpsSlider::add-line:horizontal:hover { - background-color: #767676; +#ViewerFpsSlider::add-line:horizontal:hover, +#enableBlankFrameButton:hover { + background-color: #717171; border-color: #484848; color: #f3f3f3; } .Button:pressed, QPushButton:pressed, #ViewerFpsSlider::sub-line:horizontal:pressed, -#ViewerFpsSlider::add-line:horizontal:pressed { - background-color: #313131; - border-color: #2c2c2c; +#ViewerFpsSlider::add-line:horizontal:pressed, +#enableBlankFrameButton:pressed { + background-color: #2c2c2c; + border-color: #272727; color: #f3f3f3; } .Button:checked, -QPushButton:checked { - background-color: #313131; - border-color: #2c2c2c; +QPushButton:checked, +#enableBlankFrameButton:checked { + background-color: #2c2c2c; + border-color: #272727; color: #f3f3f3; } .Button:checked:hover, -QPushButton:checked:hover { - background-color: #363636; +QPushButton:checked:hover, +#enableBlankFrameButton:checked:hover { + background-color: #404040; + border-color: #343434; } .Button:checked:hover:pressed, -QPushButton:checked:hover:pressed { - background: #313131; +QPushButton:checked:hover:pressed, +#enableBlankFrameButton:checked:hover:pressed { + background: #343434; } .Button:disabled, QPushButton:disabled, .ComboBox:disabled, #ViewerFpsSlider::sub-line:horizontal:disabled, #ViewerFpsSlider::add-line:horizontal:disabled, +#enableBlankFrameButton:disabled, QComboBox:disabled { background-color: #555555; border-color: #484848; @@ -794,12 +876,10 @@ QComboBox:disabled { padding: 3; } /* ----------------------------------------------------------------------------- - Combo Box + ComboBox ----------------------------------------------------------------------------- */ .ComboBox, -.ComboBox:checked, -QComboBox, -QComboBox:checked { +QComboBox { padding: 1 0 1 4; margin: 1 0; } @@ -810,23 +890,25 @@ QComboBox:editable { background-color: #2f2f2f; border-color: #2c2c2c; padding: 1 0 1 3; + selection-background-color: #5385a6; + selection-color: #ffffff; } .ComboBox:hover, QComboBox:hover { - background-color: #767676; + background-color: #717171; } .ComboBox:hover:editable, QComboBox:hover:editable { background-color: #2f2f2f; } -.ComboBox:focus, -QComboBox:focus { - border-color: #5385a6; -} .ComboBox:checked, QComboBox:checked { border-color: #5385a6; } +.ComboBox:focus, +QComboBox:focus { + border-color: #5385a6; +} .ComboBox::drop-down, QComboBox::drop-down { border: 0; @@ -836,18 +918,18 @@ QComboBox::drop-down { } .ComboBox::drop-down:editable, QComboBox::drop-down:editable { - background-color: #696969; + background-color: #646464; border-left: 0 solid #484848; border-top-right-radius: 1; border-bottom-right-radius: 1; } .ComboBox::drop-down:hover, QComboBox::drop-down:hover { - border-color: #767676; + border-color: #717171; } .ComboBox::drop-down:hover:editable, QComboBox::drop-down:hover:editable { - background-color: #767676; + background-color: #717171; border-color: #484848; } .ComboBox::drop-down:disabled, @@ -861,7 +943,7 @@ QComboBox::drop-down:disabled:editable { .ComboBox QAbstractItemView, QComboBox QAbstractItemView { background-color: #484848; - border: 1 solid #272727; + border: 1 solid #2c2c2c; selection-background-color: #5385a6; selection-color: #ffffff; } @@ -1012,7 +1094,7 @@ QGroupBox::indicator:disabled { border-color: #3b3b3b; } /* ----------------------------------------------------------------------------- - Radio Button + RadioButton ----------------------------------------------------------------------------- */ .RadioButton, QRadioButton { @@ -1037,8 +1119,8 @@ QMenu::indicator:exclusive, QMenu::indicator:exclusive, QRadioButton::indicator, #CameraSettingsRadioButton_Small::indicator { - width: 11; - height: 11; + width: 13; + height: 13; background-color: transparent; border: 0; image-position: center center; @@ -1158,7 +1240,7 @@ QSlider::handle:horizontal:disabled { QProgressBar { text-align: center; background-color: #2f2f2f; - border: 1 solid #272727; + border: 1 solid #2c2c2c; border-radius: 3; /* 2 fits inside 3 */ padding: 0; @@ -1167,7 +1249,7 @@ QProgressBar::chunk { margin: -1; /* hide border of chunk except for right side */ background-color: #15a136; - border: 1 solid #272727; + border: 1 solid #2c2c2c; border-radius: 2; } /* ----------------------------------------------------------------------------- @@ -1176,44 +1258,55 @@ QProgressBar::chunk { /* Left Pane ----------------------------------------------------------------------------- */ #DirTreeView { - background-color: #343434; - alternate-background-color: #343434; - border: 1 solid #272727; + background-color: #2f2f2f; + alternate-background-color: #2f2f2f; + border: 1 solid #2c2c2c; border-right: 0; } /* Right Pane ----------------------------------------------------------------------------- */ DvItemViewerPanel { + background-color: #3b3b3b; qproperty-TextColor: #e6e6e6; - qproperty-AlternateBackground: #404040; + qproperty-AlternateBackground: #434343; qproperty-SelectedTextColor: #ffffff; qproperty-FolderTextColor: #9fdaff; qproperty-SelectedItemBackground: #5385a6; } -#FileBrowser DvItemViewerPanel, -#SceneCast DvItemViewerPanel { +DvItemViewerTitleBar { + qproperty-ColColor: #3b3b3b; + qproperty-ColSortedColor: #3b3b3b; + qproperty-ColTextColor: #e6e6e6; + qproperty-ColBorderColor: #2c2c2c; +} +#FileBrowser, +#SceneCast { + background-color: #484848; +} +#FileBrowser QLabel, +#SceneCast QLabel { + background-color: transparent; +} +#FileBrowser QToolBar, +#SceneCast QToolBar { background-color: #484848; } #FileBrowser #castFrame, #SceneCast #castFrame { - border-top: 1 solid #272727; - border-right: 1 solid #272727; - border-bottom: 1 solid #272727; + border-top: 1 solid #2c2c2c; + border-right: 1 solid #2c2c2c; + border-bottom: 1 solid #2c2c2c; margin: 0; } -#FileBrowser QToolButton, -#SceneCast QToolButton { - padding: 1; -} StyledTreeView { qproperty-TextColor: #e6e6e6; qproperty-SelectedTextColor: #ffffff; qproperty-SelectedItemBackground: #5385a6; qproperty-FolderTextColor: #9fdaff; qproperty-SelectedFolderTextColor: #ffffff; - alternate-background-color: #393939; - background-color: #343434; - border: 1 solid #272727; + alternate-background-color: #363636; + background-color: #2f2f2f; + border: 1 solid #2c2c2c; } #FileDoesNotExistLabel { color: #ff0000; @@ -1222,22 +1315,39 @@ StyledTreeView { Scene Cast ----------------------------------------------------------------------------- */ #SceneCast QToolBar { - border-top: 1 solid #272727; + border-top: 1 solid #2c2c2c; +} +#SceneCast QToolBar::separator:horizontal { + margin-left: 2; + margin-right: 0; } #SceneCast QToolButton { - margin: 3 1 2 1; + margin: 3 0 2 2; padding: 1; } #CastBrowser { border: 0; margin: 0; } +#CastBrowser QSplitter::handle { + height: 4; +} +#CastBrowserFolderName { + border-bottom: 1px solid #2c2c2c; +} /* ----------------------------------------------------------------------------- Level Strip ----------------------------------------------------------------------------- */ +#filmLevelCombo { + margin: -1; +} +#FilmStrip { + qproperty-BGColor: #484848; + margin: 0; + padding: 0; +} #FilmStrip QComboBox { border-radius: 0; - border-width: 0; } #FilmStrip QComboBox QAbstractItemView { background-color: #484848; @@ -1265,13 +1375,17 @@ ParamsPage { background: none; } #CameraSettingsRadioButton::indicator { - border: 1 solid rgba(255, 255, 255, 0); + border: 1 solid transparent; height: 18; - padding: 0; - width: 18; + padding: 0 -1 0 1; + width: 19; + margin-left: 1; } #CameraSettingsRadioButton::indicator:unchecked { - image: url('imgs/white/lock_off.svg'); + image: url('imgs/white/lock.svg'); +} +#CameraSettingsRadioButton::indicator:unchecked:hover { + image: url('imgs/white/lock_over.svg'); } #CameraSettingsRadioButton::indicator:checked { background-color: #C34040; @@ -1291,20 +1405,14 @@ ParamsPage { #CameraSettingsRadioButton_Small::indicator { background-color: transparent; border: 0; - height: 21; margin: 0; - width: 11; } #ForceSquaredPixelButton { + margin: 0; height: 16; - border: 1 solid rgba(255, 255, 255, 0); - image: url('imgs/white/fsp_unchecked.svg'); - padding: 2; width: 16; - margin: 0; -} -#ForceSquaredPixelButton:checked { - image: url('imgs/white/fsp_checked.svg'); + border: 1 solid transparent; + padding: 2; } /* ----------------------------------------------------------------------------- Output Settings @@ -1347,15 +1455,12 @@ PencilTestPopup { margin-left: -4; } #StopMotionController #bottomWidget { - border-top: 1 solid #272727; + border-top: 1 solid #2c2c2c; padding: 3 2 8 3; } #StopMotionController #bottomWidget QPushButton { padding: 3 5; } -#StopMotionTabBar::tab::first { - border-left: 1 solid #272727; -} /* ----------------------------------------------------------------------------- Unknowns + Legacy ----------------------------------------------------------------------------- */ @@ -1385,22 +1490,15 @@ QStatusBar #StatusBarLabel { Style Editor ----------------------------------------------------------------------------- */ #StyleEditor #TabBarContainer { - margin-left: -5; + margin-left: -5px; } #StyleEditor #bottomWidget { - border-top: 1 solid #272727; + border-top: 1 solid #2c2c2c; padding: 3 2 8 3; } #StyleEditor #bottomWidget QPushButton { padding: 3 5; } -#StyleEditorTabBar { - padding: 0; - margin: 0; -} -#StyleEditorTabBar::tab:first { - border-left: 1 solid #272727; -} #HexagonalColorWheel { qproperty-BGColor: #484848; } @@ -1421,7 +1519,7 @@ QStatusBar #StatusBarLabel { image-position: center center; min-height: 16; padding: 0; - min-width: 18; + min-width: 10; } #colorSliderAddButton { image: url('imgs/white/scroll-right.svg'); @@ -1430,7 +1528,7 @@ QStatusBar #StatusBarLabel { image: url('imgs/white/scroll-left.svg'); } #PlainColorPageParts { - border-bottom: 1 solid #272727; + border-bottom: 1 solid #2c2c2c; } #PlainColorPageParts QLineEdit { max-width: 35; @@ -1457,18 +1555,37 @@ PaletteViewer DvScrollWidget #ScrollRightButton { max-width: 16; min-width: 16; } +PaletteViewer QToolBar { + background: transparent; +} PaletteViewer QToolBar::separator:horizontal { margin: 0; } PaletteViewer QToolBar QToolButton { + padding: 0; + padding-right: -2; + padding-left: -1; +} +PaletteViewer QToolBar #keyFrameNavigator #NextKey, +PaletteViewer QToolBar #keyFrameNavigator #PreviousKey, +PaletteViewer QToolBar #keyFrameNavigator #KeyNo, +PaletteViewer QToolBar #keyFrameNavigator #KeyPartial, +PaletteViewer QToolBar #keyFrameNavigator #KeyTotal { + max-width: 20px; + max-height: 20px; + padding: 1; + border: 0; margin: 0; - padding: 2 0 2 0; -} -#PaletteTabBar::tab { - padding-bottom: 4; } #PageViewer { qproperty-TextColor: #e6e6e6; + qproperty-SelectedBorderColor: #ffffff; + qproperty-NumpadShortcutBgColor: rgba(0, 0, 0, 0.3); + qproperty-NumpadShortcutBorderColor: #8d8d8d; + qproperty-SeparatorColor: #2c2c2c; + qproperty-CurrentCellColor: rgba(83, 133, 166, 0.5); + qproperty-SelectedCellColor: #5385a6; + qproperty-ListNumpadShortcutBorderColor: #afafaf; } #PaletteLockButton { border-radius: 0; @@ -1496,7 +1613,7 @@ QDialog { } QDialog #dialogButtonFrame { background-color: #3e3e3e; - border-top: 1 solid #272727; + border-top: 1 solid #2c2c2c; } QDialog #dialogButtonFrame QPushButton { border-color: #3e3e3e; @@ -1511,8 +1628,8 @@ QDialog #dialogButtonFrame QPushButton:focus:hover { background-color: #6c98b6; } QDialog #dialogButtonFrame QPushButton:focus:pressed { - background-color: #313131; - border-color: #2c2c2c; + background-color: #2c2c2c; + border-color: #272727; color: #f3f3f3; } /* ----------------------------------------------------------------------------- @@ -1527,7 +1644,7 @@ QDialog #dialogButtonFrame QPushButton:focus:pressed { #PreferencesPopup QListWidget { background-color: #343434; alternate-background-color: #343434; - border: 1 solid #272727; + border: 1 solid #2c2c2c; font-size: 13px; } #PreferencesPopup QListWidget::item { @@ -1535,8 +1652,8 @@ QDialog #dialogButtonFrame QPushButton:focus:pressed { padding: 3; } #PreferencesPopup QListWidget::item:hover { + background-color: rgba(255, 255, 255, 0.1); color: #e6e6e6; - background-color: rgba(255, 255, 255, 0.15); } #PreferencesPopup QListWidget::item:selected { background-color: #5385a6; @@ -1546,7 +1663,7 @@ QDialog #dialogButtonFrame QPushButton:focus:pressed { Keyboard Shortcuts ----------------------------------------------------------------------------- */ #ShortcutTree { - border: 1 solid #272727; + border: 1 solid #2c2c2c; } #ShortcutTree::item { padding: 1 0; @@ -1564,59 +1681,59 @@ ProjectPopup QLabel { /* ----------------------------------------------------------------------------- PencilTestPopup / CameraCapture Window ----------------------------------------------------------------------------- */ -#GearButton { - qproperty-icon: url('imgs/white/gear.svg'); -} #GearButton::menu-indicator { - image: ""; + image: url(""); } #SubfolderButton { - qproperty-icon: url('imgs/white/subfolder.svg'); - padding-left: 6px; - padding-right: 6px; + padding-left: 5px; + padding-right: 5px; } #SubcameraButton { - qproperty-icon: url('imgs/white/subcamera.svg'); - padding-left: 6px; - padding-right: 6px; + padding-left: 5px; + padding-right: 5px; } /* ----------------------------------------------------------------------------- Schematic Viewer ----------------------------------------------------------------------------- */ SchematicViewer { qproperty-TextColor: #e6e6e6; - qproperty-VerticalLineColor: rgba(0, 0, 0, 0.6); + qproperty-VerticalLineColor: rgba(0, 0, 0, 0.3); qproperty-LevelColumnColor: #4C6E4C; qproperty-VectorColumnColor: #7B7B4C; qproperty-ChildColumnColor: #6A526B; qproperty-FullcolorColumnColor: #657A96; - qproperty-FxColumnColor: #56553C; - qproperty-PaletteColumnColor: #3A655F; - qproperty-MeshColumnColor: #684D86; - qproperty-ReferenceColumnColor: #616161; + qproperty-FxColumnColor: #6d6349; + qproperty-PaletteColumnColor: #42756e; + qproperty-MeshColumnColor: #5e4d72; + qproperty-ReferenceColumnColor: #555555; qproperty-TableColor: #62628c; - qproperty-ActiveCameraColor: #2d7dca; - qproperty-OtherCameraColor: #6c797b; + qproperty-ActiveCameraColor: #4073a3; + qproperty-OtherCameraColor: #5e9aa3; qproperty-GroupColor: #3b6e9c; qproperty-PegColor: #9f6e3c; qproperty-SplineColor: #6a9d1c; - qproperty-ActiveOutputColor: #2d7dca; - qproperty-OtherOutputColor: #6c797b; + qproperty-ActiveOutputColor: #4073a3; + qproperty-OtherOutputColor: #5e9aa3; qproperty-XsheetColor: #62628c; - qproperty-NormalFxColor: #6a7e96; + qproperty-NormalFxColor: #5b90a3; qproperty-MacroFxColor: #815c79; qproperty-ImageAdjustFxColor: #656287; - qproperty-LayerBlendingFxColor: #4f757d; + qproperty-LayerBlendingFxColor: #57958f; qproperty-MatteFxColor: #ae7171; qproperty-SchematicPreviewButtonBgOnColor: #c8c864; - qproperty-SchematicPreviewButtonOnImage: url('imgs/white/x_prev_eye_on.svg'); - qproperty-SchematicPreviewButtonBgOffColor: #616161; - qproperty-SchematicPreviewButtonOffImage: url('imgs/white/x_prev_eye_off.svg'); + qproperty-SchematicPreviewButtonOnImage: url('imgs/white/schematic_preview_on.svg'); + qproperty-SchematicPreviewButtonBgOffColor: #555555; + qproperty-SchematicPreviewButtonOffImage: url('imgs/white/schematic_preview_off.svg'); qproperty-SchematicCamstandButtonBgOnColor: #eb906b; - qproperty-SchematicCamstandButtonOnImage: url('imgs/white/x_table_view_on.svg'); - qproperty-SchematicCamstandButtonTranspImage: url('imgs/white/x_table_view_transp.svg'); - qproperty-SchematicCamstandButtonBgOffColor: #616161; - qproperty-SchematicCamstandButtonOffImage: url('imgs/white/x_table_view_off.svg'); + qproperty-SchematicCamstandButtonOnImage: url('imgs/white/schematic_table_on.svg'); + qproperty-SchematicCamstandButtonTranspImage: url('imgs/white/schematic_table_transp.svg'); + qproperty-SchematicCamstandButtonBgOffColor: #555555; + qproperty-SchematicCamstandButtonOffImage: url('imgs/white/schematic_table_off.svg'); + qproperty-SelectedBorderColor: #ffffff; + qproperty-LinkColor: #dfdfdf; + qproperty-SelectedLinkColor: cyan; + qproperty-MotionPathLinkColor: #94ee1e; + qproperty-MotionPathSelectedLinkColor: yellow; } /* ----------------------------------------------------------------------------- Schematic Node Viewer @@ -1626,53 +1743,75 @@ SchematicViewer { border: 0; margin: 0; padding: 0; + padding-left: 1; } #SchematicBottomFrame QToolBar::separator:horizontal { margin: 0; + margin-right: 1; } #SchematicBottomFrame QToolBar QToolButton { - padding: 0; - margin: 2; + padding: -2; + margin-right: 2; + margin-top: 2; + margin-bottom: 2; } #SchematicSceneViewer { background-color: #3b3b3b; - border-bottom: 1 solid #272727; + border-bottom: 1 solid #2c2c2c; } /* ----------------------------------------------------------------------------- FX Settings ----------------------------------------------------------------------------- */ -#FxSettingsTabBar::tab { - border-top: 1 solid #272727; -} -#FxSettingsTabBar::tab::first, -#FxSettingsTabBar::tab::only-one { - border-left: 1 solid #272727; -} FxSettings QToolBar { - border-top: 1 solid #272727; - border-right: 1 solid #272727; - border-left: 1 solid #272727; - min-height: 23; + border: 1 1 0 1 solid #2c2c2c; + min-height: 19; padding: 3 0; + border-top: 1 solid #2c2c2c; + border-left: 1 solid #2c2c2c; + border-right: 1 solid #2c2c2c; + border-top-left-radius: 2; + border-top-right-radius: 2; + margin-bottom: -1; } FxSettings QToolBar QToolBar { border: 0; } +FxSettings QToolBar QToolButton { + margin: 0; + padding: 0; + width: 22; + padding-right: -2; + padding-bottom: -1; +} #FxSettingsLabel { color: #a0e680; } #FxSettingsHelpButton { - background-color: #80a0dc; - color: #000; + background-color: transparent; + border: 0; padding-top: 0; padding-bottom: 0; } #FxSettingsHelpButton:hover { - background-color: #a8bee7; + background-color: #717171; } ChannelBar { qproperty-TextColor: #e6e6e6; } +/* Keyframe Button Colors +----------------------------------------------------------------------------- */ +ParamFieldKeyToggle { + qproperty-KeyOffColor: rgba(0, 0, 0, 0); + qproperty-KeyBorderOffColor: rgba(0, 0, 0, 0); + qproperty-KeyModifiedColor: #beb062; + qproperty-KeyBorderModifiedColor: #beb062; + qproperty-KeyOnColor: #be7323; + qproperty-KeyBorderOnColor: #be7323; + qproperty-KeyInbetweenColor: #80795b; + qproperty-KeyBorderInbetweenColor: #80795b; + qproperty-KeyHighlightColor: rgba(255, 255, 255, 0.3); + qproperty-KeyBorderHighlightColor: rgba(255, 255, 255, 0.3); +} /* ----------------------------------------------------------------------------- Script Console ----------------------------------------------------------------------------- */ @@ -1695,7 +1834,7 @@ ChannelBar { color: #e6e6e6; } #Tasks QToolBar { - border-bottom: 1 solid #272727; + border-bottom: 1 solid #2c2c2c; margin: 0; padding: 0; } @@ -1703,24 +1842,46 @@ ChannelBar { margin: 2 2 3 2; } /* ----------------------------------------------------------------------------- - Tool Bar + Tools Window ----------------------------------------------------------------------------- */ #ToolBar QToolBar { - padding-left: 2; + padding-left: 3px; +} +#ToolBar QToolButton { + padding: 1 0 0 1; + margin-top: 1; + margin-bottom: 1; +} +#ToolBar QToolButton#qt_toolbar_ext_button { + qproperty-icon: url('imgs/white/toolbar_extension_vertical.png'); + padding-bottom: 1; +} +#ToolBar QToolButton#qt_toolbar_ext_button:hover { + background-color: #717171; +} +#ToolBar QToolButton#qt_toolbar_ext_button:pressed { + background-color: #2c2c2c; +} +#expandButton:checked { + background-color: transparent; + border-color: transparent; + color: #e6e6e6; +} +#expandButton:checked:hover { + background-color: #717171; + border-color: #717171; +} +#expandButton:checked:pressed { + background-color: #2c2c2c; + border-color: #272727; } /* ----------------------------------------------------------------------------- - Tool Options + Tool Options Window ----------------------------------------------------------------------------- */ #ToolOptions TPanelTitleBar { - border-right: 1 solid #272727; - border-bottom: 0; -} -#CommandBar TPanelTitleBar { - border-right: 1 solid #272727; border-bottom: 0; -} -IconViewField { - qproperty-ThicknessPixmap: url("imgs/white/selectiontool_thickness.svg"); + border-right: 1px solid #2c2c2c; + max-width: 18; } #EditToolLockButton { spacing: 0; @@ -1729,13 +1890,17 @@ IconViewField { background: none; } #EditToolLockButton::indicator { - border: 1 solid rgba(255, 255, 255, 0); + border: 1 solid transparent; height: 18; - padding: 0; - width: 18; + padding: 0 -1 0 1; + width: 19; + margin-left: 1; } #EditToolLockButton::indicator:unchecked { - image: url('imgs/white/lock_off.svg'); + image: url('imgs/white/lock.svg'); +} +#EditToolLockButton::indicator:unchecked:hover { + image: url('imgs/white/lock_over.svg'); } #EditToolLockButton::indicator:checked { background-color: #C34040; @@ -1776,12 +1941,34 @@ PopupButton::menu-indicator:disabled { padding: 0; } QToolBar#MediumPaddingToolBar QToolButton { - padding-left: 3; - padding-right: 3; + padding-left: 2; + padding-right: 1; } QToolBar#WidePaddingToolBar QToolButton { - padding-left: 6; - padding-right: 6; + padding-left: 2; + padding-right: 1; +} +/* XSheet Toolbar & Command Bar +----------------------------------------------------------------------------- */ +#XSheetToolbar { + padding: 0; + margin: 0; + border-bottom: 1 solid #2c2c2c; +} +#XSheetToolbar QToolButton#qt_toolbar_ext_button { + margin: 0; + margin-top: 3; +} +#XSheetToolbar QToolButton { + padding: 0; + padding-right: -1; + padding-bottom: -1; + min-height: 20px; + margin-left: 2; + margin-right: 0; +} +#XSheetToolbar::separator:horizontal { + margin: 0 0 0 2; } #CommandBar { margin: 0; @@ -1789,43 +1976,60 @@ QToolBar#WidePaddingToolBar QToolButton { border: 0; } #CommandBar::separator:horizontal { - margin-right: 3; - margin-left: 3; + margin-right: 0; + margin-left: 2; } -#expandButton:checked { - background-color: transparent; - border-color: transparent; - color: #e6e6e6; +#CommandBar QToolButton { + margin: 0 0 0 2; + padding: 0; + padding-top: -1; + padding-left: 0; + padding-right: -1; + padding-bottom: 0; + min-height: 20px; } -#expandButton:checked:hover { - background-color: #767676; - border-color: #767676; +#CommandBar QToolButton#qt_toolbar_ext_button { + margin-top: 1; } -#expandButton:checked:pressed { - background-color: #313131; - border-color: #2c2c2c; +#CommandBar TPanelTitleBar { + border-right: 1px solid #2c2c2c; + border-bottom: 0; + max-width: 18; } /* ----------------------------------------------------------------------------- ComboViewer / Viewer / FlipBook ----------------------------------------------------------------------------- */ #ComboViewerPanel Toolbar { - border-bottom: 1 solid #272727; + border-bottom: 1 solid #2c2c2c; } #ComboViewerPanel Toolbar::separator:horizontal { margin: 0 0 0 2; + padding: 0; } #ComboViewerPanel Toolbar QToolButton { - margin: 2 0 3 2; + margin: 0; + margin-bottom: 3; + margin-left: 2; + margin-right: 0; + margin-top: 2; + padding-top: 1; + padding-left: 1; + padding-right: 0; + padding-bottom: 0; +} +#ComboViewerPanel Toolbar QToolButton#qt_toolbar_ext_button { + margin-bottom: 1; + qproperty-icon: url('imgs/white/toolbar_extension_horizontal.png'); } #ComboViewerToolOptions { - border-bottom: 1 solid #272727; + border-bottom: 1 solid #2c2c2c; } #ComboViewer #ToolBarContainer, #ViewerPanel #ToolBarContainer, FlipBook #ToolBarContainer { background-color: transparent; - border-top: 2 solid #272727; - border-bottom: 1 solid #272727; + border-top: 1 solid #2c2c2c; + border-bottom: 1 solid #2c2c2c; padding-right: -1; } #flipCustomize { @@ -1839,14 +2043,31 @@ FlipBook #ToolBarContainer { image: none; } QToolBar#FlipConsolePlayToolBar::separator:horizontal { - margin: 0 3; + border-color: #2c2c2c; + margin: 0 1 0 1; } QToolBar#FlipConsolePlayToolBar QToolButton { - margin-top: 2; - margin-bottom: 2; - height: 16; - padding-left: 1; + padding-left: 0; + padding-top: -1; + padding-right: -1; + padding-bottom: -2; + margin: 2 1 2 1; +} +QToolBar#FlipConsolePlayToolBar #KeyNo, +QToolBar#FlipConsolePlayToolBar #KeyPartial, +QToolBar#FlipConsolePlayToolBar #KeyTotal, +QToolBar#FlipConsolePlayToolBar #PreviousKey, +QToolBar#FlipConsolePlayToolBar #NextKey { padding-right: 1; + padding-left: 1; + max-width: 20px; + max-height: 20px; + padding-bottom: 0; + padding-top: 0; +} +QToolBar#FlipConsolePlayToolBar #PreviousKey, +QToolBar#FlipConsolePlayToolBar #NextKey { + margin: 0 2; } #ViewerFpsSlider { background-color: transparent; @@ -1861,7 +2082,7 @@ QToolBar#FlipConsolePlayToolBar QToolButton { } #ViewerFpsSlider::sub-line:horizontal { subcontrol-origin: absolute; - background-color: #696969; + background-color: #646464; border: 1 solid #484848; border-top-left-radius: 2; border-bottom-left-radius: 2; @@ -1871,7 +2092,7 @@ QToolBar#FlipConsolePlayToolBar QToolButton { } #ViewerFpsSlider::add-line:horizontal { subcontrol-position: left; - background-color: #696969; + background-color: #646464; border: 1 solid #484848; border-top-right-radius: 2; border-bottom-right-radius: 2; @@ -1889,6 +2110,9 @@ QToolBar#FlipConsolePlayToolBar QToolButton { width: 9; max-width: 9; } +FlipConsole { + qproperty-FpsFieldColor: #2f2f2f; +} FlipSlider { qproperty-PBHeight: 15; qproperty-PBOverlay: url('imgs/white/flipslider.svg'); @@ -1906,11 +2130,24 @@ FlipSlider { } Ruler { qproperty-ParentBGColor: #484848; - qproperty-ScaleColor: #e6e6e6; + qproperty-ScaleColor: rgba(230, 230, 230, 0.7); + qproperty-HandleColor: #64b0e2; + qproperty-HandleDragColor: yellow; + qproperty-BorderColor: rgba(44, 44, 44, 0.7); } #RulerToolOptionValues { color: #000000; } +#enableBlankFrameButton { + background-color: transparent; + border-color: transparent; + color: rgba(230, 230, 230, 0.4); + padding: 0; + font-weight: bold; +} +#enableBlankFrameButton:checked { + border-width: 2px; +} /* ----------------------------------------------------------------------------- XSheet Viewer ----------------------------------------------------------------------------- */ @@ -1918,7 +2155,7 @@ Ruler { ----------------------------------------------------------------------------- */ #xsheetArea, #ScrollArea { - background-color: #343434; + background-color: #484848; border: 0; } #xsheetScrollArea { @@ -1927,6 +2164,19 @@ Ruler { #cornerWidget QToolButton { padding: 0; } +#XsheetCellArea QLineEdit { + margin-top: 1; +} +#XsheetCellArea QLineEdit:focus { + border-radius: 0; + border-width: 2; + border-left-width: 2; + border-color: #000; + background-color: #000000; +} +#RenameCellField { + padding-right: 3; +} /* xsheetColumnHeader (Context Menus) ----------------------------------------------------------------------------- */ #xsheetColumnAreaMenu_Preview { @@ -1946,136 +2196,130 @@ Ruler { #noteTextEdit { color: #000; } +#DvMiniToolBar { + border: 1 solid #2c2c2c; +} /* XSheet Spreadsheet ----------------------------------------------------------------------------- */ XsheetViewer { qproperty-TextColor: #e6e6e6; - qproperty-BGColor: #3b3b3b; - qproperty-LightLineColor: rgba(0, 0, 0, 0.25); - qproperty-MarkerLineColor: #1E96C4; - qproperty-VerticalLineColor: rgba(0, 0, 0, 0.6); - qproperty-VerticalLineHeadColor: #808080; + qproperty-ErrorTextColor: #ff7b7b; + qproperty-BGColor: #404040; + qproperty-LightLineColor: rgba(0, 0, 0, 0.2); + qproperty-MarkerLineColor: rgba(255, 255, 255, 0.15); + qproperty-VerticalLineColor: rgba(0, 0, 0, 0.3); + qproperty-VerticalLineHeadColor: #272727; qproperty-PreviewFrameTextColor: #9fdaff; - qproperty-CurrentRowBgColor: #506082; - qproperty-OnionSkinAreaBgColor: #363636; - qproperty-EmptyColumnHeadColor: #626262; - qproperty-EmptyCellColor: #404040; - qproperty-NotEmptyColumnColor: #484848; - qproperty-SelectedEmptyCellColor: #6c6c6c; + qproperty-CurrentRowBgColor: rgba(83, 133, 166, 0.7); + qproperty-OnionSkinAreaBgColor: #393939; + qproperty-CellFocusColor: #000; + qproperty-ColumnIconLineColor: #2c2c2c; + qproperty-EmptyColumnHeadColor: #484848; + qproperty-ColumnHeadPastelizer: rgba(0, 0, 0, 0); + qproperty-SelectedColumnHead: rgba(221, 231, 237, 0.3); + qproperty-PlayRangeColor: #484848; + qproperty-FoldedColumnBGColor: #626262; + qproperty-FoldedColumnLineColor: #3b3b3b; + qproperty-EmptyCellColor: #393939; + qproperty-NotEmptyColumnColor: #404040; + qproperty-SelectedEmptyCellColor: rgba(103, 113, 119, 0.5); qproperty-LevelColumnColor: #4C6E4C; - qproperty-LevelColumnBorderColor: #8FB38F; - qproperty-SelectedLevelColumnColor: #678667; + qproperty-LevelColumnBorderColor: #375037; + qproperty-SelectedLevelColumnColor: #59846c; qproperty-VectorColumnColor: #7B7B4C; - qproperty-VectorColumnBorderColor: #BBBB9A; - qproperty-SelectedVectorColumnColor: #949466; + qproperty-VectorColumnBorderColor: #5b5b39; + qproperty-SelectedVectorColumnColor: #85906c; qproperty-ChildColumnColor: #6A526B; - qproperty-ChildColumnBorderColor: #B1A3B3; - qproperty-SelectedChildColumnColor: #816e82; + qproperty-ChildColumnBorderColor: #4d3c4e; + qproperty-SelectedChildColumnColor: #756a89; qproperty-FullcolorColumnColor: #657A96; - qproperty-FullcolorColumnBorderColor: #9EB8BB; - qproperty-SelectedFullcolorColumnColor: #8895a6; - qproperty-FxColumnColor: #56553C; - qproperty-FxColumnBorderColor: #95958A; - qproperty-SelectedFxColumnColor: #6f6e56; - qproperty-ReferenceColumnColor: #616161; - qproperty-ReferenceColumnBorderColor: #A2A2A2; - qproperty-SelectedReferenceColumnColor: #7a7a7a; - qproperty-PaletteColumnColor: #3A655F; - qproperty-PaletteColumnBorderColor: #86ACA7; - qproperty-SelectedPaletteColumnColor: #52807a; - qproperty-MeshColumnColor: #684D86; - qproperty-MeshColumnBorderColor: #BA92EF; - qproperty-SelectedMeshColumnColor: #82689e; - qproperty-SoundTextColumnColor: #c8c8c8; - qproperty-SoundTextColumnBorderColor: #8c8c8c; - qproperty-SelectedSoundTextColumnColor: #e2e2e2; - qproperty-SoundColumnColor: #657456; - qproperty-SoundColumnBorderColor: #A0AF7D; - qproperty-SelectedSoundColumnColor: #7e8b72; + qproperty-FullcolorColumnBorderColor: #506178; + qproperty-SelectedFullcolorColumnColor: #708fb1; + qproperty-FxColumnColor: #6d6349; + qproperty-FxColumnBorderColor: #4e4735; + qproperty-SelectedFxColumnColor: #787a6a; + qproperty-ReferenceColumnColor: #555555; + qproperty-ReferenceColumnBorderColor: #3b3b3b; + qproperty-SelectedReferenceColumnColor: #616d74; + qproperty-PaletteColumnColor: #42756e; + qproperty-PaletteColumnBorderColor: #30544f; + qproperty-SelectedPaletteColumnColor: #508b8c; + qproperty-MeshColumnColor: #5e4d72; + qproperty-MeshColumnBorderColor: #453854; + qproperty-SelectedMeshColumnColor: #6a6690; + qproperty-SoundTextColumnColor: #a7a7a7; + qproperty-SoundTextColumnBorderColor: #8e8e8e; + qproperty-SelectedSoundTextColumnColor: #adb9c0; + qproperty-SoundColumnColor: #578a8a; + qproperty-SoundColumnBorderColor: #436b6b; + qproperty-SelectedSoundColumnColor: #639ea6; qproperty-SoundColumnHlColor: #34FE5E; - qproperty-SoundColumnTrackColor: #B6C29D; - qproperty-ColumnHeadPastelizer: #000; - qproperty-SelectedColumnHead: #506082; - qproperty-LightLightBGColor: #404040; + qproperty-SoundColumnTrackColor: rgba(0, 0, 0, 0.8); + qproperty-ActiveCameraColor: #4073a3; + qproperty-SelectedActiveCameraColor: #4e89bd; + qproperty-OtherCameraColor: #5e9aa3; + qproperty-SelectedOtherCameraColor: #6aadbd; + qproperty-LightLightBGColor: #393939; qproperty-LightBGColor: #f0f0f0; qproperty-DarkBGColor: #e1e1e1; qproperty-DarkLineColor: #969696; + qproperty-TimelineIconLineColor: rgba(0, 0, 0, 0.3); qproperty-XsheetColumnNameBgColor: rgba(0, 0, 0, 0); - qproperty-XsheetDragBarHighlightColor: rgba(255, 255, 255, 0.5); + qproperty-XsheetDragBarHighlightColor: rgba(255, 255, 255, 0.15); qproperty-XsheetPreviewButtonBgOnColor: #c8c864; qproperty-XsheetPreviewButtonOnImage: url('imgs/white/x_prev_eye_on.svg'); - qproperty-XsheetPreviewButtonBgOffColor: rgba(255, 255, 255, 0); + qproperty-XsheetPreviewButtonBgOffColor: transparent; qproperty-XsheetPreviewButtonOffImage: url('imgs/white/x_prev_eye_off.svg'); qproperty-XsheetCamstandButtonBgOnColor: #eb906b; qproperty-XsheetCamstandButtonOnImage: url('imgs/white/x_table_view_on.svg'); qproperty-XsheetCamstandButtonTranspImage: url('imgs/white/x_table_view_transp.svg'); - qproperty-XsheetCamstandButtonBgOffColor: rgba(255, 255, 255, 0); + qproperty-XsheetCamstandButtonBgOffColor: transparent; qproperty-XsheetCamstandButtonOffImage: url('imgs/white/x_table_view_off.svg'); - qproperty-XsheetLockButtonBgOnColor: rgba(255, 255, 255, 0.3); + qproperty-XsheetLockButtonBgOnColor: rgba(255, 255, 255, 0.6); qproperty-XsheetLockButtonOnImage: url('imgs/white/x_lock_on.svg'); - qproperty-XsheetLockButtonBgOffColor: rgba(255, 255, 255, 0); + qproperty-XsheetLockButtonBgOffColor: transparent; qproperty-XsheetLockButtonOffImage: url('imgs/white/x_lock_off.svg'); qproperty-XsheetConfigButtonBgColor: rgba(255, 255, 255, 0); qproperty-XsheetConfigButtonImage: url('imgs/white/x_config.svg'); - qproperty-TimelinePreviewButtonBgOnColor: rgba(255, 255, 255, 0); - qproperty-TimelinePreviewButtonOnImage: url('imgs/white/timeline_toggle_on.svg'); - qproperty-TimelinePreviewButtonBgOffColor: rgba(255, 255, 255, 0); - qproperty-TimelinePreviewButtonOffImage: url('imgs/white/timeline_toggle_off.svg'); - qproperty-TimelineCamstandButtonBgOnColor: rgba(255, 255, 255, 0); - qproperty-TimelineCamstandButtonOnImage: url('imgs/white/timeline_toggle_on.svg'); - qproperty-TimelineCamstandButtonTranspImage: url('imgs/white/timeline_toggle_transp.svg'); - qproperty-TimelineCamstandButtonBgOffColor: rgba(255, 255, 255, 0); - qproperty-TimelineCamstandButtonOffImage: url('imgs/white/timeline_toggle_off.svg'); - qproperty-TimelineLockButtonBgOnColor: rgba(255, 255, 255, 0); - qproperty-TimelineLockButtonOnImage: url('imgs/white/timeline_toggle_on.svg'); - qproperty-TimelineLockButtonBgOffColor: rgba(255, 255, 255, 0); - qproperty-TimelineLockButtonOffImage: url('imgs/white/timeline_toggle_off.svg'); - qproperty-TimelineConfigButtonBgColor: rgba(255, 255, 255, 0); + qproperty-FrameRangeMarkerLineColor: #6e6e6e; + qproperty-TimelinePreviewButtonBgOnColor: #484848; + qproperty-TimelinePreviewButtonOnImage: url('imgs/white/preview_small.svg'); + qproperty-TimelinePreviewButtonBgOffColor: #484848; + qproperty-TimelinePreviewButtonOffImage: url('none'); + qproperty-TimelineCamstandButtonBgOnColor: #484848; + qproperty-TimelineCamstandButtonOnImage: url('imgs/white/table_small.svg'); + qproperty-TimelineCamstandButtonTranspImage: url('imgs/white/trans_small.svg'); + qproperty-TimelineCamstandButtonBgOffColor: #484848; + qproperty-TimelineCamstandButtonOffImage: url('none'); + qproperty-TimelineLockButtonBgOnColor: #484848; + qproperty-TimelineLockButtonOnImage: url('imgs/white/lock_on_small.svg'); + qproperty-TimelineLockButtonBgOffColor: #484848; + qproperty-TimelineLockButtonOffImage: url('none'); + qproperty-TimelineConfigButtonBgColor: #484848; qproperty-TimelineConfigButtonImage: url('imgs/white/timeline_config.svg'); qproperty-LayerHeaderPreviewImage: url('imgs/white/layer_header_prev_eye.svg'); qproperty-LayerHeaderPreviewOverImage: url('imgs/white/layer_header_prev_eye_over.svg'); qproperty-LayerHeaderCamstandImage: url('imgs/white/layer_header_table_view.svg'); qproperty-LayerHeaderCamstandOverImage: url('imgs/white/layer_header_table_view_over.svg'); - qproperty-LayerHeaderLockImage: url('imgs/white/lock_on.svg'); - qproperty-LayerHeaderLockOverImage: url('imgs/white/lock_on_over.svg'); - qproperty-ActiveCameraColor: #2d7dca; - qproperty-SelectedActiveCameraColor: #5796d3; - qproperty-OtherCameraColor: #6c797b; - qproperty-SelectedOtherCameraColor: #8b8e8f; -} -/* XSheet Toolbar ------------------------------------------------------------------------------ */ -#XSheetToolbar { - margin: 0; - padding: 0; - border: 0; -} -#XSheetToolbar QToolButton { - padding: 0; - margin: 4 1; - min-height: 19; - height: 19; -} -#XSheetToolbar::separator:horizontal { - margin: 0 4; + qproperty-LayerHeaderLockImage: url('imgs/white/layer_lock_on.svg'); + qproperty-LayerHeaderLockOverImage: url('imgs/white/layer_lock_on_over.svg'); } /* ----------------------------------------------------------------------------- Function Editor ----------------------------------------------------------------------------- */ #FunctionEditor QToolBar { - border-bottom: 1 solid #272727; + border-bottom: 1 solid #2c2c2c; + background-color: transparent; + padding-bottom: 10; } #FunctionEditor QToolBar QToolBar { border: 0; } -#FunctionEditor QToolBar QLabel { - margin-left: 5; -} #FunctionEditor QToolBar QToolButton { - height: 18; + margin-bottom: 2; } #FunctionEditorTree { - border-top: 1 solid #272727; + border-top: 1 solid #2c2c2c; } FunctionTreeView { qproperty-TextColor: #e6e6e6; @@ -2083,50 +2327,35 @@ FunctionTreeView { /* Function Editor Spreadsheet ----------------------------------------------------------------------------- */ FunctionPanel { - qproperty-BGColor: #3b3b3b; - qproperty-ValueLineColor: #2f2f2f; - qproperty-FrameLineColor: #2f2f2f; - qproperty-OtherCurvesColor: #888888; - qproperty-RulerBackground: #333333; + qproperty-BGColor: #404040; + qproperty-ValueLineColor: rgba(0, 0, 0, 0.1); + qproperty-FrameLineColor: rgba(0, 0, 0, 0.1); + qproperty-OtherCurvesColor: #8d8d8d; + qproperty-RulerBackground: #393939; qproperty-TextColor: #e6e6e6; - qproperty-SubColor: #000; + qproperty-SubColor: #404040; qproperty-SelectedColor: #FFA500; } SpreadsheetViewer { - qproperty-LightLightBGColor: #404040; - qproperty-CurrentRowBgColor: #506082; - qproperty-LightLineColor: rgba(0, 0, 0, 0.25); - qproperty-MarkerLineColor: #1E96C4; - qproperty-BGColor: #484848; - qproperty-VerticalLineColor: rgba(0, 0, 0, 0.6); + qproperty-LightLightBGColor: #393939; + qproperty-CurrentRowBgColor: rgba(83, 133, 166, 0.7); + qproperty-LightLineColor: rgba(0, 0, 0, 0.2); + qproperty-MarkerLineColor: rgba(255, 255, 255, 0.15); + qproperty-BGColor: #404040; + qproperty-VerticalLineColor: rgba(0, 0, 0, 0.3); qproperty-KeyFrameColor: #995d1d; - qproperty-KeyFrameBorderColor: #c9b04b; - qproperty-SelectedKeyFrameColor: #be772b; + qproperty-KeyFrameBorderColor: #db9041; + qproperty-SelectedKeyFrameColor: #a2835b; qproperty-InBetweenColor: #666250; - qproperty-InBetweenBorderColor: #cdcec8; - qproperty-SelectedInBetweenColor: #7d7a6c; - qproperty-SelectedEmptyColor: #6c6c6c; - qproperty-SelectedSceneRangeEmptyColor: #757575; + qproperty-InBetweenBorderColor: #b0aa91; + qproperty-SelectedInBetweenColor: #717970; + qproperty-SelectedEmptyColor: rgba(103, 113, 119, 0.5); + qproperty-SelectedSceneRangeEmptyColor: rgba(103, 113, 119, 0.5); qproperty-TextColor: #e6e6e6; - qproperty-ColumnHeaderBorderColor: #808080; + qproperty-ColumnHeaderBorderColor: #272727; } #ExpressionField { background-color: #e6e6e6; border: 1 solid #333333; margin: 0; } -#FunctionSegmentViewerLinkButton { - background-image: url('imgs/white/segment_unlinked.svg'); - background-repeat: no-repeat; -} -#FunctionSegmentViewerLinkButton:hover { - background-repeat: no-repeat; -} -#FunctionSegmentViewerLinkButton:checked { - background-image: url('imgs/white/segment_linked.svg'); - background-repeat: no-repeat; -} -#FunctionSegmentViewerLinkButton:disabled { - background-image: url('imgs/white/segment_disabled.svg'); - background-repeat: no-repeat; -} diff --git a/stuff/config/qss/Default/imgs/black/checkmark_black.svg b/stuff/config/qss/Default/imgs/black/checkmark_black.svg new file mode 100644 index 0000000..c1c92d2 --- /dev/null +++ b/stuff/config/qss/Default/imgs/black/checkmark_black.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/stuff/config/qss/Default/imgs/black/checkmark_disabled_black.svg b/stuff/config/qss/Default/imgs/black/checkmark_disabled_black.svg new file mode 100644 index 0000000..8730067 --- /dev/null +++ b/stuff/config/qss/Default/imgs/black/checkmark_disabled_black.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/stuff/config/qss/Default/imgs/black/checkpartially.svg b/stuff/config/qss/Default/imgs/black/checkpartially.svg index 0e811f0..7878ea3 100644 --- a/stuff/config/qss/Default/imgs/black/checkpartially.svg +++ b/stuff/config/qss/Default/imgs/black/checkpartially.svg @@ -1 +1,7 @@ - \ No newline at end of file + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/checkpartially_black.svg b/stuff/config/qss/Default/imgs/black/checkpartially_black.svg new file mode 100644 index 0000000..ac8619f --- /dev/null +++ b/stuff/config/qss/Default/imgs/black/checkpartially_black.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/checkpartially_disabled.svg b/stuff/config/qss/Default/imgs/black/checkpartially_disabled.svg index 911a5b4..a51b4be 100644 --- a/stuff/config/qss/Default/imgs/black/checkpartially_disabled.svg +++ b/stuff/config/qss/Default/imgs/black/checkpartially_disabled.svg @@ -1 +1,7 @@ - \ No newline at end of file + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/checkpartially_disabled_black.svg b/stuff/config/qss/Default/imgs/black/checkpartially_disabled_black.svg new file mode 100644 index 0000000..fb55745 --- /dev/null +++ b/stuff/config/qss/Default/imgs/black/checkpartially_disabled_black.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/flipmarker.svg b/stuff/config/qss/Default/imgs/black/flipmarker.svg index 4789210..880c9b4 100644 --- a/stuff/config/qss/Default/imgs/black/flipmarker.svg +++ b/stuff/config/qss/Default/imgs/black/flipmarker.svg @@ -1,45 +1,45 @@ - -image/svg+xml - - - - - - + +image/svg+xml + + + + + + \ No newline at end of file diff --git a/stuff/config/qss/Default/imgs/black/flipmarker_light.svg b/stuff/config/qss/Default/imgs/black/flipmarker_light.svg new file mode 100644 index 0000000..d3e18b8 --- /dev/null +++ b/stuff/config/qss/Default/imgs/black/flipmarker_light.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/flipslider.svg b/stuff/config/qss/Default/imgs/black/flipslider.svg index 3db8fcc..c0f1d50 100644 --- a/stuff/config/qss/Default/imgs/black/flipslider.svg +++ b/stuff/config/qss/Default/imgs/black/flipslider.svg @@ -1,11 +1,11 @@ - - - - - - + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/flipslider_light.svg b/stuff/config/qss/Default/imgs/black/flipslider_light.svg new file mode 100644 index 0000000..12fe496 --- /dev/null +++ b/stuff/config/qss/Default/imgs/black/flipslider_light.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/stuff/config/qss/Default/imgs/black/fsp_checked.svg b/stuff/config/qss/Default/imgs/black/fsp_checked.svg deleted file mode 100644 index 95eb318..0000000 --- a/stuff/config/qss/Default/imgs/black/fsp_checked.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - diff --git a/stuff/config/qss/Default/imgs/black/fsp_unchecked.svg b/stuff/config/qss/Default/imgs/black/fsp_unchecked.svg deleted file mode 100644 index 60c9c54..0000000 --- a/stuff/config/qss/Default/imgs/black/fsp_unchecked.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - diff --git a/stuff/config/qss/Default/imgs/black/gear.svg b/stuff/config/qss/Default/imgs/black/gear.svg deleted file mode 100644 index 2ceedf5..0000000 --- a/stuff/config/qss/Default/imgs/black/gear.svg +++ /dev/null @@ -1,21 +0,0 @@ - -image/svg+xml \ No newline at end of file diff --git a/stuff/config/qss/Default/imgs/black/layer_header_prev_eye.svg b/stuff/config/qss/Default/imgs/black/layer_header_prev_eye.svg index 1dd7aa8..c608dd0 100644 --- a/stuff/config/qss/Default/imgs/black/layer_header_prev_eye.svg +++ b/stuff/config/qss/Default/imgs/black/layer_header_prev_eye.svg @@ -1,20 +1,7 @@ - - - - - - - - - - - + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/layer_header_prev_eye_over.svg b/stuff/config/qss/Default/imgs/black/layer_header_prev_eye_over.svg index a7cabdc..1fc0fec 100644 --- a/stuff/config/qss/Default/imgs/black/layer_header_prev_eye_over.svg +++ b/stuff/config/qss/Default/imgs/black/layer_header_prev_eye_over.svg @@ -1,27 +1,8 @@ - - - - - - - - - - - + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/layer_header_table_view.svg b/stuff/config/qss/Default/imgs/black/layer_header_table_view.svg index 6dd7a7c..39873e8 100644 --- a/stuff/config/qss/Default/imgs/black/layer_header_table_view.svg +++ b/stuff/config/qss/Default/imgs/black/layer_header_table_view.svg @@ -1,15 +1,9 @@ - - - - - - - + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/layer_header_table_view_over.svg b/stuff/config/qss/Default/imgs/black/layer_header_table_view_over.svg index fc9c7c0..3511282 100644 --- a/stuff/config/qss/Default/imgs/black/layer_header_table_view_over.svg +++ b/stuff/config/qss/Default/imgs/black/layer_header_table_view_over.svg @@ -1,22 +1,9 @@ - - - - - - - - + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/layer_lock_on.svg b/stuff/config/qss/Default/imgs/black/layer_lock_on.svg new file mode 100644 index 0000000..dd94307 --- /dev/null +++ b/stuff/config/qss/Default/imgs/black/layer_lock_on.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/layer_lock_on_over.svg b/stuff/config/qss/Default/imgs/black/layer_lock_on_over.svg new file mode 100644 index 0000000..d7ce8d5 --- /dev/null +++ b/stuff/config/qss/Default/imgs/black/layer_lock_on_over.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/lock.svg b/stuff/config/qss/Default/imgs/black/lock.svg new file mode 100644 index 0000000..d0b314a --- /dev/null +++ b/stuff/config/qss/Default/imgs/black/lock.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/lock_off.svg b/stuff/config/qss/Default/imgs/black/lock_off.svg deleted file mode 100644 index 0b16412..0000000 --- a/stuff/config/qss/Default/imgs/black/lock_off.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - diff --git a/stuff/config/qss/Default/imgs/black/lock_on.svg b/stuff/config/qss/Default/imgs/black/lock_on.svg index 80302d5..2ebe2aa 100644 --- a/stuff/config/qss/Default/imgs/black/lock_on.svg +++ b/stuff/config/qss/Default/imgs/black/lock_on.svg @@ -1,60 +1,13 @@ -image/svg+xml - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/lock_on_over.svg b/stuff/config/qss/Default/imgs/black/lock_on_over.svg index dc79c66..68b24fc 100644 --- a/stuff/config/qss/Default/imgs/black/lock_on_over.svg +++ b/stuff/config/qss/Default/imgs/black/lock_on_over.svg @@ -1,67 +1,14 @@ -image/svg+xml - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/lock_on_small.svg b/stuff/config/qss/Default/imgs/black/lock_on_small.svg new file mode 100644 index 0000000..b90a5e0 --- /dev/null +++ b/stuff/config/qss/Default/imgs/black/lock_on_small.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/lock_over.svg b/stuff/config/qss/Default/imgs/black/lock_over.svg new file mode 100644 index 0000000..a79b400 --- /dev/null +++ b/stuff/config/qss/Default/imgs/black/lock_over.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/minus.svg b/stuff/config/qss/Default/imgs/black/minus.svg deleted file mode 100644 index f5349e9..0000000 --- a/stuff/config/qss/Default/imgs/black/minus.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/stuff/config/qss/Default/imgs/black/nextkey.svg b/stuff/config/qss/Default/imgs/black/nextkey.svg deleted file mode 100644 index e93a889..0000000 --- a/stuff/config/qss/Default/imgs/black/nextkey.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - diff --git a/stuff/config/qss/Default/imgs/black/nextkey_disabled.svg b/stuff/config/qss/Default/imgs/black/nextkey_disabled.svg deleted file mode 100644 index 3674f1e..0000000 --- a/stuff/config/qss/Default/imgs/black/nextkey_disabled.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - diff --git a/stuff/config/qss/Default/imgs/black/nextkey_over.svg b/stuff/config/qss/Default/imgs/black/nextkey_over.svg deleted file mode 100644 index b148fa4..0000000 --- a/stuff/config/qss/Default/imgs/black/nextkey_over.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - diff --git a/stuff/config/qss/Default/imgs/black/plus.svg b/stuff/config/qss/Default/imgs/black/plus.svg deleted file mode 100644 index 13d4fe4..0000000 --- a/stuff/config/qss/Default/imgs/black/plus.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - diff --git a/stuff/config/qss/Default/imgs/black/preview_small.svg b/stuff/config/qss/Default/imgs/black/preview_small.svg new file mode 100644 index 0000000..773f61d --- /dev/null +++ b/stuff/config/qss/Default/imgs/black/preview_small.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/prevkey.svg b/stuff/config/qss/Default/imgs/black/prevkey.svg deleted file mode 100644 index a8a6cc1..0000000 --- a/stuff/config/qss/Default/imgs/black/prevkey.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - diff --git a/stuff/config/qss/Default/imgs/black/prevkey_disabled.svg b/stuff/config/qss/Default/imgs/black/prevkey_disabled.svg deleted file mode 100644 index 76c9830..0000000 --- a/stuff/config/qss/Default/imgs/black/prevkey_disabled.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - diff --git a/stuff/config/qss/Default/imgs/black/prevkey_over.svg b/stuff/config/qss/Default/imgs/black/prevkey_over.svg deleted file mode 100644 index 9ef27c9..0000000 --- a/stuff/config/qss/Default/imgs/black/prevkey_over.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - diff --git a/stuff/config/qss/Default/imgs/black/radiobutton_checked.svg b/stuff/config/qss/Default/imgs/black/radiobutton_checked.svg index 004c1cc..bb96854 100644 --- a/stuff/config/qss/Default/imgs/black/radiobutton_checked.svg +++ b/stuff/config/qss/Default/imgs/black/radiobutton_checked.svg @@ -1,7 +1,11 @@ - - - - + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/radiobutton_checked_disabled.svg b/stuff/config/qss/Default/imgs/black/radiobutton_checked_disabled.svg new file mode 100644 index 0000000..56a1da6 --- /dev/null +++ b/stuff/config/qss/Default/imgs/black/radiobutton_checked_disabled.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/radiobutton_unchecked.svg b/stuff/config/qss/Default/imgs/black/radiobutton_unchecked.svg index 76f48c1..dd112c7 100644 --- a/stuff/config/qss/Default/imgs/black/radiobutton_unchecked.svg +++ b/stuff/config/qss/Default/imgs/black/radiobutton_unchecked.svg @@ -1 +1,8 @@ - \ No newline at end of file + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/radiobutton_unchecked_disabled.svg b/stuff/config/qss/Default/imgs/black/radiobutton_unchecked_disabled.svg index 304686e..502519a 100644 --- a/stuff/config/qss/Default/imgs/black/radiobutton_unchecked_disabled.svg +++ b/stuff/config/qss/Default/imgs/black/radiobutton_unchecked_disabled.svg @@ -1 +1,8 @@ - \ No newline at end of file + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/radiobutton_unchecked_hover.svg b/stuff/config/qss/Default/imgs/black/radiobutton_unchecked_hover.svg index 26c86c9..1123e8b 100644 --- a/stuff/config/qss/Default/imgs/black/radiobutton_unchecked_hover.svg +++ b/stuff/config/qss/Default/imgs/black/radiobutton_unchecked_hover.svg @@ -1 +1,8 @@ - \ No newline at end of file + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/schematic_preview_off.svg b/stuff/config/qss/Default/imgs/black/schematic_preview_off.svg new file mode 100644 index 0000000..947e193 --- /dev/null +++ b/stuff/config/qss/Default/imgs/black/schematic_preview_off.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/schematic_preview_on.svg b/stuff/config/qss/Default/imgs/black/schematic_preview_on.svg new file mode 100644 index 0000000..57fc402 --- /dev/null +++ b/stuff/config/qss/Default/imgs/black/schematic_preview_on.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/schematic_table_off.svg b/stuff/config/qss/Default/imgs/black/schematic_table_off.svg new file mode 100644 index 0000000..87a3c75 --- /dev/null +++ b/stuff/config/qss/Default/imgs/black/schematic_table_off.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/stuff/config/qss/Default/imgs/black/schematic_table_on.svg b/stuff/config/qss/Default/imgs/black/schematic_table_on.svg new file mode 100644 index 0000000..74dc47a --- /dev/null +++ b/stuff/config/qss/Default/imgs/black/schematic_table_on.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/stuff/config/qss/Default/imgs/black/schematic_table_transp.svg b/stuff/config/qss/Default/imgs/black/schematic_table_transp.svg new file mode 100644 index 0000000..1da4edd --- /dev/null +++ b/stuff/config/qss/Default/imgs/black/schematic_table_transp.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/scroll-down.svg b/stuff/config/qss/Default/imgs/black/scroll-down.svg index 6a17969..39593c8 100644 --- a/stuff/config/qss/Default/imgs/black/scroll-down.svg +++ b/stuff/config/qss/Default/imgs/black/scroll-down.svg @@ -1,13 +1,7 @@ - - - - - - - - + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/scroll-left.svg b/stuff/config/qss/Default/imgs/black/scroll-left.svg index f58de3f..cb47b44 100644 --- a/stuff/config/qss/Default/imgs/black/scroll-left.svg +++ b/stuff/config/qss/Default/imgs/black/scroll-left.svg @@ -1,13 +1,7 @@ - - - - - - - - + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/scroll-right.svg b/stuff/config/qss/Default/imgs/black/scroll-right.svg index bad1b8f..29bf353 100644 --- a/stuff/config/qss/Default/imgs/black/scroll-right.svg +++ b/stuff/config/qss/Default/imgs/black/scroll-right.svg @@ -1,13 +1,7 @@ - - - - - - - - + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/scroll-up.svg b/stuff/config/qss/Default/imgs/black/scroll-up.svg index c45ce64..91fbe42 100644 --- a/stuff/config/qss/Default/imgs/black/scroll-up.svg +++ b/stuff/config/qss/Default/imgs/black/scroll-up.svg @@ -1,13 +1,7 @@ - - - - - - - - + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/segment_disabled.svg b/stuff/config/qss/Default/imgs/black/segment_disabled.svg deleted file mode 100644 index ee00de1..0000000 --- a/stuff/config/qss/Default/imgs/black/segment_disabled.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/stuff/config/qss/Default/imgs/black/segment_linked.svg b/stuff/config/qss/Default/imgs/black/segment_linked.svg deleted file mode 100644 index 17e0c48..0000000 --- a/stuff/config/qss/Default/imgs/black/segment_linked.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - diff --git a/stuff/config/qss/Default/imgs/black/segment_unlinked.svg b/stuff/config/qss/Default/imgs/black/segment_unlinked.svg deleted file mode 100644 index 4273725..0000000 --- a/stuff/config/qss/Default/imgs/black/segment_unlinked.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - diff --git a/stuff/config/qss/Default/imgs/black/selectiontool_thickness.svg b/stuff/config/qss/Default/imgs/black/selectiontool_thickness.svg deleted file mode 100644 index d2e8f97..0000000 --- a/stuff/config/qss/Default/imgs/black/selectiontool_thickness.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - diff --git a/stuff/config/qss/Default/imgs/black/slider-groove.svg b/stuff/config/qss/Default/imgs/black/slider-groove.svg index e6bf1cf..56f16ed 100644 --- a/stuff/config/qss/Default/imgs/black/slider-groove.svg +++ b/stuff/config/qss/Default/imgs/black/slider-groove.svg @@ -1,13 +1,13 @@ - - - - - - - - + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/slider-groove_disabled.svg b/stuff/config/qss/Default/imgs/black/slider-groove_disabled.svg index be35df0..f78126a 100644 --- a/stuff/config/qss/Default/imgs/black/slider-groove_disabled.svg +++ b/stuff/config/qss/Default/imgs/black/slider-groove_disabled.svg @@ -1,13 +1,13 @@ - - - - - - - - + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/slider-groove_disabled_light.svg b/stuff/config/qss/Default/imgs/black/slider-groove_disabled_light.svg new file mode 100644 index 0000000..f78126a --- /dev/null +++ b/stuff/config/qss/Default/imgs/black/slider-groove_disabled_light.svg @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/slider-groove_light.svg b/stuff/config/qss/Default/imgs/black/slider-groove_light.svg new file mode 100644 index 0000000..876fdca --- /dev/null +++ b/stuff/config/qss/Default/imgs/black/slider-groove_light.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/stuff/config/qss/Default/imgs/black/slider-handle.svg b/stuff/config/qss/Default/imgs/black/slider-handle.svg index 0017970..df929fb 100644 --- a/stuff/config/qss/Default/imgs/black/slider-handle.svg +++ b/stuff/config/qss/Default/imgs/black/slider-handle.svg @@ -1,36 +1,6 @@ -image/svg+xml - - - - - \ No newline at end of file + + + + + diff --git a/stuff/config/qss/Default/imgs/black/slider-handle_disabled.svg b/stuff/config/qss/Default/imgs/black/slider-handle_disabled.svg index 410fe18..b6cbdcf 100644 --- a/stuff/config/qss/Default/imgs/black/slider-handle_disabled.svg +++ b/stuff/config/qss/Default/imgs/black/slider-handle_disabled.svg @@ -1,36 +1,6 @@ -image/svg+xml - - - - - \ No newline at end of file + + + + + diff --git a/stuff/config/qss/Default/imgs/black/slider-handle_disabled_light.svg b/stuff/config/qss/Default/imgs/black/slider-handle_disabled_light.svg new file mode 100644 index 0000000..bb31b45 --- /dev/null +++ b/stuff/config/qss/Default/imgs/black/slider-handle_disabled_light.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/slider-handle_light.svg b/stuff/config/qss/Default/imgs/black/slider-handle_light.svg new file mode 100644 index 0000000..b724997 --- /dev/null +++ b/stuff/config/qss/Default/imgs/black/slider-handle_light.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/subcamera.svg b/stuff/config/qss/Default/imgs/black/subcamera.svg deleted file mode 100644 index 181ebb6..0000000 --- a/stuff/config/qss/Default/imgs/black/subcamera.svg +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff --git a/stuff/config/qss/Default/imgs/black/subfolder.svg b/stuff/config/qss/Default/imgs/black/subfolder.svg deleted file mode 100644 index 2eb675e..0000000 --- a/stuff/config/qss/Default/imgs/black/subfolder.svg +++ /dev/null @@ -1,41 +0,0 @@ - -image/svg+xml \ No newline at end of file diff --git a/stuff/config/qss/Default/imgs/black/table_small.svg b/stuff/config/qss/Default/imgs/black/table_small.svg new file mode 100644 index 0000000..27d62df --- /dev/null +++ b/stuff/config/qss/Default/imgs/black/table_small.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/timeline_config.svg b/stuff/config/qss/Default/imgs/black/timeline_config.svg index cb396fe..c05de62 100644 --- a/stuff/config/qss/Default/imgs/black/timeline_config.svg +++ b/stuff/config/qss/Default/imgs/black/timeline_config.svg @@ -1,17 +1,8 @@ - - - - - - - - - + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/timeline_toggle_off.svg b/stuff/config/qss/Default/imgs/black/timeline_toggle_off.svg deleted file mode 100644 index b059efe..0000000 --- a/stuff/config/qss/Default/imgs/black/timeline_toggle_off.svg +++ /dev/null @@ -1,32 +0,0 @@ - -image/svg+xml - - - - \ No newline at end of file diff --git a/stuff/config/qss/Default/imgs/black/timeline_toggle_on.svg b/stuff/config/qss/Default/imgs/black/timeline_toggle_on.svg deleted file mode 100644 index 7b30a08..0000000 --- a/stuff/config/qss/Default/imgs/black/timeline_toggle_on.svg +++ /dev/null @@ -1,38 +0,0 @@ - -image/svg+xml - - - - \ No newline at end of file diff --git a/stuff/config/qss/Default/imgs/black/timeline_toggle_transp.svg b/stuff/config/qss/Default/imgs/black/timeline_toggle_transp.svg deleted file mode 100644 index 6e65536..0000000 --- a/stuff/config/qss/Default/imgs/black/timeline_toggle_transp.svg +++ /dev/null @@ -1,34 +0,0 @@ - -image/svg+xml - - - - \ No newline at end of file diff --git a/stuff/config/qss/Default/imgs/black/toolbar_extension_horizontal.png b/stuff/config/qss/Default/imgs/black/toolbar_extension_horizontal.png new file mode 100644 index 0000000..7940a4b Binary files /dev/null and b/stuff/config/qss/Default/imgs/black/toolbar_extension_horizontal.png differ diff --git a/stuff/config/qss/Default/imgs/black/toolbar_extension_vertical.png b/stuff/config/qss/Default/imgs/black/toolbar_extension_vertical.png new file mode 100644 index 0000000..10928b5 Binary files /dev/null and b/stuff/config/qss/Default/imgs/black/toolbar_extension_vertical.png differ diff --git a/stuff/config/qss/Default/imgs/black/trans_small.svg b/stuff/config/qss/Default/imgs/black/trans_small.svg new file mode 100644 index 0000000..e563526 --- /dev/null +++ b/stuff/config/qss/Default/imgs/black/trans_small.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/treebranch-closed.svg b/stuff/config/qss/Default/imgs/black/treebranch-closed.svg index dc5963c..afb51c6 100644 --- a/stuff/config/qss/Default/imgs/black/treebranch-closed.svg +++ b/stuff/config/qss/Default/imgs/black/treebranch-closed.svg @@ -1,31 +1,31 @@ - -image/svg+xml - - - - +image/svg+xml + + + + \ No newline at end of file diff --git a/stuff/config/qss/Default/imgs/black/treebranch-open.svg b/stuff/config/qss/Default/imgs/black/treebranch-open.svg index 0161967..116e440 100644 --- a/stuff/config/qss/Default/imgs/black/treebranch-open.svg +++ b/stuff/config/qss/Default/imgs/black/treebranch-open.svg @@ -1,31 +1,31 @@ - -image/svg+xml - - - - +image/svg+xml + + + + \ No newline at end of file diff --git a/stuff/config/qss/Default/imgs/black/x_config.svg b/stuff/config/qss/Default/imgs/black/x_config.svg index fcf02b7..9bbf9c8 100644 --- a/stuff/config/qss/Default/imgs/black/x_config.svg +++ b/stuff/config/qss/Default/imgs/black/x_config.svg @@ -1,17 +1,5 @@ - - - - - - - - - + + + + diff --git a/stuff/config/qss/Default/imgs/black/x_lock_off.svg b/stuff/config/qss/Default/imgs/black/x_lock_off.svg index 5782647..c412d2f 100644 --- a/stuff/config/qss/Default/imgs/black/x_lock_off.svg +++ b/stuff/config/qss/Default/imgs/black/x_lock_off.svg @@ -1,41 +1,10 @@ -image/svg+xml - - - - - - - \ No newline at end of file + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/x_lock_on.svg b/stuff/config/qss/Default/imgs/black/x_lock_on.svg index d7c2328..f88c573 100644 --- a/stuff/config/qss/Default/imgs/black/x_lock_on.svg +++ b/stuff/config/qss/Default/imgs/black/x_lock_on.svg @@ -1,21 +1,10 @@ - - - - - - - - - - - + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/x_lock_on_small.svg b/stuff/config/qss/Default/imgs/black/x_lock_on_small.svg new file mode 100644 index 0000000..b90a5e0 --- /dev/null +++ b/stuff/config/qss/Default/imgs/black/x_lock_on_small.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/x_prev_eye_off.svg b/stuff/config/qss/Default/imgs/black/x_prev_eye_off.svg index be34661..98fad5e 100644 --- a/stuff/config/qss/Default/imgs/black/x_prev_eye_off.svg +++ b/stuff/config/qss/Default/imgs/black/x_prev_eye_off.svg @@ -1,29 +1,8 @@ -image/svg+xml - - - \ No newline at end of file + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/x_prev_eye_on.svg b/stuff/config/qss/Default/imgs/black/x_prev_eye_on.svg index 9517144..1905d55 100644 --- a/stuff/config/qss/Default/imgs/black/x_prev_eye_on.svg +++ b/stuff/config/qss/Default/imgs/black/x_prev_eye_on.svg @@ -1,18 +1,8 @@ - - - - - - - - + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/x_table_view_off.svg b/stuff/config/qss/Default/imgs/black/x_table_view_off.svg index d34c7f2..ba0da17 100644 --- a/stuff/config/qss/Default/imgs/black/x_table_view_off.svg +++ b/stuff/config/qss/Default/imgs/black/x_table_view_off.svg @@ -1,29 +1,13 @@ -image/svg+xml - - - \ No newline at end of file + + + + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/x_table_view_on.svg b/stuff/config/qss/Default/imgs/black/x_table_view_on.svg index 7899839..ac73aa8 100644 --- a/stuff/config/qss/Default/imgs/black/x_table_view_on.svg +++ b/stuff/config/qss/Default/imgs/black/x_table_view_on.svg @@ -1,47 +1,10 @@ -image/svg+xml - - - - - \ No newline at end of file + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/black/x_table_view_transp.svg b/stuff/config/qss/Default/imgs/black/x_table_view_transp.svg index 10c1a26..0b3dc99 100644 --- a/stuff/config/qss/Default/imgs/black/x_table_view_transp.svg +++ b/stuff/config/qss/Default/imgs/black/x_table_view_transp.svg @@ -1,63 +1,15 @@ -image/svg+xml - - - - - \ No newline at end of file + + + + + + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/checkpartially.svg b/stuff/config/qss/Default/imgs/white/checkpartially.svg index 0e811f0..7878ea3 100644 --- a/stuff/config/qss/Default/imgs/white/checkpartially.svg +++ b/stuff/config/qss/Default/imgs/white/checkpartially.svg @@ -1 +1,7 @@ - \ No newline at end of file + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/checkpartially_disabled.svg b/stuff/config/qss/Default/imgs/white/checkpartially_disabled.svg index 911a5b4..a51b4be 100644 --- a/stuff/config/qss/Default/imgs/white/checkpartially_disabled.svg +++ b/stuff/config/qss/Default/imgs/white/checkpartially_disabled.svg @@ -1 +1,7 @@ - \ No newline at end of file + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/combo_downarrow.svg b/stuff/config/qss/Default/imgs/white/combo_downarrow.svg index f08b69b..e0d23b9 100644 --- a/stuff/config/qss/Default/imgs/white/combo_downarrow.svg +++ b/stuff/config/qss/Default/imgs/white/combo_downarrow.svg @@ -1,15 +1,5 @@ - - - - - - - - - - + + + + + diff --git a/stuff/config/qss/Default/imgs/white/flipmarker.svg b/stuff/config/qss/Default/imgs/white/flipmarker.svg index d834cc9..038728b 100644 --- a/stuff/config/qss/Default/imgs/white/flipmarker.svg +++ b/stuff/config/qss/Default/imgs/white/flipmarker.svg @@ -1,25 +1,25 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/flipmarker_dark.svg b/stuff/config/qss/Default/imgs/white/flipmarker_dark.svg index b49af0b..ec8cf74 100644 --- a/stuff/config/qss/Default/imgs/white/flipmarker_dark.svg +++ b/stuff/config/qss/Default/imgs/white/flipmarker_dark.svg @@ -1,21 +1,21 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/flipslider.svg b/stuff/config/qss/Default/imgs/white/flipslider.svg index 213454f..1ae2293 100644 --- a/stuff/config/qss/Default/imgs/white/flipslider.svg +++ b/stuff/config/qss/Default/imgs/white/flipslider.svg @@ -1,11 +1,5 @@ - - - - - + + + + diff --git a/stuff/config/qss/Default/imgs/white/flipslider_dark.svg b/stuff/config/qss/Default/imgs/white/flipslider_dark.svg index 84136ac..5768161 100644 --- a/stuff/config/qss/Default/imgs/white/flipslider_dark.svg +++ b/stuff/config/qss/Default/imgs/white/flipslider_dark.svg @@ -1,11 +1,11 @@ - - - - - - + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/fsp_checked.svg b/stuff/config/qss/Default/imgs/white/fsp_checked.svg deleted file mode 100644 index 95eb318..0000000 --- a/stuff/config/qss/Default/imgs/white/fsp_checked.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - diff --git a/stuff/config/qss/Default/imgs/white/fsp_unchecked.svg b/stuff/config/qss/Default/imgs/white/fsp_unchecked.svg deleted file mode 100644 index 60c9c54..0000000 --- a/stuff/config/qss/Default/imgs/white/fsp_unchecked.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - diff --git a/stuff/config/qss/Default/imgs/white/gear.svg b/stuff/config/qss/Default/imgs/white/gear.svg deleted file mode 100644 index 2ceedf5..0000000 --- a/stuff/config/qss/Default/imgs/white/gear.svg +++ /dev/null @@ -1,21 +0,0 @@ - -image/svg+xml \ No newline at end of file diff --git a/stuff/config/qss/Default/imgs/white/layer_header_prev_eye.svg b/stuff/config/qss/Default/imgs/white/layer_header_prev_eye.svg index 4095f5c..8eb5be6 100644 --- a/stuff/config/qss/Default/imgs/white/layer_header_prev_eye.svg +++ b/stuff/config/qss/Default/imgs/white/layer_header_prev_eye.svg @@ -1,20 +1,7 @@ - - - - - - - - - - + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/layer_header_prev_eye_over.svg b/stuff/config/qss/Default/imgs/white/layer_header_prev_eye_over.svg index a7cabdc..e800436 100644 --- a/stuff/config/qss/Default/imgs/white/layer_header_prev_eye_over.svg +++ b/stuff/config/qss/Default/imgs/white/layer_header_prev_eye_over.svg @@ -1,27 +1,8 @@ - - - - - - - - - - - + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/layer_header_table_view.svg b/stuff/config/qss/Default/imgs/white/layer_header_table_view.svg index 6dd7a7c..a2a280a 100644 --- a/stuff/config/qss/Default/imgs/white/layer_header_table_view.svg +++ b/stuff/config/qss/Default/imgs/white/layer_header_table_view.svg @@ -1,15 +1,9 @@ - - - - - - - + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/layer_header_table_view_over.svg b/stuff/config/qss/Default/imgs/white/layer_header_table_view_over.svg index fc9c7c0..3dfe1c6 100644 --- a/stuff/config/qss/Default/imgs/white/layer_header_table_view_over.svg +++ b/stuff/config/qss/Default/imgs/white/layer_header_table_view_over.svg @@ -1,22 +1,9 @@ - - - - - - - - + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/layer_lock_on.svg b/stuff/config/qss/Default/imgs/white/layer_lock_on.svg new file mode 100644 index 0000000..00d0372 --- /dev/null +++ b/stuff/config/qss/Default/imgs/white/layer_lock_on.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/layer_lock_on_over.svg b/stuff/config/qss/Default/imgs/white/layer_lock_on_over.svg new file mode 100644 index 0000000..f5e9a7c --- /dev/null +++ b/stuff/config/qss/Default/imgs/white/layer_lock_on_over.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/lock.svg b/stuff/config/qss/Default/imgs/white/lock.svg new file mode 100644 index 0000000..589335b --- /dev/null +++ b/stuff/config/qss/Default/imgs/white/lock.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/lock_off.svg b/stuff/config/qss/Default/imgs/white/lock_off.svg deleted file mode 100644 index 0b16412..0000000 --- a/stuff/config/qss/Default/imgs/white/lock_off.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - diff --git a/stuff/config/qss/Default/imgs/white/lock_on.svg b/stuff/config/qss/Default/imgs/white/lock_on.svg index 80302d5..a5e79d5 100644 --- a/stuff/config/qss/Default/imgs/white/lock_on.svg +++ b/stuff/config/qss/Default/imgs/white/lock_on.svg @@ -1,60 +1,13 @@ -image/svg+xml - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/lock_on_over.svg b/stuff/config/qss/Default/imgs/white/lock_on_over.svg deleted file mode 100644 index dc79c66..0000000 --- a/stuff/config/qss/Default/imgs/white/lock_on_over.svg +++ /dev/null @@ -1,67 +0,0 @@ - -image/svg+xml - - - - - - - - - - \ No newline at end of file diff --git a/stuff/config/qss/Default/imgs/white/lock_on_small.svg b/stuff/config/qss/Default/imgs/white/lock_on_small.svg new file mode 100644 index 0000000..64212a2 --- /dev/null +++ b/stuff/config/qss/Default/imgs/white/lock_on_small.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/lock_over.svg b/stuff/config/qss/Default/imgs/white/lock_over.svg new file mode 100644 index 0000000..24044ee --- /dev/null +++ b/stuff/config/qss/Default/imgs/white/lock_over.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/minus.svg b/stuff/config/qss/Default/imgs/white/minus.svg deleted file mode 100644 index 74c48f1..0000000 --- a/stuff/config/qss/Default/imgs/white/minus.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - diff --git a/stuff/config/qss/Default/imgs/white/nextkey.svg b/stuff/config/qss/Default/imgs/white/nextkey.svg deleted file mode 100644 index e93a889..0000000 --- a/stuff/config/qss/Default/imgs/white/nextkey.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - diff --git a/stuff/config/qss/Default/imgs/white/nextkey_disabled.svg b/stuff/config/qss/Default/imgs/white/nextkey_disabled.svg deleted file mode 100644 index 3674f1e..0000000 --- a/stuff/config/qss/Default/imgs/white/nextkey_disabled.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - diff --git a/stuff/config/qss/Default/imgs/white/nextkey_over.svg b/stuff/config/qss/Default/imgs/white/nextkey_over.svg deleted file mode 100644 index b148fa4..0000000 --- a/stuff/config/qss/Default/imgs/white/nextkey_over.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - diff --git a/stuff/config/qss/Default/imgs/white/plus.svg b/stuff/config/qss/Default/imgs/white/plus.svg deleted file mode 100644 index ee119c7..0000000 --- a/stuff/config/qss/Default/imgs/white/plus.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - diff --git a/stuff/config/qss/Default/imgs/white/preview_small.svg b/stuff/config/qss/Default/imgs/white/preview_small.svg new file mode 100644 index 0000000..40b160a --- /dev/null +++ b/stuff/config/qss/Default/imgs/white/preview_small.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/prevkey.svg b/stuff/config/qss/Default/imgs/white/prevkey.svg deleted file mode 100644 index a8a6cc1..0000000 --- a/stuff/config/qss/Default/imgs/white/prevkey.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - diff --git a/stuff/config/qss/Default/imgs/white/prevkey_disabled.svg b/stuff/config/qss/Default/imgs/white/prevkey_disabled.svg deleted file mode 100644 index 76c9830..0000000 --- a/stuff/config/qss/Default/imgs/white/prevkey_disabled.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - diff --git a/stuff/config/qss/Default/imgs/white/prevkey_over.svg b/stuff/config/qss/Default/imgs/white/prevkey_over.svg deleted file mode 100644 index 9ef27c9..0000000 --- a/stuff/config/qss/Default/imgs/white/prevkey_over.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - diff --git a/stuff/config/qss/Default/imgs/white/radiobutton-dark_unchecked.svg b/stuff/config/qss/Default/imgs/white/radiobutton-dark_unchecked.svg index fb44b5d..9b23432 100644 --- a/stuff/config/qss/Default/imgs/white/radiobutton-dark_unchecked.svg +++ b/stuff/config/qss/Default/imgs/white/radiobutton-dark_unchecked.svg @@ -1 +1,8 @@ - \ No newline at end of file + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/radiobutton-dark_unchecked_disabled.svg b/stuff/config/qss/Default/imgs/white/radiobutton-dark_unchecked_disabled.svg index 67460d2..5f85232 100644 --- a/stuff/config/qss/Default/imgs/white/radiobutton-dark_unchecked_disabled.svg +++ b/stuff/config/qss/Default/imgs/white/radiobutton-dark_unchecked_disabled.svg @@ -1 +1,8 @@ - \ No newline at end of file + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/radiobutton-dark_unchecked_hover.svg b/stuff/config/qss/Default/imgs/white/radiobutton-dark_unchecked_hover.svg index 8f23d89..ef94c35 100644 --- a/stuff/config/qss/Default/imgs/white/radiobutton-dark_unchecked_hover.svg +++ b/stuff/config/qss/Default/imgs/white/radiobutton-dark_unchecked_hover.svg @@ -1 +1,8 @@ - \ No newline at end of file + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/radiobutton_checked.svg b/stuff/config/qss/Default/imgs/white/radiobutton_checked.svg index 8e59672..0f92731 100644 --- a/stuff/config/qss/Default/imgs/white/radiobutton_checked.svg +++ b/stuff/config/qss/Default/imgs/white/radiobutton_checked.svg @@ -1 +1,11 @@ - \ No newline at end of file + + + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/radiobutton_checked_disabled.svg b/stuff/config/qss/Default/imgs/white/radiobutton_checked_disabled.svg index a483fb5..b8fb375 100644 --- a/stuff/config/qss/Default/imgs/white/radiobutton_checked_disabled.svg +++ b/stuff/config/qss/Default/imgs/white/radiobutton_checked_disabled.svg @@ -1 +1,11 @@ - \ No newline at end of file + + + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/radiobutton_unchecked.svg b/stuff/config/qss/Default/imgs/white/radiobutton_unchecked.svg index 3e0a0c2..5fe45f8 100644 --- a/stuff/config/qss/Default/imgs/white/radiobutton_unchecked.svg +++ b/stuff/config/qss/Default/imgs/white/radiobutton_unchecked.svg @@ -1,6 +1,8 @@ - - - + + + + + diff --git a/stuff/config/qss/Default/imgs/white/radiobutton_unchecked_disabled.svg b/stuff/config/qss/Default/imgs/white/radiobutton_unchecked_disabled.svg index a9799f1..e4de38f 100644 --- a/stuff/config/qss/Default/imgs/white/radiobutton_unchecked_disabled.svg +++ b/stuff/config/qss/Default/imgs/white/radiobutton_unchecked_disabled.svg @@ -1 +1,8 @@ - \ No newline at end of file + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/radiobutton_unchecked_hover.svg b/stuff/config/qss/Default/imgs/white/radiobutton_unchecked_hover.svg index 7e45654..c8bd3e8 100644 --- a/stuff/config/qss/Default/imgs/white/radiobutton_unchecked_hover.svg +++ b/stuff/config/qss/Default/imgs/white/radiobutton_unchecked_hover.svg @@ -1 +1,8 @@ - \ No newline at end of file + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/schematic_preview_off.svg b/stuff/config/qss/Default/imgs/white/schematic_preview_off.svg new file mode 100644 index 0000000..947e193 --- /dev/null +++ b/stuff/config/qss/Default/imgs/white/schematic_preview_off.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/schematic_preview_on.svg b/stuff/config/qss/Default/imgs/white/schematic_preview_on.svg new file mode 100644 index 0000000..57fc402 --- /dev/null +++ b/stuff/config/qss/Default/imgs/white/schematic_preview_on.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/schematic_table_off.svg b/stuff/config/qss/Default/imgs/white/schematic_table_off.svg new file mode 100644 index 0000000..87a3c75 --- /dev/null +++ b/stuff/config/qss/Default/imgs/white/schematic_table_off.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/stuff/config/qss/Default/imgs/white/schematic_table_on.svg b/stuff/config/qss/Default/imgs/white/schematic_table_on.svg new file mode 100644 index 0000000..74dc47a --- /dev/null +++ b/stuff/config/qss/Default/imgs/white/schematic_table_on.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/stuff/config/qss/Default/imgs/white/schematic_table_transp.svg b/stuff/config/qss/Default/imgs/white/schematic_table_transp.svg new file mode 100644 index 0000000..1da4edd --- /dev/null +++ b/stuff/config/qss/Default/imgs/white/schematic_table_transp.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/scroll-down.svg b/stuff/config/qss/Default/imgs/white/scroll-down.svg index 124bcad..e350f48 100644 --- a/stuff/config/qss/Default/imgs/white/scroll-down.svg +++ b/stuff/config/qss/Default/imgs/white/scroll-down.svg @@ -1,13 +1,7 @@ - - - - - - - + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/scroll-left.svg b/stuff/config/qss/Default/imgs/white/scroll-left.svg index c936fca..d828504 100644 --- a/stuff/config/qss/Default/imgs/white/scroll-left.svg +++ b/stuff/config/qss/Default/imgs/white/scroll-left.svg @@ -1,13 +1,7 @@ - - - - - - - + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/scroll-right.svg b/stuff/config/qss/Default/imgs/white/scroll-right.svg index 277a3a3..1dfa74b 100644 --- a/stuff/config/qss/Default/imgs/white/scroll-right.svg +++ b/stuff/config/qss/Default/imgs/white/scroll-right.svg @@ -1,13 +1,7 @@ - - - - - - - + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/scroll-up.svg b/stuff/config/qss/Default/imgs/white/scroll-up.svg index 570b83e..26ba5a0 100644 --- a/stuff/config/qss/Default/imgs/white/scroll-up.svg +++ b/stuff/config/qss/Default/imgs/white/scroll-up.svg @@ -1,13 +1,7 @@ - - - - - - - + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/segment_disabled.svg b/stuff/config/qss/Default/imgs/white/segment_disabled.svg deleted file mode 100644 index f5920fd..0000000 --- a/stuff/config/qss/Default/imgs/white/segment_disabled.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - diff --git a/stuff/config/qss/Default/imgs/white/segment_linked.svg b/stuff/config/qss/Default/imgs/white/segment_linked.svg deleted file mode 100644 index 17e0c48..0000000 --- a/stuff/config/qss/Default/imgs/white/segment_linked.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - diff --git a/stuff/config/qss/Default/imgs/white/segment_unlinked.svg b/stuff/config/qss/Default/imgs/white/segment_unlinked.svg deleted file mode 100644 index b2de521..0000000 --- a/stuff/config/qss/Default/imgs/white/segment_unlinked.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - diff --git a/stuff/config/qss/Default/imgs/white/selectiontool_thickness.svg b/stuff/config/qss/Default/imgs/white/selectiontool_thickness.svg deleted file mode 100644 index 59f078e..0000000 --- a/stuff/config/qss/Default/imgs/white/selectiontool_thickness.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - diff --git a/stuff/config/qss/Default/imgs/white/slider-groove.svg b/stuff/config/qss/Default/imgs/white/slider-groove.svg index e6bf1cf..56f16ed 100644 --- a/stuff/config/qss/Default/imgs/white/slider-groove.svg +++ b/stuff/config/qss/Default/imgs/white/slider-groove.svg @@ -1,13 +1,13 @@ - - - - - - - - + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/slider-groove_dark.svg b/stuff/config/qss/Default/imgs/white/slider-groove_dark.svg index 31bf631..066b3f5 100644 --- a/stuff/config/qss/Default/imgs/white/slider-groove_dark.svg +++ b/stuff/config/qss/Default/imgs/white/slider-groove_dark.svg @@ -1,13 +1,13 @@ - - - - - - - - + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/slider-groove_disabled.svg b/stuff/config/qss/Default/imgs/white/slider-groove_disabled.svg index be35df0..f78126a 100644 --- a/stuff/config/qss/Default/imgs/white/slider-groove_disabled.svg +++ b/stuff/config/qss/Default/imgs/white/slider-groove_disabled.svg @@ -1,13 +1,13 @@ - - - - - - - - + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/slider-groove_disabled_dark.svg b/stuff/config/qss/Default/imgs/white/slider-groove_disabled_dark.svg index 817a641..c47662b 100644 --- a/stuff/config/qss/Default/imgs/white/slider-groove_disabled_dark.svg +++ b/stuff/config/qss/Default/imgs/white/slider-groove_disabled_dark.svg @@ -1,13 +1,13 @@ - - - - - - - - + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/slider-handle.svg b/stuff/config/qss/Default/imgs/white/slider-handle.svg index 1f6189c..8b3639f 100644 --- a/stuff/config/qss/Default/imgs/white/slider-handle.svg +++ b/stuff/config/qss/Default/imgs/white/slider-handle.svg @@ -1,13 +1,13 @@ - - - - - - - - + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/slider-handle_disabled.svg b/stuff/config/qss/Default/imgs/white/slider-handle_disabled.svg index 948821b..bafd018 100644 --- a/stuff/config/qss/Default/imgs/white/slider-handle_disabled.svg +++ b/stuff/config/qss/Default/imgs/white/slider-handle_disabled.svg @@ -1,13 +1,13 @@ - - - - - - - - + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/subcamera.svg b/stuff/config/qss/Default/imgs/white/subcamera.svg deleted file mode 100644 index 181ebb6..0000000 --- a/stuff/config/qss/Default/imgs/white/subcamera.svg +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff --git a/stuff/config/qss/Default/imgs/white/subfolder.svg b/stuff/config/qss/Default/imgs/white/subfolder.svg deleted file mode 100644 index 2eb675e..0000000 --- a/stuff/config/qss/Default/imgs/white/subfolder.svg +++ /dev/null @@ -1,41 +0,0 @@ - -image/svg+xml \ No newline at end of file diff --git a/stuff/config/qss/Default/imgs/white/table_small.svg b/stuff/config/qss/Default/imgs/white/table_small.svg new file mode 100644 index 0000000..aa43c50 --- /dev/null +++ b/stuff/config/qss/Default/imgs/white/table_small.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/timeline_config.svg b/stuff/config/qss/Default/imgs/white/timeline_config.svg index cb396fe..8147464 100644 --- a/stuff/config/qss/Default/imgs/white/timeline_config.svg +++ b/stuff/config/qss/Default/imgs/white/timeline_config.svg @@ -1,17 +1,8 @@ - - - - - - - - - + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/timeline_toggle_off.svg b/stuff/config/qss/Default/imgs/white/timeline_toggle_off.svg deleted file mode 100644 index b059efe..0000000 --- a/stuff/config/qss/Default/imgs/white/timeline_toggle_off.svg +++ /dev/null @@ -1,32 +0,0 @@ - -image/svg+xml - - - - \ No newline at end of file diff --git a/stuff/config/qss/Default/imgs/white/timeline_toggle_on.svg b/stuff/config/qss/Default/imgs/white/timeline_toggle_on.svg deleted file mode 100644 index 7b30a08..0000000 --- a/stuff/config/qss/Default/imgs/white/timeline_toggle_on.svg +++ /dev/null @@ -1,38 +0,0 @@ - -image/svg+xml - - - - \ No newline at end of file diff --git a/stuff/config/qss/Default/imgs/white/timeline_toggle_transp.svg b/stuff/config/qss/Default/imgs/white/timeline_toggle_transp.svg deleted file mode 100644 index 6e65536..0000000 --- a/stuff/config/qss/Default/imgs/white/timeline_toggle_transp.svg +++ /dev/null @@ -1,34 +0,0 @@ - -image/svg+xml - - - - \ No newline at end of file diff --git a/stuff/config/qss/Default/imgs/white/toolbar_extension_horizontal.png b/stuff/config/qss/Default/imgs/white/toolbar_extension_horizontal.png new file mode 100644 index 0000000..33f5986 Binary files /dev/null and b/stuff/config/qss/Default/imgs/white/toolbar_extension_horizontal.png differ diff --git a/stuff/config/qss/Default/imgs/white/toolbar_extension_vertical.png b/stuff/config/qss/Default/imgs/white/toolbar_extension_vertical.png new file mode 100644 index 0000000..ee7dde5 Binary files /dev/null and b/stuff/config/qss/Default/imgs/white/toolbar_extension_vertical.png differ diff --git a/stuff/config/qss/Default/imgs/white/trans_small.svg b/stuff/config/qss/Default/imgs/white/trans_small.svg new file mode 100644 index 0000000..c983c43 --- /dev/null +++ b/stuff/config/qss/Default/imgs/white/trans_small.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/treebranch-closed.svg b/stuff/config/qss/Default/imgs/white/treebranch-closed.svg index a3aedd4..47cc54b 100644 --- a/stuff/config/qss/Default/imgs/white/treebranch-closed.svg +++ b/stuff/config/qss/Default/imgs/white/treebranch-closed.svg @@ -1,31 +1,31 @@ - -image/svg+xml - - - - +image/svg+xml + + + + \ No newline at end of file diff --git a/stuff/config/qss/Default/imgs/white/treebranch-open.svg b/stuff/config/qss/Default/imgs/white/treebranch-open.svg index 37976d6..04b3e3a 100644 --- a/stuff/config/qss/Default/imgs/white/treebranch-open.svg +++ b/stuff/config/qss/Default/imgs/white/treebranch-open.svg @@ -1,31 +1,31 @@ - -image/svg+xml - - - - +image/svg+xml + + + + \ No newline at end of file diff --git a/stuff/config/qss/Default/imgs/white/x_config.svg b/stuff/config/qss/Default/imgs/white/x_config.svg index fcf02b7..9bbf9c8 100644 --- a/stuff/config/qss/Default/imgs/white/x_config.svg +++ b/stuff/config/qss/Default/imgs/white/x_config.svg @@ -1,17 +1,5 @@ - - - - - - - - - + + + + diff --git a/stuff/config/qss/Default/imgs/white/x_lock_off.svg b/stuff/config/qss/Default/imgs/white/x_lock_off.svg index d1d7d87..c412d2f 100644 --- a/stuff/config/qss/Default/imgs/white/x_lock_off.svg +++ b/stuff/config/qss/Default/imgs/white/x_lock_off.svg @@ -1,40 +1,10 @@ -image/svg+xml - - - - - - - \ No newline at end of file + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/x_lock_on.svg b/stuff/config/qss/Default/imgs/white/x_lock_on.svg index d7c2328..f88c573 100644 --- a/stuff/config/qss/Default/imgs/white/x_lock_on.svg +++ b/stuff/config/qss/Default/imgs/white/x_lock_on.svg @@ -1,21 +1,10 @@ - - - - - - - - - - - + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/x_lock_on_white.svg b/stuff/config/qss/Default/imgs/white/x_lock_on_white.svg new file mode 100644 index 0000000..e168643 --- /dev/null +++ b/stuff/config/qss/Default/imgs/white/x_lock_on_white.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/x_prev_eye_off.svg b/stuff/config/qss/Default/imgs/white/x_prev_eye_off.svg index 59bfa60..98fad5e 100644 --- a/stuff/config/qss/Default/imgs/white/x_prev_eye_off.svg +++ b/stuff/config/qss/Default/imgs/white/x_prev_eye_off.svg @@ -1,12 +1,8 @@ - - - - - + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/x_prev_eye_on.svg b/stuff/config/qss/Default/imgs/white/x_prev_eye_on.svg index 9517144..1905d55 100644 --- a/stuff/config/qss/Default/imgs/white/x_prev_eye_on.svg +++ b/stuff/config/qss/Default/imgs/white/x_prev_eye_on.svg @@ -1,18 +1,8 @@ - - - - - - - - + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/x_table_view_off.svg b/stuff/config/qss/Default/imgs/white/x_table_view_off.svg index 2ccb97d..ba0da17 100644 --- a/stuff/config/qss/Default/imgs/white/x_table_view_off.svg +++ b/stuff/config/qss/Default/imgs/white/x_table_view_off.svg @@ -1,12 +1,13 @@ - - - - - + + + + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/x_table_view_on.svg b/stuff/config/qss/Default/imgs/white/x_table_view_on.svg index 7899839..ac73aa8 100644 --- a/stuff/config/qss/Default/imgs/white/x_table_view_on.svg +++ b/stuff/config/qss/Default/imgs/white/x_table_view_on.svg @@ -1,47 +1,10 @@ -image/svg+xml - - - - - \ No newline at end of file + + + + + + + + + diff --git a/stuff/config/qss/Default/imgs/white/x_table_view_transp.svg b/stuff/config/qss/Default/imgs/white/x_table_view_transp.svg index 10c1a26..0b3dc99 100644 --- a/stuff/config/qss/Default/imgs/white/x_table_view_transp.svg +++ b/stuff/config/qss/Default/imgs/white/x_table_view_transp.svg @@ -1,63 +1,15 @@ -image/svg+xml - - - - - \ No newline at end of file + + + + + + + + + + + + + + diff --git a/stuff/config/qss/Default/less/.vscode/settings.json b/stuff/config/qss/Default/less/.vscode/settings.json index b0c3c82..85a5a0f 100644 --- a/stuff/config/qss/Default/less/.vscode/settings.json +++ b/stuff/config/qss/Default/less/.vscode/settings.json @@ -1,19 +1,19 @@ -{ - // [VSCode] 2 Spaces for Tab - "editor.tabSize": 2, - - // [EasyLess Extension] Compile Config - "less.compile": { - "compress": true, - "sourceMap": false, - "out": false - }, - - // [Less IntelliSense Extension] Exclude Config - "less.scannerExclude":[ - "**/.git", - "**/.vscode", - "**/layouts", - "**/themes" - ] -} +{ + // [VSCode] 2 Spaces for Tab + "editor.tabSize": 2, + + // [EasyLess Extension] Compile Config + "less.compile": { + "compress": false, + "sourceMap": false, + "out": false + }, + + // [Less IntelliSense Extension] Exclude Config + "less.scannerExclude":[ + "**/.git", + "**/.vscode", + "**/layouts", + "**/themes" + ] +} diff --git a/stuff/config/qss/Default/less/Default.less b/stuff/config/qss/Default/less/Default.less index 53990d0..9bd1b6a 100644 --- a/stuff/config/qss/Default/less/Default.less +++ b/stuff/config/qss/Default/less/Default.less @@ -12,27 +12,24 @@ // Resource Location @img-url: 'imgs/white'; -@bg: #484848; -@accent: darken(@bg, 13); - -@text-color: rgb(230, 230, 230); -@text-color-disabled: rgba(230, 230, 230, 0.4); - -@hl-bg-color: rgb(83, 133, 166); -@hl-text-color: rgb(255, 255, 255); - -@hl-bg-color-secondary: rgba(255, 255, 255, 0.15); +@bg: #484848; +@accent: darken(@bg, 11); +@text-color: rgb(230, 230, 230); +@text-color-disabled: fade(@text-color, 40); + +@hl-bg-color: rgb(83, 133, 166); +@hl-bg-color-disabled: darken(desaturate(@hl-bg-color, 15), 15); +@hl-text-color: rgb(255, 255, 255); +@hl-bg-color-secondary: rgba(255, 255, 255, 0.10); @hl-text-color-secondary: @text-color; -@dock-bg-color: darken(@bg, 18); -@dock-placeholder-color: #F77272; - +@dock-bg-color: darken(@bg, 16); +@dock-placeholder-color: #f55454; @dialogButtonFrame-bg-color: darken(@bg, 4); -@dialogButtonFrame-border-color: @accent; -@tooltip-bg-color: #fff; -@tooltip-border-color: #000; -@tooltip-text-color: #000; +@tooltip-bg-color: #292B2D; +@tooltip-border-color: #CFD1D4; +@tooltip-text-color: #CFD2D4; @label-title: rgb(159, 218, 255); @label-error: rgb(255, 0, 0); @@ -41,18 +38,20 @@ // Tabs // ----------------------------------------------------------------------------- -// Container @tabbar-bg-color: darken(@bg, 6); // Tabs @tab-bg-color: @tabbar-bg-color; @tab-text-color: mix(@tab-bg-color, @text-color, 40); +@tab-border-color: darken(@accent, 2); -@tab-bg-color-hover: @tab-bg-color-selected; +@tab-bg-color-hover: lighten(@tab-bg-color, 5); +@tab-border-color-hover: @tab-bg-color-hover; @tab-text-color-hover: @tab-text-color; @tab-bg-color-selected: @bg; -@tab-text-color-selected: lighten(@text-color, 15); +@tab-border-color-selected: @tab-bg-color-selected; +@tab-text-color-selected: #fff; // ----------------------------------------------------------------------------- // Topbar & Workspaces @@ -60,37 +59,31 @@ // Topbar @topbar-bg-color: @bg; +@topbar-border-color: @accent; // Workspace Tabs @rooms-tab-bg-color: @tab-bg-color; @rooms-tab-text-color: @tab-text-color; - @rooms-tab-bg-color-hover: @tab-bg-color-hover; -@rooms-text-color-hover: @rooms-tab-text-color; - -@rooms-tab-bg-color-selected: @bg; -@rooms-tab-text-color-selected: @tab-text-color-selected; +@rooms-tab-bg-color-selected: @hl-bg-color; +@rooms-tab-text-color-selected: @hl-text-color; +@rooms-tab-border-color-selected: @rooms-tab-bg-color-selected; // ----------------------------------------------------------------------------- // Menu // ----------------------------------------------------------------------------- @menu-text-color: @text-color; -@menu-bg-color: darken(@bg, 0); +@menu-bg-color: @bg; @menu-border-color: @accent; @menu-separator-color: @menu-border-color; -@menu-checkbox-text-color-selected: @text-color; -@menu-item-bg-color-disabled-hover: lighten(@menu-bg-color, 8); - -// ----------------------------------------------------------------------------- -// Titlebars -// ----------------------------------------------------------------------------- -@title-bg-color: darken(@bg, 6); -@title-text-color: lighten(@bg, 30); -@title-text-color-active: #fff; +@menu-item-bg-color-selected: @hl-bg-color; +@menu-item-text-color-selected: @hl-text-color; -@title-active-border-pixmap: 'none'; +@menu-checkbox-text-color-selected: @text-color; +@menu-icon-checked-bg-color: @toolbutton-bg-color-checked; +@menu-icon-checked-border-color: @toolbutton-border-color-checked; // ----------------------------------------------------------------------------- // Scrollbars @@ -100,25 +93,39 @@ @scrollbar-bg-color: darken(@bg, 8); // Handle -@scrollbar-handle-border-size: 1; +@scrollbar-handle-border-size: 0; @scrollbar-handle-radius: 4; @scrollbar-handle-margin: 3; -@scrollbar-handle-bg-color: lighten(@bg, 4); +@scrollbar-handle-bg-color: lighten(@bg, 8); @scrollbar-handle-border-color: @scrollbar-handle-bg-color; - @scrollbar-handle-bg-color-hover: lighten(@scrollbar-handle-bg-color, 8); @scrollbar-handle-border-color-hover: @scrollbar-handle-bg-color-hover; - @scrollbar-handle-bg-color-pressed: lighten(@scrollbar-handle-bg-color-hover, 8); @scrollbar-handle-border-color-pressed: @scrollbar-handle-bg-color-pressed; // ----------------------------------------------------------------------------- +// Palette Window +// ----------------------------------------------------------------------------- + +// All views (except list) +@palette-SelectedBorderColor: rgb(255, 255, 255); +@palette-NumpadShortcutBgColor: rgba(0, 0, 0, 0.3); +@palette-NumpadShortcutBorderColor: rgb(141, 141, 141); + +// List view +@palette-SeparatorColor: @accent; +@palette-SelectedCellColor: @hl-bg-color; +@palette-CurrentCellColor: fade(@hl-bg-color, 50); +@palette-ListNumpadShortcutBorderColor: rgb(175, 175, 175); + +// ----------------------------------------------------------------------------- // Button // ----------------------------------------------------------------------------- -@button-bg-color: lighten(@bg, 13); -@button-border-color: darken(@bg, 0); +@button-bg-color: lighten(@bg, 11); +@button-border-color: @bg; +@button-border-width: 1; @button-text-color: lighten(@text-color, 5); @button-bg-color-hover: lighten(@button-bg-color, 5); @@ -133,13 +140,13 @@ @button-border-color-checked: darken(@button-bg-color-checked, 2); @button-text-color-checked: @button-text-color; -@button-bg-color-checked-hover: lighten(@button-bg-color-checked, 2); -@button-bg-color-checked-hover-pressed: @button-bg-color-checked; +@button-bg-color-checked-hover: lighten(@button-bg-color-checked, 8); +@button-border-color-checked-hover: darken(@button-bg-color-checked-hover, 5); +@button-bg-color-checked-hover-pressed: darken(@button-bg-color-checked-hover, 5); @button-bg-color-focus: @hl-bg-color; @button-border-color-focus: @button-dialog-border-color; @button-text-color-focus: lighten(@button-text-color, 10); - @button-bg-color-focus-hover: lighten(@button-bg-color-focus, 8); @button-bg-color-disabled: lighten(@bg, 5); @@ -147,14 +154,13 @@ @button-text-color-disabled: @text-color-disabled; // For QDialogs -@button-dialog-border-color: darken(@dialogButtonFrame-bg-color, 0); +@button-dialog-border-color: @dialogButtonFrame-bg-color; // Scrollable Buttons @scrollable-button-bg-color: @button-bg-color; @scrollable-button-bg-color-hover: @button-bg-color-hover; @scrollable-button-bg-color-pressed: @button-bg-color-pressed; - -@scrollable-button-border-color: red; +@scrollable-button-border-color: @button-border-color; // ----------------------------------------------------------------------------- // Tool Buttons @@ -162,8 +168,7 @@ // Main @toolbutton-border-size: 1; - -@toolbutton-bg-color: rgba(255, 255, 255, 0.00); +@toolbutton-bg-color: transparent; @toolbutton-border-color: @toolbutton-bg-color; @toolbutton-text-color: @button-text-color; @@ -182,10 +187,12 @@ @toolbutton-bg-color-checked-hover: lighten(@toolbutton-bg-color-checked, 8); @toolbutton-border-color-checked-hover: @toolbutton-bg-color-checked-hover; +@toolbutton-bg-color-disabled: fade(@hl-bg-color, 40); +@toolbutton-border-color-disabled: @toolbutton-bg-color-disabled; + // Lock @toolbutton-lock-bg-color-checked: #C34040; @toolbutton-lock-border-color-checked: @toolbutton-lock-bg-color-checked; - @toolbutton-lock-bg-color-checked-hover: lighten(@toolbutton-lock-bg-color-checked, 15); @toolbutton-lock-border-color-checked-hover: @toolbutton-lock-bg-color-checked-hover; @@ -208,6 +215,7 @@ @input-bg-color: darken(@bg, 10); @input-border-color: darken(@input-bg-color, 1); +@input-border-radius: 2; @input-text-color: @text-color; @input-bg-color-focus: @input-bg-color; @@ -226,15 +234,17 @@ // CheckBox // ----------------------------------------------------------------------------- +@checkbox-size: 9; @checkbox-bg-color: @input-bg-color; @checkbox-border-color: @input-border-color; +@checkbox-border-radius: 2; @checkbox-bg-color-hover: @checkbox-bg-color; @checkbox-border-color-hover: lighten(@bg, 50); @checkbox-text-color-hover: lighten(@text-color, 25); @checkbox-bg-color-checked: @hl-bg-color; -@checkbox-border-color-checked: darken(@checkbox-bg-color-checked, 0); +@checkbox-border-color-checked: @checkbox-bg-color-checked; @checkbox-bg-color-checked-hover: @checkbox-bg-color-checked; @checkbox-border-color-checked-hover: @checkbox-border-color-hover; @@ -245,6 +255,11 @@ @checkbox-bg-color-checked-disabled: lighten(@bg, 10); @checkbox-border-color-checked-disabled: @checkbox-bg-color-checked-disabled; +@checkbox-img: 'checkmark.svg'; +@checkbox-img-disabled: 'checkmark_disabled.svg'; +@checkbox-partially-img: 'checkpartially.svg'; +@checkbox-partially-img-disabled: 'checkpartially_disabled.svg'; + // For RadioButton @radiobutton-img-unchecked: 'radiobutton_unchecked.svg'; @radiobutton-img-unchecked-hover: 'radiobutton_unchecked_hover.svg'; @@ -278,26 +293,54 @@ @slider-right-handle-disabled: @slider-handle-img-disabled; // ----------------------------------------------------------------------------- +// Titlebars +// ----------------------------------------------------------------------------- + +@title-bg-color: @tabbar-bg-color; +@title-text-color: lighten(@bg, 30); +@title-text-color-active: #fff; + +@title-active-border-pixmap: 'none'; +@title-border-width: 1px; +@title-border-color: @accent; + +// Title pane icon colors +@title-button-rollover-color: @button-bg-color-hover; +@title-button-pressed-color: @hl-bg-color; +@title-button-freeze-color: @toolbutton-lock-bg-color-checked; +@title-button-preview-color: #1baf7e; + +// ----------------------------------------------------------------------------- // File Browser / Trees // ----------------------------------------------------------------------------- +// Filebrowser window color +@filebrowser-bg-color: @bg; + // Trees -@tree-bg-color: darken(@bg, 8); -@tree-bg-color-alt: lighten(@tree-bg-color, 2); -@prefs-tree-bg-color: @tree-bg-color; -@prefs-tree-hl-color: @hl-bg-color-secondary; +@tree-bg-color: darken(@bg, 10); +@tree-bg-color-alt: lighten(@tree-bg-color, 3); +@prefs-tree-bg-color: darken(@bg, 8); // All Panes @browser-folder-text-color: @label-title; @browser-folder-text-color-selected: @hl-text-color; +@browser-selected-item-bg-color: @hl-bg-color; // Left Pane @browser-listview-bg-color: @tree-bg-color; @browser-listview-bg-color-alt: @browser-listview-bg-color; -// Right Pane -@browser-itemview-bg-color: @bg; -@browser-itemview-bg-color-alt: darken(@browser-itemview-bg-color, 3); +// Right Pane: Order Column +@browser-itemview-col-color: darken(@bg, 5); +@browser-itemview-col-color-sorted: @browser-itemview-col-color; +@browser-itemview-col-text-color: @text-color; +@browser-itemview-col-border-color: @accent; +@browser-itemview-col-relief-color: @browser-itemview-col-color; + +// Right Pane: BG +@browser-itemview-bg-color: darken(@bg, 5); +@browser-itemview-bg-color-alt: lighten(@browser-itemview-bg-color, 3); // ----------------------------------------------------------------------------- // Viewer Window @@ -313,8 +356,11 @@ // Ruler @viewer-ruler-bg-color: @bg; -@viewer-ruler-scale-color: @text-color; +@viewer-ruler-scale-color: fade(@text-color, 70); @viewer-ruler-ToolOptionValues-color: darken(@bg, 50); +@viewer-ruler-border-color: fade(@accent, 70); +@viewer-ruler-handle-color: lighten(saturate(@hl-bg-color, 35), 15); +@viewer-ruler-handle-drag-color: yellow; // ----------------------------------------------------------------------------- // Progress Bar @@ -322,7 +368,6 @@ @progressbar-bg-color: darken(@bg, 10); @progressbar-border-color: @accent; - @progressbar-chunk-bg-color: rgb(21, 161, 54); @progressbar-chunk-border-color: @accent; @@ -341,177 +386,148 @@ // XSheet Spreadsheet Viewer @xsheet-text-color: @text-color; -@xsheet-bg-color: darken(@bg, 5); -@xsheet-empty-bg-color: darken(@bg, 8); -@xsheet-LightLine-color: rgba(0, 0, 0, 0.25); -@xsheet-MarkerLine-color: #1E96C4; -@xsheet-VerticalLine-color: rgba(0, 0, 0, 0.6); -@xsheet-VerticalLineHead-color: lighten(@bg, 21.9608); +@xsheet-error-text-color: rgb(255, 123, 123); +@xsheet-bg-color: darken(@bg, 3); +@xsheet-empty-bg-color: @bg; +@xsheet-LightLine-color: rgba(0, 0, 0, 0.2); +@xsheet-MarkerLine-color: rgba(255, 255, 255, 0.15); +@xsheet-VerticalLine-color: rgba(0, 0, 0, 0.3); +@xsheet-VerticalLineHead-color: darken(@bg, 13); @xsheet-PreviewFrameText-color: @label-title; -@xsheet-CurrentRowBG-color: #506082; -@xsheet-OnionSkinAreaBG-color: darken(@bg, 7); +@xsheet-CurrentRowBG-color: fade(@hl-bg-color, 70); +@xsheet-OnionSkinAreaBG-color: darken(@bg, 6); +@xsheet-EmptyColumnHead-color: @bg; +@xsheet-ColumnHeadPastelizer-color: rgba(0, 0, 0, 0); +@xsheet-SelectedColumnHead-color: fade(tint(@cellHighlightTintColor, 80), 30); +@xsheet-PlayRange-Color: @bg; +@xsheet-LightBG-color: lighten(@bg, 65.8824); +@xsheet-DarkBG-color: lighten(@bg, 60.0000); +@xsheet-DarkLine-color: lighten(@bg, 30.5882); +@xsheet-ColumnIconLine-color: @accent; -@xsheet-EmptyColumnHead-color: lighten(@bg, 10.1961); +@xsheet-CellArea-bg-color-focus: rgb(0, 0, 0); +@xsheet-CellFocus-color: #000; -@xsheet-EmptyCell-color: darken(@bg, 3.1373); -@xsheet-NotEmptyColumn-color: @bg; -@xsheet-SelectedEmptyCell-color: lighten(@bg, 14.1176); +@xsheet-FoldedColumnBG-color: lighten(@bg, 10); +@xsheet-FoldedColumnLine-color: darken(@bg, 5); -@xsheet-LevelColumn-color: #4C6E4C; -@xsheet-LevelColumnBorder-color: #8FB38F; -@xsheet-SelectedLevelColumn-color: lighten(desaturate(@xsheet-LevelColumn-color, 5), 10); +// Level Type Colors Adjustment +@columnBorderDesaturation: 0; +@columnBorderDarkness: 10; +@cellHighlightLightness: -20; +@cellHighlightDesaturation: 8; +@cellHighlightTintColor: @hl-bg-color; +@cellHighlightTintAmount: 77; -@xsheet-VectorColumn-color: #7B7B4C; -@xsheet-VectorColumnBorder-color: #BBBB9A; -@xsheet-SelectedVectorColumn-color: lighten(desaturate(@xsheet-VectorColumn-color, 5), 10); +@xsheet-EmptyCell-color: @xsheet-OnionSkinAreaBG-color; +@xsheet-NotEmptyColumn-color: darken(@bg, 3); +@xsheet-SelectedEmptyCell-color: fade(mix(lighten(@xsheet-EmptyCell-color, 20), @cellHighlightTintColor, 80), 50); +@xsheet-LevelColumn-color: #4C6E4C; +@xsheet-VectorColumn-color: #7B7B4C; @xsheet-ChildColumn-color: #6A526B; -@xsheet-ChildColumnBorder-color: #B1A3B3; -@xsheet-SelectedChildColumn-color: lighten(desaturate(@xsheet-ChildColumn-color, 5), 10); - @xsheet-FullColorColumn-color: #657A96; -@xsheet-FullColorColumnBorder-color: #9EB8BB; -@xsheet-SelectedFullColorColumn-color: lighten(desaturate(@xsheet-FullColorColumn-color, 5), 10); - -@xsheet-FxColumn-color: #56553C; -@xsheet-FxColumnBorder-color: #95958A; -@xsheet-SelectedFxColumn-color: lighten(desaturate(@xsheet-FxColumn-color, 5), 10); - -@xsheet-ReferenceColumn-color: #616161; -@xsheet-ReferenceColumnBorder-color: #A2A2A2; -@xsheet-SelectedReferenceColumn-color: lighten(desaturate(@xsheet-ReferenceColumn-color, 5), 10); - -@xsheet-PaletteColumn-color: #3A655F; -@xsheet-PaletteColumnBorder-color: #86ACA7; -@xsheet-SelectedPaletteColumn-color: lighten(desaturate(@xsheet-PaletteColumn-color, 5), 10); - -@xsheet-MeshColumn-color: #684D86; -@xsheet-MeshColumnBorder-color: #BA92EF; -@xsheet-SelectedMeshColumn-color: lighten(desaturate(@xsheet-MeshColumn-color, 5), 10); - -@xsheet-SoundTextColumn-color: #c8c8c8; -@xsheet-SoundTextColumnBorder-color: #8c8c8c; -@xsheet-SelectedSoundTextColumn-color: lighten(desaturate(@xsheet-SoundTextColumn-color, 5), 10); - -@xsheet-SoundColumn-color: #657456; -@xsheet-SoundColumnBorder-color: #A0AF7D; -@xsheet-SelectedSoundColumn-color: lighten(desaturate(@xsheet-SoundColumn-color, 5), 10); +@xsheet-FxColumn-color: #6d6349; +@xsheet-ReferenceColumn-color: lighten(@bg, 5); +@xsheet-PaletteColumn-color: #42756e; +@xsheet-MeshColumn-color: #5e4d72; +@xsheet-SoundTextColumn-color: #a7a7a7; +@xsheet-SoundColumn-color: #578a8a; @xsheet-SoundColumnHL-color: #34FE5E; -@xsheet-SoundColumnTrack-color: #B6C29D; - -@xsheet-ColumnHeadPastelizer-color: #000; -@xsheet-SelectedColumnHead-color: #506082; - -@xsheet-LightLightBG-color: darken(@bg, 3.1373); -@xsheet-LightBG-color: lighten(@bg, 65.8824); -@xsheet-DarkBG-color: lighten(@bg, 60.0000); -@xsheet-DarkLine-color: lighten(@bg, 30.5882); - -@xsheet-ActiveCamera-color: #2d7dca; -@xsheet-SelectedActiveCamera-color: lighten(desaturate(@xsheet-ActiveCamera-color, 5), 10); - -@xsheet-OtherCamera-color: #6c797b; -@xsheet-SelectedOtherCamera-color: lighten(desaturate(@xsheet-OtherCamera-color, 5), 10); - -// Timeline +@xsheet-SoundColumnTrack-color: rgba(0,0,0,0.8); +@xsheet-SoundPreviewTool-color: darken(@xsheet-SoundColumnTrack-color, 20); +@xsheet-ActiveCamera-color: #4073a3; +@xsheet-OtherCamera-color: #5e9aa3; +// Orientation: XSheet @xsheet-ColumnNameBg-color: rgba(0, 0, 0, 0); -@xsheet-DragBarHighlight-color: rgba(255, 255, 255, 0.5); - -@xsheet-PreviewButtonBgOn-color: rgba(200, 200, 100, 255); -@xsheet-PreviewButtonOnImage: 'x_prev_eye_on.svg'; -@xsheet-PreviewButtonBgOff-color: rgba(255, 255, 255, 0); -@xsheet-PreviewButtonOffImage: 'x_prev_eye_off.svg'; - -@xsheet-CamstandButtonBgOn-color: rgba(235, 144, 107, 255); -@xsheet-CamstandButtonOnImage: 'x_table_view_on.svg'; -@xsheet-CamstandButtonTranspImage: 'x_table_view_transp.svg'; -@xsheet-CamstandButtonBgOff-color: rgba(255, 255, 255, 0); -@xsheet-CamstandButtonOffImage: 'x_table_view_off.svg'; - -@xsheet-LockButtonBgOn-color: rgba(255, 255, 255, 0.300); -@xsheet-LockButtonOnImage: 'x_lock_on.svg'; -@xsheet-LockButtonBgOff-color: rgba(255, 255, 255, 0); -@xsheet-LockButtonOffImage: 'x_lock_off.svg'; - +@xsheet-DragBarHighlight-color: rgba(255, 255, 255, 0.15); +@xsheet-PreviewButtonBgOn-color: rgba(200, 200, 100, 1); +@xsheet-CamstandButtonBgOn-color: rgba(235, 144, 107, 1); +@xsheet-LockButtonBgOn-color: rgba(255, 255, 255, 0.6); @xsheet-ConfigButtonBg-color: rgba(255, 255, 255, 0); -@xsheet-ConfigButtonImage: 'x_config.svg'; -@timeline-PreviewButtonBgOn-color: rgba(255, 255, 255, 0); -@timeline-PreviewButtonOnImage: 'timeline_toggle_on.svg'; -@timeline-PreviewButtonBgOff-color: rgba(255, 255, 255, 0); -@timeline-PreviewButtonOffImage: 'timeline_toggle_off.svg'; +// Orientation: Timeline +@timeline-FrameRangeMarkerLine-color: lighten(@bg, 15); +@timeline-IconLine-color: @xsheet-VerticalLine-color; -@timeline-CamstandButtonBgOn-color: rgba(255, 255, 255, 0); -@timeline-CamstandButtonOnImage: 'timeline_toggle_on.svg'; -@timeline-CamstandButtonTranspImage: 'timeline_toggle_transp.svg'; -@timeline-CamstandButtonBgOff-color: rgba(255, 255, 255, 0); -@timeline-CamstandButtonOffImage: 'timeline_toggle_off.svg'; +// ----------------------------------------------------------------------------- +// Schematic Viewer +// ----------------------------------------------------------------------------- -@timeline-LockButtonBgOn-color: rgba(255, 255, 255, 0); -@timeline-LockButtonOnImage: 'timeline_toggle_on.svg'; -@timeline-LockButtonBgOff-color: rgba(255, 255, 255, 0); -@timeline-LockButtonOffImage: 'timeline_toggle_off.svg'; +// Node Viewer +@schematic-viewer-bg-color: darken(@bg, 5); +@schematic-label-text-color: #a0e680; -@timeline-ConfigButtonBg-color: rgba(255, 255, 255, 0); -@timeline-ConfigButtonImage: 'timeline_config.svg'; +// Help Button +@schematic-help-button-bg-color: transparent; +@schematic-help-button-bg-color-hover: @button-bg-color-hover; + +// Node Type Colors Adjustment +@nodeLightness: 0; +@nodeSaturation: 0; + +@schematic-TableColor: #62628c; +@schematic-ActiveCameraColor: @xsheet-ActiveCamera-color; +@schematic-OtherCameraColor: @xsheet-OtherCamera-color; +@schematic-GroupColor: #3b6e9c; +@schematic-PegColor: #9f6e3c; +@schematic-SplineColor: #6a9d1c; +@schematic-ActiveOutputcolor: @xsheet-ActiveCamera-color; +@schematic-OtherOutputcolor: @xsheet-OtherCamera-color; +@schematic-XsheetColor: #62628c; +@schematic-NormalFxColor: #5b90a3; +@schematic-MacroFxColor: #815c79; +@schematic-ImageAdjustFxColor: #656287; +@schematic-LayerBlendingFxColor: #57958f; +@schematic-MatteFxColor: #ae7171; + +// Node Selected Color +@schematic-SelectedBorderColor: rgb(255, 255, 255); + +// All Node Link Colors +@schematic-LinkColor: rgb(223, 223, 223); +@schematic-SelectedLinkColor: cyan; + +// Motion Path Link Colors +@schematic-MotionPathLinkColor: #94ee1e; +@schematic-MotionPathSelectedLinkColor: yellow; + +// For Column Based Schematic Nodes: Use the Xsheet viewer colors by default +@schematic-text-color: @xsheet-text-color; +@schematic-VerticalLine-color: @xsheet-VerticalLine-color; -@layerheader-PreviewImage: 'layer_header_prev_eye.svg'; -@layerheader-PreviewOverImage: 'layer_header_prev_eye_over.svg'; -@layerheader-CamstandImage: 'layer_header_table_view.svg'; -@layerheader-CamstandOverImage: 'layer_header_table_view_over.svg'; -@layerheader-LockImage: 'lock_on.svg'; -@layerheader-LockOverImage: 'lock_on_over.svg'; +@schematic-PreviewButtonBgOn-color: @xsheet-PreviewButtonBgOn-color; +@schematic-PreviewButtonBgOff-color: @xsheet-ReferenceColumn-color; +@schematic-CamstandButtonBgOn-color: @xsheet-CamstandButtonBgOn-color; +@schematic-CamstandButtonBgOff-color: @xsheet-ReferenceColumn-color; // ----------------------------------------------------------------------------- -// Schematic Viewer +// Keyframes // ----------------------------------------------------------------------------- -@schematic-viewer-bg-color: darken(@bg, 5); +@keyframe-off-color: rgba(0, 0, 0, 0); +@keyframe-off-color-hover: @toolbutton-bg-color-hover; +@keyframe-off-border-color: @keyframe-off-color; +@keyframe-off-border-color-hover: @keyframe-off-color-hover; -@schematic-label-text-color: #a0e680; +@keyframe-total-color: #be7323; +@keyframe-total-color-hover: lighten(@keyframe-total-color, 10); +@keyframe-total-border-color: @keyframe-total-color; +@keyframe-total-border-color-hover: @keyframe-total-color-hover; -@schematic-help-button-bg-color: #80a0dc; -@schematic-help-button-bg-color-hover: lighten(@schematic-help-button-bg-color, 10); - -@schematic-TableColor: #62628c; -@schematic-ActiveCameraColor: #2d7dca; -@schematic-OtherCameraColor: #6c797b; -@schematic-GroupColor: #3b6e9c; -@schematic-PegColor: #9f6e3c; -@schematic-SplineColor: #6a9d1c; -@schematic-ActiveOutputcolor: #2d7dca; -@schematic-OtherOutputcolor: #6c797b; -@schematic-XsheetColor: #62628c; -@schematic-NormalFxColor: #6a7e96; -@schematic-MacroFxColor: #815c79; -@schematic-ImageAdjustFxColor: #656287; -@schematic-LayerBlendingFxColor: #4f757d; -@schematic-MatteFxColor: #ae7171; - -// For column based schematic nodes, use the Xsheet viewer colors by default -@schematic-text-color: @xsheet-text-color; -@schematic-VerticalLine-color: @xsheet-VerticalLine-color; +@keyframe-partial-color: @keyframe-total-color; +@keyframe-partial-color-hover: @keyframe-total-color-hover; +@keyframe-partial-border-color: @keyframe-partial-color; +@keyframe-partial-border-color-hover: @keyframe-partial-color-hover; -@schematic-LevelColumn-color: @xsheet-LevelColumn-color; -@schematic-VectorColumn-color: @xsheet-VectorColumn-color; -@schematic-ChildColumn-color: @xsheet-ChildColumn-color; -@schematic-FullColorColumn-color: @xsheet-FullColorColumn-color; -@schematic-FxColumn-color: @xsheet-FxColumn-color; -@schematic-PaletteColumn-color: @xsheet-PaletteColumn-color; -@schematic-MeshColumn-color: @xsheet-MeshColumn-color; -@schematic-ReferenceColumn-color: @xsheet-ReferenceColumn-color; - -@schematic-PreviewButtonBgOn-color: @xsheet-PreviewButtonBgOn-color; -@schematic-PreviewButtonOnImage: @xsheet-PreviewButtonOnImage; -@schematic-PreviewButtonBgOff-color: @xsheet-ReferenceColumn-color; -@schematic-PreviewButtonOffImage: @xsheet-PreviewButtonOffImage; - -@schematic-CamstandButtonBgOn-color: @xsheet-CamstandButtonBgOn-color; -@schematic-CamstandButtonOnImage: @xsheet-CamstandButtonOnImage; -@schematic-CamstandButtonTranspImage: @xsheet-CamstandButtonTranspImage; -@schematic-CamstandButtonBgOff-color: @xsheet-ReferenceColumn-color; -@schematic-CamstandButtonOffImage: @xsheet-CamstandButtonOffImage; +// FX Settings Panel Only +@keyframe-highlight-color: rgba(255, 255, 255, 0.3); +@keyframe-highlight-border-color: @keyframe-highlight-color; +@keyframe-inbetween-color: #80795b; +@keyframe-inbetween-border-color: @keyframe-inbetween-color; +@keyframe-modified-color: rgb(190, 176, 98); +@keyframe-modified-border-color: @keyframe-modified-color; // ----------------------------------------------------------------------------- // Function Editor @@ -521,25 +537,28 @@ @function-treeview-text-color: @text-color; // Function Curve Panel -@function-panel-bg-color: darken(@bg, 5.0980); -@function-panel-ValueLine-color: darken(@bg, 10); -@function-panel-FrameLine-color: darken(@bg, 10); +@function-panel-bg-color: @xsheet-NotEmptyColumn-color; +@function-panel-ValueLine-color: fade(@xsheet-LightLine-color, 10); +@function-panel-FrameLine-color: fade(@xsheet-VerticalLine-color, 10); @function-panel-OtherCurves-color: lighten(@function-panel-bg-color, 30); @function-panel-RulerBG-color: darken(@function-panel-bg-color, 3); @function-panel-Text-color: @text-color; -@function-panel-Sub-color: #000; +@function-panel-Sub-color: @function-panel-bg-color; @function-panel-Selected-color: #FFA500; // Function Spreadsheet Viewer -@function-KeyFrame-color: rgb(153,93,29); -@function-KeyFrameBorder-color: rgb(201,176,75); -@function-SelectedKeyFrame-color: lighten(desaturate(@function-KeyFrame-color, 5), 10); - -@function-Inbetween-color: rgb(102,98,80); -@function-InbetweenBorder-color: rgb(205,206,200); -@function-SelectedInbetween-color: lighten(desaturate(@function-Inbetween-color, 5), 10); - -@function-SelectedSceneRangeEmpty-color: lighten(@bg, 17.6471); - -@function-ExpressionFieldBG-color: lighten(@bg, 61.9608); +@function-LightLightBG-color: @xsheet-OnionSkinAreaBG-color; +@function-SelectedSceneRangeEmpty-color: @xsheet-SelectedEmptyCell-color; +@function-ColumnHeaderBorder-color: darken(@bg, 13); + +// Keyframe Colors +@function-KeyFrame-color: darken(desaturate(spin(@keyframe-total-color, 0.0000), 0.7570), 8.4314); +@function-KeyFrameBorder-color: lighten(@function-KeyFrame-color, 20); +@function-SelectedKeyFrame-color: mix(shade(@function-KeyFrame-color, -40), @cellHighlightTintColor, 60); +@function-Inbetween-color: darken(desaturate(spin(@keyframe-inbetween-color, 0.4423), 4.8071), 7.2549); +@function-InbetweenBorder-color: lighten(@keyframe-inbetween-color, 20); +@function-SelectedInbetween-color: mix(shade(@function-Inbetween-color, @cellHighlightLightness), @cellHighlightTintColor, @cellHighlightTintAmount); + +// Expression Field +@function-ExpressionFieldBG-color: lighten(@bg, 61.9608); @function-ExpressionFieldBorder-color: darken(@bg, 8.2353); diff --git a/stuff/config/qss/Default/less/components/buttons.less b/stuff/config/qss/Default/less/components/buttons.less index 2f660c7..921749c 100644 --- a/stuff/config/qss/Default/less/components/buttons.less +++ b/stuff/config/qss/Default/less/components/buttons.less @@ -2,42 +2,14 @@ Component: Button Styles ----------------------------------------------------------------------------- */ -// Show (+/-) Button -// ----------------------------------------------------------------------------- -// a button style for the show more options button - -.button-show { - image: url('@{img-url}/plus.svg'); - image-position: center center; - margin: 0; - padding: 1; - min-width: 10; - min-height: 10; - &:checked { - background-color: @button-bg-color-checked; - border-color: @button-border-color-checked; - image: url('@{img-url}/minus.svg'); - &:pressed { - background-color: @button-bg-color-pressed; - border-color: @button-border-color-pressed; - } - &:hover { - background-color: @button-bg-color-checked-hover; - } - } -} - // Tool Button // ----------------------------------------------------------------------------- -// ideal for use on toolbar buttons and console buttons .button-tool { background-color: @toolbutton-bg-color; border: 1 solid @toolbutton-border-color; border-radius: 2; color: @toolbutton-text-color; - margin: 1; - padding: 0; &:hover { background-color: @toolbutton-bg-color-hover; border-color: @toolbutton-border-color-hover; @@ -59,13 +31,16 @@ } &:disabled { color: @text-color-disabled; + &:checked { + background-color: @toolbutton-bg-color-disabled; + border-color: @toolbutton-border-color-disabled; + } } } // Flat Button // ----------------------------------------------------------------------------- -// this is a flat button style with no border and no margin -// ideal for use in palette tool bars and tight areas +// This is a flat style with no border and no margin, for use in tight areas. .button-flat { background-color: none; diff --git a/stuff/config/qss/Default/less/components/icons.less b/stuff/config/qss/Default/less/components/icons.less index 7c1fb3d..8995bf2 100644 --- a/stuff/config/qss/Default/less/components/icons.less +++ b/stuff/config/qss/Default/less/components/icons.less @@ -8,10 +8,14 @@ .icon-lock() { border: @toolbutton-border-size solid @toolbutton-border-color; height: 18; - padding: 0; - width: 18; + padding: 0 -1 0 1; + width: 19; + margin-left: 1; &:unchecked { - image: url('@{img-url}/lock_off.svg'); + image: url('@{img-url}/lock.svg'); + &:hover { + image: url('@{img-url}/lock_over.svg'); + } } &:checked { background-color: @toolbutton-lock-bg-color-checked; diff --git a/stuff/config/qss/Default/less/components/tabs.less b/stuff/config/qss/Default/less/components/tabs.less index 2107db6..aae570e 100644 --- a/stuff/config/qss/Default/less/components/tabs.less +++ b/stuff/config/qss/Default/less/components/tabs.less @@ -6,19 +6,18 @@ // ----------------------------------------------------------------------------- .tab-container { - background-color: transparent; // Allows below qproperty to show + background-color: @tabbar-bg-color; qproperty-BottomAboveLineColor: @tabbar-bg-color; qproperty-BottomBelowLineColor: @accent; } // Flat Tabs // ----------------------------------------------------------------------------- -// these are flat tabs with no top border ideal for palette widget etc .tab-flat { @horizontal-padding: 4; background-color: @tab-bg-color; - border-right: 1 solid @accent; + border-right: 1 solid @tab-border-color; border-bottom: 1 solid @accent; color: @tab-text-color; padding: 3 @horizontal-padding 3 @horizontal-padding; @@ -38,7 +37,6 @@ // Rounded Tabs // ----------------------------------------------------------------------------- -// these are rounded tabs with top border ideal for fx panels etc .tab-round { @horizontal-padding: 7; diff --git a/stuff/config/qss/Default/less/layouts/controls.less b/stuff/config/qss/Default/less/layouts/controls.less index bf789e5..836fde7 100644 --- a/stuff/config/qss/Default/less/layouts/controls.less +++ b/stuff/config/qss/Default/less/layouts/controls.less @@ -1,6 +1,6 @@ -// The Less compiler has trouble compiling Qt selectors when they have been -// extended to, so extend Qt selectors to mixins as workaround for now +// Note: The compiler has trouble with Qt names when they have been extended to +// so we extend Qt names to mixins as a workaround for now. /* ----------------------------------------------------------------------------- Push Button @@ -8,7 +8,9 @@ .Button { background-color: @button-bg-color; - border: 1 solid @button-border-color; + border-color: @button-border-color; + border-width: @button-border-width; + border-style: solid; border-radius: 2; color: @button-text-color; margin: 0; @@ -29,6 +31,7 @@ color: @button-text-color-checked; &:hover { background-color: @button-bg-color-checked-hover; + border-color: @button-border-color-checked-hover; &:pressed { background: @button-bg-color-checked-hover-pressed; } @@ -50,7 +53,7 @@ QPushButton { } /* ----------------------------------------------------------------------------- - Combo Box + ComboBox ----------------------------------------------------------------------------- */ .ComboBox { @@ -62,6 +65,8 @@ QPushButton { background-color: @input-bg-color; border-color: @input-border-color; padding: 1 0 1 3; + selection-background-color: @input-selection-bg-color; + selection-color: @input-selection-text-color; } &:hover { background-color: @button-bg-color-hover; @@ -69,11 +74,10 @@ QPushButton { background-color: @input-bg-color; } } - &:focus { + &:checked { border-color: @input-border-color-focus; } - &:checked { - &:extend(.ComboBox); + &:focus { border-color: @input-border-color-focus; } &:disabled { @@ -107,8 +111,8 @@ QPushButton { & QAbstractItemView { background-color: @menu-bg-color; border: 1 solid @menu-border-color; - selection-background-color: @hl-bg-color; - selection-color: @hl-text-color; + selection-background-color: @menu-item-bg-color-selected; + selection-color: @menu-item-text-color-selected; } } @@ -123,7 +127,7 @@ QComboBox { .LineEdit { background-color: @input-bg-color; border: 1 solid @input-border-color; - border-radius: 2; + border-radius: @input-border-radius; color: @input-text-color; selection-background-color: @input-selection-bg-color; selection-color: @input-selection-text-color; @@ -160,10 +164,10 @@ QPlainTextEdit &::indicator { background-color: @checkbox-bg-color; border: 1 solid @checkbox-border-color; - border-radius: 2; - height: 9; /* fix for QGroupBox */ + border-radius: @checkbox-border-radius; + height: @checkbox-size; /* fix for QGroupBox */ padding: 1; - width: 9; /* fix for QMenu */ + width: @checkbox-size; /* fix for QMenu */ &:hover { background-color: @checkbox-bg-color-hover; border-color: @checkbox-border-color-hover; @@ -171,7 +175,7 @@ QPlainTextEdit &:checked { background-color: @checkbox-bg-color-checked; border-color: @checkbox-border-color-checked; - image: url('@{img-url}/checkmark.svg'); + image: url('@{img-url}/@{checkbox-img}'); &:hover { &:extend(.CheckBox::indicator:hover); background-color: @checkbox-bg-color-checked-hover; @@ -180,20 +184,20 @@ QPlainTextEdit &:disabled { background-color: @checkbox-bg-color-checked-disabled; border-color: @checkbox-border-color-checked-disabled; - image: url('@{img-url}/checkmark_disabled.svg'); + image: url('@{img-url}/@{checkbox-img-disabled}'); } } &:indeterminate { background-color: @checkbox-bg-color-checked; border-color: @checkbox-border-color-checked; - image: url('@{img-url}/checkpartially.svg'); + image: url('@{img-url}/@{checkbox-partially-img}'); &:hover { &:extend(.CheckBox::indicator:hover); } &:disabled { background-color: @checkbox-bg-color-checked-disabled; border-color: @checkbox-border-color-checked-disabled; - image: url('@{img-url}/checkpartially_disabled.svg'); + image: url('@{img-url}/@{checkbox-partially-img-disabled}'); } } &:disabled { @@ -208,7 +212,7 @@ QCheckBox { } /* ----------------------------------------------------------------------------- - Radio Button + RadioButton ----------------------------------------------------------------------------- */ .RadioButton { @@ -225,7 +229,7 @@ QCheckBox { padding: 0; margin: 0; &::indicator { - @size: 11; + @size: 13; width: @size; height: @size; background-color: transparent; diff --git a/stuff/config/qss/Default/less/layouts/filebrowser.less b/stuff/config/qss/Default/less/layouts/filebrowser.less index d9a2069..dba8940 100644 --- a/stuff/config/qss/Default/less/layouts/filebrowser.less +++ b/stuff/config/qss/Default/less/layouts/filebrowser.less @@ -7,7 +7,7 @@ #DirTreeView { background-color: @browser-listview-bg-color; - alternate-background-color: @browser-listview-bg-color-alt; + alternate-background-color: @browser-listview-bg-color; border: 1 solid @accent; border-right: 0; } @@ -16,40 +16,46 @@ ----------------------------------------------------------------------------- */ DvItemViewerPanel { + background-color: @browser-itemview-bg-color; qproperty-TextColor: @text-color; qproperty-AlternateBackground: @browser-itemview-bg-color-alt; qproperty-SelectedTextColor: @hl-text-color; qproperty-FolderTextColor: @browser-folder-text-color; - qproperty-SelectedItemBackground: @hl-bg-color; + qproperty-SelectedItemBackground: @browser-selected-item-bg-color; +} +DvItemViewerTitleBar { + qproperty-ColColor: @browser-itemview-col-color; + qproperty-ColSortedColor: @browser-itemview-col-color-sorted; + qproperty-ColTextColor: @browser-itemview-col-text-color; + qproperty-ColBorderColor: @browser-itemview-col-border-color; } #FileBrowser { - & DvItemViewerPanel { - background-color: @browser-itemview-bg-color; + background-color: @filebrowser-bg-color; + & QLabel { + background-color: transparent; + } + & QToolBar { + background-color: @filebrowser-bg-color; + & QToolButton { + &:extend(.button-tool all); + } } + //& #buttonBar {} #castFrame { border-top: 1 solid @accent; border-right: 1 solid @accent; border-bottom: 1 solid @accent; margin: 0; } - & QToolButton { - padding: 1; - } } -#DvItemViewerButtonBar { - // Placeholder -} +//#DvItemViewerButtonBar {} #LoadLevelFrame { &:extend(.frame all); } -#LoadLevelShowButton { - &:extend(.button-show all); -} - #PsdSettingsGroupBox { &:extend(.frame all); } @@ -77,15 +83,26 @@ StyledTreeView { &:extend(#FileBrowser all); & QToolBar { border-top: 1 solid @accent; + &::separator { + &:horizontal { + margin-left: 2; + margin-right: 0; + } + } } & QToolButton { - margin: 3 1 2 1; + margin: 3 0 2 2; padding: 1; } } -// PR #1104 #CastBrowser { border: 0; margin: 0; + & QSplitter::handle { + height: 4; + } +} +#CastBrowserFolderName { + border-bottom: 1px solid @accent; } diff --git a/stuff/config/qss/Default/less/layouts/filmstrip.less b/stuff/config/qss/Default/less/layouts/filmstrip.less index 6e1d498..bf175be 100644 --- a/stuff/config/qss/Default/less/layouts/filmstrip.less +++ b/stuff/config/qss/Default/less/layouts/filmstrip.less @@ -2,10 +2,16 @@ Level Strip ----------------------------------------------------------------------------- */ +#filmLevelCombo { + margin: -1; +} + #FilmStrip { + qproperty-BGColor: @bg; + margin: 0; + padding: 0; & QComboBox { border-radius: 0; - border-width: 0; & QAbstractItemView { background-color: @menu-bg-color; } diff --git a/stuff/config/qss/Default/less/layouts/format.less b/stuff/config/qss/Default/less/layouts/format.less index 267d330..be97b31 100644 --- a/stuff/config/qss/Default/less/layouts/format.less +++ b/stuff/config/qss/Default/less/layouts/format.less @@ -3,24 +3,19 @@ ----------------------------------------------------------------------------- */ #CleanupSettings { - & QLabel {} & #CleanupSettingsFrame { // space out the boxes vertically // needs margin for good placement + &:extend(.frame all); margin-top: 2; margin-bottom: 4; } & QGroupBox { margin-bottom: 3; } -} - -#CleanupSettingsFrame { - &:extend(.frame all); -} - -#CleanupSettingsShowButton { - &:extend(.button-show all); + & QScrollArea { + &:extend(.frame all); + } } ParamsPage { @@ -55,16 +50,17 @@ ParamsPage { &:extend(.RadioButton::indicator all); background-color: transparent; border: 0; - height: 21; margin: 0; - width: 11; } } #ForceSquaredPixelButton { &:extend(.button-tool all); // Apply a button style - .icon-fsp; // Apply an icon margin: 0; + height: 16; + width: 16; + border: @toolbutton-border-size solid @toolbutton-border-color; + padding: 2; } /* ----------------------------------------------------------------------------- @@ -82,7 +78,3 @@ ParamsPage { #OutputSettingsCameraBox { &:extend(.frame all); } - -#OutputSettingsShowButton { - &:extend(.button-show all); -} diff --git a/stuff/config/qss/Default/less/layouts/mainwindow.less b/stuff/config/qss/Default/less/layouts/mainwindow.less index 486c917..5d5866d 100644 --- a/stuff/config/qss/Default/less/layouts/mainwindow.less +++ b/stuff/config/qss/Default/less/layouts/mainwindow.less @@ -10,10 +10,6 @@ QWidget { } } -TPanel { - // Placeholder -} - QFrame { border: 0; margin: 0; @@ -51,17 +47,14 @@ TPanel { #TopBar { background: @topbar-bg-color; border: 0; - border-bottom: 1 solid @accent; - height: 21; + border-bottom: 1 solid @topbar-border-color; & #EditToolLockButton { background: @topbar-bg-color; spacing: 0; &::indicator { - // inherits from #ToolOptions + // inherits from #ToolOptions window background: none; border: none; - height: 18; - margin: 1 2 0 0; padding-left: 0; padding-right: 0; } @@ -86,7 +79,7 @@ QMenuBar { background-color: @topbar-bg-color; border-left: 1 solid @topbar-bg-color; // Helps to align with QMenu margin: 0; - padding: 3 5; + padding: 3 5 3 5; &:selected { .hl-color-secondary; } @@ -105,14 +98,14 @@ QMenuBar { padding: 0; &::tab { background-color: @rooms-tab-bg-color; - border-top: 1 solid @accent; - border-right: 1 solid @accent; + border-top: 1 solid @tab-border-color; + border-right: 1 solid @tab-border-color; color: @rooms-tab-text-color; - margin: 0 0 0 0; + margin: 0 0 -1 0; padding: 2 8 3 8; &:hover { background-color: @rooms-tab-bg-color-hover; - color: @rooms-text-color-hover; + color: @tab-text-color-hover; } &:selected { background-color: @rooms-tab-bg-color-selected; @@ -125,6 +118,14 @@ QMenuBar { border-right: 1 solid @accent; } } + & QToolButton { + border-left: 2 solid @accent; + border-top: 1 solid @accent; + border-right: 1 solid @accent; + border-bottom: 0; + margin-left: -1; + margin-top: 0; + } } /* ----------------------------------------------------------------------------- @@ -137,22 +138,23 @@ QMenu { color: @menu-text-color; padding: 2 0; &::item { + border: 0; padding: 3 28; &:selected { - .hl-color; + background-color: @menu-item-bg-color-selected; + color: @menu-item-text-color-selected; } &:checked { color: @menu-checkbox-text-color-selected; &:selected { - .hl-color; + background-color: @menu-item-bg-color-selected; + color: @menu-item-text-color-selected; } } &:disabled { background: none; color: @text-color-disabled; &:selected { - background-color: @menu-item-bg-color-disabled-hover; - border-color: transparent; color: @text-color-disabled; /* fix for disabled indicator */ } } @@ -164,10 +166,14 @@ QMenu { } &::icon { border-radius: 2; - margin: 0 0 0 3; - padding: 1; + position: absolute; + left: 5; + padding: 0; + margin: 0; + qproperty-icon: url('@{img-url}/none'); &:checked { - background-color: @hl-bg-color; + background-color: @menu-icon-checked-bg-color; + border: 1 solid @menu-icon-checked-border-color; } } &::indicator { @@ -193,11 +199,9 @@ QMenu { TPanelTitleBar { background-color: @title-bg-color; - border-color: @accent; - border-style: solid; - border-width: 0 0 1 0; - height: 20; - min-height: 20; + border-bottom: @title-border-width solid @title-border-color; + height: 18; + min-height: 18; qproperty-TitleColor: @title-text-color; qproperty-ActiveTitleColor: @title-text-color-active; // QSS only works when pixmaps are set to 'none' @@ -207,6 +211,13 @@ TPanelTitleBar { qproperty-FloatActiveBorderPixmap: url('@{img-url}/@{title-active-border-pixmap}'); } +TPanelTitleBarButton { + qproperty-PressedColor: @title-button-pressed-color; + qproperty-FreezeColor: @title-button-freeze-color; + qproperty-PreviewColor: @title-button-preview-color; + qproperty-OverColor: @title-button-rollover-color; +} + /* ----------------------------------------------------------------------------- Scrollbars ----------------------------------------------------------------------------- */ @@ -219,12 +230,12 @@ QScrollBar { background-color: @scrollbar-bg-color; border: 0; &:horizontal { - height: 16; + height: 15; margin: 0; } &:vertical { margin: 0; - width: 16; + width: 15; } &::handle { @@ -248,7 +259,7 @@ QScrollBar { } &:vertical { background-color: @scrollbar-handle-bg-color; - margin: 16 @scrollbar-handle-margin; + margin: 16 @scrollbar-handle-margin 16 @scrollbar-handle-margin; min-height: 20; } } @@ -287,8 +298,7 @@ QScrollBar { } } - @arrow-pressed: 1 0 0 0; // press effect shortcut - // nudge arrow down 1 on pressed event + @arrow-pressed: 1 0 0 0; // press effect shortcut, nudge arrow down 1 &::up-arrow:vertical { image: url('@{img-url}/scroll-up.svg'); @@ -332,12 +342,12 @@ QScrollBar { } /* ----------------------------------------------------------------------------- - Tool Bars + QToolBar ----------------------------------------------------------------------------- */ -// this applies to QToolBar -// !!!! this is not the #ToolBar window !!!! -// look in [layouts/toolbar] for the window +/* This applies to QToolBar, this is not the #ToolBar window, although the + properties here also apply in the window, you should look in + [layouts/toolbar] if you want window control. */ QToolBar { padding: 0; @@ -363,37 +373,49 @@ QToolBar { QToolButton { &:extend(.button-tool all); + margin-left: 1; + margin-right: 1; + padding: 0; &::menu-indicator { image: none; } &::menu-button { border-image: none; } + &#qt_toolbar_ext_button { + padding: 0; + border: 0; + margin: 0; + qproperty-icon: url('@{img-url}/toolbar_extension_horizontal.png'); + &:hover { + background-color: @button-bg-color-hover; + } + &:pressed { + background-color: @button-bg-color-checked; + } + } } -/* -------------------------------------------------------------------------- */ -/* Scrollable QToolBar Buttons -/* -------------------------------------------------------------------------- */ - .DvScrollWidget { & QPushButton { - background-color: @scrollable-button-bg-color; - border: 0 solid @scrollable-button-border-color; + background-color: @button-bg-color; + border: 0 solid @accent; border-radius: 0; padding: 0; max-width: 16; &:hover { - background-color: @scrollable-button-bg-color-hover; + background-color: @button-bg-color-hover; } &:pressed { - background-color: @scrollable-button-bg-color-pressed; + background-color: @button-bg-color-pressed; } } } DvScrollWidget { - // Can't extend to a Qt selector so we use - // a mixin instead + /* Multiple classes can use the same style as DvScrollWidget, and + since the compiler can't handle extending to Qt names we place the + style in a mixin and extend the name to it instead. */ &:extend(.DvScrollWidget all); } @@ -424,35 +446,119 @@ DvScrollWidget { /* -------------------------------------------------------------------------- */ +/* For the buttons to display a BG color we need to set a blank image, setting + an empty URL solves this. */ #keyFrameNavigator { - background: none; + background: transparent; margin: 0; padding: 0; - & QToolButton { - min-width: 18; - } #PreviousKey { - image: url('@{img-url}/prevkey.svg'); - &:hover { - image: url('@{img-url}/prevkey_over.svg'); - } + margin: 0 2; + padding-right: -1; + width: 20px; + height: 20px; + image: url(''); &:disabled { - image: url('@{img-url}/prevkey_disabled.svg'); + image: url(''); } } #NextKey { - image: url('@{img-url}/nextkey.svg'); - &:hover { - image: url('@{img-url}/nextkey_over.svg'); - } + margin: 0 2; + padding-right: -1; + width: 20px; + height: 20px; + image: url(''); &:disabled { - image: url('@{img-url}/nextkey_disabled.svg'); + image: url(''); } } + #KeyNo, + #KeyPartial, + #KeyTotal { + margin: 0; + padding-right: -1; + width: 20px; + height: 20px; + image: url(''); + &:disabled { + image: url(''); + } + } + #KeyNo { + background-color: @keyframe-off-color; + border: 1 solid @keyframe-off-border-color; + image: url(''); + &:disabled { + image: url(''); + } + &:hover { + background-color: @keyframe-off-color-hover; + border-color: @keyframe-off-border-color-hover; + } + } + #KeyPartial { + background-color: @keyframe-partial-color; + border: 1 solid @keyframe-partial-border-color; + image: url(''); + &:hover { + background-color: @keyframe-partial-color-hover; + border-color: @keyframe-partial-border-color-hover; + } + } + #KeyTotal { + background-color: @keyframe-total-color; + border: 1 solid @keyframe-total-border-color; + &:hover { + background-color: @keyframe-total-color-hover; + border-color: @keyframe-total-border-color-hover; + } + } + & QToolButton#qt_toolbar_ext_button { + // adjust for style + padding-bottom: 3; + border-radius: 2; + } +} + +/* ----------------------------------------------------------------------------- + Tab Containers +----------------------------------------------------------------------------- */ + +#TabBarContainer { + .tab-container; +} + +QTabBar { + background-color: @tabbar-bg-color; +} + +/* ----------------------------------------------------------------------------- + Tabs +----------------------------------------------------------------------------- */ + +QTabBar { + &::tab { + &:extend(.tab-flat all); + } + & QToolButton { + /* Scroll buttons */ + margin: 0; + background-color: @bg; + border-radius: 0; + border: 1 solid @accent; + border-top: 0; + padding: 3 2 2 2; + &:hover, &:pressed { + border-color: @accent; + } + &:disabled { + color: @text-color-disabled; + } + } } /* ----------------------------------------------------------------------------- - Trees + Item Tree ----------------------------------------------------------------------------- */ .treeview { @@ -470,8 +576,7 @@ DvScrollWidget { &::branch { &:adjoins-item { - // Adding a blank URL hides in-built branch design - // where it is not wanted. + /* blank URL hides default Qt branch icons where it is not wanted */ border-image: url(''); } &:has-siblings { @@ -522,52 +627,42 @@ QListView { } /* ----------------------------------------------------------------------------- - Tab Systems ------------------------------------------------------------------------------ */ - -#TabBarContainer { - &:extend(.tab-container); - background-color: @tabbar-bg-color; -} - - -/* ----------------------------------------------------------------------------- Tool Options - Override DvScroll Widget ----------------------------------------------------------------------------- */ #toolOptionsPanel { QPushButton { background-color: @button-bg-color; - border: 1 solid @button-border-color; - border-radius: 2; - color: @button-text-color; - margin: 0; - padding: 0; - &:hover { - background-color: @button-bg-color-hover; - border-color: @button-border-color-hover; - color: @button-text-color-hover; - } - &:pressed { - background-color: @button-bg-color-pressed; - border-color: @button-border-color-pressed; - color: @button-text-color-pressed; - } - &:checked { - background-color: @button-bg-color-checked; - border-color: @button-border-color-checked; - color: @button-text-color-checked; + border: 1 solid @button-border-color; + border-radius: 2; + color: @button-text-color; + margin: 0; + padding: 0; &:hover { - background-color: @button-bg-color-checked-hover; - &:pressed { - background: @button-bg-color-checked-hover-pressed; + background-color: @button-bg-color-hover; + border-color: @button-border-color-hover; + color: @button-text-color-hover; + } + &:pressed { + background-color: @button-bg-color-pressed; + border-color: @button-border-color-pressed; + color: @button-text-color-pressed; + } + &:checked { + background-color: @button-bg-color-checked; + border-color: @button-border-color-checked; + color: @button-text-color-checked; + &:hover { + background-color: @button-bg-color-checked-hover; + &:pressed { + background: @button-bg-color-checked-hover-pressed; + } } } + &:disabled { + background-color: @button-bg-color-disabled; + border-color: @button-border-color-disabled; + color: @button-text-color-disabled; + } } - &:disabled { - background-color: @button-bg-color-disabled; - border-color: @button-border-color-disabled; - color: @button-text-color-disabled; - } - } -} \ No newline at end of file +} diff --git a/stuff/config/qss/Default/less/layouts/misc.less b/stuff/config/qss/Default/less/layouts/misc.less index b22dbc9..d421d22 100644 --- a/stuff/config/qss/Default/less/layouts/misc.less +++ b/stuff/config/qss/Default/less/layouts/misc.less @@ -8,9 +8,7 @@ PencilTestPopup { allows for filling half of a 1024 screen */ } -#HistoryPanel { - // Placeholder -} +// #HistoryPanel {} #MatchLineButton { background-color: lighten(@bg, 15%); @@ -51,17 +49,7 @@ PencilTestPopup { } } -#StopMotionTabBar { - &::tab { - &:extend(.tab-flat all); - &::first { - // add a border to first item on - // the left side due to the spacer - // coded in the cpp file - border-left: 1 solid @accent; - } - } -} +// #StopMotionTabBar {} /* ----------------------------------------------------------------------------- Unknowns + Legacy diff --git a/stuff/config/qss/Default/less/layouts/palette.less b/stuff/config/qss/Default/less/layouts/palette.less index a892cbc..7dfeed6 100644 --- a/stuff/config/qss/Default/less/layouts/palette.less +++ b/stuff/config/qss/Default/less/layouts/palette.less @@ -4,28 +4,18 @@ #StyleEditor { & #TabBarContainer { - margin-left: -5; // reset left edge margin + margin-left: -5px; } & #bottomWidget { border-top: 1 solid @accent; padding: 3 2 8 3; & QPushButton { - // override above margin reset padding: 3 5; } } } -#StyleEditorTabBar { - padding: 0; - margin: 0; - &::tab { - &:extend(.tab-flat all); - &:first { - border-left: 1 solid @accent; - } - } -} +//#StyleEditorTabBar {} #HexagonalColorWheel { qproperty-BGColor: @bg; @@ -34,7 +24,6 @@ /* -------------------------------------------------------------------------- */ /* Horizontal QSlider */ - #colorSlider { &::groove:horizontal { height: 1; @@ -53,7 +42,7 @@ image-position: center center; min-height: 16; padding: 0; - min-width: 18; + min-width: 10; &:hover { &:extend(.button-tool:hover); } @@ -77,10 +66,8 @@ } } -#colorSliderLabel, -#colorSliderField { - // Placeholder -} +//#colorSliderLabel, +//#colorSliderField {} /* ----------------------------------------------------------------------------- Palette Viewer / Studio Palette @@ -109,33 +96,45 @@ PaletteViewer { } } & QToolBar { + background: transparent; &::separator:horizontal { margin: 0; // very compact space so we remove margin } & QToolButton { - &:extend(.button-flat all); - margin: 0; - padding: 2 0 2 0; - + &:extend(.button-flat all); // use flat style for button + padding: 0; + padding-right: -2; + padding-left: -1; + } + & #keyFrameNavigator { + & #NextKey, + #PreviousKey, + #KeyNo, + #KeyPartial, + #KeyTotal { + // Adjust for pixel perfect alignment + max-width: 20px; + max-height: 20px; + padding: 1; + border: 0; + margin: 0; + } } } } -#StudioPalette { - // placeholder -} - -#PaletteTabBar { - &::tab { - &:extend(.tab-flat all); - padding-bottom: 4; // allow QToolBar's bottom border to show - // since default tab padding is 3 (vert) - // this adds 1 extra (3+1) - } -} +// #StudioPalette {} #PageViewer { qproperty-TextColor: @text-color; + qproperty-SelectedBorderColor: @palette-SelectedBorderColor; + qproperty-NumpadShortcutBgColor: @palette-NumpadShortcutBgColor; + qproperty-NumpadShortcutBorderColor: @palette-NumpadShortcutBorderColor; + + qproperty-SeparatorColor: @palette-SeparatorColor; + qproperty-CurrentCellColor: @palette-CurrentCellColor; + qproperty-SelectedCellColor: @palette-SelectedCellColor; + qproperty-ListNumpadShortcutBorderColor: @palette-ListNumpadShortcutBorderColor; } #PaletteLockButton { diff --git a/stuff/config/qss/Default/less/layouts/popups.less b/stuff/config/qss/Default/less/layouts/popups.less index 89f3267..44f9180 100644 --- a/stuff/config/qss/Default/less/layouts/popups.less +++ b/stuff/config/qss/Default/less/layouts/popups.less @@ -6,7 +6,7 @@ QDialog { background-color: @bg; & #dialogButtonFrame { background-color: @dialogButtonFrame-bg-color; - border-top: 1 solid @dialogButtonFrame-border-color; + border-top: 1 solid @accent; & QPushButton { border-color: @button-dialog-border-color; outline: 0; @@ -52,7 +52,6 @@ QDialog { padding: 3; &:hover { .hl-color-secondary; - background-color: @prefs-tree-hl-color; } &:selected { .hl-color; @@ -92,24 +91,20 @@ ProjectPopup { PencilTestPopup / CameraCapture Window ----------------------------------------------------------------------------- */ -PencilTestPopup { -} +//PencilTestPopup {} #GearButton { - qproperty-icon: url('@{img-url}/gear.svg'); &::menu-indicator{ - image:""; + image: url(""); } } #SubfolderButton { - qproperty-icon: url('@{img-url}/subfolder.svg'); - padding-left: 6px; - padding-right: 6px; + padding-left: 5px; + padding-right: 5px; } #SubcameraButton { - qproperty-icon: url('@{img-url}/subcamera.svg'); - padding-left: 6px; - padding-right: 6px; + padding-left: 5px; + padding-right: 5px; } diff --git a/stuff/config/qss/Default/less/layouts/schematic.less b/stuff/config/qss/Default/less/layouts/schematic.less index 72cc359..8bd0d51 100644 --- a/stuff/config/qss/Default/less/layouts/schematic.less +++ b/stuff/config/qss/Default/less/layouts/schematic.less @@ -6,40 +6,48 @@ SchematicViewer { qproperty-TextColor: @schematic-text-color; qproperty-VerticalLineColor: @schematic-VerticalLine-color; - qproperty-LevelColumnColor: @schematic-LevelColumn-color; - qproperty-VectorColumnColor: @schematic-VectorColumn-color; - qproperty-ChildColumnColor: @schematic-ChildColumn-color; - qproperty-FullcolorColumnColor: @schematic-FullColorColumn-color; - qproperty-FxColumnColor: @schematic-FxColumn-color; - qproperty-PaletteColumnColor: @schematic-PaletteColumn-color; - qproperty-MeshColumnColor: @schematic-MeshColumn-color; - qproperty-ReferenceColumnColor: @schematic-ReferenceColumn-color; - - qproperty-TableColor: @schematic-TableColor; - qproperty-ActiveCameraColor: @schematic-ActiveCameraColor; - qproperty-OtherCameraColor: @schematic-OtherCameraColor; - qproperty-GroupColor: @schematic-GroupColor; - qproperty-PegColor: @schematic-PegColor; - qproperty-SplineColor: @schematic-SplineColor; - qproperty-ActiveOutputColor: @schematic-ActiveOutputcolor; - qproperty-OtherOutputColor: @schematic-OtherOutputcolor; - qproperty-XsheetColor: @schematic-XsheetColor; - qproperty-NormalFxColor: @schematic-NormalFxColor; - qproperty-MacroFxColor: @schematic-MacroFxColor; - qproperty-ImageAdjustFxColor: @schematic-ImageAdjustFxColor; - qproperty-LayerBlendingFxColor: @schematic-LayerBlendingFxColor; - qproperty-MatteFxColor: @schematic-MatteFxColor; + qproperty-LevelColumnColor: @xsheet-LevelColumn-color; + qproperty-VectorColumnColor: @xsheet-VectorColumn-color; + qproperty-ChildColumnColor: @xsheet-ChildColumn-color; + qproperty-FullcolorColumnColor: @xsheet-FullColorColumn-color; + qproperty-FxColumnColor: @xsheet-FxColumn-color; + qproperty-PaletteColumnColor: @xsheet-PaletteColumn-color; + qproperty-MeshColumnColor: @xsheet-MeshColumn-color; + qproperty-ReferenceColumnColor: @xsheet-ReferenceColumn-color; + + qproperty-TableColor: saturate(lighten(@schematic-TableColor, @nodeLightness), @nodeSaturation); + qproperty-ActiveCameraColor: saturate(lighten(@schematic-ActiveCameraColor, @nodeLightness), @nodeSaturation); + qproperty-OtherCameraColor: saturate(lighten(@schematic-OtherCameraColor, @nodeLightness), @nodeSaturation); + qproperty-GroupColor: saturate(lighten(@schematic-GroupColor, @nodeLightness), @nodeSaturation); + qproperty-PegColor: saturate(lighten(@schematic-PegColor, @nodeLightness), @nodeSaturation); + qproperty-SplineColor: saturate(lighten(@schematic-SplineColor, @nodeLightness), @nodeSaturation); + qproperty-ActiveOutputColor: saturate(lighten(@schematic-ActiveOutputcolor, @nodeLightness), @nodeSaturation); + qproperty-OtherOutputColor: saturate(lighten(@schematic-OtherOutputcolor, @nodeLightness), @nodeSaturation); + qproperty-XsheetColor: saturate(lighten(@schematic-XsheetColor, @nodeLightness), @nodeSaturation); + qproperty-NormalFxColor: saturate(lighten(@schematic-NormalFxColor, @nodeLightness), @nodeSaturation); + qproperty-MacroFxColor: saturate(lighten(@schematic-MacroFxColor, @nodeLightness), @nodeSaturation); + qproperty-ImageAdjustFxColor: saturate(lighten(@schematic-ImageAdjustFxColor, @nodeLightness), @nodeSaturation); + qproperty-LayerBlendingFxColor: saturate(lighten(@schematic-LayerBlendingFxColor, @nodeLightness), @nodeSaturation); + qproperty-MatteFxColor: saturate(lighten(@schematic-MatteFxColor, @nodeLightness), @nodeSaturation); qproperty-SchematicPreviewButtonBgOnColor: @schematic-PreviewButtonBgOn-color; - qproperty-SchematicPreviewButtonOnImage: url('@{img-url}/@{schematic-PreviewButtonOnImage}'); + qproperty-SchematicPreviewButtonOnImage: url('@{img-url}/schematic_preview_on.svg'); qproperty-SchematicPreviewButtonBgOffColor: @schematic-PreviewButtonBgOff-color; - qproperty-SchematicPreviewButtonOffImage: url('@{img-url}/@{schematic-PreviewButtonOffImage}'); + qproperty-SchematicPreviewButtonOffImage: url('@{img-url}/schematic_preview_off.svg'); qproperty-SchematicCamstandButtonBgOnColor: @schematic-CamstandButtonBgOn-color; - qproperty-SchematicCamstandButtonOnImage: url('@{img-url}/@{schematic-CamstandButtonOnImage}'); - qproperty-SchematicCamstandButtonTranspImage: url('@{img-url}/@{schematic-CamstandButtonTranspImage}'); + qproperty-SchematicCamstandButtonOnImage: url('@{img-url}/schematic_table_on.svg'); + qproperty-SchematicCamstandButtonTranspImage: url('@{img-url}/schematic_table_transp.svg'); qproperty-SchematicCamstandButtonBgOffColor: @schematic-CamstandButtonBgOff-color; - qproperty-SchematicCamstandButtonOffImage: url('@{img-url}/@{schematic-CamstandButtonOffImage}'); + qproperty-SchematicCamstandButtonOffImage: url('@{img-url}/schematic_table_off.svg'); + + // Link line and selected colors + qproperty-SelectedBorderColor: @schematic-SelectedBorderColor; + + qproperty-LinkColor: @schematic-LinkColor; + qproperty-SelectedLinkColor: @schematic-SelectedLinkColor; + qproperty-MotionPathLinkColor: @schematic-MotionPathLinkColor; + qproperty-MotionPathSelectedLinkColor: @schematic-MotionPathSelectedLinkColor; } /* ----------------------------------------------------------------------------- @@ -51,14 +59,17 @@ SchematicViewer { border: 0; margin: 0; padding: 0; + padding-left: 1; & QToolBar { &::separator:horizontal { margin: 0; + margin-right: 1; } & QToolButton { - &:extend(.button-tool all); - padding: 0; - margin: 2; + padding: -2; + margin-right: 2; + margin-top: 2; + margin-bottom: 2; } } } @@ -72,27 +83,29 @@ SchematicViewer { FX Settings ----------------------------------------------------------------------------- */ -#FxSettingsTabBar { - &::tab { - &:extend(.tab-flat all); - border-top: 1 solid @accent; - &::first, - &::only-one { - border-left: 1 solid @accent; - } - } -} +//#FxSettingsTabBar {} FxSettings { & QToolBar { + border: 1 1 0 1 solid @accent; + min-height: 19; // prevent shrinking + padding: 3 0; border-top: 1 solid @accent; - border-right: 1 solid @accent; border-left: 1 solid @accent; - min-height: 23; // prevent shrinking - padding: 3 0; + border-right: 1 solid @accent; + border-top-left-radius: 2; + border-top-right-radius: 2; + margin-bottom: -1; & QToolBar { border: 0; } + & QToolButton { + margin: 0; + padding: 0; + width: 22; + padding-right: -2; + padding-bottom: -1; + } } } @@ -102,9 +115,7 @@ FxSettings { #FxSettingsHelpButton { background-color: @schematic-help-button-bg-color; - color: #000; - // remove vertical padding - // otherwise text gets clipped + border: 0; padding-top: 0; padding-bottom: 0; &:hover { @@ -112,10 +123,27 @@ FxSettings { } } -#FxSettingsPreviewShowButton { - &:extend(.button-show all); -} - ChannelBar { qproperty-TextColor: @text-color; -} \ No newline at end of file +} + +/* Keyframe Button Colors +----------------------------------------------------------------------------- */ + +ParamFieldKeyToggle { + // no key + qproperty-KeyOffColor: @keyframe-off-color; + qproperty-KeyBorderOffColor: @keyframe-off-border-color; + // modified + qproperty-KeyModifiedColor: @keyframe-modified-color; + qproperty-KeyBorderModifiedColor: @keyframe-modified-border-color; + // key set / on + qproperty-KeyOnColor: @keyframe-total-color; + qproperty-KeyBorderOnColor: @keyframe-total-border-color; + // inbetween + qproperty-KeyInbetweenColor: @keyframe-inbetween-color; + qproperty-KeyBorderInbetweenColor: @keyframe-inbetween-border-color; + // highlight + qproperty-KeyHighlightColor: @keyframe-highlight-color; + qproperty-KeyBorderHighlightColor: @keyframe-highlight-border-color; +} diff --git a/stuff/config/qss/Default/less/layouts/toolbar.less b/stuff/config/qss/Default/less/layouts/toolbar.less index 6e9d168..a7262ce 100644 --- a/stuff/config/qss/Default/less/layouts/toolbar.less +++ b/stuff/config/qss/Default/less/layouts/toolbar.less @@ -1,39 +1,58 @@ /* ----------------------------------------------------------------------------- - Tool Bar + Tools Window ----------------------------------------------------------------------------- */ #ToolBar { & QToolBar { - padding-left: 2; + padding-left: 3px; + } + & QToolButton { + padding: 1 0 0 1; + margin-top: 1; + margin-bottom: 1; + } + & QToolButton#qt_toolbar_ext_button { + qproperty-icon: url('@{img-url}/toolbar_extension_vertical.png'); + padding-bottom: 1; + &:hover { + background-color: @button-bg-color-hover; + } + &:pressed { + background-color: @toolbutton-bg-color-pressed; + } + } +} + +#expandButton { + &:checked { + background-color: transparent; + border-color: transparent; + color: @text-color; + &:hover { + background-color: @toolbutton-bg-color-hover; + border-color: @toolbutton-border-color-hover; + } + &:pressed { + background-color: @toolbutton-bg-color-pressed; + border-color: @toolbutton-border-color-pressed; + } } } /* ----------------------------------------------------------------------------- - Tool Options + Tool Options Window ----------------------------------------------------------------------------- */ - #ToolOptions { & TPanelTitleBar { - border-right: 1 solid @accent; border-bottom: 0; + border-right: @title-border-width solid @title-border-color; + max-width: 18; } } -#CommandBar { - & TPanelTitleBar { - border-right: 1 solid @accent; - border-bottom: 0; - } -} - -IconViewField { - qproperty-ThicknessPixmap: url("@{img-url}/selectiontool_thickness.svg"); -} - #EditToolLockButton { - // also applies to room tab lock icon - // (layouts/mainwindow) + // also applies to room tab lock icon (layouts/mainwindow) spacing: 0; &:hover { background: none; @@ -79,40 +98,65 @@ PopupButton { QToolBar#MediumPaddingToolBar { //Schematic Toolbars & QToolButton { - padding-left: 3; - padding-right: 3; + padding-left: 2; + padding-right: 1; } } QToolBar#WidePaddingToolBar { //FrameNavigator & QToolButton { - padding-left: 6; - padding-right: 6; + padding-left: 2; + padding-right: 1; } } +/* XSheet Toolbar & Command Bar +----------------------------------------------------------------------------- */ + +#XSheetToolbar { + padding: 0; + margin: 0; + border-bottom: 1 solid @accent; + & QToolButton#qt_toolbar_ext_button { + margin: 0; + margin-top: 3; + } + & QToolButton { + padding: 0; + padding-right: -1; + padding-bottom: -1; + min-height: 20px; + margin-left: 2; + margin-right: 0; + } + &::separator:horizontal { + margin: 0 0 0 2; + } +} + #CommandBar { margin: 0; padding: 0; border: 0; &::separator:horizontal { - margin-right: 3; - margin-left: 3; + margin-right: 0; + margin-left: 2; } -} - -#expandButton { - &:checked { - background-color: transparent; - border-color: transparent; - color: @text-color; - &:hover { - background-color: @toolbutton-bg-color-hover; - border-color: @toolbutton-border-color-hover; - } - &:pressed { - background-color: @toolbutton-bg-color-pressed; - border-color: @toolbutton-border-color-pressed; - } + & QToolButton { + margin: 0 0 0 2; + padding: 0; + padding-top: -1; + padding-left: -0; + padding-right: -1; + padding-bottom: -0; + min-height: 20px; + } + & QToolButton#qt_toolbar_ext_button { + margin-top: 1; + } + & TPanelTitleBar { + border-right: @title-border-width solid @title-border-color; + border-bottom: 0; + max-width: 18; } } diff --git a/stuff/config/qss/Default/less/layouts/viewer.less b/stuff/config/qss/Default/less/layouts/viewer.less index b2d26a6..a2d868d 100644 --- a/stuff/config/qss/Default/less/layouts/viewer.less +++ b/stuff/config/qss/Default/less/layouts/viewer.less @@ -6,12 +6,24 @@ & Toolbar { border-bottom: 1 solid @accent; // accent line against viewport &::separator:horizontal { - // workaround for first tool button - // which helps with alignment margin: 0 0 0 2; + padding: 0; } & QToolButton { - margin: 2 0 3 2; + margin: 0; + margin-bottom: 3; // Add 1px more margin here to allow the border-bottom + // of ToolBar to show. + margin-left: 2; + margin-right: 0; + margin-top: 2; + padding-top: 1; + padding-left: 1; + padding-right: 0; + padding-bottom: 0; + } + & QToolButton#qt_toolbar_ext_button { + margin-bottom: 1; + qproperty-icon: url('@{img-url}/toolbar_extension_horizontal.png'); } } } @@ -25,7 +37,7 @@ FlipBook { & #ToolBarContainer { background-color: transparent; - border-top: 2 solid @accent; + border-top: 1 solid @accent; border-bottom: 1 solid @accent; padding-right: -1; // hides right border on #ScrollRightButton when // fps slider is disabled @@ -47,14 +59,33 @@ FlipBook { QToolBar#FlipConsolePlayToolBar { &::separator:horizontal { - margin: 0 3; + border-color: @accent; + margin: 0 1 0 1; } & QToolButton { - margin-top: 2; - margin-bottom: 2; - height: 16; - padding-left: 1; + padding-left: 0; + padding-top: -1; + padding-right: -1; + padding-bottom: -2; + margin: 2 1 2 1; + } + + #KeyNo, + #KeyPartial, + #KeyTotal, + #PreviousKey, + #NextKey { padding-right: 1; + padding-left: 1; + max-width: 20px; + max-height: 20px; + padding-bottom: 0; + padding-top: 0; + } + + #PreviousKey, + #NextKey { + margin: 0 2; } } @@ -115,6 +146,10 @@ QToolBar#FlipConsolePlayToolBar { } } +FlipConsole { + qproperty-FpsFieldColor: @input-bg-color; +} + FlipSlider { qproperty-PBHeight: 15; @@ -138,8 +173,23 @@ FlipSlider { Ruler { qproperty-ParentBGColor: @viewer-ruler-bg-color; qproperty-ScaleColor: @viewer-ruler-scale-color; + qproperty-HandleColor: @viewer-ruler-handle-color; + qproperty-HandleDragColor: @viewer-ruler-handle-drag-color; + qproperty-BorderColor: @viewer-ruler-border-color; } #RulerToolOptionValues { color: @viewer-ruler-ToolOptionValues-color; } + +#enableBlankFrameButton { + &:extend(.Button all); + background-color: transparent; + border-color: transparent; + color: @text-color-disabled; + padding: 0; + font-weight: bold; + &:checked { + border-width: 2px; + } +} diff --git a/stuff/config/qss/Default/less/layouts/xsheet.less b/stuff/config/qss/Default/less/layouts/xsheet.less index fae1a5f..a01cdde 100644 --- a/stuff/config/qss/Default/less/layouts/xsheet.less +++ b/stuff/config/qss/Default/less/layouts/xsheet.less @@ -21,6 +21,23 @@ } } +#XsheetCellArea { + & QLineEdit { + margin-top: 1; // make it align with cell-selection box + &:focus { + border-radius: 0; + border-width: 2; // boost the contrast + border-left-width: 2; // make it align with cell-selection box + border-color: @xsheet-CellFocus-color; + background-color: @xsheet-CellArea-bg-color-focus; + } + } +} + +#RenameCellField { + padding-right: 3; +} + /* xsheetColumnHeader (Context Menus) ----------------------------------------------------------------------------- */ @@ -46,11 +63,16 @@ color: @xsheet-notes-text-color; } +#DvMiniToolBar { + border: 1 solid @accent; +} + /* XSheet Spreadsheet ----------------------------------------------------------------------------- */ XsheetViewer { qproperty-TextColor: @xsheet-text-color; + qproperty-ErrorTextColor: @xsheet-error-text-color; qproperty-BGColor: @xsheet-bg-color; qproperty-LightLineColor: @xsheet-LightLine-color; qproperty-MarkerLineColor: @xsheet-MarkerLine-color; @@ -59,134 +81,126 @@ XsheetViewer { qproperty-PreviewFrameTextColor: @xsheet-PreviewFrameText-color; qproperty-CurrentRowBgColor: @xsheet-CurrentRowBG-color; qproperty-OnionSkinAreaBgColor: @xsheet-OnionSkinAreaBG-color; - + qproperty-CellFocusColor: @xsheet-CellFocus-color; + qproperty-ColumnIconLineColor: @xsheet-ColumnIconLine-color; qproperty-EmptyColumnHeadColor: @xsheet-EmptyColumnHead-color; + qproperty-ColumnHeadPastelizer: @xsheet-ColumnHeadPastelizer-color; + qproperty-SelectedColumnHead: @xsheet-SelectedColumnHead-color; + qproperty-PlayRangeColor: @xsheet-PlayRange-Color; + + qproperty-FoldedColumnBGColor: @xsheet-FoldedColumnBG-color; + qproperty-FoldedColumnLineColor: @xsheet-FoldedColumnLine-color; qproperty-EmptyCellColor: @xsheet-EmptyCell-color; - qproperty-NotEmptyColumnColor: @xsheet-NotEmptyColumn-color; + qproperty-NotEmptyColumnColor: @xsheet-NotEmptyColumn-color; // Not empty "cell" qproperty-SelectedEmptyCellColor: @xsheet-SelectedEmptyCell-color; + // Level Type Colors qproperty-LevelColumnColor: @xsheet-LevelColumn-color; - qproperty-LevelColumnBorderColor: @xsheet-LevelColumnBorder-color; - qproperty-SelectedLevelColumnColor: @xsheet-SelectedLevelColumn-color; + qproperty-LevelColumnBorderColor: desaturate(darken(@xsheet-LevelColumn-color, @columnBorderDarkness), @columnBorderDesaturation); + qproperty-SelectedLevelColumnColor: mix(shade(@xsheet-LevelColumn-color, @cellHighlightLightness), @cellHighlightTintColor, @cellHighlightTintAmount); qproperty-VectorColumnColor: @xsheet-VectorColumn-color; - qproperty-VectorColumnBorderColor: @xsheet-VectorColumnBorder-color; - qproperty-SelectedVectorColumnColor: @xsheet-SelectedVectorColumn-color; + qproperty-VectorColumnBorderColor: desaturate(darken(@xsheet-VectorColumn-color, @columnBorderDarkness), @columnBorderDesaturation); + qproperty-SelectedVectorColumnColor: mix(shade(@xsheet-VectorColumn-color, @cellHighlightLightness), @cellHighlightTintColor, @cellHighlightTintAmount); qproperty-ChildColumnColor: @xsheet-ChildColumn-color; - qproperty-ChildColumnBorderColor: @xsheet-ChildColumnBorder-color; - qproperty-SelectedChildColumnColor: @xsheet-SelectedChildColumn-color; + qproperty-ChildColumnBorderColor: desaturate(darken(@xsheet-ChildColumn-color, @columnBorderDarkness), @columnBorderDesaturation); + qproperty-SelectedChildColumnColor: mix(shade(@xsheet-ChildColumn-color, @cellHighlightLightness), @cellHighlightTintColor, @cellHighlightTintAmount); qproperty-FullcolorColumnColor: @xsheet-FullColorColumn-color; - qproperty-FullcolorColumnBorderColor: @xsheet-FullColorColumnBorder-color; - qproperty-SelectedFullcolorColumnColor: @xsheet-SelectedFullColorColumn-color; + qproperty-FullcolorColumnBorderColor: desaturate(darken(@xsheet-FullColorColumn-color, @columnBorderDarkness), @columnBorderDesaturation); + qproperty-SelectedFullcolorColumnColor: mix(shade(@xsheet-FullColorColumn-color, @cellHighlightLightness), @cellHighlightTintColor, @cellHighlightTintAmount); qproperty-FxColumnColor: @xsheet-FxColumn-color; - qproperty-FxColumnBorderColor: @xsheet-FxColumnBorder-color; - qproperty-SelectedFxColumnColor: @xsheet-SelectedFxColumn-color; + qproperty-FxColumnBorderColor: desaturate(darken(@xsheet-FxColumn-color, @columnBorderDarkness), @columnBorderDesaturation); + qproperty-SelectedFxColumnColor: mix(shade(@xsheet-FxColumn-color, @cellHighlightLightness), @cellHighlightTintColor, @cellHighlightTintAmount); qproperty-ReferenceColumnColor: @xsheet-ReferenceColumn-color; - qproperty-ReferenceColumnBorderColor: @xsheet-ReferenceColumnBorder-color; - qproperty-SelectedReferenceColumnColor: @xsheet-SelectedReferenceColumn-color; + qproperty-ReferenceColumnBorderColor: desaturate(darken(@xsheet-ReferenceColumn-color, @columnBorderDarkness), @columnBorderDesaturation); + qproperty-SelectedReferenceColumnColor: mix(shade(@xsheet-ReferenceColumn-color, @cellHighlightLightness), @cellHighlightTintColor, @cellHighlightTintAmount); qproperty-PaletteColumnColor: @xsheet-PaletteColumn-color; - qproperty-PaletteColumnBorderColor: @xsheet-PaletteColumnBorder-color; - qproperty-SelectedPaletteColumnColor: @xsheet-SelectedPaletteColumn-color; + qproperty-PaletteColumnBorderColor: desaturate(darken(@xsheet-PaletteColumn-color, @columnBorderDarkness), @columnBorderDesaturation); + qproperty-SelectedPaletteColumnColor: mix(shade(@xsheet-PaletteColumn-color, @cellHighlightLightness), @cellHighlightTintColor, @cellHighlightTintAmount); qproperty-MeshColumnColor: @xsheet-MeshColumn-color; - qproperty-MeshColumnBorderColor: @xsheet-MeshColumnBorder-color; - qproperty-SelectedMeshColumnColor: @xsheet-SelectedMeshColumn-color; + qproperty-MeshColumnBorderColor: desaturate(darken(@xsheet-MeshColumn-color, @columnBorderDarkness), @columnBorderDesaturation); + qproperty-SelectedMeshColumnColor: mix(shade(@xsheet-MeshColumn-color, @cellHighlightLightness), @cellHighlightTintColor, @cellHighlightTintAmount); qproperty-SoundTextColumnColor: @xsheet-SoundTextColumn-color; - qproperty-SoundTextColumnBorderColor: @xsheet-SoundTextColumnBorder-color; - qproperty-SelectedSoundTextColumnColor: @xsheet-SelectedSoundTextColumn-color; + qproperty-SoundTextColumnBorderColor: desaturate(darken(@xsheet-SoundTextColumn-color, @columnBorderDarkness), @columnBorderDesaturation); + qproperty-SelectedSoundTextColumnColor: mix(shade(@xsheet-SoundTextColumn-color, @cellHighlightLightness), @cellHighlightTintColor, @cellHighlightTintAmount); qproperty-SoundColumnColor: @xsheet-SoundColumn-color; - qproperty-SoundColumnBorderColor: @xsheet-SoundColumnBorder-color; - qproperty-SelectedSoundColumnColor: @xsheet-SelectedSoundColumn-color; + qproperty-SoundColumnBorderColor: desaturate(darken(@xsheet-SoundColumn-color, @columnBorderDarkness), @columnBorderDesaturation); + qproperty-SelectedSoundColumnColor: mix(shade(@xsheet-SoundColumn-color, @cellHighlightLightness), @cellHighlightTintColor, @cellHighlightTintAmount); qproperty-SoundColumnHlColor: @xsheet-SoundColumnHL-color; qproperty-SoundColumnTrackColor: @xsheet-SoundColumnTrack-color; - - qproperty-ColumnHeadPastelizer: @xsheet-ColumnHeadPastelizer-color; - qproperty-SelectedColumnHead: @xsheet-SelectedColumnHead-color; - qproperty-LightLightBGColor: @xsheet-LightLightBG-color; + qproperty-ActiveCameraColor: @xsheet-ActiveCamera-color; + qproperty-SelectedActiveCameraColor: mix(shade(@xsheet-ActiveCamera-color, @cellHighlightLightness), @cellHighlightTintColor, @cellHighlightTintAmount); + qproperty-OtherCameraColor: @xsheet-OtherCamera-color; + qproperty-SelectedOtherCameraColor: mix(shade(@xsheet-OtherCamera-color, @cellHighlightLightness), @cellHighlightTintColor, @cellHighlightTintAmount); + + qproperty-LightLightBGColor: @function-LightLightBG-color; qproperty-LightBGColor: @xsheet-LightBG-color; qproperty-DarkBGColor: @xsheet-DarkBG-color; qproperty-DarkLineColor: @xsheet-DarkLine-color; + // Column Header: Vertical + qproperty-TimelineIconLineColor: @timeline-IconLine-color; qproperty-XsheetColumnNameBgColor: @xsheet-ColumnNameBg-color; qproperty-XsheetDragBarHighlightColor: @xsheet-DragBarHighlight-color; qproperty-XsheetPreviewButtonBgOnColor: @xsheet-PreviewButtonBgOn-color; - qproperty-XsheetPreviewButtonOnImage: url('@{img-url}/@{xsheet-PreviewButtonOnImage}'); - qproperty-XsheetPreviewButtonBgOffColor: @xsheet-PreviewButtonBgOff-color; - qproperty-XsheetPreviewButtonOffImage: url('@{img-url}/@{xsheet-PreviewButtonOffImage}'); + qproperty-XsheetPreviewButtonOnImage: url('@{img-url}/x_prev_eye_on.svg'); + qproperty-XsheetPreviewButtonBgOffColor: transparent; + qproperty-XsheetPreviewButtonOffImage: url('@{img-url}/x_prev_eye_off.svg'); qproperty-XsheetCamstandButtonBgOnColor: @xsheet-CamstandButtonBgOn-color; - qproperty-XsheetCamstandButtonOnImage: url('@{img-url}/@{xsheet-CamstandButtonOnImage}'); - qproperty-XsheetCamstandButtonTranspImage: url('@{img-url}/@{xsheet-CamstandButtonTranspImage}'); - qproperty-XsheetCamstandButtonBgOffColor: @xsheet-CamstandButtonBgOff-color; - qproperty-XsheetCamstandButtonOffImage: url('@{img-url}/@{xsheet-CamstandButtonOffImage}'); + qproperty-XsheetCamstandButtonOnImage: url('@{img-url}/x_table_view_on.svg'); + qproperty-XsheetCamstandButtonTranspImage: url('@{img-url}/x_table_view_transp.svg'); + qproperty-XsheetCamstandButtonBgOffColor: transparent; + qproperty-XsheetCamstandButtonOffImage: url('@{img-url}/x_table_view_off.svg'); qproperty-XsheetLockButtonBgOnColor: @xsheet-LockButtonBgOn-color; - qproperty-XsheetLockButtonOnImage: url('@{img-url}/@{xsheet-LockButtonOnImage}'); - qproperty-XsheetLockButtonBgOffColor: @xsheet-LockButtonBgOff-color; - qproperty-XsheetLockButtonOffImage: url('@{img-url}/@{xsheet-LockButtonOffImage}'); + qproperty-XsheetLockButtonOnImage: url('@{img-url}/x_lock_on.svg'); + qproperty-XsheetLockButtonBgOffColor: transparent; + qproperty-XsheetLockButtonOffImage: url('@{img-url}/x_lock_off.svg'); qproperty-XsheetConfigButtonBgColor: @xsheet-ConfigButtonBg-color; - qproperty-XsheetConfigButtonImage: url('@{img-url}/@{xsheet-ConfigButtonImage}'); - - qproperty-TimelinePreviewButtonBgOnColor: @timeline-PreviewButtonBgOn-color; - qproperty-TimelinePreviewButtonOnImage: url('@{img-url}/@{timeline-PreviewButtonOnImage}'); - qproperty-TimelinePreviewButtonBgOffColor: @timeline-PreviewButtonBgOff-color; - qproperty-TimelinePreviewButtonOffImage: url('@{img-url}/@{timeline-PreviewButtonOffImage}'); - - qproperty-TimelineCamstandButtonBgOnColor: @timeline-CamstandButtonBgOn-color; - qproperty-TimelineCamstandButtonOnImage: url('@{img-url}/@{timeline-CamstandButtonOnImage}'); - qproperty-TimelineCamstandButtonTranspImage: url('@{img-url}/@{timeline-CamstandButtonTranspImage}'); - qproperty-TimelineCamstandButtonBgOffColor: @timeline-CamstandButtonBgOff-color; - qproperty-TimelineCamstandButtonOffImage: url('@{img-url}/@{timeline-CamstandButtonOffImage}'); - - qproperty-TimelineLockButtonBgOnColor: @timeline-LockButtonBgOn-color; - qproperty-TimelineLockButtonOnImage: url('@{img-url}/@{timeline-LockButtonOnImage}'); - qproperty-TimelineLockButtonBgOffColor: @timeline-LockButtonBgOff-color; - qproperty-TimelineLockButtonOffImage: url('@{img-url}/@{timeline-LockButtonOffImage}'); - - qproperty-TimelineConfigButtonBgColor: @timeline-ConfigButtonBg-color; - qproperty-TimelineConfigButtonImage: url('@{img-url}/@{timeline-ConfigButtonImage}'); - - qproperty-LayerHeaderPreviewImage: url('@{img-url}/@{layerheader-PreviewImage}'); - qproperty-LayerHeaderPreviewOverImage: url('@{img-url}/@{layerheader-PreviewOverImage}'); - qproperty-LayerHeaderCamstandImage: url('@{img-url}/@{layerheader-CamstandImage}'); - qproperty-LayerHeaderCamstandOverImage: url('@{img-url}/@{layerheader-CamstandOverImage}'); - qproperty-LayerHeaderLockImage: url('@{img-url}/@{layerheader-LockImage}'); - qproperty-LayerHeaderLockOverImage: url('@{img-url}/@{layerheader-LockOverImage}'); - - qproperty-ActiveCameraColor: @xsheet-ActiveCamera-color; - qproperty-SelectedActiveCameraColor: @xsheet-SelectedActiveCamera-color; - - qproperty-OtherCameraColor: @xsheet-OtherCamera-color; - qproperty-SelectedOtherCameraColor: @xsheet-SelectedOtherCamera-color; -} - -/* XSheet Toolbar ------------------------------------------------------------------------------ */ - -#XSheetToolbar { - margin: 0; - padding: 0; - border: 0; - & QToolButton { - padding: 0; - margin: 4 1; - min-height: 19; - height: 19; - } - &::separator:horizontal { - margin: 0 4; - } + qproperty-XsheetConfigButtonImage: url('@{img-url}/x_config.svg'); + + qproperty-FrameRangeMarkerLineColor: @timeline-FrameRangeMarkerLine-color; + + // Column Header: Horizontal + qproperty-TimelinePreviewButtonBgOnColor: @bg; + qproperty-TimelinePreviewButtonOnImage: url('@{img-url}/preview_small.svg'); + qproperty-TimelinePreviewButtonBgOffColor: @bg; + qproperty-TimelinePreviewButtonOffImage: url('none'); + + qproperty-TimelineCamstandButtonBgOnColor: @bg; + qproperty-TimelineCamstandButtonOnImage: url('@{img-url}/table_small.svg'); + qproperty-TimelineCamstandButtonTranspImage: url('@{img-url}/trans_small.svg'); + qproperty-TimelineCamstandButtonBgOffColor: @bg; + qproperty-TimelineCamstandButtonOffImage: url('none'); + + qproperty-TimelineLockButtonBgOnColor: @bg; + qproperty-TimelineLockButtonOnImage: url('@{img-url}/lock_on_small.svg'); + qproperty-TimelineLockButtonBgOffColor: @bg; + qproperty-TimelineLockButtonOffImage: url('none'); + + qproperty-TimelineConfigButtonBgColor: @bg; + qproperty-TimelineConfigButtonImage: url('@{img-url}/timeline_config.svg'); + + // Header Control + qproperty-LayerHeaderPreviewImage: url('@{img-url}/layer_header_prev_eye.svg'); + qproperty-LayerHeaderPreviewOverImage: url('@{img-url}/layer_header_prev_eye_over.svg'); + qproperty-LayerHeaderCamstandImage: url('@{img-url}/layer_header_table_view.svg'); + qproperty-LayerHeaderCamstandOverImage: url('@{img-url}/layer_header_table_view_over.svg'); + qproperty-LayerHeaderLockImage: url('@{img-url}/layer_lock_on.svg'); + qproperty-LayerHeaderLockOverImage: url('@{img-url}/layer_lock_on_over.svg'); } /* ----------------------------------------------------------------------------- @@ -196,14 +210,13 @@ XsheetViewer { #FunctionEditor { & QToolBar { border-bottom: 1 solid @accent; + background-color: transparent; + padding-bottom: 10; & QToolBar { border: 0; } - & QLabel { - margin-left: 5; - } & QToolButton { - height: 18; // gives the key button increased active space + margin-bottom: 2; } } } @@ -239,7 +252,7 @@ FunctionPanel { } SpreadsheetViewer { - qproperty-LightLightBGColor: @xsheet-LightLightBG-color; // paired + qproperty-LightLightBGColor: @function-LightLightBG-color; // paired qproperty-CurrentRowBgColor: @xsheet-CurrentRowBG-color; // paired qproperty-LightLineColor: @xsheet-LightLine-color; // paired qproperty-MarkerLineColor: @xsheet-MarkerLine-color; // paired @@ -254,32 +267,15 @@ SpreadsheetViewer { qproperty-SelectedEmptyColor: @xsheet-SelectedEmptyCell-color; // paired qproperty-SelectedSceneRangeEmptyColor: @function-SelectedSceneRangeEmpty-color; qproperty-TextColor: @xsheet-text-color; // paired - qproperty-ColumnHeaderBorderColor: @xsheet-VerticalLineHead-color; // paired + qproperty-ColumnHeaderBorderColor: @function-ColumnHeaderBorder-color; // paired } -#FunctionSegmentViewer { - // Placeholder -} +#FunctionSegmentViewer {} #ExpressionField { background-color: @function-ExpressionFieldBG-color; border: 1 solid @function-ExpressionFieldBorder-color; - margin: 0; + margin: 0; } -#FunctionSegmentViewerLinkButton { - &:extend(.QPushButton all); - background-image: url('@{img-url}/segment_unlinked.svg'); - background-repeat: no-repeat; - &:hover { - background-repeat: no-repeat; - } - &:checked { - background-image: url('@{img-url}/segment_linked.svg'); - background-repeat: no-repeat; - } - &:disabled { - background-image: url('@{img-url}/segment_disabled.svg'); - background-repeat: no-repeat; - } -} +// #FunctionSegmentViewerLinkButton {} diff --git a/stuff/config/qss/Default/less/themes/Dark.less b/stuff/config/qss/Default/less/themes/Dark.less index b2178cb..597e8a6 100644 --- a/stuff/config/qss/Default/less/themes/Dark.less +++ b/stuff/config/qss/Default/less/themes/Dark.less @@ -11,70 +11,46 @@ @img-url: '../Default/imgs/white'; @bg: #303030; -@accent: darken(@bg, 10); -@text-color: rgb(233, 233, 233); -@text-color-disabled: rgba(233, 233, 233, 0.4); -@dock-bg-color: darken(@bg, 14); -@dialogButtonFrame-bg-color: darken(@bg, 3); +@accent: darken(@bg, 12); +@dock-bg-color: darken(@bg, 12); +@tabbar-bg-color: darken(@bg, 4); // ----------------------------------------------------------------------------- // Menu // ----------------------------------------------------------------------------- -@menu-text-color: @text-color; @menu-bg-color: darken(@bg, 4); @menu-border-color: lighten(@menu-bg-color, 15); -@menu-separator-color: lighten(@menu-bg-color, 15); // ----------------------------------------------------------------------------- -// Trees +// File Browser / Trees // ----------------------------------------------------------------------------- @tree-bg-color: darken(@bg, 4); +@browser-itemview-bg-color: darken(@bg, 3); +@prefs-tree-bg-color: darken(@bg, 4); // ----------------------------------------------------------------------------- -// Tabs -// ----------------------------------------------------------------------------- - -// Container -@tabbar-bg-color: darken(@bg, 4); - -// ----------------------------------------------------------------------------- -// Titlebars -// ----------------------------------------------------------------------------- - -@title-bg-color: darken(@bg, 4); - -// ----------------------------------------------------------------------------- -// Scroll Bars -// ----------------------------------------------------------------------------- - -// Frame -@scrollbar-bg-color: darken(@bg, 4); - -// ----------------------------------------------------------------------------- -// Button +// Scrollbars // ----------------------------------------------------------------------------- -@button-bg-color: lighten(@bg, 15); +@scrollbar-bg-color: darken(@bg, 5); // ----------------------------------------------------------------------------- // Textfield // ----------------------------------------------------------------------------- @input-bg-color: darken(@bg, 8); -@input-border-color: lighten(@bg, 10); +@input-border-color: lighten(@bg, 15); // ----------------------------------------------------------------------------- // CheckBox // ----------------------------------------------------------------------------- -@checkbox-border-color: lighten(@input-border-color, 10); +@checkbox-border-color: @input-border-color; @checkbox-border-color-disabled: @input-border-color-disabled; - @checkbox-border-color-hover: lighten(@bg, 70); - -@checkbox-border-color-checked: darken(@checkbox-bg-color-checked, 0); +@checkbox-border-color-checked: @checkbox-bg-color-checked; // For RadioButton @radiobutton-img-unchecked: 'radiobutton-dark_unchecked.svg'; @@ -99,7 +75,7 @@ // Flip Slider @flipmarker-img: 'flipmarker_dark.svg'; @flipslider-img: 'flipslider_dark.svg'; -@flipslider-base-color: darken(@bg, 8); +@flipslider-base-color: darken(@bg, 5); // ----------------------------------------------------------------------------- // Progress Bar @@ -108,19 +84,23 @@ @progressbar-bg-color: darken(@bg, 4); // ----------------------------------------------------------------------------- -// XSheet +// Titlebars // ----------------------------------------------------------------------------- -@xsheet-bg-color: darken(@bg, 2); - -@xsheet-OnionSkinAreaBG-color: darken(@bg, 4); - -@xsheet-EmptyColumnHead-color: lighten(@bg, 8); +@title-bg-color: darken(@bg, 4); -@xsheet-EmptyCell-color: @bg; -@xsheet-NotEmptyColumn-color: lighten(@bg, 3); +// ----------------------------------------------------------------------------- +// XSheet +// ----------------------------------------------------------------------------- -@xsheet-LightLightBG-color: @xsheet-EmptyCell-color; +@xsheet-LightLine-color: rgba(0, 0, 0, 0.3); +@xsheet-VerticalLine-color: rgba(0, 0, 0, 0.4); +@xsheet-bg-color: @bg; +@xsheet-OnionSkinAreaBG-color: darken(@bg, 3); +@xsheet-NotEmptyColumn-color: @bg; +@xsheet-LightLightBG-color: darken(@bg, 3); +@xsheet-PlayRange-Color: lighten(@bg, 3); +@xsheet-EmptyCell-color: darken(@bg, 3); // ----------------------------------------------------------------------------- // Function Editor diff --git a/stuff/config/qss/Default/less/themes/Light.less b/stuff/config/qss/Default/less/themes/Light.less index 0feb5f6..7d96d85 100644 --- a/stuff/config/qss/Default/less/themes/Light.less +++ b/stuff/config/qss/Default/less/themes/Light.less @@ -3,330 +3,238 @@ // ----------------------------------------------------------------------------- // LIGHT // ----------------------------------------------------------------------------- +// This inherits from NEUTRAL theme, when updating NEUTRAL make sure to check +// changes against LIGHT. +// ----------------------------------------------------------------------------- // Override -@import '../Default'; +@import 'Neutral.less'; // Resource Location @img-url: '../Default/imgs/black'; -@bg: #808080; -@accent: darken(@bg, 25); -@text-color: #000; -@text-color-disabled: rgba(0, 0, 0, 0.466); - -@dock-bg-color: darken(@bg, 35); - -@hl-bg-color: rgb(34, 91, 175); -@hl-text-color: #FFFFFF; -@hl-bg-color-secondary: lighten(@bg, 12); - -@label-title: rgb(0, 0, 0); - -// ----------------------------------------------------------------------------- -// Titlebars -// ----------------------------------------------------------------------------- +@bg: #DBDBDB; +@accent: darken(@bg, 20); +@dock-bg-color: darken(@bg, 30); +@hl-bg-color: #a0c1dd; +@hl-text-color: #000; +@hl-bg-color-secondary: darken(@bg, 15); -@title-bg-color: darken(@bg, 15); -@title-text-color: lighten(saturate(spin(@bg, 0.0000), 0.0000), 25); -@title-text-color-active: #fff; +@dialogButtonFrame-bg-color: @bg; // ----------------------------------------------------------------------------- // Tabs // ----------------------------------------------------------------------------- -// Container -@tabbar-bg-color: @title-bg-color; - -// Tabs -@tab-bg-color: @tabbar-bg-color; -@tab-text-color: lighten(saturate(spin(@bg, 0.0000), 0.0000), 25); - -@tab-bg-color-hover: lighten(@rooms-tab-bg-color, 8); -@tab-text-color-hover: #fff; - -@tab-text-color-selected: @text-color; - -// ----------------------------------------------------------------------------- -// Topbar & Workspaces -// ----------------------------------------------------------------------------- - -// Topbar -@topbar-bg-color: @bg; - -// Workspace Tabs -@rooms-tab-bg-color: darken(@topbar-bg-color, 15); -@rooms-tab-text-color: rgb(175, 175, 175); - -@rooms-tab-bg-color-hover: lighten(@rooms-tab-bg-color, 8); -@rooms-text-color-hover: #fff; +@tabbar-bg-color: darken(@bg, 9); // ----------------------------------------------------------------------------- -// Right-Click Menu +// Menu // ----------------------------------------------------------------------------- -@menu-bg-color: lighten(@bg, 10); -@menu-separator-color: darken(@menu-bg-color, 15); -@menu-item-bg-color-disabled-hover: darken(@menu-bg-color, 8); - +@menu-bg-color: @bg; +@menu-checkbox-text-color-selected: @text-color; +@menu-icon-checked-bg-color: @toolbutton-bg-color-checked; +@menu-icon-checked-border-color: @toolbutton-border-color-checked; // ----------------------------------------------------------------------------- // Scrollbars // ----------------------------------------------------------------------------- // Container -@scrollbar-bg-color: darken(@bg, 5); - -// Handle -@scrollbar-handle-radius: 5; -@scrollbar-handle-margin: 2; -@scrollbar-handle-bg-color: lighten(@bg, 10); -@scrollbar-handle-border-color: darken(@bg, 15); -@scrollbar-handle-border-color-hover: @scrollbar-handle-border-color; -@scrollbar-handle-border-color-pressed: @scrollbar-handle-border-color; +@scrollbar-bg-color: darken(@bg, 5); +@scrollbar-handle-bg-color: darken(@bg, 28); +@scrollbar-handle-bg-color-hover: darken(@scrollbar-handle-bg-color, 10); +@scrollbar-handle-bg-color-pressed: darken(@scrollbar-handle-bg-color-hover, 15); // ----------------------------------------------------------------------------- -// File Browser / Trees +// Titlebars // ----------------------------------------------------------------------------- -// Trees -@tree-bg-color: darken(@bg, 5); -@tree-bg-color-alt: lighten(@tree-bg-color, 3); -@prefs-tree-bg-color: @tree-bg-color; -@prefs-tree-hl-color: lighten(@prefs-tree-bg-color, 8); - -// All Panes -@browser-folder-text-color: rgb(0, 22, 134); -@browser-folder-text-color-selected: @hl-text-color; +@title-text-color: fade(@text-color, 50); +@title-text-color-active: @text-color; -// Left Pane -@browser-listview-bg-color: @tree-bg-color; -@browser-listview-bg-color-alt: @browser-listview-bg-color; - -// Right Pane -@browser-itemview-bg-color: @bg; -@browser-itemview-bg-color-alt: darken(@browser-itemview-bg-color, 3); +// Title pane icon colors +@title-button-pressed-color: darken(@hl-bg-color, 8); +@title-button-rollover-color: darken(@title-bg-color, 20); +@title-button-freeze-color: #e0625c; +@title-button-preview-color: #2cb856; // ----------------------------------------------------------------------------- // Button // ----------------------------------------------------------------------------- -@button-bg-color: lighten(@bg, 15); -@button-border-color: darken(@bg, 18); -@button-text-color: rgb(0, 0, 0); - -@button-bg-color-hover: lighten(@button-bg-color, 8); - -@button-bg-color-pressed: lighten(@button-bg-color-hover, 15); -@button-border-color-pressed: @button-border-color; - -@button-bg-color-checked: darken(@bg, 15); -@button-border-color-checked: darken(@button-bg-color-checked, 8); -@button-text-color-checked: @tab-text-color; - -@button-bg-color-focus: #B5C0D0; -@button-border-color-focus: @input-border-color-focus; -@button-text-color-focus: @button-text-color; - -@button-border-color-disabled: darken(@bg, 5); - -// For QDialogs -@button-dialog-border-color: @button-border-color; +@button-bg-color: darken(@bg, 8); +@button-border-color: darken(@button-bg-color, 15); +@button-bg-color-hover: lighten(@button-bg-color, 5); +@button-border-color-checked: darken(@button-bg-color-checked, 15); +@button-text-color-checked: @text-color; +@button-bg-color-disabled: darken(@bg, 4); +@button-border-color-disabled: darken(@button-bg-color-disabled, 10); +@button-bg-color-focus: mix(@hl-bg-color, @button-bg-color, 70); +@button-border-color-focus: darken(@button-bg-color-focus, 10); // ----------------------------------------------------------------------------- // Tool Buttons // ----------------------------------------------------------------------------- -// Main -@toolbutton-border-color-hover: @button-border-color; - -@toolbutton-bg-color-checked: @button-bg-color-checked; -@toolbutton-border-color-checked: @button-border-color-checked; -@toolbutton-text-color-checked: @button-text-color-checked; - -@toolbutton-bg-color-checked-hover: lighten(@toolbutton-bg-color-checked, 8); -@toolbutton-border-color-checked-hover: @toolbutton-border-color-checked; - -// Lock +@toolbutton-border-color-checked: darken(@toolbutton-bg-color-checked, 10); +@toolbutton-bg-color-hover: darken(@bg, 15); +@toolbutton-lock-bg-color-checked: @title-button-freeze-color; @toolbutton-lock-border-color-checked: darken(@toolbutton-lock-bg-color-checked, 20); -@toolbutton-lock-border-color-checked-hover: @toolbutton-lock-border-color-checked; // ----------------------------------------------------------------------------- -// ComboBox +// Textfield // ----------------------------------------------------------------------------- -@combobox-dropdown-border-size: 1; +@input-bg-color: lighten(@bg, 10); +@input-text-color: #000; +@input-border-color: @accent; +@input-border-color-focus: saturate(darken(@hl-bg-color, 20), 20); +@input-bg-color-disabled: lighten(@bg, 8); // ----------------------------------------------------------------------------- -// Textfield +// CheckBox // ----------------------------------------------------------------------------- -@input-bg-color: lighten(@bg, 40); -@input-text-color: @text-color; -@input-border-color: darken(@bg, 18); - -@input-border-color-focus: rgb(1, 89, 253); - -@input-bg-color-disabled: lighten(@bg, 10); +@checkbox-bg-color-hover: lighten(@hl-bg-color, 10); +@checkbox-border-color-hover: darken(@bg, 40); +@checkbox-text-color-hover: @text-color; +@checkbox-bg-color-checked-hover: darken(@bg, 50); +@checkbox-border-color-checked-hover: @checkbox-bg-color-checked-hover; +@checkbox-bg-color-disabled: @bg; // ----------------------------------------------------------------------------- -// CheckBox +// Viewer Window // ----------------------------------------------------------------------------- -@checkbox-bg-color: @button-bg-color; -@checkbox-border-color: @button-border-color; - -@checkbox-bg-color-hover: @checkbox-bg-color; -@checkbox-border-color-hover: lighten(@bg, 50); -@checkbox-text-color-hover: #fff; +// FlipSlider +@flipmarker-img: 'flipmarker_light.svg'; +@flipslider-img: 'flipslider_light.svg'; +@flipslider-base-color: darken(@bg, 10); +@flipslider-notstarted-color: rgb(195, 60, 60); +@flipslider-started-color: rgb(16, 221, 64); -@checkbox-bg-color-checked: @button-bg-color-checked; -@checkbox-border-color-checked: @button-border-color-checked; +// Ruler +@viewer-ruler-handle-color: black; +@viewer-ruler-handle-drag-color: red; -@checkbox-bg-color-checked-hover: @checkbox-bg-color-checked; -@checkbox-border-color-checked-hover: @checkbox-text-color-hover; +// ----------------------------------------------------------------------------- +// Palette Window +// ----------------------------------------------------------------------------- -@checkbox-bg-color-disabled: rgba(255, 255, 255, 0.11); -@checkbox-border-color-disabled: rgba(0, 0, 0, 0.11); +// All views (except list); +@palette-SelectedBorderColor: rgb(66, 82, 100); +@palette-NumpadShortcutBgColor: rgba(0, 0, 0, 0.15); +@palette-NumpadShortcutBorderColor: rgb(128, 128, 128); -@checkbox-bg-color-checked-disabled: darken(@bg, 10); -@checkbox-border-color-checked-disabled: darken(@bg, 15); +// List view +@palette-ListNumpadShortcutBorderColor: rgb(105, 105, 105); // ----------------------------------------------------------------------------- -// Slider +// File Browser / Trees // ----------------------------------------------------------------------------- -// This one is used only for #ViewerFpsSlider -@slider-handle-margin: -2 0; -@slider-handle-bg-color: lighten(@bg, 15); -@slider-handle-border-color: @accent; - -// DoublePairField, IntPairField -@slider-groove-color: darken(@bg, 22); +// Trees +@tree-bg-color: darken(@bg, 5); +@tree-bg-color-alt: lighten(@tree-bg-color, -4); // ----------------------------------------------------------------------------- -// Viewer Window +// Keyframes // ----------------------------------------------------------------------------- -// FlipSlider -@flipslider-notstarted-color: rgb(139, 37, 37); -@flipslider-started-color: rgb(0, 168, 8); +@keyframe-total-color: #f8a145; -// Ruler -@viewer-ruler-bg-color: lighten(@bg, 15); +// For use in FX Settings Panels +@keyframe-inbetween-color: #e6dbb6; +@keyframe-modified-color: rgb(243, 226, 129); // ----------------------------------------------------------------------------- -// Schematic Viewer +// Slider // ----------------------------------------------------------------------------- -@schematic-viewer-bg-color: darken(@bg, 5); +// Single +@slider-groove-img: 'slider-groove_light.svg'; +@slider-groove-img-disabled: 'slider-groove_disabled_light.svg'; +@slider-handle-img: 'slider-handle_light.svg'; +@slider-handle-img-disabled: 'slider-handle_disabled_light.svg'; -@schematic-label-text-color: rgb(0, 0, 0); - -@schematic-help-button-bg-color: #80a0dc; -@schematic-help-button-bg-color-hover: lighten(@schematic-help-button-bg-color, 10); +// This one is used only for #ViewerFpsSlider +@slider-handle-bg-color: lighten(@bg, -10); +@slider-handle-border-color: darken(@bg, 30); -@schematic-TableColor: rgb(164, 164, 191); -@schematic-ActiveCameraColor: rgb(107, 165, 222); -@schematic-OtherCameraColor: rgb(143, 156, 158); -@schematic-GroupColor: rgb(102, 152, 198); -@schematic-PegColor: rgb(190, 138, 86); -@schematic-SplineColor: rgb(123, 184, 33); -@schematic-ActiveOutputcolor: rgb(107, 165, 222); -@schematic-OtherOutputcolor: rgb(143, 156, 158); -@schematic-XsheetColor: rgb(164, 164, 191); -@schematic-NormalFxColor: rgb(141, 156, 175); -@schematic-MacroFxColor: rgb(174, 140, 165); -@schematic-ImageAdjustFxColor: rgb(156, 154, 180); -@schematic-LayerBlendingFxColor: rgb(112, 155,165); -@schematic-MatteFxColor: rgb(186, 133, 133); +// DoublePairField, IntPairField +@slider-groove-color: darken(@bg, 35); // ----------------------------------------------------------------------------- // XSheet // ----------------------------------------------------------------------------- // XSheet Spreadsheet Viewer -@xsheet-text-color: @text-color; -@xsheet-bg-color: lighten(@bg, 4); -@xsheet-LightLine-color: rgba(0, 0, 0, 0.205); -@xsheet-MarkerLine-color: #000; //rgb(0, 255, 246); -@xsheet-VerticalLine-color: rgba(0, 0, 0, 0.404); -@xsheet-VerticalLineHead-color: darken(@bg, 68); -@xsheet-PreviewFrameText-color: #000eb6; -@xsheet-CurrentRowBG-color: #B5C0D0; -@xsheet-OnionSkinAreaBG-color: darken(@bg, 0); - -@xsheet-EmptyColumnHead-color: darken(@bg, 10); - -@xsheet-EmptyCell-color: darken(@bg, 1.57); -@xsheet-NotEmptyColumn-color: lighten(@bg, 10); -@xsheet-SelectedEmptyCell-color: lighten(@bg, 20); - -@xsheet-LevelColumn-color: rgb(118, 183, 118); -@xsheet-LevelColumnBorder-color: darken(desaturate(@xsheet-LevelColumn-color, 15), 25); - -@xsheet-VectorColumn-color: rgb(192, 192, 122); -@xsheet-VectorColumnBorder-color: darken(desaturate(@xsheet-VectorColumn-color, 15), 25); - -@xsheet-ChildColumn-color: rgb(214,154,219); -@xsheet-ChildColumnBorder-color: darken(desaturate(@xsheet-ChildColumn-color, 15), 25); - -@xsheet-FullColorColumn-color: rgb(139, 189, 193); -@xsheet-FullColorColumnBorder-color: darken(desaturate(@xsheet-FullColorColumn-color, 15), 25); - -@xsheet-FxColumn-color: rgb(130,129,93); -@xsheet-FxColumnBorder-color: darken(desaturate(@xsheet-FxColumn-color, 10), 20); - -@xsheet-ReferenceColumn-color: rgb(171,171,171); -@xsheet-ReferenceColumnBorder-color: darken(desaturate(@xsheet-ReferenceColumn-color, 15), 25); - -@xsheet-PaletteColumn-color: rgb(42,171,154); -@xsheet-PaletteColumnBorder-color: darken(desaturate(@xsheet-PaletteColumn-color, 15), 25); +@xsheet-bg-color: darken(@bg, 5); +@xsheet-LightLine-color: rgba(0, 0, 0, 0.15); +@xsheet-VerticalLine-color: rgba(0, 0, 0, 0.15); +@xsheet-ColumnIconLine-color: rgb(112, 112, 112); +@xsheet-MarkerLine-color: rgba(0, 0, 0, 0.3); +@xsheet-OnionSkinAreaBG-color: darken(@bg, 10); +@xsheet-PreviewFrameText-color: #2d42b9; +@xsheet-CurrentRowBG-color: saturate(lighten(fade(@hl-bg-color, 70), -8), 8); +@xsheet-VerticalLineHead-color: rgba(0, 0, 0, 0.3); +@xsheet-SelectedColumnHead-color: fade(black, 15); + +@xsheet-FoldedColumnBG-color: lighten(@bg, -20); +@xsheet-FoldedColumnLine-color: darken(@bg, 40); + +// Level Type Colors Adjustment +@columnBorderDesaturation: 8; +@columnBorderDarkness: 15; +@cellHighlightLightness: 10; + +@xsheet-EmptyCell-color: @xsheet-OnionSkinAreaBG-color; +@xsheet-NotEmptyColumn-color: @xsheet-bg-color; +@xsheet-SelectedEmptyCell-color: fade(mix(lighten(@xsheet-EmptyCell-color, -20), @cellHighlightTintColor, 80), 50); + +@xsheet-LevelColumn-color: #9ed49e; +@xsheet-VectorColumn-color: #d3cf9a; +@xsheet-ChildColumn-color: #cca3cc; +@xsheet-FullColorColumn-color: #b0cbdd; +@xsheet-FxColumn-color: #ceb694; +@xsheet-ReferenceColumn-color: #c2c2c2; +@xsheet-PaletteColumn-color: #a9d4ca; +@xsheet-MeshColumn-color: #b8a2cf; +@xsheet-SoundColumn-color: #aad6d6; +@xsheet-SoundTextColumn-color: #c2c2c2; +@xsheet-ActiveCamera-color: #79b5ee; +@xsheet-OtherCamera-color: #6eb7c2; + +// Orientation: Timeline +@timeline-IconLine-color: rgba(0, 0, 0, 0.144); +@timeline-FrameRangeMarkerLine-color: rgba(0, 0, 0, 0.3); + +// Orientation: XSheet +@xsheet-CamstandButtonBgOn-color: rgb(255, 166, 131); +@xsheet-PreviewButtonBgOn-color: rgb(233, 233, 127); -@xsheet-MeshColumn-color: rgb(172, 120, 212); -@xsheet-MeshColumnBorder-color: darken(desaturate(@xsheet-MeshColumn-color, 15), 25); - -@xsheet-SoundColumn-color: rgb(172, 186, 130); -@xsheet-SoundColumnBorder-color: darken(desaturate(@xsheet-SoundColumn-color, 15), 25); -@xsheet-SoundColumnHL-color: rgb(245,255,230); -@xsheet-SoundColumnTrack-color: rgb(90,100,45); - -@xsheet-ColumnHeadPastelizer-color: rgb(255,255,255); -@xsheet-SelectedColumnHead-color: rgb(190,210,240); - -@xsheet-LightLightBG-color: @bg; -@xsheet-LightBG-color: rgb(240,240,240); -@xsheet-DarkBG-color: rgb(225,225,225); -@xsheet-DarkLine-color: rgb(150,150,150); +// ----------------------------------------------------------------------------- +// Schematic Viewer +// ----------------------------------------------------------------------------- -@xsheet-ActiveCamera-color: rgb(107, 165, 222); -@xsheet-SelectedActiveCamera-color: lighten(desaturate(@xsheet-ActiveCamera-color, 5), 10); +// Node Viewer +@schematic-viewer-bg-color: rgb(128, 128, 128); -@xsheet-OtherCamera-color: rgb(143, 156, 158); -@xsheet-SelectedOtherCamera-color: lighten(desaturate(@xsheet-OtherCamera-color, 5), 10); +// Node Type Colors Adjustment +@nodeLightness: 15; +@nodeSaturation: 15; // ----------------------------------------------------------------------------- // Function Editor // ----------------------------------------------------------------------------- -// Function Treeview -@function-treeview-text-color: @text-color; - // Function Curve Panel -@function-panel-bg-color: darken(@bg, 15); -@function-panel-ValueLine-color: darken(@bg, 20); -@function-panel-FrameLine-color: darken(@bg, 20); -@function-panel-OtherCurves-color: rgb(197, 197, 197); -@function-panel-RulerBG-color: darken(@bg, 10); +@function-panel-bg-color: @schematic-viewer-bg-color; +@function-panel-OtherCurves-color: rgb(218, 218, 218); @function-panel-Text-color: @text-color; -@function-panel-Sub-color: rgb(255, 255, 255); -@function-panel-Selected-color: rgb(252, 174, 6); - -// Function Spreadsheet Viewer -@function-KeyFrame-color: rgb(219,139,54); -@function-KeyFrameBorder-color: darken(@function-KeyFrame-color, 25); - -@function-Inbetween-color: rgb(194,194,176); -@function-InbetweenBorder-color: rgb(99, 99, 86); +@function-panel-Sub-color: #fff; +@function-panel-Selected-color: #ffe033; -@function-SelectedSceneRangeEmpty-color: rgb(210,210,210); +@function-SelectedKeyFrame-color: mix(shade(@function-KeyFrame-color, @cellHighlightLightness), @cellHighlightTintColor, @cellHighlightTintAmount); diff --git a/stuff/config/qss/Default/less/themes/Neutral.less b/stuff/config/qss/Default/less/themes/Neutral.less new file mode 100644 index 0000000..0edf12a --- /dev/null +++ b/stuff/config/qss/Default/less/themes/Neutral.less @@ -0,0 +1,274 @@ +// out: ../../../Neutral/Neutral.qss + +// ----------------------------------------------------------------------------- +// NEUTRAL GREY +// ----------------------------------------------------------------------------- + +// Override +@import '../Default'; + +// Resource Location +@img-url: '../Default/imgs/black'; + +@bg: #808080; +@accent: darken(@bg, 15); +@text-color: #000; + +@hl-bg-color: #8FA0B2; +@hl-text-color: #000; +@hl-bg-color-secondary: rgba(255, 255, 255, 0.15); + +@dock-bg-color: darken(@bg, 30); +@label-title: rgb(0, 0, 0); + +// ----------------------------------------------------------------------------- +// Tabs +// ----------------------------------------------------------------------------- + +@tabbar-bg-color: darken(@bg, 6); +@tab-text-color: @text-color; +@tab-text-color-hover: @text-color; +@tab-text-color-selected: @text-color; + +// ----------------------------------------------------------------------------- +// Titlebars +// ----------------------------------------------------------------------------- + +@title-text-color: @tab-text-color; +@title-text-color-active: rgba(255, 255, 255, 0.8); +@title-border-color: darken(@title-bg-color, 10); +@title-button-rollover-color: lighten(@title-bg-color, 10); +@title-button-preview-color: #15b884; + +// ----------------------------------------------------------------------------- +// Menu +// ----------------------------------------------------------------------------- + +@menu-bg-color: lighten(@bg, 20); +@menu-separator-color: rgba(0, 0, 0, 0.171); + +// ----------------------------------------------------------------------------- +// Scrollbars +// ----------------------------------------------------------------------------- + +@scrollbar-bg-color: darken(@bg, 6); +@scrollbar-handle-bg-color: lighten(@bg, 10); + +// ----------------------------------------------------------------------------- +// Palette Window +// ----------------------------------------------------------------------------- + +// All views (except list) +@palette-NumpadShortcutBorderColor: rgb(190, 190, 190); + +// ----------------------------------------------------------------------------- +// File Browser / Trees +// ----------------------------------------------------------------------------- + +// Trees +@tree-bg-color: darken(@bg, 4); +@prefs-tree-bg-color: @tree-bg-color; + +// All Panes +@browser-folder-text-color: rgb(0, 22, 134); + +// Right Pane +@browser-itemview-bg-color: lighten(@bg, 0); + +// ----------------------------------------------------------------------------- +// Button +// ----------------------------------------------------------------------------- + +@button-bg-color: lighten(@bg, 12); +@button-border-color: darken(@bg, 12); + +@button-bg-color-hover: lighten(@button-bg-color, 8); +@button-border-color-pressed: darken(@button-bg-color-pressed, 8); + +@button-bg-color-checked: darken(@bg, 15); +@button-border-color-checked: darken(@button-bg-color-checked, 10); +@button-text-color-checked: rgba(255, 255, 255, 0.917); +@button-text-color-focus: @button-text-color; +@button-border-color-focus: darken(@button-bg-color-focus, 40); + +@button-border-color-disabled: darken(@bg, 5); + +// For QDialogs +@button-dialog-border-color: @button-border-color; + +// ----------------------------------------------------------------------------- +// Tool Buttons +// ----------------------------------------------------------------------------- + +// Main +@toolbutton-border-color-hover: @button-border-color; + +@toolbutton-border-color-checked: darken(@toolbutton-bg-color-checked, 30); +@toolbutton-text-color-checked: @text-color; + +@toolbutton-bg-color-checked-hover: lighten(@toolbutton-bg-color-checked, 8); +@toolbutton-border-color-checked-hover: @toolbutton-border-color-checked; + +// Lock +@toolbutton-lock-bg-color-checked: #bd5454; +@toolbutton-lock-border-color-checked: darken(@toolbutton-lock-bg-color-checked, 20); +@toolbutton-lock-border-color-checked-hover: @toolbutton-lock-border-color-checked; + +// ----------------------------------------------------------------------------- +// ComboBox +// ----------------------------------------------------------------------------- + +@combobox-dropdown-border-size: 1; + +// ----------------------------------------------------------------------------- +// Textfield +// ----------------------------------------------------------------------------- + +@input-bg-color: lighten(@bg, 25); +@input-border-color: @accent; +@input-border-color-focus: #000; +@input-bg-color-disabled: lighten(@bg, 10); + +// ----------------------------------------------------------------------------- +// CheckBox +// ----------------------------------------------------------------------------- + +@checkbox-text-color-hover: rgba(255, 255, 255, 0.8); +@checkbox-bg-color-checked: rgba(0, 0, 0, 0.8); +@checkbox-bg-color-disabled: rgba(255, 255, 255, 0.11); +@checkbox-border-color-disabled: rgba(0, 0, 0, 0.11); +@checkbox-bg-color-checked-disabled: darken(@bg, 10); +@checkbox-border-color-checked-disabled: darken(@bg, 15); + +// ----------------------------------------------------------------------------- +// Slider +// ----------------------------------------------------------------------------- + +// This one is used only for #ViewerFpsSlider +@slider-handle-margin: -2 0; +@slider-handle-bg-color: lighten(@bg, 15); +@slider-handle-border-color: @accent; + +// DoublePairField, IntPairField +@slider-groove-color: darken(@bg, 22); + +// ----------------------------------------------------------------------------- +// Viewer Window +// ----------------------------------------------------------------------------- + +// FlipSlider +@flipslider-notstarted-color: rgb(167, 64, 64); +@flipslider-started-color: rgb(0, 168, 8); + +// ----------------------------------------------------------------------------- +// Schematic Viewer +// ----------------------------------------------------------------------------- + +@schematic-viewer-bg-color: darken(@bg, 10); + +// Node Type Colors +@nodeLightness: 0; +@nodeSaturation: 0; + +@schematic-TableColor: rgb(164, 164, 191); +@schematic-ActiveCameraColor: @xsheet-ActiveCamera-color; +@schematic-OtherCameraColor: @xsheet-OtherCamera-color; +@schematic-GroupColor: rgb(102, 152, 198); +@schematic-PegColor: rgb(190, 138, 86); +@schematic-SplineColor: rgb(123, 184, 33); +@schematic-ActiveOutputcolor: @xsheet-ActiveCamera-color; +@schematic-OtherOutputcolor: @xsheet-OtherCamera-color; +@schematic-XsheetColor: rgb(164, 164, 191); +@schematic-NormalFxColor: rgb(141, 156, 175); +@schematic-MacroFxColor: rgb(174, 140, 165); +@schematic-ImageAdjustFxColor: rgb(156, 154, 180); +@schematic-LayerBlendingFxColor: rgb(112, 155,165); +@schematic-MatteFxColor: rgb(186, 133, 133); + +// ----------------------------------------------------------------------------- +// XSheet +// ----------------------------------------------------------------------------- + +// XSheet Spreadsheet Viewer +@xsheet-error-text-color: rgb(192, 17, 17); +@xsheet-bg-color: darken(@bg, 4); +@xsheet-LightLine-color: rgba(0, 0, 0, 0.15); +@xsheet-MarkerLine-color: rgba(255, 255, 255, 0.2); +@xsheet-PreviewFrameText-color: #17239c; +@xsheet-OnionSkinAreaBG-color: darken(@bg, 8); +@xsheet-EmptyCell-color: @xsheet-OnionSkinAreaBG-color; +@xsheet-NotEmptyColumn-color: @xsheet-bg-color; +@xsheet-PlayRange-Color: @bg; +@xsheet-ColumnIconLine-color: darken(@bg, 20); +@xsheet-VerticalLineHead-color: @accent; +@xsheet-CurrentRowBG-color: saturate(lighten(fade(@hl-bg-color, 70), 20), 50); + +@xsheet-CellArea-bg-color-focus: @input-bg-color; +@xsheet-CellFocus-color: #000; + +@xsheet-FoldedColumnBG-color: lighten(@bg, 10); +@xsheet-FoldedColumnLine-color: darken(@bg, 5); + +// Level Type Colors Adjustment +@columnBorderDesaturation: 0; +@columnBorderDarkness: 15; + +@xsheet-LevelColumn-color: #78a578; +@xsheet-VectorColumn-color: #a7a163; +@xsheet-ChildColumn-color: #9a759c; +@xsheet-FullColorColumn-color: #839bb1; +@xsheet-FxColumn-color: #928562; +@xsheet-ReferenceColumn-color: #959595; +@xsheet-PaletteColumn-color: #599586; +@xsheet-MeshColumn-color: #8b73a7; +@xsheet-SoundColumn-color: #749e9e; +@xsheet-SoundColumnHL-color: #f5ffe6; +@xsheet-SoundColumnTrack-color: rgba(0,0,0,0.8); +@xsheet-ActiveCamera-color: rgb(100, 145, 190); +@xsheet-OtherCamera-color: rgb(143, 156, 158); + +// Timeline +@timeline-FrameRangeMarkerLine-color: darken(@bg, 15); + +// ----------------------------------------------------------------------------- +// Keyframes +// ----------------------------------------------------------------------------- + +@keyframe-off-border-color-hover: @toolbutton-border-color-hover; + +@keyframe-total-color: #c77a27; +@keyframe-total-color-hover: lighten(@keyframe-total-color, 10); +@keyframe-total-border-color: darken(@keyframe-total-color, 20); +@keyframe-total-border-color-hover: @keyframe-total-border-color; + +@keyframe-partial-border-color: @keyframe-total-border-color; +@keyframe-partial-border-color-hover: @keyframe-total-border-color; + +// For use in FX Settings Panels +@keyframe-highlight-border-color: @toolbutton-border-color-hover; +@keyframe-inbetween-color: #c0ba80; +@keyframe-inbetween-border-color: darken(@keyframe-inbetween-color, 40); +@keyframe-modified-border-color: darken(@keyframe-modified-color, 40); + +// ----------------------------------------------------------------------------- +// Function Editor +// ----------------------------------------------------------------------------- + +// Function Curve Panel +@function-panel-bg-color: darken(@bg, 15); +@function-panel-OtherCurves-color: rgb(197, 197, 197); +@function-panel-RulerBG-color: darken(@bg, 10); +@function-panel-Sub-color: rgb(255, 255, 255); +@function-panel-Selected-color: rgb(252, 174, 6); + +// Function Spreadsheet Viewer +@function-ColumnHeaderBorder-color: @dock-bg-color; +@schematic-label-text-color: #000; + +@function-KeyFrame-color: lighten(desaturate(spin(@keyframe-total-color, -0.2295), 14.0523), 3.9216); +@function-KeyFrameBorder-color: darken(@function-KeyFrame-color, 25); + +@function-Inbetween-color: lighten(desaturate(spin(@keyframe-inbetween-color, -5.2841), 20.8935), 3.5294); +@function-InbetweenBorder-color: darken(desaturate(@function-Inbetween-color, 8), 25); + +@xsheet-VerticalLineHead-color: darken(@bg, 20); diff --git a/stuff/config/qss/Light/Light.qss b/stuff/config/qss/Light/Light.qss index c84fdb6..9993f33 100644 --- a/stuff/config/qss/Light/Light.qss +++ b/stuff/config/qss/Light/Light.qss @@ -1,111 +1,90 @@ /* ----------------------------------------------------------------------------- Component: Button Styles ----------------------------------------------------------------------------- */ -.button-show, -#LoadLevelShowButton, -#CleanupSettingsShowButton, -#OutputSettingsShowButton, -#FxSettingsPreviewShowButton { - image: url('../Default/imgs/black/plus.svg'); - image-position: center center; - margin: 0; - padding: 1; - min-width: 10; - min-height: 10; -} -.button-show:checked, -#LoadLevelShowButton:checked, -#CleanupSettingsShowButton:checked, -#OutputSettingsShowButton:checked, -#FxSettingsPreviewShowButton:checked { - background-color: #5a5a5a; - border-color: #454545; - image: url('../Default/imgs/black/minus.svg'); -} -.button-show:checked:pressed, -#LoadLevelShowButton:checked:pressed, -#CleanupSettingsShowButton:checked:pressed, -#OutputSettingsShowButton:checked:pressed, -#FxSettingsPreviewShowButton:checked:pressed { - background-color: #e1e1e1; - border-color: #525252; -} -.button-show:checked:hover, -#LoadLevelShowButton:checked:hover, -#CleanupSettingsShowButton:checked:hover, -#OutputSettingsShowButton:checked:hover, -#FxSettingsPreviewShowButton:checked:hover { - background-color: #5f5f5f; -} .button-tool, QToolButton, +#FileBrowser QToolBar QToolButton, #CameraSettingsRadioButton::indicator, #ForceSquaredPixelButton, -#SchematicBottomFrame QToolBar QToolButton, #EditToolLockButton::indicator, -#flipCustomize { - background-color: rgba(255, 255, 255, 0); - border: 1 solid rgba(255, 255, 255, 0); +#flipCustomize, +#SceneCast QToolBar QToolButton { + background-color: transparent; + border: 1 solid transparent; border-radius: 2; - color: #000000; - margin: 1; - padding: 0; + color: #0d0d0d; } .button-tool:hover, QToolButton:hover, +#FileBrowser QToolBar QToolButton:hover, #CameraSettingsRadioButton::indicator:hover, #ForceSquaredPixelButton:hover, #colorSliderAddButton:hover, #colorSliderSubButton:hover, -#SchematicBottomFrame QToolBar QToolButton:hover, #EditToolLockButton::indicator:hover, -#flipCustomize:hover { - background-color: #bbbbbb; - border-color: #525252; - color: #000000; +#flipCustomize:hover, +#SceneCast QToolBar QToolButton:hover { + background-color: #b5b5b5; + border-color: #a0a0a0; + color: #0d0d0d; } .button-tool:pressed, QToolButton:pressed, +#FileBrowser QToolBar QToolButton:pressed, #CameraSettingsRadioButton::indicator:pressed, #ForceSquaredPixelButton:pressed, #colorSliderAddButton:pressed, #colorSliderSubButton:pressed, -#SchematicBottomFrame QToolBar QToolButton:pressed, #EditToolLockButton::indicator:pressed, -#flipCustomize:pressed { - background-color: #e1e1e1; - border-color: #525252; - color: #000000; +#flipCustomize:pressed, +#SceneCast QToolBar QToolButton:pressed { + background-color: #8f8f8f; + border-color: #7a7a7a; + color: #0d0d0d; } .button-tool:checked, QToolButton:checked, +#FileBrowser QToolBar QToolButton:checked, #CameraSettingsRadioButton::indicator:checked, #ForceSquaredPixelButton:checked, -#SchematicBottomFrame QToolBar QToolButton:checked, #EditToolLockButton::indicator:checked, -#flipCustomize:checked { - background-color: #5a5a5a; - border-color: #454545; - color: #c0c0c0; +#flipCustomize:checked, +#SceneCast QToolBar QToolButton:checked { + background-color: #a0c1dd; + border-color: #7aa8d0; + color: #000; } .button-tool:checked:hover, QToolButton:checked:hover, +#FileBrowser QToolBar QToolButton:checked:hover, #CameraSettingsRadioButton::indicator:checked:hover, #ForceSquaredPixelButton:checked:hover, -#SchematicBottomFrame QToolBar QToolButton:checked:hover, #EditToolLockButton::indicator:checked:hover, -#flipCustomize:checked:hover { - background-color: #6e6e6e; - border-color: #454545; +#flipCustomize:checked:hover, +#SceneCast QToolBar QToolButton:checked:hover { + background-color: #bed5e8; + border-color: #7aa8d0; } .button-tool:disabled, QToolButton:disabled, +#FileBrowser QToolBar QToolButton:disabled, #CameraSettingsRadioButton::indicator:disabled, #ForceSquaredPixelButton:disabled, -#SchematicBottomFrame QToolBar QToolButton:disabled, #EditToolLockButton::indicator:disabled, -#flipCustomize:disabled { - color: rgba(0, 0, 0, 0.466); +#flipCustomize:disabled, +#SceneCast QToolBar QToolButton:disabled { + color: rgba(0, 0, 0, 0.4); +} +.button-tool:disabled:checked, +QToolButton:disabled:checked, +#FileBrowser QToolBar QToolButton:disabled:checked, +#CameraSettingsRadioButton::indicator:disabled:checked, +#ForceSquaredPixelButton:disabled:checked, +#EditToolLockButton::indicator:disabled:checked, +#flipCustomize:disabled:checked, +#SceneCast QToolBar QToolButton:disabled:checked { + background-color: rgba(160, 193, 221, 0.4); + border-color: rgba(160, 193, 221, 0.4); } .button-flat, PaletteViewer QToolBar QToolButton { @@ -116,11 +95,11 @@ PaletteViewer QToolBar QToolButton { } .button-flat:hover, PaletteViewer QToolBar QToolButton:hover { - background-color: #bbbbbb; + background-color: #b5b5b5; } .button-flat:pressed, PaletteViewer QToolBar QToolButton:pressed { - background-color: #404040; + background-color: #a8a8a8; } /* ----------------------------------------------------------------------------- Component: Frames @@ -129,13 +108,14 @@ PaletteViewer QToolBar QToolButton:pressed { .GroupBox, #LoadLevelFrame, #PsdSettingsGroupBox, -#CleanupSettingsFrame, +#CleanupSettings #CleanupSettingsFrame, +#CleanupSettings QScrollArea, #OutputSettingsBox, #OutputSettingsCameraBox, #SolidLineFrame, #FunctionParametersPanel, QGroupBox { - border: 1 solid #404040; + border: 1 solid #a8a8a8; border-radius: 2; } /* ----------------------------------------------------------------------------- @@ -144,66 +124,53 @@ QGroupBox { /* ----------------------------------------------------------------------------- Component: Tabs ----------------------------------------------------------------------------- */ -.tab-container, -#TabBarContainer { - background-color: transparent; - qproperty-BottomAboveLineColor: #5a5a5a; - qproperty-BottomBelowLineColor: #404040; +.tab-container { + background-color: #c4c4c4; + qproperty-BottomAboveLineColor: #c4c4c4; + qproperty-BottomBelowLineColor: #a8a8a8; } .tab-flat, -#StopMotionTabBar::tab, -#StyleEditorTabBar::tab, -#PaletteTabBar::tab, -#FxSettingsTabBar::tab { - background-color: #5a5a5a; - border-right: 1 solid #404040; - border-bottom: 1 solid #404040; - color: #c0c0c0; +QTabBar::tab { + background-color: #c4c4c4; + border-right: 1 solid #a3a3a3; + border-bottom: 1 solid #a8a8a8; + color: #000; padding: 3 4 3 4; } .tab-flat:hover, -#StopMotionTabBar::tab:hover, -#StyleEditorTabBar::tab:hover, -#PaletteTabBar::tab:hover, -#FxSettingsTabBar::tab:hover { - background-color: #6e6e6e; - color: #fff; +QTabBar::tab:hover { + background-color: #d1d1d1; + color: #000; } .tab-flat:selected, -#StopMotionTabBar::tab:selected, -#StyleEditorTabBar::tab:selected, -#PaletteTabBar::tab:selected, -#FxSettingsTabBar::tab:selected { - background-color: #808080; +QTabBar::tab:selected { + background-color: #DBDBDB; color: #000; - border-bottom-color: #808080; + border-bottom-color: #DBDBDB; } .tab-flat:only-one, -#StopMotionTabBar::tab:only-one, -#StyleEditorTabBar::tab:only-one, -#PaletteTabBar::tab:only-one, -#FxSettingsTabBar::tab:only-one { +QTabBar::tab:only-one { margin: 0; } .tab-round { - background-color: #5a5a5a; - border-top: 1 solid #404040; - border-right: 1 solid #404040; - border-left: 1 solid #404040; - border-bottom: 1 solid #404040; - color: #c0c0c0; + background-color: #c4c4c4; + border-top: 1 solid #a8a8a8; + border-right: 1 solid #a8a8a8; + border-left: 1 solid #a8a8a8; + border-bottom: 1 solid #a8a8a8; + color: #000; margin: 3 -1 0 0; padding: 2 7 1 7; } .tab-round:hover { - background-color: #6e6e6e; - color: #fff; + background-color: #d1d1d1; + color: #000; } .tab-round:selected { - background-color: #808080; + background-color: #DBDBDB; border-top-right-radius: 2; border-top-left-radius: 2; - border-bottom-color: #808080; + border-bottom-color: #DBDBDB; color: #000; margin: 1 -1 -1 0; padding: 2 7 2 7; @@ -223,11 +190,11 @@ QGroupBox { Main ----------------------------------------------------------------------------- */ QWidget { - background-color: #808080; + background-color: #DBDBDB; color: #000; } QWidget:disabled { - color: rgba(0, 0, 0, 0.466); + color: rgba(0, 0, 0, 0.4); } QFrame { border: 0; @@ -236,47 +203,44 @@ QFrame { } QToolTip, #helpToolTip { - background-color: #fff; - border: 1 solid #000; - color: #000; + background-color: #292B2D; + border: 1 solid #CFD1D4; + color: #CFD2D4; padding: 1 1; } #DockSeparator, QMainWindow::separator, QSplitter::handle { - background-color: #272727; + background-color: #8f8f8f; height: 4; width: 4; } #TDockPlaceholder { - background-color: #F77272; + background-color: #f55454; } TPanel { - background-color: #272727; + background-color: #8f8f8f; } /* ----------------------------------------------------------------------------- Topbar ----------------------------------------------------------------------------- */ #TopBar { - background: #808080; + background: #DBDBDB; border: 0; - border-bottom: 1 solid #404040; - height: 21; + border-bottom: 1 solid #a8a8a8; } #TopBar #EditToolLockButton { - background: #808080; + background: #DBDBDB; spacing: 0; } #TopBar #EditToolLockButton::indicator { background: none; border: none; - height: 18; - margin: 1 2 0 0; padding-left: 0; padding-right: 0; } #TopBarTabContainer { - background-color: #808080; + background-color: #DBDBDB; margin-bottom: 1; } #StackedMenuBar { @@ -285,22 +249,22 @@ TPanel { padding: 0; } QMenuBar { - background-color: #808080; + background-color: #DBDBDB; border: 0; } QMenuBar::item { - background-color: #808080; - border-left: 1 solid #808080; + background-color: #DBDBDB; + border-left: 1 solid #DBDBDB; margin: 0; - padding: 3 5; + padding: 3 5 3 5; } QMenuBar::item:selected { - background-color: #9f9f9f; + background-color: #b5b5b5; color: #000; } QMenuBar::item:pressed { - background-color: #225baf; - color: #FFFFFF; + background-color: #a0c1dd; + color: #000; } /* ----------------------------------------------------------------------------- Workspaces @@ -310,72 +274,83 @@ QMenuBar::item:pressed { padding: 0; } #TopBarTab::tab { - background-color: #5a5a5a; - border-top: 1 solid #404040; - border-right: 1 solid #404040; - color: #afafaf; - margin: 0 0 0 0; + background-color: #c4c4c4; + border-top: 1 solid #a3a3a3; + border-right: 1 solid #a3a3a3; + color: #000; + margin: 0 0 -1 0; padding: 2 8 3 8; } #TopBarTab::tab:hover { - background-color: #6e6e6e; - color: #fff; + background-color: #d1d1d1; + color: #000; } #TopBarTab::tab:selected { - background-color: #808080; + background-color: #a0c1dd; color: #000; } #TopBarTab::tab:first { - border-left: 1 solid #404040; + border-left: 1 solid #a8a8a8; } #TopBarTab::tab:last { - border-right: 1 solid #404040; + border-right: 1 solid #a8a8a8; +} +#TopBarTab QToolButton { + border-left: 2 solid #a8a8a8; + border-top: 1 solid #a8a8a8; + border-right: 1 solid #a8a8a8; + border-bottom: 0; + margin-left: -1; + margin-top: 0; } /* ----------------------------------------------------------------------------- Menu ----------------------------------------------------------------------------- */ QMenu { - background-color: #9a9a9a; - border: 1 solid #404040; + background-color: #DBDBDB; + border: 1 solid #a8a8a8; color: #000; padding: 2 0; } QMenu::item { + border: 0; padding: 3 28; } QMenu::item:selected { - background-color: #225baf; - color: #FFFFFF; + background-color: #a0c1dd; + color: #000; } QMenu::item:checked { color: #000; } QMenu::item:checked:selected { - background-color: #225baf; - color: #FFFFFF; + background-color: #a0c1dd; + color: #000; } QMenu::item:disabled { background: none; - color: rgba(0, 0, 0, 0.466); + color: rgba(0, 0, 0, 0.4); } QMenu::item:disabled:selected { - background-color: #858585; - border-color: transparent; - color: rgba(0, 0, 0, 0.466); + color: rgba(0, 0, 0, 0.4); /* fix for disabled indicator */ } QMenu::separator { - border-top: 1 solid #737373; + border-top: 1 solid rgba(0, 0, 0, 0.171); height: 0; margin: 2 0; } QMenu::icon { border-radius: 2; - margin: 0 0 0 3; - padding: 1; + position: absolute; + left: 5; + padding: 0; + margin: 0; + qproperty-icon: url('../Default/imgs/black/none'); } QMenu::icon:checked { - background-color: #225baf; + background-color: #a0c1dd; + border: 1 solid #7aa8d0; } QMenu::indicator { margin-left: 7; @@ -384,59 +359,63 @@ QMenu::indicator { Titlebars ----------------------------------------------------------------------------- */ TPanelTitleBar { - background-color: #5a5a5a; - border-color: #404040; - border-style: solid; - border-width: 0 0 1 0; - height: 20; - min-height: 20; - qproperty-TitleColor: #c0c0c0; - qproperty-ActiveTitleColor: #fff; + background-color: #c4c4c4; + border-bottom: 1px solid #ababab; + height: 18; + min-height: 18; + qproperty-TitleColor: rgba(0, 0, 0, 0.5); + qproperty-ActiveTitleColor: #000; qproperty-BorderPixmap: url('none'); qproperty-ActiveBorderPixmap: url('../Default/imgs/black/none'); qproperty-FloatBorderPixmap: url('none'); qproperty-FloatActiveBorderPixmap: url('../Default/imgs/black/none'); } +TPanelTitleBarButton { + qproperty-PressedColor: #82add2; + qproperty-FreezeColor: #e0625c; + qproperty-PreviewColor: #2cb856; + qproperty-OverColor: #919191; +} /* ----------------------------------------------------------------------------- Scrollbars ----------------------------------------------------------------------------- */ QAbstractScrollArea::corner { - background-color: #737373; + background-color: #cecece; } QScrollBar { - background-color: #737373; + background-color: #cecece; border: 0; } QScrollBar:horizontal { - height: 16; + height: 15; margin: 0; } QScrollBar:vertical { margin: 0; - width: 16; + width: 15; } QScrollBar::handle { - border: 1 solid #5a5a5a; - border-radius: 5; + border: 0 solid #949494; + border-radius: 4; } QScrollBar::handle:horizontal:hover, QScrollBar::handle:vertical:hover { - background-color: #aeaeae; - border-color: #5a5a5a; + background-color: #7a7a7a; + border-color: #7a7a7a; } QScrollBar::handle:horizontal:pressed, QScrollBar::handle:vertical:pressed { - background-color: #c2c2c2; - border-color: #5a5a5a; + background-color: #545454; + border-color: #545454; } QScrollBar::handle:horizontal { - background-color: #9a9a9a; - margin: 2 16; + background-color: #949494; + margin: 3 16; min-width: 20; } QScrollBar::handle:vertical { - background-color: #9a9a9a; - margin: 16 2; + background-color: #949494; + margin: 16 3 16 3; min-height: 20; } QScrollBar::add-line { @@ -445,13 +424,13 @@ QScrollBar::add-line { } QScrollBar::add-line:horizontal { subcontrol-position: right; - background-color: #737373; + background-color: #cecece; margin: 0; width: 16; } QScrollBar::add-line:vertical { subcontrol-position: bottom; - background-color: #737373; + background-color: #cecece; margin: 0; height: 16; } @@ -461,13 +440,13 @@ QScrollBar::sub-line { } QScrollBar::sub-line:horizontal { subcontrol-position: left; - background-color: #737373; + background-color: #cecece; margin: 0; width: 16; } QScrollBar::sub-line:vertical { subcontrol-position: top; - background-color: #737373; + background-color: #cecece; margin: 0; height: 16; } @@ -506,18 +485,21 @@ QScrollBar::add-page:vertical { background: none; } /* ----------------------------------------------------------------------------- - Tool Bars + QToolBar ----------------------------------------------------------------------------- */ +/* This applies to QToolBar, this is not the #ToolBar window, although the + properties here also apply in the window, you should look in + [layouts/toolbar] if you want window control. */ QToolBar { padding: 0; } QToolBar::separator:horizontal { - border-left: 1 solid #404040; + border-left: 1 solid #a8a8a8; margin: 0 1; width: 0; } QToolBar::separator:vertical { - border-top: 1 solid #404040; + border-top: 1 solid #a8a8a8; height: 0; margin: 1 0; } @@ -527,23 +509,37 @@ QToolBar QLabel { QToolBar QToolBar { border: 0; } +QToolButton { + margin-left: 1; + margin-right: 1; + padding: 0; +} QToolButton::menu-indicator { image: none; } QToolButton::menu-button { border-image: none; } -/* -------------------------------------------------------------------------- */ -/* Scrollable QToolBar Buttons -/* -------------------------------------------------------------------------- */ +QToolButton#qt_toolbar_ext_button { + padding: 0; + border: 0; + margin: 0; + qproperty-icon: url('../Default/imgs/black/toolbar_extension_horizontal.png'); +} +QToolButton#qt_toolbar_ext_button:hover { + background-color: #d3d3d3; +} +QToolButton#qt_toolbar_ext_button:pressed { + background-color: #b5b5b5; +} .DvScrollWidget QPushButton, DvScrollWidget QPushButton, #ScrollLeftButton QPushButton, #ScrollRightButton QPushButton, #ScrollUpButton QPushButton, #ScrollDownButton QPushButton { - background-color: #a6a6a6; - border: 0 solid red; + background-color: #c7c7c7; + border: 0 solid #a8a8a8; border-radius: 0; padding: 0; max-width: 16; @@ -554,7 +550,7 @@ DvScrollWidget QPushButton:hover, #ScrollRightButton QPushButton:hover, #ScrollUpButton QPushButton:hover, #ScrollDownButton QPushButton:hover { - background-color: #bbbbbb; + background-color: #d3d3d3; } .DvScrollWidget QPushButton:pressed, DvScrollWidget QPushButton:pressed, @@ -562,7 +558,12 @@ DvScrollWidget QPushButton:pressed, #ScrollRightButton QPushButton:pressed, #ScrollUpButton QPushButton:pressed, #ScrollDownButton QPushButton:pressed { - background-color: #e1e1e1; + background-color: #8f8f8f; +} +DvScrollWidget { + /* Multiple classes can use the same style as DvScrollWidget, and + since the compiler can't handle extending to Qt names we place the + style in a mixin and extend the name to it instead. */ } #ScrollLeftButton, #ScrollRightButton, @@ -572,11 +573,11 @@ DvScrollWidget QPushButton:pressed, min-width: 16; } #ScrollLeftButton { - border-right: 1 solid #404040; + border-right: 1 solid #a8a8a8; image: url('../Default/imgs/black/scroll-left.svg'); } #ScrollRightButton { - border-left: 1 solid #404040; + border-left: 1 solid #a8a8a8; margin-left: 3; image: url('../Default/imgs/black/scroll-right.svg'); } @@ -587,41 +588,119 @@ DvScrollWidget QPushButton:pressed, image: url('../Default/imgs/black/scroll-down.svg'); } /* -------------------------------------------------------------------------- */ +/* For the buttons to display a BG color we need to set a blank image, setting + an empty URL solves this. */ #keyFrameNavigator { - background: none; + background: transparent; margin: 0; padding: 0; } -#keyFrameNavigator QToolButton { - min-width: 18; -} #keyFrameNavigator #PreviousKey { - image: url('../Default/imgs/black/prevkey.svg'); -} -#keyFrameNavigator #PreviousKey:hover { - image: url('../Default/imgs/black/prevkey_over.svg'); + margin: 0 2; + padding-right: -1; + width: 20px; + height: 20px; + image: url(''); } #keyFrameNavigator #PreviousKey:disabled { - image: url('../Default/imgs/black/prevkey_disabled.svg'); + image: url(''); } #keyFrameNavigator #NextKey { - image: url('../Default/imgs/black/nextkey.svg'); -} -#keyFrameNavigator #NextKey:hover { - image: url('../Default/imgs/black/nextkey_over.svg'); + margin: 0 2; + padding-right: -1; + width: 20px; + height: 20px; + image: url(''); } #keyFrameNavigator #NextKey:disabled { - image: url('../Default/imgs/black/nextkey_disabled.svg'); + image: url(''); +} +#keyFrameNavigator #KeyNo, +#keyFrameNavigator #KeyPartial, +#keyFrameNavigator #KeyTotal { + margin: 0; + padding-right: -1; + width: 20px; + height: 20px; + image: url(''); +} +#keyFrameNavigator #KeyNo:disabled, +#keyFrameNavigator #KeyPartial:disabled, +#keyFrameNavigator #KeyTotal:disabled { + image: url(''); +} +#keyFrameNavigator #KeyNo { + background-color: rgba(0, 0, 0, 0); + border: 1 solid rgba(0, 0, 0, 0); + image: url(''); +} +#keyFrameNavigator #KeyNo:disabled { + image: url(''); +} +#keyFrameNavigator #KeyNo:hover { + background-color: #b5b5b5; + border-color: #a0a0a0; +} +#keyFrameNavigator #KeyPartial { + background-color: #f8a145; + border: 1 solid #cf6e08; + image: url(''); +} +#keyFrameNavigator #KeyPartial:hover { + background-color: #faba76; + border-color: #cf6e08; +} +#keyFrameNavigator #KeyTotal { + background-color: #f8a145; + border: 1 solid #cf6e08; +} +#keyFrameNavigator #KeyTotal:hover { + background-color: #faba76; + border-color: #cf6e08; +} +#keyFrameNavigator QToolButton#qt_toolbar_ext_button { + padding-bottom: 3; + border-radius: 2; +} +/* ----------------------------------------------------------------------------- + Tab Containers +----------------------------------------------------------------------------- */ +#TabBarContainer { + background-color: #c4c4c4; + qproperty-BottomAboveLineColor: #c4c4c4; + qproperty-BottomBelowLineColor: #a8a8a8; +} +QTabBar { + background-color: #c4c4c4; +} +/* ----------------------------------------------------------------------------- + Tabs +----------------------------------------------------------------------------- */ +QTabBar QToolButton { + /* Scroll buttons */ + margin: 0; + background-color: #DBDBDB; + border-radius: 0; + border: 1 solid #a8a8a8; + border-top: 0; + padding: 3 2 2 2; +} +QTabBar QToolButton:hover, +QTabBar QToolButton:pressed { + border-color: #a8a8a8; +} +QTabBar QToolButton:disabled { + color: rgba(0, 0, 0, 0.4); } /* ----------------------------------------------------------------------------- - Trees + Item Tree ----------------------------------------------------------------------------- */ .treeview, QTreeWidget, QTreeView, #FunctionEditorTree { - background-color: #737373; - alternate-background-color: #7b7b7b; + background-color: #cecece; + alternate-background-color: #c4c4c4; border: 0; margin: 0; outline: 0; @@ -630,13 +709,14 @@ QTreeView, QTreeWidget::item:selected, QTreeView::item:selected, #FunctionEditorTree::item:selected { - background-color: #225baf; - color: #FFFFFF; + background-color: #a0c1dd; + color: #000; } .treeview::branch:adjoins-item, QTreeWidget::branch:adjoins-item, QTreeView::branch:adjoins-item, #FunctionEditorTree::branch:adjoins-item { + /* blank URL hides default Qt branch icons where it is not wanted */ border-image: url(''); } .treeview::branch:has-siblings, @@ -688,51 +768,45 @@ QTreeView::branch:has-children:has-siblings:open, } QListView { outline: 0; - background: #737373; - alternate-background-color: #7b7b7b; -} -/* ----------------------------------------------------------------------------- - Tab Systems ------------------------------------------------------------------------------ */ -#TabBarContainer { - background-color: #5a5a5a; + background: #cecece; + alternate-background-color: #c4c4c4; } /* ----------------------------------------------------------------------------- Tool Options - Override DvScroll Widget ----------------------------------------------------------------------------- */ #toolOptionsPanel QPushButton { - background-color: #a6a6a6; - border: 1 solid #525252; + background-color: #c7c7c7; + border: 1 solid #a0a0a0; border-radius: 2; - color: #000000; + color: #0d0d0d; margin: 0; padding: 0; } #toolOptionsPanel QPushButton:hover { - background-color: #bbbbbb; - border-color: #525252; - color: #000000; + background-color: #d3d3d3; + border-color: #a0a0a0; + color: #0d0d0d; } #toolOptionsPanel QPushButton:pressed { - background-color: #e1e1e1; - border-color: #525252; - color: #000000; + background-color: #8f8f8f; + border-color: #7a7a7a; + color: #0d0d0d; } #toolOptionsPanel QPushButton:checked { - background-color: #5a5a5a; - border-color: #454545; - color: #c0c0c0; + background-color: #b5b5b5; + border-color: #8e8e8e; + color: #000; } #toolOptionsPanel QPushButton:checked:hover { - background-color: #5f5f5f; + background-color: #c9c9c9; } #toolOptionsPanel QPushButton:checked:hover:pressed { - background: #5a5a5a; + background: #bcbcbc; } #toolOptionsPanel QPushButton:disabled { - background-color: #8d8d8d; - border-color: #737373; - color: rgba(0, 0, 0, 0.466); + background-color: #d1d1d1; + border-color: #b7b7b7; + color: rgba(0, 0, 0, 0.4); } /* ----------------------------------------------------------------------------- Push Button @@ -740,66 +814,72 @@ QListView { .Button, QPushButton, .ComboBox, -.ComboBox:checked, -QComboBox, -QComboBox:checked { - background-color: #a6a6a6; - border: 1 solid #525252; +#enableBlankFrameButton, +QComboBox { + background-color: #c7c7c7; + border-color: #a0a0a0; + border-width: 1; + border-style: solid; border-radius: 2; - color: #000000; + color: #0d0d0d; margin: 0; padding: 3 15; } .Button:hover, QPushButton:hover, #ViewerFpsSlider::sub-line:horizontal:hover, -#ViewerFpsSlider::add-line:horizontal:hover { - background-color: #bbbbbb; - border-color: #525252; - color: #000000; +#ViewerFpsSlider::add-line:horizontal:hover, +#enableBlankFrameButton:hover { + background-color: #d3d3d3; + border-color: #a0a0a0; + color: #0d0d0d; } .Button:pressed, QPushButton:pressed, #ViewerFpsSlider::sub-line:horizontal:pressed, -#ViewerFpsSlider::add-line:horizontal:pressed { - background-color: #e1e1e1; - border-color: #525252; - color: #000000; +#ViewerFpsSlider::add-line:horizontal:pressed, +#enableBlankFrameButton:pressed { + background-color: #8f8f8f; + border-color: #7a7a7a; + color: #0d0d0d; } .Button:checked, -QPushButton:checked { - background-color: #5a5a5a; - border-color: #454545; - color: #c0c0c0; +QPushButton:checked, +#enableBlankFrameButton:checked { + background-color: #b5b5b5; + border-color: #8e8e8e; + color: #000; } .Button:checked:hover, -QPushButton:checked:hover { - background-color: #5f5f5f; +QPushButton:checked:hover, +#enableBlankFrameButton:checked:hover { + background-color: #c9c9c9; + border-color: #bcbcbc; } .Button:checked:hover:pressed, -QPushButton:checked:hover:pressed { - background: #5a5a5a; +QPushButton:checked:hover:pressed, +#enableBlankFrameButton:checked:hover:pressed { + background: #bcbcbc; } .Button:disabled, QPushButton:disabled, .ComboBox:disabled, #ViewerFpsSlider::sub-line:horizontal:disabled, #ViewerFpsSlider::add-line:horizontal:disabled, +#enableBlankFrameButton:disabled, QComboBox:disabled { - background-color: #8d8d8d; - border-color: #737373; - color: rgba(0, 0, 0, 0.466); + background-color: #d1d1d1; + border-color: #b7b7b7; + color: rgba(0, 0, 0, 0.4); } #PushButton_NoPadding { padding: 3; } /* ----------------------------------------------------------------------------- - Combo Box + ComboBox ----------------------------------------------------------------------------- */ .ComboBox, -.ComboBox:checked, -QComboBox, -QComboBox:checked { +QComboBox { padding: 1 0 1 4; margin: 1 0; } @@ -807,25 +887,27 @@ QComboBox:checked { QComboBox:editable { /* for editable ComboBox */ color: #000; - background-color: #e6e6e6; - border-color: #525252; + background-color: #f4f4f4; + border-color: #a8a8a8; padding: 1 0 1 3; + selection-background-color: #a0c1dd; + selection-color: #000; } .ComboBox:hover, QComboBox:hover { - background-color: #bbbbbb; + background-color: #d3d3d3; } .ComboBox:hover:editable, QComboBox:hover:editable { - background-color: #e6e6e6; -} -.ComboBox:focus, -QComboBox:focus { - border-color: #0159fd; + background-color: #f4f4f4; } .ComboBox:checked, QComboBox:checked { - border-color: #0159fd; + border-color: #3e92d9; +} +.ComboBox:focus, +QComboBox:focus { + border-color: #3e92d9; } .ComboBox::drop-down, QComboBox::drop-down { @@ -836,19 +918,19 @@ QComboBox::drop-down { } .ComboBox::drop-down:editable, QComboBox::drop-down:editable { - background-color: #a6a6a6; - border-left: 1 solid #525252; + background-color: #c7c7c7; + border-left: 1 solid #a0a0a0; border-top-right-radius: 1; border-bottom-right-radius: 1; } .ComboBox::drop-down:hover, QComboBox::drop-down:hover { - border-color: #bbbbbb; + border-color: #d3d3d3; } .ComboBox::drop-down:hover:editable, QComboBox::drop-down:hover:editable { - background-color: #bbbbbb; - border-color: #525252; + background-color: #d3d3d3; + border-color: #a0a0a0; } .ComboBox::drop-down:disabled, QComboBox::drop-down:disabled { @@ -856,14 +938,14 @@ QComboBox::drop-down:disabled { } .ComboBox::drop-down:disabled:editable, QComboBox::drop-down:disabled:editable { - background-color: #8d8d8d; + background-color: #d1d1d1; } .ComboBox QAbstractItemView, QComboBox QAbstractItemView { - background-color: #9a9a9a; - border: 1 solid #404040; - selection-background-color: #225baf; - selection-color: #FFFFFF; + background-color: #DBDBDB; + border: 1 solid #a8a8a8; + selection-background-color: #a0c1dd; + selection-color: #000; } /* ----------------------------------------------------------------------------- Textfield @@ -874,12 +956,12 @@ QLineEdit, #TaskSheetItem, #tasksRemoveBox, #tasksAddBox { - background-color: #e6e6e6; - border: 1 solid #525252; + background-color: #f4f4f4; + border: 1 solid #a8a8a8; border-radius: 2; color: #000; - selection-background-color: #225baf; - selection-color: #FFFFFF; + selection-background-color: #a0c1dd; + selection-color: #000; padding: 0 0 0 1; } .LineEdit:focus, @@ -888,8 +970,8 @@ QLineEdit:focus, #TaskSheetItem:focus, #tasksRemoveBox:focus, #tasksAddBox:focus { - background-color: #e6e6e6; - border-color: #0159fd; + background-color: #f4f4f4; + border-color: #3e92d9; color: #000; } .LineEdit:disabled, @@ -898,9 +980,9 @@ QLineEdit:disabled, #TaskSheetItem:disabled, #tasksRemoveBox:disabled, #tasksAddBox:disabled { - background-color: #9a9a9a; - border-color: #696969; - color: rgba(0, 0, 0, 0.466); + background-color: #efefef; + border-color: #c2c2c2; + color: rgba(0, 0, 0, 0.4); } /* ----------------------------------------------------------------------------- CheckBox @@ -911,11 +993,11 @@ QCheckBox { } .CheckBox:hover, QCheckBox:hover { - color: #fff; + color: #000; } .CheckBox:disabled, QCheckBox:disabled { - color: rgba(0, 0, 0, 0.466); + color: rgba(0, 0, 0, 0.4); } .CheckBox::indicator, QMenu::indicator:non-exclusive, @@ -923,8 +1005,8 @@ QMenu::indicator:non-exclusive, QCheckBox::indicator, .GroupBox::indicator, QGroupBox::indicator { - background-color: #a6a6a6; - border: 1 solid #525252; + background-color: #f4f4f4; + border: 1 solid #a8a8a8; border-radius: 2; height: 9; /* fix for QGroupBox */ @@ -950,8 +1032,8 @@ QCheckBox::indicator:indeterminate:hover, QGroupBox::indicator:hover, QGroupBox::indicator:checked:hover, QGroupBox::indicator:indeterminate:hover { - background-color: #a6a6a6; - border-color: #ffffff; + background-color: #c6daea; + border-color: #757575; } .CheckBox::indicator:checked, QMenu::indicator:non-exclusive:checked, @@ -959,8 +1041,8 @@ QMenu::indicator:non-exclusive:checked, QCheckBox::indicator:checked, .GroupBox::indicator:checked, QGroupBox::indicator:checked { - background-color: #5a5a5a; - border-color: #454545; + background-color: rgba(0, 0, 0, 0.8); + border-color: rgba(0, 0, 0, 0.8); image: url('../Default/imgs/black/checkmark.svg'); } .CheckBox::indicator:checked:hover, @@ -969,8 +1051,8 @@ QMenu::indicator:non-exclusive:checked:hover, QCheckBox::indicator:checked:hover, .GroupBox::indicator:checked:hover, QGroupBox::indicator:checked:hover { - background-color: #5a5a5a; - border-color: #fff; + background-color: #5b5b5b; + border-color: #5b5b5b; } .CheckBox::indicator:checked:disabled, QMenu::indicator:non-exclusive:checked:disabled, @@ -978,8 +1060,8 @@ QMenu::indicator:non-exclusive:checked:disabled, QCheckBox::indicator:checked:disabled, .GroupBox::indicator:checked:disabled, QGroupBox::indicator:checked:disabled { - background-color: #676767; - border-color: #5a5a5a; + background-color: #c2c2c2; + border-color: #b5b5b5; image: url('../Default/imgs/black/checkmark_disabled.svg'); } .CheckBox::indicator:indeterminate, @@ -988,8 +1070,8 @@ QMenu::indicator:non-exclusive:indeterminate, QCheckBox::indicator:indeterminate, .GroupBox::indicator:indeterminate, QGroupBox::indicator:indeterminate { - background-color: #5a5a5a; - border-color: #454545; + background-color: rgba(0, 0, 0, 0.8); + border-color: rgba(0, 0, 0, 0.8); image: url('../Default/imgs/black/checkpartially.svg'); } .CheckBox::indicator:indeterminate:disabled, @@ -998,8 +1080,8 @@ QMenu::indicator:non-exclusive:indeterminate:disabled, QCheckBox::indicator:indeterminate:disabled, .GroupBox::indicator:indeterminate:disabled, QGroupBox::indicator:indeterminate:disabled { - background-color: #676767; - border-color: #5a5a5a; + background-color: #c2c2c2; + border-color: #b5b5b5; image: url('../Default/imgs/black/checkpartially_disabled.svg'); } .CheckBox::indicator:disabled, @@ -1008,11 +1090,11 @@ QMenu::indicator:non-exclusive:disabled, QCheckBox::indicator:disabled, .GroupBox::indicator:disabled, QGroupBox::indicator:disabled { - background-color: rgba(255, 255, 255, 0.11); + background-color: #DBDBDB; border-color: rgba(0, 0, 0, 0.11); } /* ----------------------------------------------------------------------------- - Radio Button + RadioButton ----------------------------------------------------------------------------- */ .RadioButton, QRadioButton { @@ -1022,7 +1104,7 @@ QRadioButton { } .RadioButton:hover, QRadioButton:hover { - color: #fff; + color: #000; } .RadioButton:checked, QRadioButton:checked { @@ -1030,15 +1112,15 @@ QRadioButton:checked { } .RadioButton:disabled, QRadioButton:disabled { - color: rgba(0, 0, 0, 0.466); + color: rgba(0, 0, 0, 0.4); } .RadioButton::indicator, QMenu::indicator:exclusive, QMenu::indicator:exclusive, QRadioButton::indicator, #CameraSettingsRadioButton_Small::indicator { - width: 11; - height: 11; + width: 13; + height: 13; background-color: transparent; border: 0; image-position: center center; @@ -1096,11 +1178,11 @@ QGroupBox::title { } .GroupBox::title:hover, QGroupBox::title:hover { - color: #fff; + color: #000; } .GroupBox::title:disabled, QGroupBox::title:disabled { - color: rgba(0, 0, 0, 0.466); + color: rgba(0, 0, 0, 0.4); } .GroupBox::indicator, QGroupBox::indicator { @@ -1109,7 +1191,7 @@ QGroupBox::indicator { } .GroupBox:disabled, QGroupBox:disabled { - color: rgba(0, 0, 0, 0.466); + color: rgba(0, 0, 0, 0.4); } /* ----------------------------------------------------------------------------- Slider @@ -1117,7 +1199,7 @@ QGroupBox:disabled { .Slider::groove:horizontal, QSlider::groove:horizontal { background-color: transparent; - background-image: url('../Default/imgs/black/slider-groove.svg'); + background-image: url('../Default/imgs/black/slider-groove_light.svg'); background-position: center center; background-repeat: repeat-x; margin: 0; @@ -1126,39 +1208,39 @@ QSlider::groove:horizontal { } .Slider::groove:horizontal:disabled, QSlider::groove:horizontal:disabled { - background-image: url('../Default/imgs/black/slider-groove_disabled.svg'); + background-image: url('../Default/imgs/black/slider-groove_disabled_light.svg'); } .Slider::handle:horizontal, QSlider::handle:horizontal { width: 10; margin: -2 0; - image: url('../Default/imgs/black/slider-handle.svg'); + image: url('../Default/imgs/black/slider-handle_light.svg'); } .Slider::handle:horizontal:disabled, QSlider::handle:horizontal:disabled { - image: url('../Default/imgs/black/slider-handle_disabled.svg'); + image: url('../Default/imgs/black/slider-handle_disabled_light.svg'); } /* ----------------------------------------------------------------------------- Double Slider ----------------------------------------------------------------------------- */ #IntPairField, #DoublePairField { - qproperty-LightLineColor: #484848; - qproperty-LightLineEdgeColor: #484848; - qproperty-DarkLineColor: #484848; - qproperty-MiddleLineColor: #484848; - qproperty-HandleLeftPixmap: url("../Default/imgs/black/slider-handle.svg"); - qproperty-HandleRightPixmap: url("../Default/imgs/black/slider-handle.svg"); - qproperty-HandleLeftGrayPixmap: url("../Default/imgs/black/slider-handle_disabled.svg"); - qproperty-HandleRightGrayPixmap: url("../Default/imgs/black/slider-handle_disabled.svg"); + qproperty-LightLineColor: #828282; + qproperty-LightLineEdgeColor: #828282; + qproperty-DarkLineColor: #828282; + qproperty-MiddleLineColor: #828282; + qproperty-HandleLeftPixmap: url("../Default/imgs/black/slider-handle_light.svg"); + qproperty-HandleRightPixmap: url("../Default/imgs/black/slider-handle_light.svg"); + qproperty-HandleLeftGrayPixmap: url("../Default/imgs/black/slider-handle_disabled_light.svg"); + qproperty-HandleRightGrayPixmap: url("../Default/imgs/black/slider-handle_disabled_light.svg"); } /* ----------------------------------------------------------------------------- Progress Bar ----------------------------------------------------------------------------- */ QProgressBar { text-align: center; - background-color: #676767; - border: 1 solid #404040; + background-color: #c2c2c2; + border: 1 solid #a8a8a8; border-radius: 3; /* 2 fits inside 3 */ padding: 0; @@ -1167,7 +1249,7 @@ QProgressBar::chunk { margin: -1; /* hide border of chunk except for right side */ background-color: #15a136; - border: 1 solid #404040; + border: 1 solid #a8a8a8; border-radius: 2; } /* ----------------------------------------------------------------------------- @@ -1176,44 +1258,55 @@ QProgressBar::chunk { /* Left Pane ----------------------------------------------------------------------------- */ #DirTreeView { - background-color: #737373; - alternate-background-color: #737373; - border: 1 solid #404040; + background-color: #cecece; + alternate-background-color: #cecece; + border: 1 solid #a8a8a8; border-right: 0; } /* Right Pane ----------------------------------------------------------------------------- */ DvItemViewerPanel { + background-color: #dbdbdb; qproperty-TextColor: #000; - qproperty-AlternateBackground: #787878; - qproperty-SelectedTextColor: #FFFFFF; + qproperty-AlternateBackground: #e3e3e3; + qproperty-SelectedTextColor: #000; qproperty-FolderTextColor: #001686; - qproperty-SelectedItemBackground: #225baf; + qproperty-SelectedItemBackground: #a0c1dd; } -#FileBrowser DvItemViewerPanel, -#SceneCast DvItemViewerPanel { - background-color: #808080; +DvItemViewerTitleBar { + qproperty-ColColor: #cecece; + qproperty-ColSortedColor: #cecece; + qproperty-ColTextColor: #000; + qproperty-ColBorderColor: #a8a8a8; +} +#FileBrowser, +#SceneCast { + background-color: #DBDBDB; +} +#FileBrowser QLabel, +#SceneCast QLabel { + background-color: transparent; +} +#FileBrowser QToolBar, +#SceneCast QToolBar { + background-color: #DBDBDB; } #FileBrowser #castFrame, #SceneCast #castFrame { - border-top: 1 solid #404040; - border-right: 1 solid #404040; - border-bottom: 1 solid #404040; + border-top: 1 solid #a8a8a8; + border-right: 1 solid #a8a8a8; + border-bottom: 1 solid #a8a8a8; margin: 0; } -#FileBrowser QToolButton, -#SceneCast QToolButton { - padding: 1; -} StyledTreeView { qproperty-TextColor: #000; - qproperty-SelectedTextColor: #FFFFFF; - qproperty-SelectedItemBackground: #225baf; + qproperty-SelectedTextColor: #000; + qproperty-SelectedItemBackground: #a0c1dd; qproperty-FolderTextColor: #001686; - qproperty-SelectedFolderTextColor: #FFFFFF; - alternate-background-color: #7b7b7b; - background-color: #737373; - border: 1 solid #404040; + qproperty-SelectedFolderTextColor: #000; + alternate-background-color: #c4c4c4; + background-color: #cecece; + border: 1 solid #a8a8a8; } #FileDoesNotExistLabel { color: #ff0000; @@ -1222,25 +1315,42 @@ StyledTreeView { Scene Cast ----------------------------------------------------------------------------- */ #SceneCast QToolBar { - border-top: 1 solid #404040; + border-top: 1 solid #a8a8a8; +} +#SceneCast QToolBar::separator:horizontal { + margin-left: 2; + margin-right: 0; } #SceneCast QToolButton { - margin: 3 1 2 1; + margin: 3 0 2 2; padding: 1; } #CastBrowser { border: 0; margin: 0; } +#CastBrowser QSplitter::handle { + height: 4; +} +#CastBrowserFolderName { + border-bottom: 1px solid #a8a8a8; +} /* ----------------------------------------------------------------------------- Level Strip ----------------------------------------------------------------------------- */ +#filmLevelCombo { + margin: -1; +} +#FilmStrip { + qproperty-BGColor: #DBDBDB; + margin: 0; + padding: 0; +} #FilmStrip QComboBox { border-radius: 0; - border-width: 0; } #FilmStrip QComboBox QAbstractItemView { - background-color: #9a9a9a; + background-color: #DBDBDB; } /* ----------------------------------------------------------------------------- Cleanup Settings @@ -1265,22 +1375,26 @@ ParamsPage { background: none; } #CameraSettingsRadioButton::indicator { - border: 1 solid rgba(255, 255, 255, 0); + border: 1 solid transparent; height: 18; - padding: 0; - width: 18; + padding: 0 -1 0 1; + width: 19; + margin-left: 1; } #CameraSettingsRadioButton::indicator:unchecked { - image: url('../Default/imgs/black/lock_off.svg'); + image: url('../Default/imgs/black/lock.svg'); +} +#CameraSettingsRadioButton::indicator:unchecked:hover { + image: url('../Default/imgs/black/lock_over.svg'); } #CameraSettingsRadioButton::indicator:checked { - background-color: #C34040; - border-color: #772626; + background-color: #e0625c; + border-color: #b42922; image: url('../Default/imgs/black/lock_on.svg'); } #CameraSettingsRadioButton::indicator:checked:hover { - background-color: #d57a7a; - border-color: #772626; + background-color: #eca09c; + border-color: #b42922; } #CameraSettingsDPI { color: #000000; @@ -1291,20 +1405,14 @@ ParamsPage { #CameraSettingsRadioButton_Small::indicator { background-color: transparent; border: 0; - height: 21; margin: 0; - width: 11; } #ForceSquaredPixelButton { + margin: 0; height: 16; - border: 1 solid rgba(255, 255, 255, 0); - image: url('../Default/imgs/black/fsp_unchecked.svg'); - padding: 2; width: 16; - margin: 0; -} -#ForceSquaredPixelButton:checked { - image: url('../Default/imgs/black/fsp_checked.svg'); + border: 1 solid transparent; + padding: 2; } /* ----------------------------------------------------------------------------- Output Settings @@ -1323,11 +1431,11 @@ PencilTestPopup { allows for filling half of a 1024 screen */ } #MatchLineButton { - background-color: #a6a6a6; + background-color: #ffffff; } #MatchLineButton:checked { - background-color: #cdcdcd; - border: 2 solid #225baf; + background-color: #ffffff; + border: 2 solid #a0c1dd; border-radius: 2; } #LargeSizedText { @@ -1347,15 +1455,12 @@ PencilTestPopup { margin-left: -4; } #StopMotionController #bottomWidget { - border-top: 1 solid #404040; + border-top: 1 solid #a8a8a8; padding: 3 2 8 3; } #StopMotionController #bottomWidget QPushButton { padding: 3 5; } -#StopMotionTabBar::tab::first { - border-left: 1 solid #404040; -} /* ----------------------------------------------------------------------------- Unknowns + Legacy ----------------------------------------------------------------------------- */ @@ -1363,7 +1468,7 @@ PencilTestPopup { padding: 3; } #StartupLabel:hover { - background: #9a9a9a; + background: #f4f4f4; } QStatusBar { background-color: #c0c0c0; @@ -1385,24 +1490,17 @@ QStatusBar #StatusBarLabel { Style Editor ----------------------------------------------------------------------------- */ #StyleEditor #TabBarContainer { - margin-left: -5; + margin-left: -5px; } #StyleEditor #bottomWidget { - border-top: 1 solid #404040; + border-top: 1 solid #a8a8a8; padding: 3 2 8 3; } #StyleEditor #bottomWidget QPushButton { padding: 3 5; } -#StyleEditorTabBar { - padding: 0; - margin: 0; -} -#StyleEditorTabBar::tab:first { - border-left: 1 solid #404040; -} #HexagonalColorWheel { - qproperty-BGColor: #808080; + qproperty-BGColor: #DBDBDB; } /* -------------------------------------------------------------------------- */ /* Horizontal QSlider */ @@ -1421,7 +1519,7 @@ QStatusBar #StatusBarLabel { image-position: center center; min-height: 16; padding: 0; - min-width: 18; + min-width: 10; } #colorSliderAddButton { image: url('../Default/imgs/black/scroll-right.svg'); @@ -1430,7 +1528,7 @@ QStatusBar #StatusBarLabel { image: url('../Default/imgs/black/scroll-left.svg'); } #PlainColorPageParts { - border-bottom: 1 solid #404040; + border-bottom: 1 solid #a8a8a8; } #PlainColorPageParts QLineEdit { max-width: 35; @@ -1457,29 +1555,48 @@ PaletteViewer DvScrollWidget #ScrollRightButton { max-width: 16; min-width: 16; } +PaletteViewer QToolBar { + background: transparent; +} PaletteViewer QToolBar::separator:horizontal { margin: 0; } PaletteViewer QToolBar QToolButton { + padding: 0; + padding-right: -2; + padding-left: -1; +} +PaletteViewer QToolBar #keyFrameNavigator #NextKey, +PaletteViewer QToolBar #keyFrameNavigator #PreviousKey, +PaletteViewer QToolBar #keyFrameNavigator #KeyNo, +PaletteViewer QToolBar #keyFrameNavigator #KeyPartial, +PaletteViewer QToolBar #keyFrameNavigator #KeyTotal { + max-width: 20px; + max-height: 20px; + padding: 1; + border: 0; margin: 0; - padding: 2 0 2 0; -} -#PaletteTabBar::tab { - padding-bottom: 4; } #PageViewer { qproperty-TextColor: #000; + qproperty-SelectedBorderColor: #425264; + qproperty-NumpadShortcutBgColor: rgba(0, 0, 0, 0.15); + qproperty-NumpadShortcutBorderColor: #808080; + qproperty-SeparatorColor: #a8a8a8; + qproperty-CurrentCellColor: rgba(160, 193, 221, 0.5); + qproperty-SelectedCellColor: #a0c1dd; + qproperty-ListNumpadShortcutBorderColor: #696969; } #PaletteLockButton { border-radius: 0; } #PaletteLockButton:checked { - background-color: #C34040; - border-color: #772626; + background-color: #e0625c; + border-color: #b42922; } #PaletteLockButton:checked:hover { - background-color: #d57a7a; - border-color: #772626; + background-color: #eca09c; + border-color: #b42922; } /* ----------------------------------------------------------------------------- Quick Renamer @@ -1492,28 +1609,28 @@ PaletteViewer QToolBar QToolButton { Popup Windows ----------------------------------------------------------------------------- */ QDialog { - background-color: #808080; + background-color: #DBDBDB; } QDialog #dialogButtonFrame { - background-color: #767676; - border-top: 1 solid #404040; + background-color: #DBDBDB; + border-top: 1 solid #a8a8a8; } QDialog #dialogButtonFrame QPushButton { - border-color: #525252; + border-color: #a0a0a0; outline: 0; } QDialog #dialogButtonFrame QPushButton:focus { - background-color: #B5C0D0; - border-color: #0159fd; - color: #000000; + background-color: #acc3d6; + border-color: #89aac6; + color: #0d0d0d; } QDialog #dialogButtonFrame QPushButton:focus:hover { - background-color: #ced5e0; + background-color: #c7d7e4; } QDialog #dialogButtonFrame QPushButton:focus:pressed { - background-color: #e1e1e1; - border-color: #525252; - color: #000000; + background-color: #8f8f8f; + border-color: #7a7a7a; + color: #0d0d0d; } /* ----------------------------------------------------------------------------- Scene Settings @@ -1525,9 +1642,9 @@ QDialog #dialogButtonFrame QPushButton:focus:pressed { Preferences ----------------------------------------------------------------------------- */ #PreferencesPopup QListWidget { - background-color: #737373; - alternate-background-color: #737373; - border: 1 solid #404040; + background-color: #cecece; + alternate-background-color: #cecece; + border: 1 solid #a8a8a8; font-size: 13px; } #PreferencesPopup QListWidget::item { @@ -1535,19 +1652,18 @@ QDialog #dialogButtonFrame QPushButton:focus:pressed { padding: 3; } #PreferencesPopup QListWidget::item:hover { - background-color: #9f9f9f; + background-color: #b5b5b5; color: #000; - background-color: #888888; } #PreferencesPopup QListWidget::item:selected { - background-color: #225baf; - color: #FFFFFF; + background-color: #a0c1dd; + color: #000; } /* ----------------------------------------------------------------------------- Keyboard Shortcuts ----------------------------------------------------------------------------- */ #ShortcutTree { - border: 1 solid #404040; + border: 1 solid #a8a8a8; } #ShortcutTree::item { padding: 1 0; @@ -1565,115 +1681,137 @@ ProjectPopup QLabel { /* ----------------------------------------------------------------------------- PencilTestPopup / CameraCapture Window ----------------------------------------------------------------------------- */ -#GearButton { - qproperty-icon: url('../Default/imgs/black/gear.svg'); -} #GearButton::menu-indicator { - image: ""; + image: url(""); } #SubfolderButton { - qproperty-icon: url('../Default/imgs/black/subfolder.svg'); - padding-left: 6px; - padding-right: 6px; + padding-left: 5px; + padding-right: 5px; } #SubcameraButton { - qproperty-icon: url('../Default/imgs/black/subcamera.svg'); - padding-left: 6px; - padding-right: 6px; + padding-left: 5px; + padding-right: 5px; } /* ----------------------------------------------------------------------------- Schematic Viewer ----------------------------------------------------------------------------- */ SchematicViewer { qproperty-TextColor: #000; - qproperty-VerticalLineColor: rgba(0, 0, 0, 0.404); - qproperty-LevelColumnColor: #76b776; - qproperty-VectorColumnColor: #c0c07a; - qproperty-ChildColumnColor: #d69adb; - qproperty-FullcolorColumnColor: #8bbdc1; - qproperty-FxColumnColor: #82815d; - qproperty-PaletteColumnColor: #2aab9a; - qproperty-MeshColumnColor: #ac78d4; - qproperty-ReferenceColumnColor: #ababab; - qproperty-TableColor: #a4a4bf; - qproperty-ActiveCameraColor: #6ba5de; - qproperty-OtherCameraColor: #8f9c9e; - qproperty-GroupColor: #6698c6; - qproperty-PegColor: #be8a56; - qproperty-SplineColor: #7bb821; - qproperty-ActiveOutputColor: #6ba5de; - qproperty-OtherOutputColor: #8f9c9e; - qproperty-XsheetColor: #a4a4bf; - qproperty-NormalFxColor: #8d9caf; - qproperty-MacroFxColor: #ae8ca5; - qproperty-ImageAdjustFxColor: #9c9ab4; - qproperty-LayerBlendingFxColor: #709ba5; - qproperty-MatteFxColor: #ba8585; - qproperty-SchematicPreviewButtonBgOnColor: #c8c864; - qproperty-SchematicPreviewButtonOnImage: url('../Default/imgs/black/x_prev_eye_on.svg'); - qproperty-SchematicPreviewButtonBgOffColor: #ababab; - qproperty-SchematicPreviewButtonOffImage: url('../Default/imgs/black/x_prev_eye_off.svg'); - qproperty-SchematicCamstandButtonBgOnColor: #eb906b; - qproperty-SchematicCamstandButtonOnImage: url('../Default/imgs/black/x_table_view_on.svg'); - qproperty-SchematicCamstandButtonTranspImage: url('../Default/imgs/black/x_table_view_transp.svg'); - qproperty-SchematicCamstandButtonBgOffColor: #ababab; - qproperty-SchematicCamstandButtonOffImage: url('../Default/imgs/black/x_table_view_off.svg'); + qproperty-VerticalLineColor: rgba(0, 0, 0, 0.15); + qproperty-LevelColumnColor: #9ed49e; + qproperty-VectorColumnColor: #d3cf9a; + qproperty-ChildColumnColor: #cca3cc; + qproperty-FullcolorColumnColor: #b0cbdd; + qproperty-FxColumnColor: #ceb694; + qproperty-PaletteColumnColor: #a9d4ca; + qproperty-MeshColumnColor: #b8a2cf; + qproperty-ReferenceColumnColor: #c2c2c2; + qproperty-TableColor: #cbcbe4; + qproperty-ActiveCameraColor: #b7dbfc; + qproperty-OtherCameraColor: #9ad9e2; + qproperty-GroupColor: #94bee5; + qproperty-PegColor: #dfb081; + qproperty-SplineColor: #a4ee37; + qproperty-ActiveOutputColor: #b7dbfc; + qproperty-OtherOutputColor: #9ad9e2; + qproperty-XsheetColor: #cbcbe4; + qproperty-NormalFxColor: #b1c2d7; + qproperty-MacroFxColor: #d7b0cc; + qproperty-ImageAdjustFxColor: #c1bedc; + qproperty-LayerBlendingFxColor: #93c3ce; + qproperty-MatteFxColor: #deadad; + qproperty-SchematicPreviewButtonBgOnColor: #e9e97f; + qproperty-SchematicPreviewButtonOnImage: url('../Default/imgs/black/schematic_preview_on.svg'); + qproperty-SchematicPreviewButtonBgOffColor: #c2c2c2; + qproperty-SchematicPreviewButtonOffImage: url('../Default/imgs/black/schematic_preview_off.svg'); + qproperty-SchematicCamstandButtonBgOnColor: #ffa683; + qproperty-SchematicCamstandButtonOnImage: url('../Default/imgs/black/schematic_table_on.svg'); + qproperty-SchematicCamstandButtonTranspImage: url('../Default/imgs/black/schematic_table_transp.svg'); + qproperty-SchematicCamstandButtonBgOffColor: #c2c2c2; + qproperty-SchematicCamstandButtonOffImage: url('../Default/imgs/black/schematic_table_off.svg'); + qproperty-SelectedBorderColor: #ffffff; + qproperty-LinkColor: #dfdfdf; + qproperty-SelectedLinkColor: cyan; + qproperty-MotionPathLinkColor: #94ee1e; + qproperty-MotionPathSelectedLinkColor: yellow; } /* ----------------------------------------------------------------------------- Schematic Node Viewer ----------------------------------------------------------------------------- */ #SchematicBottomFrame { - background-color: #808080; + background-color: #DBDBDB; border: 0; margin: 0; padding: 0; + padding-left: 1; } #SchematicBottomFrame QToolBar::separator:horizontal { margin: 0; + margin-right: 1; } #SchematicBottomFrame QToolBar QToolButton { - padding: 0; - margin: 2; + padding: -2; + margin-right: 2; + margin-top: 2; + margin-bottom: 2; } #SchematicSceneViewer { - background-color: #737373; - border-bottom: 1 solid #404040; + background-color: #808080; + border-bottom: 1 solid #a8a8a8; } /* ----------------------------------------------------------------------------- FX Settings ----------------------------------------------------------------------------- */ -#FxSettingsTabBar::tab { - border-top: 1 solid #404040; -} -#FxSettingsTabBar::tab::first, -#FxSettingsTabBar::tab::only-one { - border-left: 1 solid #404040; -} FxSettings QToolBar { - border-top: 1 solid #404040; - border-right: 1 solid #404040; - border-left: 1 solid #404040; - min-height: 23; + border: 1 1 0 1 solid #a8a8a8; + min-height: 19; padding: 3 0; + border-top: 1 solid #a8a8a8; + border-left: 1 solid #a8a8a8; + border-right: 1 solid #a8a8a8; + border-top-left-radius: 2; + border-top-right-radius: 2; + margin-bottom: -1; } FxSettings QToolBar QToolBar { border: 0; } +FxSettings QToolBar QToolButton { + margin: 0; + padding: 0; + width: 22; + padding-right: -2; + padding-bottom: -1; +} #FxSettingsLabel { - color: #000000; + color: #000; } #FxSettingsHelpButton { - background-color: #80a0dc; - color: #000; + background-color: transparent; + border: 0; padding-top: 0; padding-bottom: 0; } #FxSettingsHelpButton:hover { - background-color: #a8bee7; + background-color: #d3d3d3; } ChannelBar { qproperty-TextColor: #000; } +/* Keyframe Button Colors +----------------------------------------------------------------------------- */ +ParamFieldKeyToggle { + qproperty-KeyOffColor: rgba(0, 0, 0, 0); + qproperty-KeyBorderOffColor: rgba(0, 0, 0, 0); + qproperty-KeyModifiedColor: #f3e281; + qproperty-KeyBorderModifiedColor: #99850f; + qproperty-KeyOnColor: #f8a145; + qproperty-KeyBorderOnColor: #cf6e08; + qproperty-KeyInbetweenColor: #e6dbb6; + qproperty-KeyBorderInbetweenColor: #9b8435; + qproperty-KeyHighlightColor: rgba(255, 255, 255, 0.3); + qproperty-KeyBorderHighlightColor: #a0a0a0; +} /* ----------------------------------------------------------------------------- Script Console ----------------------------------------------------------------------------- */ @@ -1687,7 +1825,7 @@ ChannelBar { background-color: #dcdcdc; } #ScriptConsole TPanelTitleBar { - background-color: #5a5a5a; + background-color: #c4c4c4; } /* ----------------------------------------------------------------------------- Task Viewer @@ -1696,7 +1834,7 @@ ChannelBar { color: #000; } #Tasks QToolBar { - border-bottom: 1 solid #404040; + border-bottom: 1 solid #a8a8a8; margin: 0; padding: 0; } @@ -1704,24 +1842,46 @@ ChannelBar { margin: 2 2 3 2; } /* ----------------------------------------------------------------------------- - Tool Bar + Tools Window ----------------------------------------------------------------------------- */ #ToolBar QToolBar { - padding-left: 2; + padding-left: 3px; +} +#ToolBar QToolButton { + padding: 1 0 0 1; + margin-top: 1; + margin-bottom: 1; +} +#ToolBar QToolButton#qt_toolbar_ext_button { + qproperty-icon: url('../Default/imgs/black/toolbar_extension_vertical.png'); + padding-bottom: 1; +} +#ToolBar QToolButton#qt_toolbar_ext_button:hover { + background-color: #d3d3d3; +} +#ToolBar QToolButton#qt_toolbar_ext_button:pressed { + background-color: #8f8f8f; +} +#expandButton:checked { + background-color: transparent; + border-color: transparent; + color: #000; +} +#expandButton:checked:hover { + background-color: #b5b5b5; + border-color: #a0a0a0; +} +#expandButton:checked:pressed { + background-color: #8f8f8f; + border-color: #7a7a7a; } /* ----------------------------------------------------------------------------- - Tool Options + Tool Options Window ----------------------------------------------------------------------------- */ #ToolOptions TPanelTitleBar { - border-right: 1 solid #404040; - border-bottom: 0; -} -#CommandBar TPanelTitleBar { - border-right: 1 solid #404040; border-bottom: 0; -} -IconViewField { - qproperty-ThicknessPixmap: url("../Default/imgs/black/selectiontool_thickness.svg"); + border-right: 1px solid #ababab; + max-width: 18; } #EditToolLockButton { spacing: 0; @@ -1730,22 +1890,26 @@ IconViewField { background: none; } #EditToolLockButton::indicator { - border: 1 solid rgba(255, 255, 255, 0); + border: 1 solid transparent; height: 18; - padding: 0; - width: 18; + padding: 0 -1 0 1; + width: 19; + margin-left: 1; } #EditToolLockButton::indicator:unchecked { - image: url('../Default/imgs/black/lock_off.svg'); + image: url('../Default/imgs/black/lock.svg'); +} +#EditToolLockButton::indicator:unchecked:hover { + image: url('../Default/imgs/black/lock_over.svg'); } #EditToolLockButton::indicator:checked { - background-color: #C34040; - border-color: #772626; + background-color: #e0625c; + border-color: #b42922; image: url('../Default/imgs/black/lock_on.svg'); } #EditToolLockButton::indicator:checked:hover { - background-color: #d57a7a; - border-color: #772626; + background-color: #eca09c; + border-color: #b42922; } PopupButton::menu-indicator { border-left: 0; @@ -1777,12 +1941,34 @@ PopupButton::menu-indicator:disabled { padding: 0; } QToolBar#MediumPaddingToolBar QToolButton { - padding-left: 3; - padding-right: 3; + padding-left: 2; + padding-right: 1; } QToolBar#WidePaddingToolBar QToolButton { - padding-left: 6; - padding-right: 6; + padding-left: 2; + padding-right: 1; +} +/* XSheet Toolbar & Command Bar +----------------------------------------------------------------------------- */ +#XSheetToolbar { + padding: 0; + margin: 0; + border-bottom: 1 solid #a8a8a8; +} +#XSheetToolbar QToolButton#qt_toolbar_ext_button { + margin: 0; + margin-top: 3; +} +#XSheetToolbar QToolButton { + padding: 0; + padding-right: -1; + padding-bottom: -1; + min-height: 20px; + margin-left: 2; + margin-right: 0; +} +#XSheetToolbar::separator:horizontal { + margin: 0 0 0 2; } #CommandBar { margin: 0; @@ -1790,43 +1976,60 @@ QToolBar#WidePaddingToolBar QToolButton { border: 0; } #CommandBar::separator:horizontal { - margin-right: 3; - margin-left: 3; + margin-right: 0; + margin-left: 2; } -#expandButton:checked { - background-color: transparent; - border-color: transparent; - color: #000; +#CommandBar QToolButton { + margin: 0 0 0 2; + padding: 0; + padding-top: -1; + padding-left: 0; + padding-right: -1; + padding-bottom: 0; + min-height: 20px; } -#expandButton:checked:hover { - background-color: #bbbbbb; - border-color: #525252; +#CommandBar QToolButton#qt_toolbar_ext_button { + margin-top: 1; } -#expandButton:checked:pressed { - background-color: #e1e1e1; - border-color: #525252; +#CommandBar TPanelTitleBar { + border-right: 1px solid #ababab; + border-bottom: 0; + max-width: 18; } /* ----------------------------------------------------------------------------- ComboViewer / Viewer / FlipBook ----------------------------------------------------------------------------- */ #ComboViewerPanel Toolbar { - border-bottom: 1 solid #404040; + border-bottom: 1 solid #a8a8a8; } #ComboViewerPanel Toolbar::separator:horizontal { margin: 0 0 0 2; + padding: 0; } #ComboViewerPanel Toolbar QToolButton { - margin: 2 0 3 2; + margin: 0; + margin-bottom: 3; + margin-left: 2; + margin-right: 0; + margin-top: 2; + padding-top: 1; + padding-left: 1; + padding-right: 0; + padding-bottom: 0; +} +#ComboViewerPanel Toolbar QToolButton#qt_toolbar_ext_button { + margin-bottom: 1; + qproperty-icon: url('../Default/imgs/black/toolbar_extension_horizontal.png'); } #ComboViewerToolOptions { - border-bottom: 1 solid #404040; + border-bottom: 1 solid #a8a8a8; } #ComboViewer #ToolBarContainer, #ViewerPanel #ToolBarContainer, FlipBook #ToolBarContainer { background-color: transparent; - border-top: 2 solid #404040; - border-bottom: 1 solid #404040; + border-top: 1 solid #a8a8a8; + border-bottom: 1 solid #a8a8a8; padding-right: -1; } #flipCustomize { @@ -1840,18 +2043,35 @@ FlipBook #ToolBarContainer { image: none; } QToolBar#FlipConsolePlayToolBar::separator:horizontal { - margin: 0 3; + border-color: #a8a8a8; + margin: 0 1 0 1; } QToolBar#FlipConsolePlayToolBar QToolButton { - margin-top: 2; - margin-bottom: 2; - height: 16; - padding-left: 1; + padding-left: 0; + padding-top: -1; + padding-right: -1; + padding-bottom: -2; + margin: 2 1 2 1; +} +QToolBar#FlipConsolePlayToolBar #KeyNo, +QToolBar#FlipConsolePlayToolBar #KeyPartial, +QToolBar#FlipConsolePlayToolBar #KeyTotal, +QToolBar#FlipConsolePlayToolBar #PreviousKey, +QToolBar#FlipConsolePlayToolBar #NextKey { padding-right: 1; + padding-left: 1; + max-width: 20px; + max-height: 20px; + padding-bottom: 0; + padding-top: 0; +} +QToolBar#FlipConsolePlayToolBar #PreviousKey, +QToolBar#FlipConsolePlayToolBar #NextKey { + margin: 0 2; } #ViewerFpsSlider { background-color: transparent; - background-image: url('../Default/imgs/black/slider-groove.svg'); + background-image: url('../Default/imgs/black/slider-groove_light.svg'); background-position: center center; background-repeat: repeat-x; border: 0; @@ -1862,8 +2082,8 @@ QToolBar#FlipConsolePlayToolBar QToolButton { } #ViewerFpsSlider::sub-line:horizontal { subcontrol-origin: absolute; - background-color: #a6a6a6; - border: 1 solid #525252; + background-color: #c7c7c7; + border: 1 solid #a0a0a0; border-top-left-radius: 2; border-bottom-left-radius: 2; height: 16; @@ -1872,8 +2092,8 @@ QToolBar#FlipConsolePlayToolBar QToolButton { } #ViewerFpsSlider::add-line:horizontal { subcontrol-position: left; - background-color: #a6a6a6; - border: 1 solid #525252; + background-color: #c7c7c7; + border: 1 solid #a0a0a0; border-top-right-radius: 2; border-bottom-right-radius: 2; left: 18; @@ -1882,35 +2102,51 @@ QToolBar#FlipConsolePlayToolBar QToolButton { width: 13; } #ViewerFpsSlider::handle::horizontal { - background-color: #a6a6a6; - border: 1 solid #404040; + background-color: #c2c2c2; + border: 1 solid #8f8f8f; border-radius: 2; margin: 2 0 3 0; min-width: 9; width: 9; max-width: 9; } +FlipConsole { + qproperty-FpsFieldColor: #f4f4f4; +} FlipSlider { qproperty-PBHeight: 15; - qproperty-PBOverlay: url('../Default/imgs/black/flipslider.svg'); + qproperty-PBOverlay: url('../Default/imgs/black/flipslider_light.svg'); qproperty-PBColorMarginLeft: 1; qproperty-PBColorMarginTop: 2; qproperty-PBColorMarginRight: 1; qproperty-PBColorMarginBottom: 2; - qproperty-PBMarker: url('../Default/imgs/black/flipmarker.svg'); + qproperty-PBMarker: url('../Default/imgs/black/flipmarker_light.svg'); qproperty-PBMarkerMarginLeft: 3; qproperty-PBMarkerMarginRight: 3; - qproperty-notStartedColor: #8b2525; - qproperty-startedColor: #00a808; - qproperty-baseColor: #676767; - qproperty-finishedColor: #676767; + qproperty-notStartedColor: #c33c3c; + qproperty-startedColor: #10dd40; + qproperty-baseColor: #c2c2c2; + qproperty-finishedColor: #c2c2c2; } Ruler { - qproperty-ParentBGColor: #a6a6a6; - qproperty-ScaleColor: #000; + qproperty-ParentBGColor: #DBDBDB; + qproperty-ScaleColor: rgba(0, 0, 0, 0.7); + qproperty-HandleColor: black; + qproperty-HandleDragColor: red; + qproperty-BorderColor: rgba(168, 168, 168, 0.7); } #RulerToolOptionValues { - color: #000000; + color: #5b5b5b; +} +#enableBlankFrameButton { + background-color: transparent; + border-color: transparent; + color: rgba(0, 0, 0, 0.4); + padding: 0; + font-weight: bold; +} +#enableBlankFrameButton:checked { + border-width: 2px; } /* ----------------------------------------------------------------------------- XSheet Viewer @@ -1919,7 +2155,7 @@ Ruler { ----------------------------------------------------------------------------- */ #xsheetArea, #ScrollArea { - background-color: #6c6c6c; + background-color: #DBDBDB; border: 0; } #xsheetScrollArea { @@ -1928,6 +2164,19 @@ Ruler { #cornerWidget QToolButton { padding: 0; } +#XsheetCellArea QLineEdit { + margin-top: 1; +} +#XsheetCellArea QLineEdit:focus { + border-radius: 0; + border-width: 2; + border-left-width: 2; + border-color: #000; + background-color: #f4f4f4; +} +#RenameCellField { + padding-right: 3; +} /* xsheetColumnHeader (Context Menus) ----------------------------------------------------------------------------- */ #xsheetColumnAreaMenu_Preview { @@ -1947,136 +2196,130 @@ Ruler { #noteTextEdit { color: #000; } +#DvMiniToolBar { + border: 1 solid #a8a8a8; +} /* XSheet Spreadsheet ----------------------------------------------------------------------------- */ XsheetViewer { qproperty-TextColor: #000; - qproperty-BGColor: #8a8a8a; - qproperty-LightLineColor: rgba(0, 0, 0, 0.205); - qproperty-MarkerLineColor: #000; - qproperty-VerticalLineColor: rgba(0, 0, 0, 0.404); - qproperty-VerticalLineHeadColor: #000000; - qproperty-PreviewFrameTextColor: #000eb6; - qproperty-CurrentRowBgColor: #B5C0D0; - qproperty-OnionSkinAreaBgColor: #808080; - qproperty-EmptyColumnHeadColor: #676767; - qproperty-EmptyCellColor: #7c7c7c; - qproperty-NotEmptyColumnColor: #9a9a9a; - qproperty-SelectedEmptyCellColor: #b3b3b3; - qproperty-LevelColumnColor: #76b776; - qproperty-LevelColumnBorderColor: #496549; - qproperty-SelectedLevelColumnColor: #9bc59b; - qproperty-VectorColumnColor: #c0c07a; - qproperty-VectorColumnBorderColor: #71714a; - qproperty-SelectedVectorColumnColor: #cdcda0; - qproperty-ChildColumnColor: #d69adb; - qproperty-ChildColumnBorderColor: #9c53a3; - qproperty-SelectedChildColumnColor: #e3c2e6; - qproperty-FullcolorColumnColor: #8bbdc1; - qproperty-FullcolorColumnBorderColor: #577476; - qproperty-SelectedFullcolorColumnColor: #afcdd0; - qproperty-FxColumnColor: #82815d; - qproperty-FxColumnBorderColor: #404039; - qproperty-SelectedFxColumnColor: #97967b; - qproperty-ReferenceColumnColor: #ababab; - qproperty-ReferenceColumnBorderColor: #6b6b6b; - qproperty-SelectedReferenceColumnColor: #c4c4c4; - qproperty-PaletteColumnColor: #2aab9a; - qproperty-PaletteColumnBorderColor: #173e39; - qproperty-SelectedPaletteColumnColor: #40c8b6; - qproperty-MeshColumnColor: #ac78d4; - qproperty-MeshColumnBorderColor: #6b418c; - qproperty-SelectedMeshColumnColor: #c3a2dd; - qproperty-SoundTextColumnColor: #c8c8c8; - qproperty-SoundTextColumnBorderColor: #8c8c8c; - qproperty-SelectedSoundTextColumnColor: #e2e2e2; - qproperty-SoundColumnColor: #acba82; - qproperty-SoundColumnBorderColor: #656b51; - qproperty-SelectedSoundColumnColor: #c0c9a6; + qproperty-ErrorTextColor: #c01111; + qproperty-BGColor: #cecece; + qproperty-LightLineColor: rgba(0, 0, 0, 0.15); + qproperty-MarkerLineColor: rgba(0, 0, 0, 0.3); + qproperty-VerticalLineColor: rgba(0, 0, 0, 0.15); + qproperty-VerticalLineHeadColor: rgba(0, 0, 0, 0.3); + qproperty-PreviewFrameTextColor: #2d42b9; + qproperty-CurrentRowBgColor: rgba(123, 174, 217, 0.7); + qproperty-OnionSkinAreaBgColor: #c2c2c2; + qproperty-CellFocusColor: #000; + qproperty-ColumnIconLineColor: #707070; + qproperty-EmptyColumnHeadColor: #DBDBDB; + qproperty-ColumnHeadPastelizer: rgba(0, 0, 0, 0); + qproperty-SelectedColumnHead: rgba(0, 0, 0, 0.15); + qproperty-PlayRangeColor: #DBDBDB; + qproperty-FoldedColumnBGColor: #a8a8a8; + qproperty-FoldedColumnLineColor: #757575; + qproperty-EmptyCellColor: #c2c2c2; + qproperty-NotEmptyColumnColor: #cecece; + qproperty-SelectedEmptyCellColor: rgba(146, 153, 158, 0.5); + qproperty-LevelColumnColor: #9ed49e; + qproperty-LevelColumnBorderColor: #72b472; + qproperty-SelectedLevelColumnColor: #92bfa0; + qproperty-VectorColumnColor: #d3cf9a; + qproperty-VectorColumnBorderColor: #b3ae6e; + qproperty-SelectedVectorColumnColor: #b7bc9e; + qproperty-ChildColumnColor: #cca3cc; + qproperty-ChildColumnBorderColor: #a87ba8; + qproperty-SelectedChildColumnColor: #b29dc0; + qproperty-FullcolorColumnColor: #b0cbdd; + qproperty-FullcolorColumnBorderColor: #82a6be; + qproperty-SelectedFullcolorColumnColor: #9fb9cc; + qproperty-FxColumnColor: #ceb694; + qproperty-FxColumnBorderColor: #ad9169; + qproperty-SelectedFxColumnColor: #b4ab99; + qproperty-ReferenceColumnColor: #c2c2c2; + qproperty-ReferenceColumnBorderColor: #9c9c9c; + qproperty-SelectedReferenceColumnColor: #abb3b9; + qproperty-PaletteColumnColor: #a9d4ca; + qproperty-PaletteColumnBorderColor: #7eb2a6; + qproperty-SelectedPaletteColumnColor: #9abfbf; + qproperty-MeshColumnColor: #b8a2cf; + qproperty-MeshColumnBorderColor: #9278ac; + qproperty-SelectedMeshColumnColor: #a49dc2; + qproperty-SoundTextColumnColor: #c2c2c2; + qproperty-SoundTextColumnBorderColor: #9c9c9c; + qproperty-SelectedSoundTextColumnColor: #abb3b9; + qproperty-SoundColumnColor: #aad6d6; + qproperty-SoundColumnBorderColor: #7eb5b5; + qproperty-SelectedSoundColumnColor: #9bc1c7; qproperty-SoundColumnHlColor: #f5ffe6; - qproperty-SoundColumnTrackColor: #5a642d; - qproperty-ColumnHeadPastelizer: #ffffff; - qproperty-SelectedColumnHead: #bed2f0; - qproperty-LightLightBGColor: #808080; - qproperty-LightBGColor: #f0f0f0; - qproperty-DarkBGColor: #e1e1e1; - qproperty-DarkLineColor: #969696; + qproperty-SoundColumnTrackColor: rgba(0, 0, 0, 0.8); + qproperty-ActiveCameraColor: #79b5ee; + qproperty-SelectedActiveCameraColor: #79aad8; + qproperty-OtherCameraColor: #6eb7c2; + qproperty-SelectedOtherCameraColor: #71abb9; + qproperty-LightLightBGColor: #c2c2c2; + qproperty-LightBGColor: #ffffff; + qproperty-DarkBGColor: #ffffff; + qproperty-DarkLineColor: #ffffff; + qproperty-TimelineIconLineColor: rgba(0, 0, 0, 0.144); qproperty-XsheetColumnNameBgColor: rgba(0, 0, 0, 0); - qproperty-XsheetDragBarHighlightColor: rgba(255, 255, 255, 0.5); - qproperty-XsheetPreviewButtonBgOnColor: #c8c864; + qproperty-XsheetDragBarHighlightColor: rgba(255, 255, 255, 0.15); + qproperty-XsheetPreviewButtonBgOnColor: #e9e97f; qproperty-XsheetPreviewButtonOnImage: url('../Default/imgs/black/x_prev_eye_on.svg'); - qproperty-XsheetPreviewButtonBgOffColor: rgba(255, 255, 255, 0); + qproperty-XsheetPreviewButtonBgOffColor: transparent; qproperty-XsheetPreviewButtonOffImage: url('../Default/imgs/black/x_prev_eye_off.svg'); - qproperty-XsheetCamstandButtonBgOnColor: #eb906b; + qproperty-XsheetCamstandButtonBgOnColor: #ffa683; qproperty-XsheetCamstandButtonOnImage: url('../Default/imgs/black/x_table_view_on.svg'); qproperty-XsheetCamstandButtonTranspImage: url('../Default/imgs/black/x_table_view_transp.svg'); - qproperty-XsheetCamstandButtonBgOffColor: rgba(255, 255, 255, 0); + qproperty-XsheetCamstandButtonBgOffColor: transparent; qproperty-XsheetCamstandButtonOffImage: url('../Default/imgs/black/x_table_view_off.svg'); - qproperty-XsheetLockButtonBgOnColor: rgba(255, 255, 255, 0.3); + qproperty-XsheetLockButtonBgOnColor: rgba(255, 255, 255, 0.6); qproperty-XsheetLockButtonOnImage: url('../Default/imgs/black/x_lock_on.svg'); - qproperty-XsheetLockButtonBgOffColor: rgba(255, 255, 255, 0); + qproperty-XsheetLockButtonBgOffColor: transparent; qproperty-XsheetLockButtonOffImage: url('../Default/imgs/black/x_lock_off.svg'); qproperty-XsheetConfigButtonBgColor: rgba(255, 255, 255, 0); qproperty-XsheetConfigButtonImage: url('../Default/imgs/black/x_config.svg'); - qproperty-TimelinePreviewButtonBgOnColor: rgba(255, 255, 255, 0); - qproperty-TimelinePreviewButtonOnImage: url('../Default/imgs/black/timeline_toggle_on.svg'); - qproperty-TimelinePreviewButtonBgOffColor: rgba(255, 255, 255, 0); - qproperty-TimelinePreviewButtonOffImage: url('../Default/imgs/black/timeline_toggle_off.svg'); - qproperty-TimelineCamstandButtonBgOnColor: rgba(255, 255, 255, 0); - qproperty-TimelineCamstandButtonOnImage: url('../Default/imgs/black/timeline_toggle_on.svg'); - qproperty-TimelineCamstandButtonTranspImage: url('../Default/imgs/black/timeline_toggle_transp.svg'); - qproperty-TimelineCamstandButtonBgOffColor: rgba(255, 255, 255, 0); - qproperty-TimelineCamstandButtonOffImage: url('../Default/imgs/black/timeline_toggle_off.svg'); - qproperty-TimelineLockButtonBgOnColor: rgba(255, 255, 255, 0); - qproperty-TimelineLockButtonOnImage: url('../Default/imgs/black/timeline_toggle_on.svg'); - qproperty-TimelineLockButtonBgOffColor: rgba(255, 255, 255, 0); - qproperty-TimelineLockButtonOffImage: url('../Default/imgs/black/timeline_toggle_off.svg'); - qproperty-TimelineConfigButtonBgColor: rgba(255, 255, 255, 0); + qproperty-FrameRangeMarkerLineColor: rgba(0, 0, 0, 0.3); + qproperty-TimelinePreviewButtonBgOnColor: #DBDBDB; + qproperty-TimelinePreviewButtonOnImage: url('../Default/imgs/black/preview_small.svg'); + qproperty-TimelinePreviewButtonBgOffColor: #DBDBDB; + qproperty-TimelinePreviewButtonOffImage: url('none'); + qproperty-TimelineCamstandButtonBgOnColor: #DBDBDB; + qproperty-TimelineCamstandButtonOnImage: url('../Default/imgs/black/table_small.svg'); + qproperty-TimelineCamstandButtonTranspImage: url('../Default/imgs/black/trans_small.svg'); + qproperty-TimelineCamstandButtonBgOffColor: #DBDBDB; + qproperty-TimelineCamstandButtonOffImage: url('none'); + qproperty-TimelineLockButtonBgOnColor: #DBDBDB; + qproperty-TimelineLockButtonOnImage: url('../Default/imgs/black/lock_on_small.svg'); + qproperty-TimelineLockButtonBgOffColor: #DBDBDB; + qproperty-TimelineLockButtonOffImage: url('none'); + qproperty-TimelineConfigButtonBgColor: #DBDBDB; qproperty-TimelineConfigButtonImage: url('../Default/imgs/black/timeline_config.svg'); qproperty-LayerHeaderPreviewImage: url('../Default/imgs/black/layer_header_prev_eye.svg'); qproperty-LayerHeaderPreviewOverImage: url('../Default/imgs/black/layer_header_prev_eye_over.svg'); qproperty-LayerHeaderCamstandImage: url('../Default/imgs/black/layer_header_table_view.svg'); qproperty-LayerHeaderCamstandOverImage: url('../Default/imgs/black/layer_header_table_view_over.svg'); - qproperty-LayerHeaderLockImage: url('../Default/imgs/black/lock_on.svg'); - qproperty-LayerHeaderLockOverImage: url('../Default/imgs/black/lock_on_over.svg'); - qproperty-ActiveCameraColor: #6ba5de; - qproperty-SelectedActiveCameraColor: #98bee4; - qproperty-OtherCameraColor: #8f9c9e; - qproperty-SelectedOtherCameraColor: #aeb1b2; -} -/* XSheet Toolbar ------------------------------------------------------------------------------ */ -#XSheetToolbar { - margin: 0; - padding: 0; - border: 0; -} -#XSheetToolbar QToolButton { - padding: 0; - margin: 4 1; - min-height: 19; - height: 19; -} -#XSheetToolbar::separator:horizontal { - margin: 0 4; + qproperty-LayerHeaderLockImage: url('../Default/imgs/black/layer_lock_on.svg'); + qproperty-LayerHeaderLockOverImage: url('../Default/imgs/black/layer_lock_on_over.svg'); } /* ----------------------------------------------------------------------------- Function Editor ----------------------------------------------------------------------------- */ #FunctionEditor QToolBar { - border-bottom: 1 solid #404040; + border-bottom: 1 solid #a8a8a8; + background-color: transparent; + padding-bottom: 10; } #FunctionEditor QToolBar QToolBar { border: 0; } -#FunctionEditor QToolBar QLabel { - margin-left: 5; -} #FunctionEditor QToolBar QToolButton { - height: 18; + margin-bottom: 2; } #FunctionEditorTree { - border-top: 1 solid #404040; + border-top: 1 solid #a8a8a8; } FunctionTreeView { qproperty-TextColor: #000; @@ -2084,50 +2327,35 @@ FunctionTreeView { /* Function Editor Spreadsheet ----------------------------------------------------------------------------- */ FunctionPanel { - qproperty-BGColor: #5a5a5a; - qproperty-ValueLineColor: #4d4d4d; - qproperty-FrameLineColor: #4d4d4d; - qproperty-OtherCurvesColor: #c5c5c5; - qproperty-RulerBackground: #676767; + qproperty-BGColor: #808080; + qproperty-ValueLineColor: rgba(0, 0, 0, 0.1); + qproperty-FrameLineColor: rgba(0, 0, 0, 0.1); + qproperty-OtherCurvesColor: #dadada; + qproperty-RulerBackground: #c2c2c2; qproperty-TextColor: #000; - qproperty-SubColor: #ffffff; - qproperty-SelectedColor: #fcae06; + qproperty-SubColor: #fff; + qproperty-SelectedColor: #ffe033; } SpreadsheetViewer { - qproperty-LightLightBGColor: #808080; - qproperty-CurrentRowBgColor: #B5C0D0; - qproperty-LightLineColor: rgba(0, 0, 0, 0.205); - qproperty-MarkerLineColor: #000; - qproperty-BGColor: #9a9a9a; - qproperty-VerticalLineColor: rgba(0, 0, 0, 0.404); - qproperty-KeyFrameColor: #db8b36; - qproperty-KeyFrameBorderColor: #7b4a16; - qproperty-SelectedKeyFrameColor: #dea466; - qproperty-InBetweenColor: #c2c2b0; - qproperty-InBetweenBorderColor: #636356; - qproperty-SelectedInBetweenColor: #d6d6cf; - qproperty-SelectedEmptyColor: #b3b3b3; - qproperty-SelectedSceneRangeEmptyColor: #d2d2d2; + qproperty-LightLightBGColor: #c2c2c2; + qproperty-CurrentRowBgColor: rgba(123, 174, 217, 0.7); + qproperty-LightLineColor: rgba(0, 0, 0, 0.15); + qproperty-MarkerLineColor: rgba(0, 0, 0, 0.3); + qproperty-BGColor: #cecece; + qproperty-VerticalLineColor: rgba(0, 0, 0, 0.15); + qproperty-KeyFrameColor: #edaa64; + qproperty-KeyFrameBorderColor: #bb6a16; + qproperty-SelectedKeyFrameColor: #c9a278; + qproperty-InBetweenColor: #e2dbcc; + qproperty-InBetweenBorderColor: #ac9f82; + qproperty-SelectedInBetweenColor: #c2c4c0; + qproperty-SelectedEmptyColor: rgba(146, 153, 158, 0.5); + qproperty-SelectedSceneRangeEmptyColor: rgba(146, 153, 158, 0.5); qproperty-TextColor: #000; - qproperty-ColumnHeaderBorderColor: #000000; + qproperty-ColumnHeaderBorderColor: #8f8f8f; } #ExpressionField { background-color: #ffffff; - border: 1 solid #6b6b6b; + border: 1 solid #c6c6c6; margin: 0; } -#FunctionSegmentViewerLinkButton { - background-image: url('../Default/imgs/black/segment_unlinked.svg'); - background-repeat: no-repeat; -} -#FunctionSegmentViewerLinkButton:hover { - background-repeat: no-repeat; -} -#FunctionSegmentViewerLinkButton:checked { - background-image: url('../Default/imgs/black/segment_linked.svg'); - background-repeat: no-repeat; -} -#FunctionSegmentViewerLinkButton:disabled { - background-image: url('../Default/imgs/black/segment_disabled.svg'); - background-repeat: no-repeat; -} diff --git a/stuff/config/qss/Neutral/Neutral.qss b/stuff/config/qss/Neutral/Neutral.qss new file mode 100644 index 0000000..1ab616e --- /dev/null +++ b/stuff/config/qss/Neutral/Neutral.qss @@ -0,0 +1,2361 @@ +/* ----------------------------------------------------------------------------- + Component: Button Styles +----------------------------------------------------------------------------- */ +.button-tool, +QToolButton, +#FileBrowser QToolBar QToolButton, +#CameraSettingsRadioButton::indicator, +#ForceSquaredPixelButton, +#EditToolLockButton::indicator, +#flipCustomize, +#SceneCast QToolBar QToolButton { + background-color: transparent; + border: 1 solid transparent; + border-radius: 2; + color: #0d0d0d; +} +.button-tool:hover, +QToolButton:hover, +#FileBrowser QToolBar QToolButton:hover, +#CameraSettingsRadioButton::indicator:hover, +#ForceSquaredPixelButton:hover, +#colorSliderAddButton:hover, +#colorSliderSubButton:hover, +#EditToolLockButton::indicator:hover, +#flipCustomize:hover, +#SceneCast QToolBar QToolButton:hover { + background-color: #b3b3b3; + border-color: #616161; + color: #0d0d0d; +} +.button-tool:pressed, +QToolButton:pressed, +#FileBrowser QToolBar QToolButton:pressed, +#CameraSettingsRadioButton::indicator:pressed, +#ForceSquaredPixelButton:pressed, +#colorSliderAddButton:pressed, +#colorSliderSubButton:pressed, +#EditToolLockButton::indicator:pressed, +#flipCustomize:pressed, +#SceneCast QToolBar QToolButton:pressed { + background-color: #676767; + border-color: #525252; + color: #0d0d0d; +} +.button-tool:checked, +QToolButton:checked, +#FileBrowser QToolBar QToolButton:checked, +#CameraSettingsRadioButton::indicator:checked, +#ForceSquaredPixelButton:checked, +#EditToolLockButton::indicator:checked, +#flipCustomize:checked, +#SceneCast QToolBar QToolButton:checked { + background-color: #8FA0B2; + border-color: #445464; + color: #000; +} +.button-tool:checked:hover, +QToolButton:checked:hover, +#FileBrowser QToolBar QToolButton:checked:hover, +#CameraSettingsRadioButton::indicator:checked:hover, +#ForceSquaredPixelButton:checked:hover, +#EditToolLockButton::indicator:checked:hover, +#flipCustomize:checked:hover, +#SceneCast QToolBar QToolButton:checked:hover { + background-color: #a7b5c3; + border-color: #445464; +} +.button-tool:disabled, +QToolButton:disabled, +#FileBrowser QToolBar QToolButton:disabled, +#CameraSettingsRadioButton::indicator:disabled, +#ForceSquaredPixelButton:disabled, +#EditToolLockButton::indicator:disabled, +#flipCustomize:disabled, +#SceneCast QToolBar QToolButton:disabled { + color: rgba(0, 0, 0, 0.4); +} +.button-tool:disabled:checked, +QToolButton:disabled:checked, +#FileBrowser QToolBar QToolButton:disabled:checked, +#CameraSettingsRadioButton::indicator:disabled:checked, +#ForceSquaredPixelButton:disabled:checked, +#EditToolLockButton::indicator:disabled:checked, +#flipCustomize:disabled:checked, +#SceneCast QToolBar QToolButton:disabled:checked { + background-color: rgba(143, 160, 178, 0.4); + border-color: rgba(143, 160, 178, 0.4); +} +.button-flat, +PaletteViewer QToolBar QToolButton { + background-color: none; + border: 0; + border-radius: 0; + margin: 0; +} +.button-flat:hover, +PaletteViewer QToolBar QToolButton:hover { + background-color: #b3b3b3; +} +.button-flat:pressed, +PaletteViewer QToolBar QToolButton:pressed { + background-color: #5a5a5a; +} +/* ----------------------------------------------------------------------------- + Component: Frames +----------------------------------------------------------------------------- */ +.frame, +.GroupBox, +#LoadLevelFrame, +#PsdSettingsGroupBox, +#CleanupSettings #CleanupSettingsFrame, +#CleanupSettings QScrollArea, +#OutputSettingsBox, +#OutputSettingsCameraBox, +#SolidLineFrame, +#FunctionParametersPanel, +QGroupBox { + border: 1 solid #5a5a5a; + border-radius: 2; +} +/* ----------------------------------------------------------------------------- + Component: Icons +----------------------------------------------------------------------------- */ +/* ----------------------------------------------------------------------------- + Component: Tabs +----------------------------------------------------------------------------- */ +.tab-container { + background-color: #717171; + qproperty-BottomAboveLineColor: #717171; + qproperty-BottomBelowLineColor: #5a5a5a; +} +.tab-flat, +QTabBar::tab { + background-color: #717171; + border-right: 1 solid #555555; + border-bottom: 1 solid #5a5a5a; + color: #000; + padding: 3 4 3 4; +} +.tab-flat:hover, +QTabBar::tab:hover { + background-color: #7d7d7d; + color: #000; +} +.tab-flat:selected, +QTabBar::tab:selected { + background-color: #808080; + color: #000; + border-bottom-color: #808080; +} +.tab-flat:only-one, +QTabBar::tab:only-one { + margin: 0; +} +.tab-round { + background-color: #717171; + border-top: 1 solid #5a5a5a; + border-right: 1 solid #5a5a5a; + border-left: 1 solid #5a5a5a; + border-bottom: 1 solid #5a5a5a; + color: #000; + margin: 3 -1 0 0; + padding: 2 7 1 7; +} +.tab-round:hover { + background-color: #7d7d7d; + color: #000; +} +.tab-round:selected { + background-color: #808080; + border-top-right-radius: 2; + border-top-left-radius: 2; + border-bottom-color: #808080; + color: #000; + margin: 1 -1 -1 0; + padding: 2 7 2 7; +} +.tab-round:only-one { + margin: 1 0 0 0; + padding: 3 7 3 7; +} +.tab-round:last { + margin-right: 0; + border-top-right-radius: 2; +} +.tab-round:first { + border-top-left-radius: 2; +} +/* ----------------------------------------------------------------------------- + Main +----------------------------------------------------------------------------- */ +QWidget { + background-color: #808080; + color: #000; +} +QWidget:disabled { + color: rgba(0, 0, 0, 0.4); +} +QFrame { + border: 0; + margin: 0; + padding: 0; +} +QToolTip, +#helpToolTip { + background-color: #292B2D; + border: 1 solid #CFD1D4; + color: #CFD2D4; + padding: 1 1; +} +#DockSeparator, +QMainWindow::separator, +QSplitter::handle { + background-color: #343434; + height: 4; + width: 4; +} +#TDockPlaceholder { + background-color: #f55454; +} +TPanel { + background-color: #343434; +} +/* ----------------------------------------------------------------------------- + Topbar +----------------------------------------------------------------------------- */ +#TopBar { + background: #808080; + border: 0; + border-bottom: 1 solid #5a5a5a; +} +#TopBar #EditToolLockButton { + background: #808080; + spacing: 0; +} +#TopBar #EditToolLockButton::indicator { + background: none; + border: none; + padding-left: 0; + padding-right: 0; +} +#TopBarTabContainer { + background-color: #808080; + margin-bottom: 1; +} +#StackedMenuBar { + border: 0; + margin: 0; + padding: 0; +} +QMenuBar { + background-color: #808080; + border: 0; +} +QMenuBar::item { + background-color: #808080; + border-left: 1 solid #808080; + margin: 0; + padding: 3 5 3 5; +} +QMenuBar::item:selected { + background-color: rgba(255, 255, 255, 0.15); + color: #000; +} +QMenuBar::item:pressed { + background-color: #8FA0B2; + color: #000; +} +/* ----------------------------------------------------------------------------- + Workspaces +----------------------------------------------------------------------------- */ +#TopBarTab { + margin: 0; + padding: 0; +} +#TopBarTab::tab { + background-color: #717171; + border-top: 1 solid #555555; + border-right: 1 solid #555555; + color: #000; + margin: 0 0 -1 0; + padding: 2 8 3 8; +} +#TopBarTab::tab:hover { + background-color: #7d7d7d; + color: #000; +} +#TopBarTab::tab:selected { + background-color: #8FA0B2; + color: #000; +} +#TopBarTab::tab:first { + border-left: 1 solid #5a5a5a; +} +#TopBarTab::tab:last { + border-right: 1 solid #5a5a5a; +} +#TopBarTab QToolButton { + border-left: 2 solid #5a5a5a; + border-top: 1 solid #5a5a5a; + border-right: 1 solid #5a5a5a; + border-bottom: 0; + margin-left: -1; + margin-top: 0; +} +/* ----------------------------------------------------------------------------- + Menu +----------------------------------------------------------------------------- */ +QMenu { + background-color: #b3b3b3; + border: 1 solid #5a5a5a; + color: #000; + padding: 2 0; +} +QMenu::item { + border: 0; + padding: 3 28; +} +QMenu::item:selected { + background-color: #8FA0B2; + color: #000; +} +QMenu::item:checked { + color: #000; +} +QMenu::item:checked:selected { + background-color: #8FA0B2; + color: #000; +} +QMenu::item:disabled { + background: none; + color: rgba(0, 0, 0, 0.4); +} +QMenu::item:disabled:selected { + color: rgba(0, 0, 0, 0.4); + /* fix for disabled indicator */ +} +QMenu::separator { + border-top: 1 solid rgba(0, 0, 0, 0.171); + height: 0; + margin: 2 0; +} +QMenu::icon { + border-radius: 2; + position: absolute; + left: 5; + padding: 0; + margin: 0; + qproperty-icon: url('../Default/imgs/black/none'); +} +QMenu::icon:checked { + background-color: #8FA0B2; + border: 1 solid #445464; +} +QMenu::indicator { + margin-left: 7; +} +/* ----------------------------------------------------------------------------- + Titlebars +----------------------------------------------------------------------------- */ +TPanelTitleBar { + background-color: #717171; + border-bottom: 1px solid #575757; + height: 18; + min-height: 18; + qproperty-TitleColor: #000; + qproperty-ActiveTitleColor: rgba(255, 255, 255, 0.8); + qproperty-BorderPixmap: url('none'); + qproperty-ActiveBorderPixmap: url('../Default/imgs/black/none'); + qproperty-FloatBorderPixmap: url('none'); + qproperty-FloatActiveBorderPixmap: url('../Default/imgs/black/none'); +} +TPanelTitleBarButton { + qproperty-PressedColor: #8FA0B2; + qproperty-FreezeColor: #bd5454; + qproperty-PreviewColor: #15b884; + qproperty-OverColor: #8a8a8a; +} +/* ----------------------------------------------------------------------------- + Scrollbars +----------------------------------------------------------------------------- */ +QAbstractScrollArea::corner { + background-color: #717171; +} +QScrollBar { + background-color: #717171; + border: 0; +} +QScrollBar:horizontal { + height: 15; + margin: 0; +} +QScrollBar:vertical { + margin: 0; + width: 15; +} +QScrollBar::handle { + border: 0 solid #9a9a9a; + border-radius: 4; +} +QScrollBar::handle:horizontal:hover, +QScrollBar::handle:vertical:hover { + background-color: #aeaeae; + border-color: #aeaeae; +} +QScrollBar::handle:horizontal:pressed, +QScrollBar::handle:vertical:pressed { + background-color: #c2c2c2; + border-color: #c2c2c2; +} +QScrollBar::handle:horizontal { + background-color: #9a9a9a; + margin: 3 16; + min-width: 20; +} +QScrollBar::handle:vertical { + background-color: #9a9a9a; + margin: 16 3 16 3; + min-height: 20; +} +QScrollBar::add-line { + subcontrol-origin: margin; + border: 0; +} +QScrollBar::add-line:horizontal { + subcontrol-position: right; + background-color: #717171; + margin: 0; + width: 16; +} +QScrollBar::add-line:vertical { + subcontrol-position: bottom; + background-color: #717171; + margin: 0; + height: 16; +} +QScrollBar::sub-line { + border: 0; + subcontrol-origin: margin; +} +QScrollBar::sub-line:horizontal { + subcontrol-position: left; + background-color: #717171; + margin: 0; + width: 16; +} +QScrollBar::sub-line:vertical { + subcontrol-position: top; + background-color: #717171; + margin: 0; + height: 16; +} +QScrollBar::up-arrow:vertical { + image: url('../Default/imgs/black/scroll-up.svg'); + image-position: center center; +} +QScrollBar::up-arrow:vertical:pressed { + margin: 1 0 0 0; +} +QScrollBar::down-arrow:vertical { + image: url('../Default/imgs/black/scroll-down.svg'); + image-position: center center; +} +QScrollBar::down-arrow:vertical:pressed { + margin: 1 0 0 0; +} +QScrollBar::left-arrow:horizontal { + image: url('../Default/imgs/black/scroll-left.svg'); + image-position: center center; +} +QScrollBar::left-arrow:horizontal:pressed { + margin: 1 0 0 0; +} +QScrollBar::right-arrow:horizontal { + image: url('../Default/imgs/black/scroll-right.svg'); + image-position: center center; +} +QScrollBar::right-arrow:horizontal:pressed { + margin: 1 0 0 0; +} +QScrollBar::sub-page:horizontal, +QScrollBar::add-page:horizontal, +QScrollBar::sub-page:vertical, +QScrollBar::add-page:vertical { + background: none; +} +/* ----------------------------------------------------------------------------- + QToolBar +----------------------------------------------------------------------------- */ +/* This applies to QToolBar, this is not the #ToolBar window, although the + properties here also apply in the window, you should look in + [layouts/toolbar] if you want window control. */ +QToolBar { + padding: 0; +} +QToolBar::separator:horizontal { + border-left: 1 solid #5a5a5a; + margin: 0 1; + width: 0; +} +QToolBar::separator:vertical { + border-top: 1 solid #5a5a5a; + height: 0; + margin: 1 0; +} +QToolBar QLabel { + margin-top: 1; +} +QToolBar QToolBar { + border: 0; +} +QToolButton { + margin-left: 1; + margin-right: 1; + padding: 0; +} +QToolButton::menu-indicator { + image: none; +} +QToolButton::menu-button { + border-image: none; +} +QToolButton#qt_toolbar_ext_button { + padding: 0; + border: 0; + margin: 0; + qproperty-icon: url('../Default/imgs/black/toolbar_extension_horizontal.png'); +} +QToolButton#qt_toolbar_ext_button:hover { + background-color: #b3b3b3; +} +QToolButton#qt_toolbar_ext_button:pressed { + background-color: #5a5a5a; +} +.DvScrollWidget QPushButton, +DvScrollWidget QPushButton, +#ScrollLeftButton QPushButton, +#ScrollRightButton QPushButton, +#ScrollUpButton QPushButton, +#ScrollDownButton QPushButton { + background-color: #9f9f9f; + border: 0 solid #5a5a5a; + border-radius: 0; + padding: 0; + max-width: 16; +} +.DvScrollWidget QPushButton:hover, +DvScrollWidget QPushButton:hover, +#ScrollLeftButton QPushButton:hover, +#ScrollRightButton QPushButton:hover, +#ScrollUpButton QPushButton:hover, +#ScrollDownButton QPushButton:hover { + background-color: #b3b3b3; +} +.DvScrollWidget QPushButton:pressed, +DvScrollWidget QPushButton:pressed, +#ScrollLeftButton QPushButton:pressed, +#ScrollRightButton QPushButton:pressed, +#ScrollUpButton QPushButton:pressed, +#ScrollDownButton QPushButton:pressed { + background-color: #676767; +} +DvScrollWidget { + /* Multiple classes can use the same style as DvScrollWidget, and + since the compiler can't handle extending to Qt names we place the + style in a mixin and extend the name to it instead. */ +} +#ScrollLeftButton, +#ScrollRightButton, +#ScrollUpButton, +#ScrollDownButton { + margin: 0; + min-width: 16; +} +#ScrollLeftButton { + border-right: 1 solid #5a5a5a; + image: url('../Default/imgs/black/scroll-left.svg'); +} +#ScrollRightButton { + border-left: 1 solid #5a5a5a; + margin-left: 3; + image: url('../Default/imgs/black/scroll-right.svg'); +} +#ScrollUpButton { + image: url('../Default/imgs/black/scroll-up.svg'); +} +#ScrollDownButton { + image: url('../Default/imgs/black/scroll-down.svg'); +} +/* -------------------------------------------------------------------------- */ +/* For the buttons to display a BG color we need to set a blank image, setting + an empty URL solves this. */ +#keyFrameNavigator { + background: transparent; + margin: 0; + padding: 0; +} +#keyFrameNavigator #PreviousKey { + margin: 0 2; + padding-right: -1; + width: 20px; + height: 20px; + image: url(''); +} +#keyFrameNavigator #PreviousKey:disabled { + image: url(''); +} +#keyFrameNavigator #NextKey { + margin: 0 2; + padding-right: -1; + width: 20px; + height: 20px; + image: url(''); +} +#keyFrameNavigator #NextKey:disabled { + image: url(''); +} +#keyFrameNavigator #KeyNo, +#keyFrameNavigator #KeyPartial, +#keyFrameNavigator #KeyTotal { + margin: 0; + padding-right: -1; + width: 20px; + height: 20px; + image: url(''); +} +#keyFrameNavigator #KeyNo:disabled, +#keyFrameNavigator #KeyPartial:disabled, +#keyFrameNavigator #KeyTotal:disabled { + image: url(''); +} +#keyFrameNavigator #KeyNo { + background-color: rgba(0, 0, 0, 0); + border: 1 solid rgba(0, 0, 0, 0); + image: url(''); +} +#keyFrameNavigator #KeyNo:disabled { + image: url(''); +} +#keyFrameNavigator #KeyNo:hover { + background-color: #b3b3b3; + border-color: #616161; +} +#keyFrameNavigator #KeyPartial { + background-color: #c77a27; + border: 1 solid #724616; + image: url(''); +} +#keyFrameNavigator #KeyPartial:hover { + background-color: #db9346; + border-color: #724616; +} +#keyFrameNavigator #KeyTotal { + background-color: #c77a27; + border: 1 solid #724616; +} +#keyFrameNavigator #KeyTotal:hover { + background-color: #db9346; + border-color: #724616; +} +#keyFrameNavigator QToolButton#qt_toolbar_ext_button { + padding-bottom: 3; + border-radius: 2; +} +/* ----------------------------------------------------------------------------- + Tab Containers +----------------------------------------------------------------------------- */ +#TabBarContainer { + background-color: #717171; + qproperty-BottomAboveLineColor: #717171; + qproperty-BottomBelowLineColor: #5a5a5a; +} +QTabBar { + background-color: #717171; +} +/* ----------------------------------------------------------------------------- + Tabs +----------------------------------------------------------------------------- */ +QTabBar QToolButton { + /* Scroll buttons */ + margin: 0; + background-color: #808080; + border-radius: 0; + border: 1 solid #5a5a5a; + border-top: 0; + padding: 3 2 2 2; +} +QTabBar QToolButton:hover, +QTabBar QToolButton:pressed { + border-color: #5a5a5a; +} +QTabBar QToolButton:disabled { + color: rgba(0, 0, 0, 0.4); +} +/* ----------------------------------------------------------------------------- + Item Tree +----------------------------------------------------------------------------- */ +.treeview, +QTreeWidget, +QTreeView, +#FunctionEditorTree { + background-color: #767676; + alternate-background-color: #7d7d7d; + border: 0; + margin: 0; + outline: 0; +} +.treeview::item:selected, +QTreeWidget::item:selected, +QTreeView::item:selected, +#FunctionEditorTree::item:selected { + background-color: #8FA0B2; + color: #000; +} +.treeview::branch:adjoins-item, +QTreeWidget::branch:adjoins-item, +QTreeView::branch:adjoins-item, +#FunctionEditorTree::branch:adjoins-item { + /* blank URL hides default Qt branch icons where it is not wanted */ + border-image: url(''); +} +.treeview::branch:has-siblings, +QTreeWidget::branch:has-siblings, +QTreeView::branch:has-siblings, +#FunctionEditorTree::branch:has-siblings { + border-image: url(''); +} +.treeview::branch:has-siblings:adjoins-item, +QTreeWidget::branch:has-siblings:adjoins-item, +QTreeView::branch:has-siblings:adjoins-item, +#FunctionEditorTree::branch:has-siblings:adjoins-item { + border-image: url(''); +} +.treeview::branch:has-children:closed, +QTreeWidget::branch:has-children:closed, +QTreeView::branch:has-children:closed, +#FunctionEditorTree::branch:has-children:closed { + background: url('../Default/imgs/black/treebranch-closed.svg') no-repeat; + background-position: center center; + border-image: none; + image: none; +} +.treeview::branch:has-children:open, +QTreeWidget::branch:has-children:open, +QTreeView::branch:has-children:open, +#FunctionEditorTree::branch:has-children:open { + background: url('../Default/imgs/black/treebranch-open.svg') no-repeat; + background-position: center center; + image: none; +} +.treeview::branch:has-children:has-siblings:closed, +QTreeWidget::branch:has-children:has-siblings:closed, +QTreeView::branch:has-children:has-siblings:closed, +#FunctionEditorTree::branch:has-children:has-siblings:closed { + background: url('../Default/imgs/black/treebranch-closed.svg') no-repeat; + background-position: center center; + border-image: none; + image: none; +} +.treeview::branch:has-children:has-siblings:open, +QTreeWidget::branch:has-children:has-siblings:open, +QTreeView::branch:has-children:has-siblings:open, +#FunctionEditorTree::branch:has-children:has-siblings:open { + background: url('../Default/imgs/black/treebranch-open.svg') no-repeat; + background-position: center center; + border-image: none; + image: none; +} +QListView { + outline: 0; + background: #767676; + alternate-background-color: #7d7d7d; +} +/* ----------------------------------------------------------------------------- + Tool Options - Override DvScroll Widget +----------------------------------------------------------------------------- */ +#toolOptionsPanel QPushButton { + background-color: #9f9f9f; + border: 1 solid #616161; + border-radius: 2; + color: #0d0d0d; + margin: 0; + padding: 0; +} +#toolOptionsPanel QPushButton:hover { + background-color: #b3b3b3; + border-color: #616161; + color: #0d0d0d; +} +#toolOptionsPanel QPushButton:pressed { + background-color: #676767; + border-color: #525252; + color: #0d0d0d; +} +#toolOptionsPanel QPushButton:checked { + background-color: #5a5a5a; + border-color: #404040; + color: rgba(255, 255, 255, 0.917); +} +#toolOptionsPanel QPushButton:checked:hover { + background-color: #6e6e6e; +} +#toolOptionsPanel QPushButton:checked:hover:pressed { + background: #616161; +} +#toolOptionsPanel QPushButton:disabled { + background-color: #8d8d8d; + border-color: #737373; + color: rgba(0, 0, 0, 0.4); +} +/* ----------------------------------------------------------------------------- + Push Button +----------------------------------------------------------------------------- */ +.Button, +QPushButton, +.ComboBox, +#enableBlankFrameButton, +QComboBox { + background-color: #9f9f9f; + border-color: #616161; + border-width: 1; + border-style: solid; + border-radius: 2; + color: #0d0d0d; + margin: 0; + padding: 3 15; +} +.Button:hover, +QPushButton:hover, +#ViewerFpsSlider::sub-line:horizontal:hover, +#ViewerFpsSlider::add-line:horizontal:hover, +#enableBlankFrameButton:hover { + background-color: #b3b3b3; + border-color: #616161; + color: #0d0d0d; +} +.Button:pressed, +QPushButton:pressed, +#ViewerFpsSlider::sub-line:horizontal:pressed, +#ViewerFpsSlider::add-line:horizontal:pressed, +#enableBlankFrameButton:pressed { + background-color: #676767; + border-color: #525252; + color: #0d0d0d; +} +.Button:checked, +QPushButton:checked, +#enableBlankFrameButton:checked { + background-color: #5a5a5a; + border-color: #404040; + color: rgba(255, 255, 255, 0.917); +} +.Button:checked:hover, +QPushButton:checked:hover, +#enableBlankFrameButton:checked:hover { + background-color: #6e6e6e; + border-color: #616161; +} +.Button:checked:hover:pressed, +QPushButton:checked:hover:pressed, +#enableBlankFrameButton:checked:hover:pressed { + background: #616161; +} +.Button:disabled, +QPushButton:disabled, +.ComboBox:disabled, +#ViewerFpsSlider::sub-line:horizontal:disabled, +#ViewerFpsSlider::add-line:horizontal:disabled, +#enableBlankFrameButton:disabled, +QComboBox:disabled { + background-color: #8d8d8d; + border-color: #737373; + color: rgba(0, 0, 0, 0.4); +} +#PushButton_NoPadding { + padding: 3; +} +/* ----------------------------------------------------------------------------- + ComboBox +----------------------------------------------------------------------------- */ +.ComboBox, +QComboBox { + padding: 1 0 1 4; + margin: 1 0; +} +.ComboBox:editable, +QComboBox:editable { + /* for editable ComboBox */ + color: #000; + background-color: #c0c0c0; + border-color: #5a5a5a; + padding: 1 0 1 3; + selection-background-color: #8FA0B2; + selection-color: #000; +} +.ComboBox:hover, +QComboBox:hover { + background-color: #b3b3b3; +} +.ComboBox:hover:editable, +QComboBox:hover:editable { + background-color: #c0c0c0; +} +.ComboBox:checked, +QComboBox:checked { + border-color: #000; +} +.ComboBox:focus, +QComboBox:focus { + border-color: #000; +} +.ComboBox::drop-down, +QComboBox::drop-down { + border: 0; + image: url('../Default/imgs/black/combo_downarrow.svg'); + image-position: center center; + width: 16; +} +.ComboBox::drop-down:editable, +QComboBox::drop-down:editable { + background-color: #9f9f9f; + border-left: 1 solid #616161; + border-top-right-radius: 1; + border-bottom-right-radius: 1; +} +.ComboBox::drop-down:hover, +QComboBox::drop-down:hover { + border-color: #b3b3b3; +} +.ComboBox::drop-down:hover:editable, +QComboBox::drop-down:hover:editable { + background-color: #b3b3b3; + border-color: #616161; +} +.ComboBox::drop-down:disabled, +QComboBox::drop-down:disabled { + image: url('../Default/imgs/black/combo_downarrow_disabled.svg'); +} +.ComboBox::drop-down:disabled:editable, +QComboBox::drop-down:disabled:editable { + background-color: #8d8d8d; +} +.ComboBox QAbstractItemView, +QComboBox QAbstractItemView { + background-color: #b3b3b3; + border: 1 solid #5a5a5a; + selection-background-color: #8FA0B2; + selection-color: #000; +} +/* ----------------------------------------------------------------------------- + Textfield +----------------------------------------------------------------------------- */ +.LineEdit, +QPlainTextEdit, +QLineEdit, +#TaskSheetItem, +#tasksRemoveBox, +#tasksAddBox { + background-color: #c0c0c0; + border: 1 solid #5a5a5a; + border-radius: 2; + color: #000; + selection-background-color: #8FA0B2; + selection-color: #000; + padding: 0 0 0 1; +} +.LineEdit:focus, +QPlainTextEdit:focus, +QLineEdit:focus, +#TaskSheetItem:focus, +#tasksRemoveBox:focus, +#tasksAddBox:focus { + background-color: #c0c0c0; + border-color: #000; + color: #000; +} +.LineEdit:disabled, +QPlainTextEdit:disabled, +QLineEdit:disabled, +#TaskSheetItem:disabled, +#tasksRemoveBox:disabled, +#tasksAddBox:disabled { + background-color: #9a9a9a; + border-color: #6d6d6d; + color: rgba(0, 0, 0, 0.4); +} +/* ----------------------------------------------------------------------------- + CheckBox +----------------------------------------------------------------------------- */ +.CheckBox, +QCheckBox { + color: #000; +} +.CheckBox:hover, +QCheckBox:hover { + color: rgba(255, 255, 255, 0.8); +} +.CheckBox:disabled, +QCheckBox:disabled { + color: rgba(0, 0, 0, 0.4); +} +.CheckBox::indicator, +QMenu::indicator:non-exclusive, +QMenu::indicator:non-exclusive, +QCheckBox::indicator, +.GroupBox::indicator, +QGroupBox::indicator { + background-color: #c0c0c0; + border: 1 solid #5a5a5a; + border-radius: 2; + height: 9; + /* fix for QGroupBox */ + padding: 1; + width: 9; + /* fix for QMenu */ +} +.CheckBox::indicator:hover, +QMenu::indicator:non-exclusive:hover, +QMenu::indicator:non-exclusive:hover, +.CheckBox::indicator:checked:hover, +.CheckBox::indicator:indeterminate:hover, +QCheckBox::indicator:hover, +.GroupBox::indicator:hover, +QMenu::indicator:non-exclusive:checked:hover, +QMenu::indicator:non-exclusive:indeterminate:hover, +QMenu::indicator:non-exclusive:checked:hover, +QMenu::indicator:non-exclusive:indeterminate:hover, +QCheckBox::indicator:checked:hover, +QCheckBox::indicator:indeterminate:hover, +.GroupBox::indicator:checked:hover, +.GroupBox::indicator:indeterminate:hover, +QGroupBox::indicator:hover, +QGroupBox::indicator:checked:hover, +QGroupBox::indicator:indeterminate:hover { + background-color: #c0c0c0; + border-color: #ffffff; +} +.CheckBox::indicator:checked, +QMenu::indicator:non-exclusive:checked, +QMenu::indicator:non-exclusive:checked, +QCheckBox::indicator:checked, +.GroupBox::indicator:checked, +QGroupBox::indicator:checked { + background-color: rgba(0, 0, 0, 0.8); + border-color: rgba(0, 0, 0, 0.8); + image: url('../Default/imgs/black/checkmark.svg'); +} +.CheckBox::indicator:checked:hover, +QMenu::indicator:non-exclusive:checked:hover, +QMenu::indicator:non-exclusive:checked:hover, +QCheckBox::indicator:checked:hover, +.GroupBox::indicator:checked:hover, +QGroupBox::indicator:checked:hover { + background-color: rgba(0, 0, 0, 0.8); + border-color: #ffffff; +} +.CheckBox::indicator:checked:disabled, +QMenu::indicator:non-exclusive:checked:disabled, +QMenu::indicator:non-exclusive:checked:disabled, +QCheckBox::indicator:checked:disabled, +.GroupBox::indicator:checked:disabled, +QGroupBox::indicator:checked:disabled { + background-color: #676767; + border-color: #5a5a5a; + image: url('../Default/imgs/black/checkmark_disabled.svg'); +} +.CheckBox::indicator:indeterminate, +QMenu::indicator:non-exclusive:indeterminate, +QMenu::indicator:non-exclusive:indeterminate, +QCheckBox::indicator:indeterminate, +.GroupBox::indicator:indeterminate, +QGroupBox::indicator:indeterminate { + background-color: rgba(0, 0, 0, 0.8); + border-color: rgba(0, 0, 0, 0.8); + image: url('../Default/imgs/black/checkpartially.svg'); +} +.CheckBox::indicator:indeterminate:disabled, +QMenu::indicator:non-exclusive:indeterminate:disabled, +QMenu::indicator:non-exclusive:indeterminate:disabled, +QCheckBox::indicator:indeterminate:disabled, +.GroupBox::indicator:indeterminate:disabled, +QGroupBox::indicator:indeterminate:disabled { + background-color: #676767; + border-color: #5a5a5a; + image: url('../Default/imgs/black/checkpartially_disabled.svg'); +} +.CheckBox::indicator:disabled, +QMenu::indicator:non-exclusive:disabled, +QMenu::indicator:non-exclusive:disabled, +QCheckBox::indicator:disabled, +.GroupBox::indicator:disabled, +QGroupBox::indicator:disabled { + background-color: rgba(255, 255, 255, 0.11); + border-color: rgba(0, 0, 0, 0.11); +} +/* ----------------------------------------------------------------------------- + RadioButton +----------------------------------------------------------------------------- */ +.RadioButton, +QRadioButton { + color: #000; + padding: 0; + margin: 0; +} +.RadioButton:hover, +QRadioButton:hover { + color: rgba(255, 255, 255, 0.8); +} +.RadioButton:checked, +QRadioButton:checked { + color: #000; +} +.RadioButton:disabled, +QRadioButton:disabled { + color: rgba(0, 0, 0, 0.4); +} +.RadioButton::indicator, +QMenu::indicator:exclusive, +QMenu::indicator:exclusive, +QRadioButton::indicator, +#CameraSettingsRadioButton_Small::indicator { + width: 13; + height: 13; + background-color: transparent; + border: 0; + image-position: center center; +} +.RadioButton::indicator:unchecked, +QMenu::indicator:exclusive:unchecked, +QMenu::indicator:exclusive:unchecked, +QRadioButton::indicator:unchecked, +#CameraSettingsRadioButton_Small::indicator:unchecked { + image: url('../Default/imgs/black/radiobutton_unchecked.svg'); +} +.RadioButton::indicator:unchecked:hover, +QMenu::indicator:exclusive:unchecked:hover, +QMenu::indicator:exclusive:unchecked:hover, +QRadioButton::indicator:unchecked:hover, +#CameraSettingsRadioButton_Small::indicator:unchecked:hover { + image: url('../Default/imgs/black/radiobutton_unchecked_hover.svg'); +} +.RadioButton::indicator:checked, +QMenu::indicator:exclusive:checked, +QMenu::indicator:exclusive:checked, +QRadioButton::indicator:checked, +#CameraSettingsRadioButton_Small::indicator:checked { + image: url('../Default/imgs/black/radiobutton_checked.svg'); +} +.RadioButton::indicator:checked:disabled, +QMenu::indicator:exclusive:checked:disabled, +QMenu::indicator:exclusive:checked:disabled, +QRadioButton::indicator:checked:disabled, +#CameraSettingsRadioButton_Small::indicator:checked:disabled { + background-color: transparent; + image: url('../Default/imgs/black/radiobutton_checked_disabled.svg'); +} +.RadioButton::indicator:disabled, +QMenu::indicator:exclusive:disabled, +QMenu::indicator:exclusive:disabled, +QRadioButton::indicator:disabled, +#CameraSettingsRadioButton_Small::indicator:disabled { + image: url('../Default/imgs/black/radiobutton_unchecked_disabled.svg'); +} +/* ----------------------------------------------------------------------------- + GroupBox +----------------------------------------------------------------------------- */ +.GroupBox, +QGroupBox { + margin: 6 0 0 0; + padding: 5 0; +} +.GroupBox::title, +QGroupBox::title { + subcontrol-origin: margin; + left: 15; + margin: -3 0 0 0; + padding: 0 3; +} +.GroupBox::title:hover, +QGroupBox::title:hover { + color: rgba(255, 255, 255, 0.8); +} +.GroupBox::title:disabled, +QGroupBox::title:disabled { + color: rgba(0, 0, 0, 0.4); +} +.GroupBox::indicator, +QGroupBox::indicator { + subcontrol-origin: margin; + margin-top: 2; +} +.GroupBox:disabled, +QGroupBox:disabled { + color: rgba(0, 0, 0, 0.4); +} +/* ----------------------------------------------------------------------------- + Slider +----------------------------------------------------------------------------- */ +.Slider::groove:horizontal, +QSlider::groove:horizontal { + background-color: transparent; + background-image: url('../Default/imgs/black/slider-groove.svg'); + background-position: center center; + background-repeat: repeat-x; + margin: 0; + height: 20; + min-height: 20; +} +.Slider::groove:horizontal:disabled, +QSlider::groove:horizontal:disabled { + background-image: url('../Default/imgs/black/slider-groove_disabled.svg'); +} +.Slider::handle:horizontal, +QSlider::handle:horizontal { + width: 10; + margin: -2 0; + image: url('../Default/imgs/black/slider-handle.svg'); +} +.Slider::handle:horizontal:disabled, +QSlider::handle:horizontal:disabled { + image: url('../Default/imgs/black/slider-handle_disabled.svg'); +} +/* ----------------------------------------------------------------------------- + Double Slider +----------------------------------------------------------------------------- */ +#IntPairField, +#DoublePairField { + qproperty-LightLineColor: #484848; + qproperty-LightLineEdgeColor: #484848; + qproperty-DarkLineColor: #484848; + qproperty-MiddleLineColor: #484848; + qproperty-HandleLeftPixmap: url("../Default/imgs/black/slider-handle.svg"); + qproperty-HandleRightPixmap: url("../Default/imgs/black/slider-handle.svg"); + qproperty-HandleLeftGrayPixmap: url("../Default/imgs/black/slider-handle_disabled.svg"); + qproperty-HandleRightGrayPixmap: url("../Default/imgs/black/slider-handle_disabled.svg"); +} +/* ----------------------------------------------------------------------------- + Progress Bar +----------------------------------------------------------------------------- */ +QProgressBar { + text-align: center; + background-color: #676767; + border: 1 solid #5a5a5a; + border-radius: 3; + /* 2 fits inside 3 */ + padding: 0; +} +QProgressBar::chunk { + margin: -1; + /* hide border of chunk except for right side */ + background-color: #15a136; + border: 1 solid #5a5a5a; + border-radius: 2; +} +/* ----------------------------------------------------------------------------- + File Browser +----------------------------------------------------------------------------- */ +/* Left Pane +----------------------------------------------------------------------------- */ +#DirTreeView { + background-color: #767676; + alternate-background-color: #767676; + border: 1 solid #5a5a5a; + border-right: 0; +} +/* Right Pane +----------------------------------------------------------------------------- */ +DvItemViewerPanel { + background-color: #808080; + qproperty-TextColor: #000; + qproperty-AlternateBackground: #888888; + qproperty-SelectedTextColor: #000; + qproperty-FolderTextColor: #001686; + qproperty-SelectedItemBackground: #8FA0B2; +} +DvItemViewerTitleBar { + qproperty-ColColor: #737373; + qproperty-ColSortedColor: #737373; + qproperty-ColTextColor: #000; + qproperty-ColBorderColor: #5a5a5a; +} +#FileBrowser, +#SceneCast { + background-color: #808080; +} +#FileBrowser QLabel, +#SceneCast QLabel { + background-color: transparent; +} +#FileBrowser QToolBar, +#SceneCast QToolBar { + background-color: #808080; +} +#FileBrowser #castFrame, +#SceneCast #castFrame { + border-top: 1 solid #5a5a5a; + border-right: 1 solid #5a5a5a; + border-bottom: 1 solid #5a5a5a; + margin: 0; +} +StyledTreeView { + qproperty-TextColor: #000; + qproperty-SelectedTextColor: #000; + qproperty-SelectedItemBackground: #8FA0B2; + qproperty-FolderTextColor: #001686; + qproperty-SelectedFolderTextColor: #000; + alternate-background-color: #7d7d7d; + background-color: #767676; + border: 1 solid #5a5a5a; +} +#FileDoesNotExistLabel { + color: #ff0000; +} +/* ----------------------------------------------------------------------------- + Scene Cast +----------------------------------------------------------------------------- */ +#SceneCast QToolBar { + border-top: 1 solid #5a5a5a; +} +#SceneCast QToolBar::separator:horizontal { + margin-left: 2; + margin-right: 0; +} +#SceneCast QToolButton { + margin: 3 0 2 2; + padding: 1; +} +#CastBrowser { + border: 0; + margin: 0; +} +#CastBrowser QSplitter::handle { + height: 4; +} +#CastBrowserFolderName { + border-bottom: 1px solid #5a5a5a; +} +/* ----------------------------------------------------------------------------- + Level Strip +----------------------------------------------------------------------------- */ +#filmLevelCombo { + margin: -1; +} +#FilmStrip { + qproperty-BGColor: #808080; + margin: 0; + padding: 0; +} +#FilmStrip QComboBox { + border-radius: 0; +} +#FilmStrip QComboBox QAbstractItemView { + background-color: #b3b3b3; +} +/* ----------------------------------------------------------------------------- + Cleanup Settings +----------------------------------------------------------------------------- */ +#CleanupSettings #CleanupSettingsFrame { + margin-top: 2; + margin-bottom: 4; +} +#CleanupSettings QGroupBox { + margin-bottom: 3; +} +ParamsPage { + qproperty-TextColor: #000; +} +/* ----------------------------------------------------------------------------- + Camera Settings +----------------------------------------------------------------------------- */ +#CameraSettingsButton { + padding: 2; +} +#CameraSettingsRadioButton:hover { + background: none; +} +#CameraSettingsRadioButton::indicator { + border: 1 solid transparent; + height: 18; + padding: 0 -1 0 1; + width: 19; + margin-left: 1; +} +#CameraSettingsRadioButton::indicator:unchecked { + image: url('../Default/imgs/black/lock.svg'); +} +#CameraSettingsRadioButton::indicator:unchecked:hover { + image: url('../Default/imgs/black/lock_over.svg'); +} +#CameraSettingsRadioButton::indicator:checked { + background-color: #bd5454; + border-color: #7b3030; + image: url('../Default/imgs/black/lock_on.svg'); +} +#CameraSettingsRadioButton::indicator:checked:hover { + background-color: #d28b8b; + border-color: #7b3030; +} +#CameraSettingsDPI { + color: #000000; +} +#CameraSettingsRadioButton_Small { + padding: 0; +} +#CameraSettingsRadioButton_Small::indicator { + background-color: transparent; + border: 0; + margin: 0; +} +#ForceSquaredPixelButton { + margin: 0; + height: 16; + width: 16; + border: 1 solid transparent; + padding: 2; +} +/* ----------------------------------------------------------------------------- + Output Settings +----------------------------------------------------------------------------- */ +#OutputSettingsLabel { + color: #000000; +} +/* ----------------------------------------------------------------------------- + Misc +----------------------------------------------------------------------------- */ +PencilTestPopup { + min-height: 730px; + /* Allow for using a 768 screen */ + min-width: 512px; + /* some clipping will still occur on width, but this + allows for filling half of a 1024 screen */ +} +#MatchLineButton { + background-color: #a6a6a6; +} +#MatchLineButton:checked { + background-color: #cdcdcd; + border: 2 solid #8FA0B2; + border-radius: 2; +} +#LargeSizedText { + font-size: 17px; +} +/* ----------------------------------------------------------------------------- + Stop Motion Controller +----------------------------------------------------------------------------- */ +#StopMotionController QScrollArea { + margin: 8; +} +#StopMotionController QPushButton { + margin: 2 1; + padding: 0; +} +#StopMotionController #TabBarContainer { + margin-left: -4; +} +#StopMotionController #bottomWidget { + border-top: 1 solid #5a5a5a; + padding: 3 2 8 3; +} +#StopMotionController #bottomWidget QPushButton { + padding: 3 5; +} +/* ----------------------------------------------------------------------------- + Unknowns + Legacy +----------------------------------------------------------------------------- */ +#StartupLabel { + padding: 3; +} +#StartupLabel:hover { + background: #9a9a9a; +} +QStatusBar { + background-color: #c0c0c0; +} +QStatusBar::item { + border: 0; +} +QStatusBar QLabel { + background-color: #c0c0c0; +} +QStatusBar #StatusBarLabel { + background-color: #ffffff; + padding: 1 3; +} +#TitleTxtLabel { + color: #000000; +} +/* ----------------------------------------------------------------------------- + Style Editor +----------------------------------------------------------------------------- */ +#StyleEditor #TabBarContainer { + margin-left: -5px; +} +#StyleEditor #bottomWidget { + border-top: 1 solid #5a5a5a; + padding: 3 2 8 3; +} +#StyleEditor #bottomWidget QPushButton { + padding: 3 5; +} +#HexagonalColorWheel { + qproperty-BGColor: #808080; +} +/* -------------------------------------------------------------------------- */ +/* Horizontal QSlider */ +#colorSlider::groove:horizontal { + height: 1; + border-image: none; +} +#colorSlider::handle:horizontal { + width: 8; + margin: -8 -4; +} +#colorSliderAddButton, +#colorSliderSubButton { + background: none; + border-color: transparent; + image-position: center center; + min-height: 16; + padding: 0; + min-width: 10; +} +#colorSliderAddButton { + image: url('../Default/imgs/black/scroll-right.svg'); +} +#colorSliderSubButton { + image: url('../Default/imgs/black/scroll-left.svg'); +} +#PlainColorPageParts { + border-bottom: 1 solid #5a5a5a; +} +#PlainColorPageParts QLineEdit { + max-width: 35; +} +/* ----------------------------------------------------------------------------- + Palette Viewer / Studio Palette +----------------------------------------------------------------------------- */ +PaletteViewer DvScrollWidget QPushButton { + border-top: 0; + margin-bottom: 0; + max-width: 15; + min-width: 15; +} +PaletteViewer DvScrollWidget #ScrollLeftButton { + border-radius: 0; + margin-bottom: 0; + max-width: 16; + min-width: 16; +} +PaletteViewer DvScrollWidget #ScrollRightButton { + border-radius: 0; + margin-left: 1; + margin-bottom: 0; + max-width: 16; + min-width: 16; +} +PaletteViewer QToolBar { + background: transparent; +} +PaletteViewer QToolBar::separator:horizontal { + margin: 0; +} +PaletteViewer QToolBar QToolButton { + padding: 0; + padding-right: -2; + padding-left: -1; +} +PaletteViewer QToolBar #keyFrameNavigator #NextKey, +PaletteViewer QToolBar #keyFrameNavigator #PreviousKey, +PaletteViewer QToolBar #keyFrameNavigator #KeyNo, +PaletteViewer QToolBar #keyFrameNavigator #KeyPartial, +PaletteViewer QToolBar #keyFrameNavigator #KeyTotal { + max-width: 20px; + max-height: 20px; + padding: 1; + border: 0; + margin: 0; +} +#PageViewer { + qproperty-TextColor: #000; + qproperty-SelectedBorderColor: #ffffff; + qproperty-NumpadShortcutBgColor: rgba(0, 0, 0, 0.3); + qproperty-NumpadShortcutBorderColor: #bebebe; + qproperty-SeparatorColor: #5a5a5a; + qproperty-CurrentCellColor: rgba(143, 160, 178, 0.5); + qproperty-SelectedCellColor: #8FA0B2; + qproperty-ListNumpadShortcutBorderColor: #afafaf; +} +#PaletteLockButton { + border-radius: 0; +} +#PaletteLockButton:checked { + background-color: #bd5454; + border-color: #7b3030; +} +#PaletteLockButton:checked:hover { + background-color: #d28b8b; + border-color: #7b3030; +} +/* ----------------------------------------------------------------------------- + Quick Renamer +----------------------------------------------------------------------------- */ +#WordButton { + padding-right: 0; + padding-left: 0; +} +/* ----------------------------------------------------------------------------- + Popup Windows +----------------------------------------------------------------------------- */ +QDialog { + background-color: #808080; +} +QDialog #dialogButtonFrame { + background-color: #767676; + border-top: 1 solid #5a5a5a; +} +QDialog #dialogButtonFrame QPushButton { + border-color: #616161; + outline: 0; +} +QDialog #dialogButtonFrame QPushButton:focus { + background-color: #8FA0B2; + border-color: #303a45; + color: #0d0d0d; +} +QDialog #dialogButtonFrame QPushButton:focus:hover { + background-color: #a7b5c3; +} +QDialog #dialogButtonFrame QPushButton:focus:pressed { + background-color: #676767; + border-color: #525252; + color: #0d0d0d; +} +/* ----------------------------------------------------------------------------- + Scene Settings +----------------------------------------------------------------------------- */ +#SceneSettings QLabel { + color: #000000; +} +/* ----------------------------------------------------------------------------- + Preferences +----------------------------------------------------------------------------- */ +#PreferencesPopup QListWidget { + background-color: #767676; + alternate-background-color: #767676; + border: 1 solid #5a5a5a; + font-size: 13px; +} +#PreferencesPopup QListWidget::item { + border: 0; + padding: 3; +} +#PreferencesPopup QListWidget::item:hover { + background-color: rgba(255, 255, 255, 0.15); + color: #000; +} +#PreferencesPopup QListWidget::item:selected { + background-color: #8FA0B2; + color: #000; +} +/* ----------------------------------------------------------------------------- + Keyboard Shortcuts +----------------------------------------------------------------------------- */ +#ShortcutTree { + border: 1 solid #5a5a5a; +} +#ShortcutTree::item { + padding: 1 0; +} +#ShortcutTree QScrollBar:vertical { + width: 16; + margin-right: -1; +} +/* ----------------------------------------------------------------------------- + New Project / Configure Project Window +----------------------------------------------------------------------------- */ +ProjectPopup QLabel { + color: #000000; +} +/* ----------------------------------------------------------------------------- + PencilTestPopup / CameraCapture Window +----------------------------------------------------------------------------- */ +#GearButton::menu-indicator { + image: url(""); +} +#SubfolderButton { + padding-left: 5px; + padding-right: 5px; +} +#SubcameraButton { + padding-left: 5px; + padding-right: 5px; +} +/* ----------------------------------------------------------------------------- + Schematic Viewer +----------------------------------------------------------------------------- */ +SchematicViewer { + qproperty-TextColor: #000; + qproperty-VerticalLineColor: rgba(0, 0, 0, 0.3); + qproperty-LevelColumnColor: #78a578; + qproperty-VectorColumnColor: #a7a163; + qproperty-ChildColumnColor: #9a759c; + qproperty-FullcolorColumnColor: #839bb1; + qproperty-FxColumnColor: #928562; + qproperty-PaletteColumnColor: #599586; + qproperty-MeshColumnColor: #8b73a7; + qproperty-ReferenceColumnColor: #959595; + qproperty-TableColor: #a4a4bf; + qproperty-ActiveCameraColor: #6491be; + qproperty-OtherCameraColor: #8f9c9e; + qproperty-GroupColor: #6698c6; + qproperty-PegColor: #be8a56; + qproperty-SplineColor: #7bb821; + qproperty-ActiveOutputColor: #6491be; + qproperty-OtherOutputColor: #8f9c9e; + qproperty-XsheetColor: #a4a4bf; + qproperty-NormalFxColor: #8d9caf; + qproperty-MacroFxColor: #ae8ca5; + qproperty-ImageAdjustFxColor: #9c9ab4; + qproperty-LayerBlendingFxColor: #709ba5; + qproperty-MatteFxColor: #ba8585; + qproperty-SchematicPreviewButtonBgOnColor: #c8c864; + qproperty-SchematicPreviewButtonOnImage: url('../Default/imgs/black/schematic_preview_on.svg'); + qproperty-SchematicPreviewButtonBgOffColor: #959595; + qproperty-SchematicPreviewButtonOffImage: url('../Default/imgs/black/schematic_preview_off.svg'); + qproperty-SchematicCamstandButtonBgOnColor: #eb906b; + qproperty-SchematicCamstandButtonOnImage: url('../Default/imgs/black/schematic_table_on.svg'); + qproperty-SchematicCamstandButtonTranspImage: url('../Default/imgs/black/schematic_table_transp.svg'); + qproperty-SchematicCamstandButtonBgOffColor: #959595; + qproperty-SchematicCamstandButtonOffImage: url('../Default/imgs/black/schematic_table_off.svg'); + qproperty-SelectedBorderColor: #ffffff; + qproperty-LinkColor: #dfdfdf; + qproperty-SelectedLinkColor: cyan; + qproperty-MotionPathLinkColor: #94ee1e; + qproperty-MotionPathSelectedLinkColor: yellow; +} +/* ----------------------------------------------------------------------------- + Schematic Node Viewer +----------------------------------------------------------------------------- */ +#SchematicBottomFrame { + background-color: #808080; + border: 0; + margin: 0; + padding: 0; + padding-left: 1; +} +#SchematicBottomFrame QToolBar::separator:horizontal { + margin: 0; + margin-right: 1; +} +#SchematicBottomFrame QToolBar QToolButton { + padding: -2; + margin-right: 2; + margin-top: 2; + margin-bottom: 2; +} +#SchematicSceneViewer { + background-color: #676767; + border-bottom: 1 solid #5a5a5a; +} +/* ----------------------------------------------------------------------------- + FX Settings +----------------------------------------------------------------------------- */ +FxSettings QToolBar { + border: 1 1 0 1 solid #5a5a5a; + min-height: 19; + padding: 3 0; + border-top: 1 solid #5a5a5a; + border-left: 1 solid #5a5a5a; + border-right: 1 solid #5a5a5a; + border-top-left-radius: 2; + border-top-right-radius: 2; + margin-bottom: -1; +} +FxSettings QToolBar QToolBar { + border: 0; +} +FxSettings QToolBar QToolButton { + margin: 0; + padding: 0; + width: 22; + padding-right: -2; + padding-bottom: -1; +} +#FxSettingsLabel { + color: #000; +} +#FxSettingsHelpButton { + background-color: transparent; + border: 0; + padding-top: 0; + padding-bottom: 0; +} +#FxSettingsHelpButton:hover { + background-color: #b3b3b3; +} +ChannelBar { + qproperty-TextColor: #000; +} +/* Keyframe Button Colors +----------------------------------------------------------------------------- */ +ParamFieldKeyToggle { + qproperty-KeyOffColor: rgba(0, 0, 0, 0); + qproperty-KeyBorderOffColor: rgba(0, 0, 0, 0); + qproperty-KeyModifiedColor: #beb062; + qproperty-KeyBorderModifiedColor: #3b3619; + qproperty-KeyOnColor: #c77a27; + qproperty-KeyBorderOnColor: #724616; + qproperty-KeyInbetweenColor: #c0ba80; + qproperty-KeyBorderInbetweenColor: #4e4a26; + qproperty-KeyHighlightColor: rgba(255, 255, 255, 0.3); + qproperty-KeyBorderHighlightColor: #616161; +} +/* ----------------------------------------------------------------------------- + Script Console +----------------------------------------------------------------------------- */ +#ScriptConsole { + font-family: 'Courier New', monospace; + border: 0; + color: #000000; + padding: 3; +} +#ScriptConsole QFrame { + background-color: #dcdcdc; +} +#ScriptConsole TPanelTitleBar { + background-color: #717171; +} +/* ----------------------------------------------------------------------------- + Task Viewer +----------------------------------------------------------------------------- */ +#TaskSheetItemLabel { + color: #000; +} +#Tasks QToolBar { + border-bottom: 1 solid #5a5a5a; + margin: 0; + padding: 0; +} +#Tasks QToolBar QToolButton { + margin: 2 2 3 2; +} +/* ----------------------------------------------------------------------------- + Tools Window +----------------------------------------------------------------------------- */ +#ToolBar QToolBar { + padding-left: 3px; +} +#ToolBar QToolButton { + padding: 1 0 0 1; + margin-top: 1; + margin-bottom: 1; +} +#ToolBar QToolButton#qt_toolbar_ext_button { + qproperty-icon: url('../Default/imgs/black/toolbar_extension_vertical.png'); + padding-bottom: 1; +} +#ToolBar QToolButton#qt_toolbar_ext_button:hover { + background-color: #b3b3b3; +} +#ToolBar QToolButton#qt_toolbar_ext_button:pressed { + background-color: #676767; +} +#expandButton:checked { + background-color: transparent; + border-color: transparent; + color: #000; +} +#expandButton:checked:hover { + background-color: #b3b3b3; + border-color: #616161; +} +#expandButton:checked:pressed { + background-color: #676767; + border-color: #525252; +} +/* ----------------------------------------------------------------------------- + Tool Options Window +----------------------------------------------------------------------------- */ +#ToolOptions TPanelTitleBar { + border-bottom: 0; + border-right: 1px solid #575757; + max-width: 18; +} +#EditToolLockButton { + spacing: 0; +} +#EditToolLockButton:hover { + background: none; +} +#EditToolLockButton::indicator { + border: 1 solid transparent; + height: 18; + padding: 0 -1 0 1; + width: 19; + margin-left: 1; +} +#EditToolLockButton::indicator:unchecked { + image: url('../Default/imgs/black/lock.svg'); +} +#EditToolLockButton::indicator:unchecked:hover { + image: url('../Default/imgs/black/lock_over.svg'); +} +#EditToolLockButton::indicator:checked { + background-color: #bd5454; + border-color: #7b3030; + image: url('../Default/imgs/black/lock_on.svg'); +} +#EditToolLockButton::indicator:checked:hover { + background-color: #d28b8b; + border-color: #7b3030; +} +PopupButton::menu-indicator { + border-left: 0; + height: 17; + image: url('../Default/imgs/black/combo_downarrow.svg'); + width: 10; +} +PopupButton::menu-indicator:hover { + image: url('../Default/imgs/black/combo_downarrow.svg'); +} +PopupButton::menu-indicator:disabled { + image: url('../Default/imgs/black/combo_downarrow_disabled.svg'); +} +#Cap, +#Join { + padding: 0 4 0 -8; + max-width: 32; + min-width: 32; +} +#Cap QMenu, +#Join QMenu { + max-width: 28; + min-width: 28; +} +#Cap QMenu::item, +#Join QMenu::item { + max-width: 28; + min-width: 28; + padding: 0; +} +QToolBar#MediumPaddingToolBar QToolButton { + padding-left: 2; + padding-right: 1; +} +QToolBar#WidePaddingToolBar QToolButton { + padding-left: 2; + padding-right: 1; +} +/* XSheet Toolbar & Command Bar +----------------------------------------------------------------------------- */ +#XSheetToolbar { + padding: 0; + margin: 0; + border-bottom: 1 solid #5a5a5a; +} +#XSheetToolbar QToolButton#qt_toolbar_ext_button { + margin: 0; + margin-top: 3; +} +#XSheetToolbar QToolButton { + padding: 0; + padding-right: -1; + padding-bottom: -1; + min-height: 20px; + margin-left: 2; + margin-right: 0; +} +#XSheetToolbar::separator:horizontal { + margin: 0 0 0 2; +} +#CommandBar { + margin: 0; + padding: 0; + border: 0; +} +#CommandBar::separator:horizontal { + margin-right: 0; + margin-left: 2; +} +#CommandBar QToolButton { + margin: 0 0 0 2; + padding: 0; + padding-top: -1; + padding-left: 0; + padding-right: -1; + padding-bottom: 0; + min-height: 20px; +} +#CommandBar QToolButton#qt_toolbar_ext_button { + margin-top: 1; +} +#CommandBar TPanelTitleBar { + border-right: 1px solid #575757; + border-bottom: 0; + max-width: 18; +} +/* ----------------------------------------------------------------------------- + ComboViewer / Viewer / FlipBook +----------------------------------------------------------------------------- */ +#ComboViewerPanel Toolbar { + border-bottom: 1 solid #5a5a5a; +} +#ComboViewerPanel Toolbar::separator:horizontal { + margin: 0 0 0 2; + padding: 0; +} +#ComboViewerPanel Toolbar QToolButton { + margin: 0; + margin-bottom: 3; + margin-left: 2; + margin-right: 0; + margin-top: 2; + padding-top: 1; + padding-left: 1; + padding-right: 0; + padding-bottom: 0; +} +#ComboViewerPanel Toolbar QToolButton#qt_toolbar_ext_button { + margin-bottom: 1; + qproperty-icon: url('../Default/imgs/black/toolbar_extension_horizontal.png'); +} +#ComboViewerToolOptions { + border-bottom: 1 solid #5a5a5a; +} +#ComboViewer #ToolBarContainer, +#ViewerPanel #ToolBarContainer, +FlipBook #ToolBarContainer { + background-color: transparent; + border-top: 1 solid #5a5a5a; + border-bottom: 1 solid #5a5a5a; + padding-right: -1; +} +#flipCustomize { + margin-left: 3; +} +#flipCustomize::menu-button { + background-color: transparent; + width: 35; +} +#flipCustomize::menu-arrow { + image: none; +} +QToolBar#FlipConsolePlayToolBar::separator:horizontal { + border-color: #5a5a5a; + margin: 0 1 0 1; +} +QToolBar#FlipConsolePlayToolBar QToolButton { + padding-left: 0; + padding-top: -1; + padding-right: -1; + padding-bottom: -2; + margin: 2 1 2 1; +} +QToolBar#FlipConsolePlayToolBar #KeyNo, +QToolBar#FlipConsolePlayToolBar #KeyPartial, +QToolBar#FlipConsolePlayToolBar #KeyTotal, +QToolBar#FlipConsolePlayToolBar #PreviousKey, +QToolBar#FlipConsolePlayToolBar #NextKey { + padding-right: 1; + padding-left: 1; + max-width: 20px; + max-height: 20px; + padding-bottom: 0; + padding-top: 0; +} +QToolBar#FlipConsolePlayToolBar #PreviousKey, +QToolBar#FlipConsolePlayToolBar #NextKey { + margin: 0 2; +} +#ViewerFpsSlider { + background-color: transparent; + background-image: url('../Default/imgs/black/slider-groove.svg'); + background-position: center center; + background-repeat: repeat-x; + border: 0; + height: 19; + margin: 0 3 0 37; + max-width: 300; + min-width: 0; +} +#ViewerFpsSlider::sub-line:horizontal { + subcontrol-origin: absolute; + background-color: #9f9f9f; + border: 1 solid #616161; + border-top-left-radius: 2; + border-bottom-left-radius: 2; + height: 16; + left: -33; + width: 14; +} +#ViewerFpsSlider::add-line:horizontal { + subcontrol-position: left; + background-color: #9f9f9f; + border: 1 solid #616161; + border-top-right-radius: 2; + border-bottom-right-radius: 2; + left: 18; + height: 16; + image-position: center center; + width: 13; +} +#ViewerFpsSlider::handle::horizontal { + background-color: #a6a6a6; + border: 1 solid #5a5a5a; + border-radius: 2; + margin: 2 0 3 0; + min-width: 9; + width: 9; + max-width: 9; +} +FlipConsole { + qproperty-FpsFieldColor: #c0c0c0; +} +FlipSlider { + qproperty-PBHeight: 15; + qproperty-PBOverlay: url('../Default/imgs/black/flipslider.svg'); + qproperty-PBColorMarginLeft: 1; + qproperty-PBColorMarginTop: 2; + qproperty-PBColorMarginRight: 1; + qproperty-PBColorMarginBottom: 2; + qproperty-PBMarker: url('../Default/imgs/black/flipmarker.svg'); + qproperty-PBMarkerMarginLeft: 3; + qproperty-PBMarkerMarginRight: 3; + qproperty-notStartedColor: #a74040; + qproperty-startedColor: #00a808; + qproperty-baseColor: #676767; + qproperty-finishedColor: #676767; +} +Ruler { + qproperty-ParentBGColor: #808080; + qproperty-ScaleColor: rgba(0, 0, 0, 0.7); + qproperty-HandleColor: #a9c6e5; + qproperty-HandleDragColor: yellow; + qproperty-BorderColor: rgba(90, 90, 90, 0.7); +} +#RulerToolOptionValues { + color: #000000; +} +#enableBlankFrameButton { + background-color: transparent; + border-color: transparent; + color: rgba(0, 0, 0, 0.4); + padding: 0; + font-weight: bold; +} +#enableBlankFrameButton:checked { + border-width: 2px; +} +/* ----------------------------------------------------------------------------- + XSheet Viewer +----------------------------------------------------------------------------- */ +/* ScrollAreas (Row, Column and Cell) +----------------------------------------------------------------------------- */ +#xsheetArea, +#ScrollArea { + background-color: #808080; + border: 0; +} +#xsheetScrollArea { + border: 0; +} +#cornerWidget QToolButton { + padding: 0; +} +#XsheetCellArea QLineEdit { + margin-top: 1; +} +#XsheetCellArea QLineEdit:focus { + border-radius: 0; + border-width: 2; + border-left-width: 2; + border-color: #000; + background-color: #c0c0c0; +} +#RenameCellField { + padding-right: 3; +} +/* xsheetColumnHeader (Context Menus) +----------------------------------------------------------------------------- */ +#xsheetColumnAreaMenu_Preview { + background-color: #E6E678; +} +#xsheetColumnAreaMenu_Lock { + background-color: #F5F5F5; +} +#xsheetColumnAreaMenu_Camstand { + background-color: #FFA480; +} +#xsheetColumnAreaMenu_Preview, +#xsheetColumnAreaMenu_Lock, +#xsheetColumnAreaMenu_Camstand { + color: #000; +} +#noteTextEdit { + color: #000; +} +#DvMiniToolBar { + border: 1 solid #5a5a5a; +} +/* XSheet Spreadsheet +----------------------------------------------------------------------------- */ +XsheetViewer { + qproperty-TextColor: #000; + qproperty-ErrorTextColor: #c01111; + qproperty-BGColor: #767676; + qproperty-LightLineColor: rgba(0, 0, 0, 0.15); + qproperty-MarkerLineColor: rgba(255, 255, 255, 0.2); + qproperty-VerticalLineColor: rgba(0, 0, 0, 0.3); + qproperty-VerticalLineHeadColor: #4d4d4d; + qproperty-PreviewFrameTextColor: #17239c; + qproperty-CurrentRowBgColor: rgba(182, 211, 241, 0.7); + qproperty-OnionSkinAreaBgColor: #6c6c6c; + qproperty-CellFocusColor: #000; + qproperty-ColumnIconLineColor: #4d4d4d; + qproperty-EmptyColumnHeadColor: #808080; + qproperty-ColumnHeadPastelizer: rgba(0, 0, 0, 0); + qproperty-SelectedColumnHead: rgba(233, 236, 240, 0.3); + qproperty-PlayRangeColor: #808080; + qproperty-FoldedColumnBGColor: #9a9a9a; + qproperty-FoldedColumnLineColor: #737373; + qproperty-EmptyCellColor: #6c6c6c; + qproperty-NotEmptyColumnColor: #767676; + qproperty-SelectedEmptyCellColor: rgba(155, 159, 162, 0.5); + qproperty-LevelColumnColor: #78a578; + qproperty-LevelColumnBorderColor: #537d53; + qproperty-SelectedLevelColumnColor: #90bd98; + qproperty-VectorColumnColor: #a7a163; + qproperty-VectorColumnBorderColor: #797444; + qproperty-SelectedVectorColumnColor: #bbba84; + qproperty-ChildColumnColor: #9a759c; + qproperty-ChildColumnBorderColor: #715272; + qproperty-SelectedChildColumnColor: #af91b9; + qproperty-FullcolorColumnColor: #839bb1; + qproperty-FullcolorColumnBorderColor: #59758e; + qproperty-SelectedFullcolorColumnColor: #9ab4cc; + qproperty-FxColumnColor: #928562; + qproperty-FxColumnBorderColor: #645b43; + qproperty-SelectedFxColumnColor: #a8a083; + qproperty-ReferenceColumnColor: #959595; + qproperty-ReferenceColumnBorderColor: #6f6f6f; + qproperty-SelectedReferenceColumnColor: #abaeb3; + qproperty-PaletteColumnColor: #599586; + qproperty-PaletteColumnBorderColor: #3c655b; + qproperty-SelectedPaletteColumnColor: #73aea5; + qproperty-MeshColumnColor: #8b73a7; + qproperty-MeshColumnBorderColor: #654f7e; + qproperty-SelectedMeshColumnColor: #a18fc3; + qproperty-SoundTextColumnColor: #a7a7a7; + qproperty-SoundTextColumnBorderColor: #818181; + qproperty-SelectedSoundTextColumnColor: #bbbfc3; + qproperty-SoundColumnColor: #749e9e; + qproperty-SoundColumnBorderColor: #517474; + qproperty-SelectedSoundColumnColor: #8cb7bb; + qproperty-SoundColumnHlColor: #f5ffe6; + qproperty-SoundColumnTrackColor: rgba(0, 0, 0, 0.8); + qproperty-ActiveCameraColor: #6491be; + qproperty-SelectedActiveCameraColor: #7dabd9; + qproperty-OtherCameraColor: #8f9c9e; + qproperty-SelectedOtherCameraColor: #a5b5bb; + qproperty-LightLightBGColor: #6c6c6c; + qproperty-LightBGColor: #ffffff; + qproperty-DarkBGColor: #ffffff; + qproperty-DarkLineColor: #cecece; + qproperty-TimelineIconLineColor: rgba(0, 0, 0, 0.3); + qproperty-XsheetColumnNameBgColor: rgba(0, 0, 0, 0); + qproperty-XsheetDragBarHighlightColor: rgba(255, 255, 255, 0.15); + qproperty-XsheetPreviewButtonBgOnColor: #c8c864; + qproperty-XsheetPreviewButtonOnImage: url('../Default/imgs/black/x_prev_eye_on.svg'); + qproperty-XsheetPreviewButtonBgOffColor: transparent; + qproperty-XsheetPreviewButtonOffImage: url('../Default/imgs/black/x_prev_eye_off.svg'); + qproperty-XsheetCamstandButtonBgOnColor: #eb906b; + qproperty-XsheetCamstandButtonOnImage: url('../Default/imgs/black/x_table_view_on.svg'); + qproperty-XsheetCamstandButtonTranspImage: url('../Default/imgs/black/x_table_view_transp.svg'); + qproperty-XsheetCamstandButtonBgOffColor: transparent; + qproperty-XsheetCamstandButtonOffImage: url('../Default/imgs/black/x_table_view_off.svg'); + qproperty-XsheetLockButtonBgOnColor: rgba(255, 255, 255, 0.6); + qproperty-XsheetLockButtonOnImage: url('../Default/imgs/black/x_lock_on.svg'); + qproperty-XsheetLockButtonBgOffColor: transparent; + qproperty-XsheetLockButtonOffImage: url('../Default/imgs/black/x_lock_off.svg'); + qproperty-XsheetConfigButtonBgColor: rgba(255, 255, 255, 0); + qproperty-XsheetConfigButtonImage: url('../Default/imgs/black/x_config.svg'); + qproperty-FrameRangeMarkerLineColor: #5a5a5a; + qproperty-TimelinePreviewButtonBgOnColor: #808080; + qproperty-TimelinePreviewButtonOnImage: url('../Default/imgs/black/preview_small.svg'); + qproperty-TimelinePreviewButtonBgOffColor: #808080; + qproperty-TimelinePreviewButtonOffImage: url('none'); + qproperty-TimelineCamstandButtonBgOnColor: #808080; + qproperty-TimelineCamstandButtonOnImage: url('../Default/imgs/black/table_small.svg'); + qproperty-TimelineCamstandButtonTranspImage: url('../Default/imgs/black/trans_small.svg'); + qproperty-TimelineCamstandButtonBgOffColor: #808080; + qproperty-TimelineCamstandButtonOffImage: url('none'); + qproperty-TimelineLockButtonBgOnColor: #808080; + qproperty-TimelineLockButtonOnImage: url('../Default/imgs/black/lock_on_small.svg'); + qproperty-TimelineLockButtonBgOffColor: #808080; + qproperty-TimelineLockButtonOffImage: url('none'); + qproperty-TimelineConfigButtonBgColor: #808080; + qproperty-TimelineConfigButtonImage: url('../Default/imgs/black/timeline_config.svg'); + qproperty-LayerHeaderPreviewImage: url('../Default/imgs/black/layer_header_prev_eye.svg'); + qproperty-LayerHeaderPreviewOverImage: url('../Default/imgs/black/layer_header_prev_eye_over.svg'); + qproperty-LayerHeaderCamstandImage: url('../Default/imgs/black/layer_header_table_view.svg'); + qproperty-LayerHeaderCamstandOverImage: url('../Default/imgs/black/layer_header_table_view_over.svg'); + qproperty-LayerHeaderLockImage: url('../Default/imgs/black/layer_lock_on.svg'); + qproperty-LayerHeaderLockOverImage: url('../Default/imgs/black/layer_lock_on_over.svg'); +} +/* ----------------------------------------------------------------------------- + Function Editor +----------------------------------------------------------------------------- */ +#FunctionEditor QToolBar { + border-bottom: 1 solid #5a5a5a; + background-color: transparent; + padding-bottom: 10; +} +#FunctionEditor QToolBar QToolBar { + border: 0; +} +#FunctionEditor QToolBar QToolButton { + margin-bottom: 2; +} +#FunctionEditorTree { + border-top: 1 solid #5a5a5a; +} +FunctionTreeView { + qproperty-TextColor: #000; +} +/* Function Editor Spreadsheet +----------------------------------------------------------------------------- */ +FunctionPanel { + qproperty-BGColor: #5a5a5a; + qproperty-ValueLineColor: rgba(0, 0, 0, 0.1); + qproperty-FrameLineColor: rgba(0, 0, 0, 0.1); + qproperty-OtherCurvesColor: #c5c5c5; + qproperty-RulerBackground: #676767; + qproperty-TextColor: #000; + qproperty-SubColor: #ffffff; + qproperty-SelectedColor: #fcae06; +} +SpreadsheetViewer { + qproperty-LightLightBGColor: #6c6c6c; + qproperty-CurrentRowBgColor: rgba(182, 211, 241, 0.7); + qproperty-LightLineColor: rgba(0, 0, 0, 0.15); + qproperty-MarkerLineColor: rgba(255, 255, 255, 0.2); + qproperty-BGColor: #767676; + qproperty-VerticalLineColor: rgba(0, 0, 0, 0.3); + qproperty-KeyFrameColor: #c4833e; + qproperty-KeyFrameBorderColor: #64421f; + qproperty-SelectedKeyFrameColor: #deae7b; + qproperty-InBetweenColor: #b4b09e; + qproperty-InBetweenBorderColor: #6e6c64; + qproperty-SelectedInBetweenColor: #c7c7bb; + qproperty-SelectedEmptyColor: rgba(155, 159, 162, 0.5); + qproperty-SelectedSceneRangeEmptyColor: rgba(155, 159, 162, 0.5); + qproperty-TextColor: #000; + qproperty-ColumnHeaderBorderColor: #343434; +} +#ExpressionField { + background-color: #ffffff; + border: 1 solid #6b6b6b; + margin: 0; +} diff --git a/toonz/sources/include/tools/tooloptions.h b/toonz/sources/include/tools/tooloptions.h index 3e858af..d47a829 100644 --- a/toonz/sources/include/tools/tooloptions.h +++ b/toonz/sources/include/tools/tooloptions.h @@ -331,8 +331,6 @@ protected: QPixmap RotationPixmap READ getRotationPixmap WRITE setRotationPixmap); Q_PROPERTY( QPixmap PositionPixmap READ getPositionPixmap WRITE setPositionPixmap); - Q_PROPERTY( - QPixmap ThicknessPixmap READ getThicknessPixmap WRITE setThicknessPixmap); public: IconViewField(QWidget *parent = 0, IconType iconType = Icon_ScalePeg); @@ -349,10 +347,6 @@ public: void setPositionPixmap(const QPixmap &pixmap) { m_pm[Icon_Position] = pixmap; } - QPixmap getThicknessPixmap() const { return m_pm[Icon_Thickness]; } - void setThicknessPixmap(const QPixmap &pixmap) { - m_pm[Icon_Thickness] = pixmap; - } protected: void paintEvent(QPaintEvent *e); diff --git a/toonz/sources/include/toonz/preferences.h b/toonz/sources/include/toonz/preferences.h index 9d9bbfe..f869b57 100644 --- a/toonz/sources/include/toonz/preferences.h +++ b/toonz/sources/include/toonz/preferences.h @@ -186,6 +186,7 @@ public: // Interface tab QStringList getStyleSheetList() const { return m_styleSheetList; } + bool getIconTheme() const { return getBoolValue(iconTheme); } void storeOldUnits(); // OK void resetOldUnits(); // OK QStringList getLanguageList() const { return m_languageList; } diff --git a/toonz/sources/include/toonz/preferencesitemids.h b/toonz/sources/include/toonz/preferencesitemids.h index 86bf502..5484018 100644 --- a/toonz/sources/include/toonz/preferencesitemids.h +++ b/toonz/sources/include/toonz/preferencesitemids.h @@ -24,6 +24,7 @@ enum PreferencesItemId { //---------- // Interface CurrentStyleSheetName, + iconTheme, pixelsOnly, oldUnits, oldCameraUnits, diff --git a/toonz/sources/include/toonzqt/flipconsole.h b/toonz/sources/include/toonzqt/flipconsole.h index d809793..35ab885 100644 --- a/toonz/sources/include/toonzqt/flipconsole.h +++ b/toonz/sources/include/toonzqt/flipconsole.h @@ -182,6 +182,9 @@ signals: class DVAPI FlipConsole final : public QWidget { Q_OBJECT + QColor m_fpsFieldColor; + Q_PROPERTY(QColor FpsFieldColor READ getFpsFieldColor WRITE setFpsFieldColor) + public: enum EGadget { eBegin, @@ -304,6 +307,9 @@ public: buttonMask.end(); } + void setFpsFieldColor(const QColor &color) { m_fpsFieldColor = color; } + QColor getFpsFieldColor() const { return m_fpsFieldColor; } + signals: void buttonPressed(FlipConsole::EGadget button); diff --git a/toonz/sources/include/toonzqt/gutil.h b/toonz/sources/include/toonzqt/gutil.h index ba509be..59b18bf 100644 --- a/toonz/sources/include/toonzqt/gutil.h +++ b/toonz/sources/include/toonzqt/gutil.h @@ -8,6 +8,7 @@ #include #include #include "traster.h" +#include "toonz/preferences.h" #undef DVAPI #undef DVVAR @@ -48,6 +49,10 @@ class TStroke; //----------------------------------------------------------------------------- +QString DVAPI getIconThemePath(const QString &filePath); + +//----------------------------------------------------------------------------- + QString DVAPI fileSizeString(qint64 size, int precision = 2); //----------------------------------------------------------------------------- @@ -102,9 +107,14 @@ svgToPixmap(const QString &svgFilePath, const QSize &size = QSize(), int DVAPI getDevPixRatio(); //----------------------------------------------------------------------------- -QIcon DVAPI createQIcon(const char *iconSVGName); + +QPixmap DVAPI setOpacity(QPixmap pixmap, const qreal &opacity = 0.8); +QPixmap DVAPI recolorPixmap( + QPixmap pixmap, QColor color = Preferences::instance()->getIconTheme() + ? Qt::black + : Qt::white); +QIcon DVAPI createQIcon(const char *iconSVGName, bool useFullOpacity = false); QIcon DVAPI createQIconPNG(const char *iconPNGName); -QIcon DVAPI createQIconOnOff(const char *iconSVGName, bool withOver = true); QIcon DVAPI createQIconOnOffPNG(const char *iconPNGName, bool withOver = true); inline QSize dimension2QSize(const TDimension &sz) { diff --git a/toonz/sources/include/toonzqt/paletteviewergui.h b/toonz/sources/include/toonzqt/paletteviewergui.h index 6b77875..eaa474e 100644 --- a/toonz/sources/include/toonzqt/paletteviewergui.h +++ b/toonz/sources/include/toonzqt/paletteviewergui.h @@ -66,6 +66,41 @@ class DVAPI PageViewer final : public QFrame, public TSelection::View { QColor m_textColor; // text color used for list view Q_PROPERTY(QColor TextColor READ getTextColor WRITE setTextColor) + // list view chip separator color + QColor m_separatorColor; + Q_PROPERTY( + QColor SeparatorColor READ getSeparatorColor WRITE setSeparatorColor) + + // selected chip border color + QColor m_selectedBorderColor; + Q_PROPERTY(QColor SelectedBorderColor READ getSelectedBorderColor WRITE + setSelectedBorderColor) + + // numpad shortcut key style + QColor m_numpadShortcutBgColor; // bg + Q_PROPERTY(QColor NumpadShortcutBgColor READ getNumpadShortcutBgColor WRITE + setNumpadShortcutBgColor) + + QColor m_numpadShortcutBorderColor; // border + Q_PROPERTY(QColor NumpadShortcutBorderColor READ getNumpadShortcutBorderColor + WRITE setNumpadShortcutBorderColor) + + // list view current cell color + QColor m_currentCellColor; + Q_PROPERTY(QColor CurrentCellColor READ getCurrentCellColor WRITE + setCurrentCellColor) + + // list view selected cell color + QColor m_selectedCellColor; + Q_PROPERTY(QColor SelectedCellColor READ getSelectedCellColor WRITE + setSelectedCellColor) + + // list view numpad shortcut border color + QColor m_listNumpadShortcutBorderColor; + Q_PROPERTY( + QColor ListNumpadShortcutBorderColor READ getListNumpadShortcutBorderColor + WRITE setListNumpadShortcutBorderColor) + public: enum ViewMode //! Possible view modes for a Palette Viewer. { SmallChips, //!< Small icons. @@ -138,6 +173,46 @@ public: void setTextColor(const QColor &color) { m_textColor = color; } QColor getTextColor() const { return m_textColor; } + // list view chip separator color + void setSeparatorColor(const QColor &color) { m_separatorColor = color; } + QColor getSeparatorColor() const { return m_separatorColor; } + + void setSelectedBorderColor(const QColor &color) { + m_selectedBorderColor = color; + } + QColor getSelectedBorderColor() const { return m_selectedBorderColor; } + + // numpad shortcut key style + void setNumpadShortcutBgColor(const QColor &color) { + m_numpadShortcutBgColor = color; + } + QColor getNumpadShortcutBgColor() const { return m_numpadShortcutBgColor; } + + void setNumpadShortcutBorderColor(const QColor &color) { + m_numpadShortcutBorderColor = color; + } + QColor getNumpadShortcutBorderColor() const { + return m_numpadShortcutBorderColor; + } + + // list view current cell color + void setCurrentCellColor(const QColor &color) { m_currentCellColor = color; } + QColor getCurrentCellColor() const { return m_currentCellColor; } + + // list view selected cell color + void setSelectedCellColor(const QColor &color) { + m_selectedCellColor = color; + } + QColor getSelectedCellColor() const { return m_selectedCellColor; } + + // list view numpad shortcut border color + void setListNumpadShortcutBorderColor(const QColor &color) { + m_listNumpadShortcutBorderColor = color; + } + QColor getListNumpadShortcutBorderColor() const { + return m_listNumpadShortcutBorderColor; + } + public slots: void computeSize(); diff --git a/toonz/sources/include/toonzqt/paramfield.h b/toonz/sources/include/toonzqt/paramfield.h index 01ad39e..fc621fa 100644 --- a/toonz/sources/include/toonzqt/paramfield.h +++ b/toonz/sources/include/toonzqt/paramfield.h @@ -16,6 +16,7 @@ #include #include #include +#include #include "tgeometry.h" #include "tparam.h" @@ -107,8 +108,41 @@ signals: class DVAPI ParamFieldKeyToggle final : public QWidget { Q_OBJECT - public: + QPixmap m_pixmap; + + // keyframe colors + QColor m_keyBorderOffColor; + QColor m_keyBorderOnColor; + QColor m_keyBorderModifiedColor; + QColor m_keyBorderInbetweenColor; + QColor m_keyBorderHighlightColor; + QColor m_keyOffColor; + QColor m_keyOnColor; + QColor m_keyModifiedColor; + QColor m_keyHighlightColor; + QColor m_keyInbetweenColor; + + // keyframe colors + Q_PROPERTY(QColor KeyBorderOffColor READ getKeyBorderOffColor WRITE + setKeyBorderOffColor) + Q_PROPERTY(QColor KeyBorderOnColor READ getKeyBorderOnColor WRITE + setKeyBorderOnColor) + Q_PROPERTY(QColor KeyBorderModifiedColor READ getKeyBorderModifiedColor WRITE + setKeyBorderModifiedColor) + Q_PROPERTY(QColor KeyBorderInbetweenColor READ getKeyBorderInbetweenColor + WRITE setKeyBorderInbetweenColor) + Q_PROPERTY(QColor KeyBorderHighlightColor READ getKeyBorderHighlightColor + WRITE setKeyBorderHighlightColor) + Q_PROPERTY(QColor KeyOffColor READ getKeyOffColor WRITE setKeyOffColor) + Q_PROPERTY(QColor KeyOnColor READ getKeyOnColor WRITE setKeyOnColor) + Q_PROPERTY(QColor KeyModifiedColor READ getKeyModifiedColor WRITE + setKeyModifiedColor) + Q_PROPERTY(QColor KeyInbetweenColor READ getKeyInbetweenColor WRITE + setKeyInbetweenColor) + Q_PROPERTY(QColor KeyHighlightColor READ getKeyHighlightColor WRITE + setKeyHighlightColor) + enum Status { NOT_ANIMATED, NOT_KEYFRAME, MODIFIED, KEYFRAME }; private: @@ -130,6 +164,44 @@ protected: void enterEvent(QEvent *) override; void leaveEvent(QEvent *) override; + // keyframe colors + void setKeyBorderOffColor(const QColor &color) { + m_keyBorderOffColor = color; + } + QColor getKeyBorderOffColor() const { return m_keyBorderOffColor; } + void setKeyBorderOnColor(const QColor &color) { m_keyBorderOnColor = color; } + QColor getKeyBorderOnColor() const { return m_keyBorderOnColor; } + void setKeyBorderModifiedColor(const QColor &color) { + m_keyBorderModifiedColor = color; + } + QColor getKeyBorderModifiedColor() const { return m_keyBorderModifiedColor; } + void setKeyBorderInbetweenColor(const QColor &color) { + m_keyBorderInbetweenColor = color; + } + QColor getKeyBorderInbetweenColor() const { + return m_keyBorderInbetweenColor; + } + void setKeyBorderHighlightColor(const QColor &color) { + m_keyBorderHighlightColor = color; + } + QColor getKeyBorderHighlightColor() const { + return m_keyBorderHighlightColor; + } + void setKeyOffColor(const QColor &color) { m_keyOffColor = color; } + QColor getKeyOffColor() const { return m_keyOffColor; } + void setKeyOnColor(const QColor &color) { m_keyOnColor = color; } + QColor getKeyOnColor() const { return m_keyOnColor; } + void setKeyModifiedColor(const QColor &color) { m_keyModifiedColor = color; } + QColor getKeyModifiedColor() const { return m_keyModifiedColor; } + void setKeyHighlightColor(const QColor &color) { + m_keyHighlightColor = color; + } + QColor getKeyHighlightColor() const { return m_keyHighlightColor; } + void setKeyInbetweenColor(const QColor &color) { + m_keyInbetweenColor = color; + } + QColor getKeyInbetweenColor() const { return m_keyInbetweenColor; } + signals: void keyToggled(); }; diff --git a/toonz/sources/include/toonzqt/schematicviewer.h b/toonz/sources/include/toonzqt/schematicviewer.h index 8ba1807..78f1a1b 100644 --- a/toonz/sources/include/toonzqt/schematicviewer.h +++ b/toonz/sources/include/toonzqt/schematicviewer.h @@ -196,6 +196,29 @@ class DVAPI SchematicViewer final : public QWidget { Q_PROPERTY(QColor VerticalLineColor READ getVerticalLineColor WRITE setVerticalLineColor) + QColor m_linkColor; // link color + Q_PROPERTY(QColor LinkColor READ getLinkColor WRITE setLinkColor) + + QColor m_selectedLinkColor; // selected link color + Q_PROPERTY(QColor SelectedLinkColor READ getSelectedLinkColor WRITE + setSelectedLinkColor) + + // Selected Node Border Color + QColor m_selectedBorderColor; + Q_PROPERTY(QColor SelectedBorderColor READ getSelectedBorderColor WRITE + setSelectedBorderColor) + + // Motion Path Link Color + QColor m_motionPathLinkColor; + Q_PROPERTY(QColor MotionPathLinkColor READ getMotionPathLinkColor WRITE + setMotionPathLinkColor) + + // Motion Path Selected Link Color + QColor m_motionPathSelectedLinkColor; + Q_PROPERTY( + QColor MotionPathSelectedLinkColor READ getMotionPathSelectedLinkColor + WRITE setMotionPathSelectedLinkColor) + // TZP column QColor m_levelColumnColor; //(127,219,127) Q_PROPERTY(QColor LevelColumnColor READ getLevelColumnColor WRITE @@ -343,6 +366,36 @@ public: } QColor getVerticalLineColor() const { return m_verticalLineColor; } + // Link Color + void setLinkColor(const QColor &color) { m_linkColor = color; } + QColor getLinkColor() const { return m_linkColor; } + + // Selected Link Color + void setSelectedLinkColor(const QColor &color) { + m_selectedLinkColor = color; + } + QColor getSelectedLinkColor() const { return m_selectedLinkColor; } + + // Selected Node Border Color + void setSelectedBorderColor(const QColor &color) { + m_selectedBorderColor = color; + } + QColor getSelectedBorderColor() const { return m_selectedBorderColor; } + + // Motion Path Link Color + void setMotionPathLinkColor(const QColor &color) { + m_motionPathLinkColor = color; + } + QColor getMotionPathLinkColor() const { return m_motionPathLinkColor; } + + // Motion Path Selected Link Color + void setMotionPathSelectedLinkColor(const QColor &color) { + m_motionPathSelectedLinkColor = color; + } + QColor getMotionPathSelectedLinkColor() const { + return m_motionPathSelectedLinkColor; + } + // TZP column void setLevelColumnColor(const QColor &color) { m_levelColumnColor = color; } QColor getLevelColumnColor() const { return m_levelColumnColor; } diff --git a/toonz/sources/stopmotion/stopmotioncontroller.cpp b/toonz/sources/stopmotion/stopmotioncontroller.cpp index 1eec043..69832c0 100644 --- a/toonz/sources/stopmotion/stopmotioncontroller.cpp +++ b/toonz/sources/stopmotion/stopmotioncontroller.cpp @@ -209,7 +209,7 @@ StopMotionController::StopMotionController(QWidget *parent) : QWidget(parent) { if (m_captureFilterSettingsBtn) { m_captureFilterSettingsBtn->setObjectName("GearButton"); m_captureFilterSettingsBtn->setFixedSize(28, 28); - m_captureFilterSettingsBtn->setIconSize(QSize(15, 15)); + m_captureFilterSettingsBtn->setIconSize(QSize(18, 18)); m_captureFilterSettingsBtn->setToolTip(tr("Webcam Settings...")); } diff --git a/toonz/sources/tnztools/tooloptions.cpp b/toonz/sources/tnztools/tooloptions.cpp index 450f386..5a29c47 100644 --- a/toonz/sources/tnztools/tooloptions.cpp +++ b/toonz/sources/tnztools/tooloptions.cpp @@ -480,14 +480,14 @@ public: SimpleIconViewField(const QString &iconName, const QString &toolTipStr = "", QWidget *parent = 0) : DraggableIconView(parent), m_icon(createQIcon(iconName.toUtf8())) { - setMinimumSize(17, 25); + setMinimumSize(18, 18); setToolTip(toolTipStr); } protected: void paintEvent(QPaintEvent *e) { QPainter p(this); - p.drawPixmap(QRect(0, 4, 17, 17), m_icon.pixmap(17, 17)); + p.drawPixmap(QRect(0, 2, 18, 18), m_icon.pixmap(18, 18)); } }; @@ -536,7 +536,7 @@ ArrowToolOptionsBox::ArrowToolOptionsBox( m_nsPosField = new PegbarChannelField(m_tool, TStageObject::T_Y, "field", frameHandle, objHandle, xshHandle, this); - m_zField = new PegbarChannelField(m_tool, TStageObject::T_Z, "field", + m_zField = new PegbarChannelField(m_tool, TStageObject::T_Z, "field", frameHandle, objHandle, xshHandle, this); m_noScaleZField = new NoScaleField(m_tool, "field"); @@ -667,7 +667,7 @@ ArrowToolOptionsBox::ArrowToolOptionsBox( m_zField->setPrecision(4); m_noScaleZField->setPrecision(4); - bool splined = isCurrentObjectSplined(); + bool splined = isCurrentObjectSplined(); if (splined != m_splined) m_splined = splined; setSplined(m_splined); @@ -1262,8 +1262,8 @@ SelectionToolOptionsBox::SelectionToolOptionsBox(QWidget *parent, TTool *tool, m_isVectorSelction = true; // change Thick - IconViewField *thicknessIconView = - new IconViewField(this, IconViewField::Icon_Thickness); + SimpleIconViewField *thicknessIconView = + new SimpleIconViewField("thickness", tr("Thickness"), this); m_thickChangeField = new ThickChangeField(selectionTool, tr("Thickness")); connect(thicknessIconView, SIGNAL(onMousePress(QMouseEvent *)), @@ -1300,7 +1300,7 @@ SelectionToolOptionsBox::SelectionToolOptionsBox(QWidget *parent, TTool *tool, // assert(ret); bool ret = connect(m_scaleXField, SIGNAL(valueChange(bool)), SLOT(onScaleXValueChanged(bool))); - ret = ret && connect(m_scaleYField, SIGNAL(valueChange(bool)), + ret = ret && connect(m_scaleYField, SIGNAL(valueChange(bool)), SLOT(onScaleYValueChanged(bool))); if (m_setSaveboxCheckbox) ret = ret && connect(m_setSaveboxCheckbox, SIGNAL(toggled(bool)), @@ -1721,11 +1721,11 @@ FillToolOptionsBox::FillToolOptionsBox(QWidget *parent, TTool *tool, bool ret = connect(m_colorMode, SIGNAL(currentIndexChanged(int)), this, SLOT(onColorModeChanged(int))); - ret = ret && connect(m_toolType, SIGNAL(currentIndexChanged(int)), this, + ret = ret && connect(m_toolType, SIGNAL(currentIndexChanged(int)), this, SLOT(onToolTypeChanged(int))); - ret = ret && connect(m_onionMode, SIGNAL(toggled(bool)), this, + ret = ret && connect(m_onionMode, SIGNAL(toggled(bool)), this, SLOT(onOnionModeToggled(bool))); - ret = ret && connect(m_multiFrameMode, SIGNAL(toggled(bool)), this, + ret = ret && connect(m_multiFrameMode, SIGNAL(toggled(bool)), this, SLOT(onMultiFrameModeToggled(bool))); assert(ret); if (m_colorMode->getProperty()->getValue() == L"Lines") { @@ -2135,7 +2135,7 @@ public: QPainter p(this); p.setPen(QColor(64, 64, 64)); p.drawLine(0, 0, 0, 25); - p.setPen(Qt::white); + p.setPen(QColor(0, 0, 0, 125)); p.drawLine(1, 0, 1, 25); } }; @@ -2324,9 +2324,9 @@ TapeToolOptionsBox::TapeToolOptionsBox(QWidget *parent, TTool *tool, bool ret = connect(m_typeMode, SIGNAL(currentIndexChanged(int)), this, SLOT(onToolTypeChanged(int))); - ret = ret && connect(m_toolMode, SIGNAL(currentIndexChanged(int)), this, + ret = ret && connect(m_toolMode, SIGNAL(currentIndexChanged(int)), this, SLOT(onToolModeChanged(int))); - ret = ret && connect(m_joinStrokesMode, SIGNAL(toggled(bool)), this, + ret = ret && connect(m_joinStrokesMode, SIGNAL(toggled(bool)), this, SLOT(onJoinStrokesModeChanged())); assert(ret); } @@ -2413,11 +2413,10 @@ protected: p.setPen(Qt::black); p.setBrush(Qt::NoBrush); - p.drawText(rect(), Qt::AlignCenter, - QString("R:%1 G:%2 B:%3") - .arg(m_color.red()) - .arg(m_color.green()) - .arg(m_color.blue())); + p.drawText(rect(), Qt::AlignCenter, QString("R:%1 G:%2 B:%3") + .arg(m_color.red()) + .arg(m_color.green()) + .arg(m_color.blue())); } }; @@ -2845,7 +2844,7 @@ void ToolOptions::onToolSwitched() { TTool *tool = app->getCurrentTool()->getTool(); if (tool) { // c'e' un tool corrente - ToolOptionsBox *panel = 0; + ToolOptionsBox *panel = 0; std::map::iterator it = m_panels.find(tool); if (it == m_panels.end()) { // ... senza panel associato diff --git a/toonz/sources/tnztools/tooloptionscontrols.cpp b/toonz/sources/tnztools/tooloptionscontrols.cpp index 5eec9d7..7512f9e 100644 --- a/toonz/sources/tnztools/tooloptionscontrols.cpp +++ b/toonz/sources/tnztools/tooloptionscontrols.cpp @@ -617,10 +617,10 @@ void ToolOptionCombo::loadEntries() { itemStr); if (!hasIcon) { hasIcon = true; - setIconSize(QSize(17, 17)); + setIconSize(QSize(18, 18)); // add margin between items if they are with icons setView(new QListView()); - view()->setIconSize(QSize(17, 17)); + view()->setIconSize(QSize(18, 18)); setStyleSheet( "QComboBox QAbstractItemView::item{ \ margin: 5 0 0 0;\ diff --git a/toonz/sources/toonz/Resources/camera.svg b/toonz/sources/toonz/Resources/camera.svg index 20e0979..2d91b5e 100644 --- a/toonz/sources/toonz/Resources/camera.svg +++ b/toonz/sources/toonz/Resources/camera.svg @@ -1,8 +1,10 @@ - + + + + - diff --git a/toonz/sources/toonz/Resources/camera_small.svg b/toonz/sources/toonz/Resources/camera_small.svg index 157e996..793e265 100644 --- a/toonz/sources/toonz/Resources/camera_small.svg +++ b/toonz/sources/toonz/Resources/camera_small.svg @@ -1,55 +1,10 @@ -image/svg+xml - - - - \ No newline at end of file + + + + + + + + + diff --git a/toonz/sources/toonz/Resources/key.svg b/toonz/sources/toonz/Resources/key.svg index c3e484d..346d034 100644 --- a/toonz/sources/toonz/Resources/key.svg +++ b/toonz/sources/toonz/Resources/key.svg @@ -1,17 +1,10 @@ - - - - - - - - - - + + + + + + + + + diff --git a/toonz/sources/toonz/Resources/sound_header_off.svg b/toonz/sources/toonz/Resources/sound_header_off.svg index 976ec79..2cade97 100644 --- a/toonz/sources/toonz/Resources/sound_header_off.svg +++ b/toonz/sources/toonz/Resources/sound_header_off.svg @@ -1,21 +1,10 @@ - - - - - - - - - - - - - + + + + + + + + + diff --git a/toonz/sources/toonz/Resources/sound_header_on.svg b/toonz/sources/toonz/Resources/sound_header_on.svg index cc001a6..141ed4f 100644 --- a/toonz/sources/toonz/Resources/sound_header_on.svg +++ b/toonz/sources/toonz/Resources/sound_header_on.svg @@ -1,19 +1,8 @@ - - - - - - - - - + + + + + + + diff --git a/toonz/sources/toonz/Resources/switch.svg b/toonz/sources/toonz/Resources/switch.svg index 850f494..99c5c8d 100644 --- a/toonz/sources/toonz/Resources/switch.svg +++ b/toonz/sources/toonz/Resources/switch.svg @@ -1,25 +1,10 @@ - - - - - - - - - - - - - - - + + + + + + + + + diff --git a/toonz/sources/toonz/boardsettingspopup.cpp b/toonz/sources/toonz/boardsettingspopup.cpp index 78aecf9..f538ed9 100644 --- a/toonz/sources/toonz/boardsettingspopup.cpp +++ b/toonz/sources/toonz/boardsettingspopup.cpp @@ -5,6 +5,7 @@ #include "filebrowser.h" // TnzQt includes +#include "toonzqt/gutil.h" #include "toonzqt/filefield.h" #include "toonzqt/colorfield.h" #include "toonzqt/intfield.h" @@ -70,7 +71,7 @@ void editListWidgetItem(QListWidgetItem* listItem, BoardItem* item) { listItem->setIcon(QIcon(iconPm)); } } -} +} // namespace //============================================================================= @@ -324,10 +325,8 @@ ItemInfoView::ItemInfoView(QWidget* parent) : QStackedWidget(parent) { m_textEdit = new QTextEdit(this); m_imgPathField = new DVGui::FileField(this); m_fontCombo = new QFontComboBox(this); - m_boldButton = - new QPushButton(QIcon(":Resources/bold_on.png"), tr("Bold"), this); - m_italicButton = - new QPushButton(QIcon(":Resources/italic_on.png"), tr("Italic"), this); + m_boldButton = new QPushButton(createQIcon("bold"), tr("Bold"), this); + m_italicButton = new QPushButton(createQIcon("italic"), tr("Italic"), this); m_fontColorField = new DVGui::ColorField(this, true, TPixel32(0, 0, 0, 255), 25, false, 54); m_imgARModeCombo = new QComboBox(this); @@ -343,10 +342,10 @@ ItemInfoView::ItemInfoView(QWidget* parent) : QStackedWidget(parent) { m_textEdit->setStyleSheet( "background:white;\ncolor:black;\nborder:1 solid black;"); - m_boldButton->setIconSize(QSize(30, 30)); + m_boldButton->setIconSize(QSize(16, 16)); m_boldButton->setFixedHeight(25); m_boldButton->setCheckable(true); - m_italicButton->setIconSize(QSize(30, 30)); + m_italicButton->setIconSize(QSize(16, 16)); m_italicButton->setFixedHeight(25); m_italicButton->setCheckable(true); @@ -658,17 +657,15 @@ void ItemInfoView::onImgARModeComboActivated() { ItemListView::ItemListView(QWidget* parent) : QWidget(parent) { QPushButton* newItemBtn = - new QPushButton(QIcon(":Resources/plus.svg"), tr("Add"), this); - m_deleteItemBtn = - new QPushButton(QIcon(":Resources/delete_on.svg"), tr("Remove"), this); - m_moveUpBtn = - new QPushButton(QIcon(":Resources/up.svg"), tr("Move Up"), this); + new QPushButton(createQIcon("plus"), tr("Add"), this); + m_deleteItemBtn = new QPushButton(createQIcon("delete"), tr("Remove"), this); + m_moveUpBtn = new QPushButton(createQIcon("fb_up"), tr("Move Up"), this); m_moveDownBtn = - new QPushButton(QIcon(":Resources/down.svg"), tr("Move Down"), this); + new QPushButton(createQIcon("fb_down"), tr("Move Down"), this); m_list = new QListWidget(this); - QSize iconSize(20, 20); + QSize iconSize(16, 16); newItemBtn->setIconSize(iconSize); m_deleteItemBtn->setIconSize(iconSize); @@ -857,9 +854,9 @@ BoardSettingsPopup::BoardSettingsPopup(QWidget* parent) m_durationEdit = new DVGui::IntLineEdit(this, 1, 0); QPushButton* loadPresetBtn = - new QPushButton(QIcon(":Resources/load_on.svg"), tr("Load Preset"), this); - QPushButton* savePresetBtn = new QPushButton(QIcon(":Resources/save_on.svg"), - tr("Save as Preset"), this); + new QPushButton(createQIcon("load"), tr("Load Preset"), this); + QPushButton* savePresetBtn = + new QPushButton(createQIcon("saveas"), tr("Save as Preset"), this); QPushButton* closeButton = new QPushButton(tr("Close"), this); diff --git a/toonz/sources/toonz/castselection.cpp b/toonz/sources/toonz/castselection.cpp index c284aee..7083050 100644 --- a/toonz/sources/toonz/castselection.cpp +++ b/toonz/sources/toonz/castselection.cpp @@ -138,8 +138,9 @@ int SoundCastItem::getFrameCount() const { //----------------------------------------------------------------------------- QPixmap SoundCastItem::getPixmap(bool isSelected) const { - static QPixmap loudspeaker(svgToPixmap( - ":Resources/audio.svg", m_itemPixmapSize, Qt::KeepAspectRatio)); + static QPixmap loudspeaker( + svgToPixmap(getIconThemePath("mimetypes/60/audio_icon.svg"), + m_itemPixmapSize, Qt::KeepAspectRatio)); return loudspeaker; } diff --git a/toonz/sources/toonz/castviewer.cpp b/toonz/sources/toonz/castviewer.cpp index affcce6..ec71d72 100644 --- a/toonz/sources/toonz/castviewer.cpp +++ b/toonz/sources/toonz/castviewer.cpp @@ -107,7 +107,7 @@ CastTreeViewer::CastTreeViewer(QWidget *parent) // qproperty-autoFillBackground: true;}"); header()->close(); - setIconSize(QSize(21, 17)); + setIconSize(QSize(16, 16)); setUniformRowHeights(true); // m_treeViewer->setColumnCount(1); @@ -237,7 +237,7 @@ void CastTreeViewer::rebuildCastTree() { QTreeWidgetItem *root = new QTreeWidgetItem((QTreeWidgetItem *)0, QStringList(rootName)); - static QPixmap clapboard(":Resources/clapboard.png"); + static QIcon clapboard = createQIcon("clapboard"); root->setIcon(0, clapboard); insertTopLevelItem(0, root); populateFolder(root); @@ -299,10 +299,10 @@ void CastTreeViewer::dragMoveEvent(QDragMoveEvent *event) { rootName = rootName.fromStdWString(name); } if ((m_dropTargetItem && - m_dropTargetItem->data(0, Qt::DisplayRole).toString() == - AudioFolderName) || + m_dropTargetItem->data(0, Qt::DisplayRole).toString() == + AudioFolderName) || (m_dropFilePath != TFilePath() && - m_dropTargetItem->data(0, Qt::DisplayRole).toString() == rootName)) + m_dropTargetItem->data(0, Qt::DisplayRole).toString() == rootName)) m_dropTargetItem = 0; if (!m_dropTargetItem) @@ -465,8 +465,6 @@ CastBrowser::CastBrowser(QWidget *parent, Qt::WFlags flags) // style sheet setObjectName("CastBrowser"); setFrameStyle(QFrame::StyledPanel); - setStyleSheet("QSplitter::handle {height:4px;}"); - setStyleSheet("#CastBrowser { margin:1px;border:0px }"); m_treeViewer = new CastTreeViewer(this); m_treeViewer->resize(300, m_treeViewer->size().height()); @@ -478,8 +476,8 @@ CastBrowser::CastBrowser(QWidget *parent, Qt::WFlags flags) boxLayout->setSpacing(0); m_folderName = new QLabel("", box); - m_folderName->setFrameStyle(QFrame::StyledPanel); - m_folderName->setStyleSheet("border-bottom: 1px solid black"); + m_folderName->setObjectName("CastBrowserFolderName"); + m_folderName->setFrameStyle(QFrame::Box); m_itemViewer = new DvItemViewer(box, false, true, DvItemViewer::Cast); DvItemViewerPanel *viewerPanel = m_itemViewer->getPanel(); viewerPanel->setMissingTextColor(QColor(200, 0, 0)); diff --git a/toonz/sources/toonz/cleanuppaletteviewer.cpp b/toonz/sources/toonz/cleanuppaletteviewer.cpp index 7f095c0..150965a 100644 --- a/toonz/sources/toonz/cleanuppaletteviewer.cpp +++ b/toonz/sources/toonz/cleanuppaletteviewer.cpp @@ -148,11 +148,8 @@ void CleanupPaletteViewer::buildGUI() { if (m_greyMode) { m_scrollArea->setMinimumSize(0, 60); - m_scrollArea->setStyleSheet("QScrollArea { border: none; }"); } else { m_scrollArea->setMinimumSize(0, 120); - m_scrollArea->setStyleSheet( - "QScrollArea { border: 1px solid rgb(190, 190, 190); }"); } m_add->setVisible(!m_greyMode); diff --git a/toonz/sources/toonz/cleanupsettingspopup.cpp b/toonz/sources/toonz/cleanupsettingspopup.cpp index 8354ddc..484dc53 100644 --- a/toonz/sources/toonz/cleanupsettingspopup.cpp +++ b/toonz/sources/toonz/cleanupsettingspopup.cpp @@ -610,13 +610,13 @@ CleanupSettings::CleanupSettings(QWidget *parent) leftToolBar->setFixedWidth(110); - m_swatchAct = new QAction(createQIconOnOff("preview", true), - tr("Toggle Swatch Preview"), this); + m_swatchAct = + new QAction(createQIcon("preview"), tr("Toggle Swatch Preview"), this); m_swatchAct->setCheckable(true); leftToolBar->addAction(m_swatchAct); leftToolBar->addSeparator(); - m_opacityAct = new QAction(createQIconOnOff("opacitycheck", true), + m_opacityAct = new QAction(createQIcon("opacitycheck"), tr("Toggle Opacity Check"), this); m_opacityAct->setCheckable(true); leftToolBar->addAction(m_opacityAct); @@ -632,14 +632,14 @@ CleanupSettings::CleanupSettings(QWidget *parent) rightToolBar->setFixedWidth(110); QAction *saveAct = - new QAction(createQIconOnOff("save", false), tr("Save Settings"), this); + new QAction(createQIcon("save"), tr("Save Settings"), this); rightToolBar->addAction(saveAct); QAction *loadAct = - new QAction(createQIconOnOff("load", false), tr("Load Settings"), this); + new QAction(createQIcon("load"), tr("Load Settings"), this); rightToolBar->addAction(loadAct); rightToolBar->addSeparator(); - QAction *resetAct = new QAction(createQIconOnOff("resetsize", false), - tr("Reset Settings"), this); + QAction *resetAct = + new QAction(createQIcon("resetsize"), tr("Reset Settings"), this); rightToolBar->addAction(resetAct); // Model-related stuff diff --git a/toonz/sources/toonz/colormodelbehaviorpopup.cpp b/toonz/sources/toonz/colormodelbehaviorpopup.cpp index 7fe2aa3..6d9075c 100644 --- a/toonz/sources/toonz/colormodelbehaviorpopup.cpp +++ b/toonz/sources/toonz/colormodelbehaviorpopup.cpp @@ -95,11 +95,11 @@ ColorModelBehaviorPopup::ColorModelBehaviorPopup( m_colorChipOrder = new QButtonGroup(this); QPushButton* upperLeftOrderBtn = - new QPushButton(createQIcon("colorchiporder_upleft"), "", this); + new QPushButton(createQIcon("colorchiporder_upleft", true), "", this); QPushButton* lowerLeftOrderBtn = - new QPushButton(createQIcon("colorchiporder_lowleft"), "", this); + new QPushButton(createQIcon("colorchiporder_lowleft", true), "", this); QPushButton* leftUpperOrderBtn = - new QPushButton(createQIcon("colorchiporder_leftup"), "", this); + new QPushButton(createQIcon("colorchiporder_leftup", true), "", this); QStringList paletteTypes; paletteTypes << tr("Pick Every Colors as Different Styles") diff --git a/toonz/sources/toonz/comboviewerpane.cpp b/toonz/sources/toonz/comboviewerpane.cpp index e10b21c..010ac4d 100644 --- a/toonz/sources/toonz/comboviewerpane.cpp +++ b/toonz/sources/toonz/comboviewerpane.cpp @@ -432,8 +432,7 @@ void ComboViewerPanel::initializeTitleBar(TPanelTitleBar *titleBar) { // buttons for show / hide toggle for the field guide and the safe area TPanelTitleBarButtonForSafeArea *safeAreaButton = new TPanelTitleBarButtonForSafeArea( - titleBar, ":Resources/pane_safe_off.svg", - ":Resources/pane_safe_over.svg", ":Resources/pane_safe_on.svg"); + titleBar, getIconThemePath("actions/20/pane_safe.svg")); safeAreaButton->setToolTip(tr("Safe Area (Right Click to Select)")); titleBar->add(QPoint(x, 0), safeAreaButton); ret = ret && connect(safeAreaButton, SIGNAL(toggled(bool)), @@ -446,9 +445,8 @@ void ComboViewerPanel::initializeTitleBar(TPanelTitleBar *titleBar) { safeAreaButton->setPressed( CommandManager::instance()->getAction(MI_SafeArea)->isChecked()); - button = new TPanelTitleBarButton(titleBar, ":Resources/pane_grid_off.svg", - ":Resources/pane_grid_over.svg", - ":Resources/pane_grid_on.svg"); + button = new TPanelTitleBarButton( + titleBar, getIconThemePath("actions/20/pane_grid.svg")); button->setToolTip(tr("Field Guide")); x += 1 + iconWidth; titleBar->add(QPoint(x, 0), button); @@ -462,59 +460,52 @@ void ComboViewerPanel::initializeTitleBar(TPanelTitleBar *titleBar) { CommandManager::instance()->getAction(MI_FieldGuide)->isChecked()); // view mode toggles - button = new TPanelTitleBarButton(titleBar, ":Resources/pane_table_off.svg", - ":Resources/pane_table_over.svg", - ":Resources/pane_table_on.svg"); + button = new TPanelTitleBarButton( + titleBar, getIconThemePath("actions/20/pane_table.svg")); button->setToolTip(tr("Camera Stand View")); - x += 10 + iconWidth; + x += 10 + 1 + iconWidth; titleBar->add(QPoint(x, 0), button); button->setButtonSet(viewModeButtonSet, SceneViewer::NORMAL_REFERENCE); button->setPressed(true); - button = new TPanelTitleBarButton(titleBar, ":Resources/pane_3d_off.svg", - ":Resources/pane_3d_over.svg", - ":Resources/pane_3d_on.svg"); + button = new TPanelTitleBarButton(titleBar, + getIconThemePath("actions/20/pane_3d.svg")); button->setToolTip(tr("3D View")); - x += 21; // width of pane_table_off.svg = 20px + x += +1 + iconWidth; titleBar->add(QPoint(x, 0), button); button->setButtonSet(viewModeButtonSet, SceneViewer::CAMERA3D_REFERENCE); - button = new TPanelTitleBarButton(titleBar, ":Resources/pane_cam_off.svg", - ":Resources/pane_cam_over.svg", - ":Resources/pane_cam_on.svg"); + button = new TPanelTitleBarButton( + titleBar, getIconThemePath("actions/20/pane_cam.svg")); button->setToolTip(tr("Camera View")); - x += 21; // width of pane_3d_off.svg = 20px + x += +1 + iconWidth; titleBar->add(QPoint(x, 0), button); button->setButtonSet(viewModeButtonSet, SceneViewer::CAMERA_REFERENCE); ret = ret && connect(viewModeButtonSet, SIGNAL(selected(int)), m_sceneViewer, SLOT(setReferenceMode(int))); // freeze button - button = new TPanelTitleBarButton(titleBar, ":Resources/pane_freeze_off.svg", - ":Resources/pane_freeze_over.svg", - ":Resources/pane_freeze_on.svg"); - x += 10 + 20; // width of pane_cam_off.svg = 20px + button = new TPanelTitleBarButton( + titleBar, getIconThemePath("actions/20/pane_freeze.svg")); + x += 10 + iconWidth; - button->setToolTip(tr("Freeze")); // RC1 + button->setToolTip(tr("Freeze")); titleBar->add(QPoint(x, 0), button); ret = ret && connect(button, SIGNAL(toggled(bool)), m_sceneViewer, SLOT(freeze(bool))); // preview toggles m_previewButton = new TPanelTitleBarButton( - titleBar, ":Resources/pane_preview_off.svg", - ":Resources/pane_preview_over.svg", ":Resources/pane_preview_on.svg"); + titleBar, getIconThemePath("actions/20/pane_preview.svg")); x += 10 + iconWidth; titleBar->add(QPoint(x, 0), m_previewButton); m_previewButton->setToolTip(tr("Preview")); ret = ret && connect(m_previewButton, SIGNAL(toggled(bool)), SLOT(enableFullPreview(bool))); - m_subcameraPreviewButton = - new TPanelTitleBarButton(titleBar, ":Resources/pane_subpreview_off.svg", - ":Resources/pane_subpreview_over.svg", - ":Resources/pane_subpreview_on.svg"); - x += 26; // width of pane_preview_off.svg = 25px + m_subcameraPreviewButton = new TPanelTitleBarButton( + titleBar, getIconThemePath("actions/20/pane_subpreview.svg")); + x += +1 + 24; // width of pane_preview_off.svg = 22px titleBar->add(QPoint(x, 0), m_subcameraPreviewButton); m_subcameraPreviewButton->setToolTip(tr("Sub-camera Preview")); @@ -569,10 +560,8 @@ void ComboViewerPanel::enableFlipConsoleForCamerastand(bool on) { void ComboViewerPanel::onXshLevelSwitched(TXshLevel *) { changeWindowTitle(); m_sceneViewer->update(); - // If the level switched by using the level choose combo box in the film - // strip, - // the current level switches without change in the frame type (level or - // scene). + // If the level is switched by using the combobox in the film strip, the + // current level switches without change in the frame type (level or scene). // For such case, update the frame range of the console here. if (TApp::instance()->getCurrentFrame()->isEditingLevel()) updateFrameRange(); } @@ -625,7 +614,7 @@ void ComboViewerPanel::changeWindowTitle() { if (sceneName.isEmpty()) sceneName = tr("Untitled"); if (app->getCurrentScene()->getDirtyFlag()) sceneName += QString("*"); - name = tr("[SCENE]: ") + sceneName; + name = tr("Scene: ") + sceneName; if (frame >= 0) name = name + tr(" :: Frame: ") + tr(std::to_string(frame + 1).c_str()); @@ -655,10 +644,10 @@ void ComboViewerPanel::changeWindowTitle() { name = name + tr(" :: Level: ") + imageName; if (!m_sceneViewer->is3DView()) { - TAffine aff = m_sceneViewer->getViewMatrix(); + TAffine aff = m_sceneViewer->getViewMatrix(); if (m_sceneViewer->getIsFlippedX()) aff = aff * TScale(-1, 1); if (m_sceneViewer->getIsFlippedY()) aff = aff * TScale(1, -1); - name = name + " :: Zoom : " + + name = name + " :: Zoom : " + QString::number((int)(100.0 * sqrt(aff.det()) * m_sceneViewer->getDpiFactor())) + "%"; @@ -670,15 +659,16 @@ void ComboViewerPanel::changeWindowTitle() { ->isActualPixelViewOnSceneEditingModeEnabled() && TApp::instance()->getCurrentLevel()->getSimpleLevel() && !CleanupPreviewCheck::instance() - ->isEnabled() // cleanup preview must be OFF - && !CameraTestCheck::instance() // camera test mode must be OFF - // neither - ->isEnabled() && + ->isEnabled() // cleanup preview must be OFF + && + !CameraTestCheck::instance() // camera test mode must be OFF + // neither + ->isEnabled() && !m_sceneViewer->is3DView()) { - TAffine aff = m_sceneViewer->getViewMatrix(); + TAffine aff = m_sceneViewer->getViewMatrix(); if (m_sceneViewer->getIsFlippedX()) aff = aff * TScale(-1, 1); if (m_sceneViewer->getIsFlippedY()) aff = aff * TScale(1, -1); - name = name + " :: Zoom : " + + name = name + " :: Zoom : " + QString::number((int)(100.0 * sqrt(aff.det()) * m_sceneViewer->getDpiFactor())) + "%"; @@ -693,12 +683,12 @@ void ComboViewerPanel::changeWindowTitle() { QString imageName = QString::fromStdWString( fp.withFrame(app->getCurrentFrame()->getFid()).getWideString()); - name = name + tr("[LEVEL]: ") + imageName; + name = name + tr("Level: ") + imageName; if (!m_sceneViewer->is3DView()) { TAffine aff = m_sceneViewer->getViewMatrix(); if (m_sceneViewer->getIsFlippedX()) aff = aff * TScale(-1, 1); if (m_sceneViewer->getIsFlippedY()) aff = aff * TScale(1, -1); - name = name + " :: Zoom : " + + name = name + " :: Zoom : " + QString::number((int)(100.0 * sqrt(aff.det()) * m_sceneViewer->getDpiFactor())) + "%"; diff --git a/toonz/sources/toonz/commandbar.cpp b/toonz/sources/toonz/commandbar.cpp index 75a5f96..4991213 100644 --- a/toonz/sources/toonz/commandbar.cpp +++ b/toonz/sources/toonz/commandbar.cpp @@ -38,6 +38,7 @@ CommandBar::CommandBar(QWidget *parent, Qt::WFlags flags) setObjectName("cornerWidget"); setObjectName("CommandBar"); fillToolbar(this, isXsheetToolbar); + setIconSize(QSize(20, 20)); } //----------------------------------------------------------------------------- diff --git a/toonz/sources/toonz/commandbarpopup.cpp b/toonz/sources/toonz/commandbarpopup.cpp index 1d9f863..14e5e2b 100644 --- a/toonz/sources/toonz/commandbarpopup.cpp +++ b/toonz/sources/toonz/commandbarpopup.cpp @@ -284,12 +284,10 @@ CommandBarListTree::CommandBarListTree(QWidget* parent) : QTreeWidget(parent) { setDragEnabled(true); setDragDropMode(QAbstractItemView::DragOnly); setColumnCount(1); - setIconSize(QSize(21, 17)); + setIconSize(QSize(21, 18)); header()->close(); - QIcon menuFolderIcon(":Resources/browser_project_close.svg"); - menuFolderIcon.addFile(":Resources/browser_project_open.svg", QSize(), - QIcon::Normal, QIcon::On); + QIcon menuFolderIcon(createQIcon("folder_project", true)); invisibleRootItem()->setIcon(0, menuFolderIcon); QTreeWidgetItem* menuCommandFolder = new QTreeWidgetItem(this); diff --git a/toonz/sources/toonz/dvitemview.cpp b/toonz/sources/toonz/dvitemview.cpp index c21252b..8af642c 100644 --- a/toonz/sources/toonz/dvitemview.cpp +++ b/toonz/sources/toonz/dvitemview.cpp @@ -1028,7 +1028,8 @@ void DvItemViewerPanel::paintThumbnailItem(QPainter &p, int index) { if (!thumbnail.isNull()) p.drawPixmap(iconRect.topLeft(), thumbnail); //} else { - static QPixmap missingPixmap = QPixmap(":Resources/missing.svg"); + static QPixmap missingPixmap = + QPixmap(getIconThemePath("mimetypes/60/missing_icon.svg")); QRect pixmapRect(rect.left() + (rect.width() - missingPixmap.width()) / 2, rect.top(), missingPixmap.width(), missingPixmap.height()); p.drawPixmap(pixmapRect.topLeft(), missingPixmap); @@ -1755,14 +1756,14 @@ void DvItemViewerTitleBar::paintEvent(QPaintEvent *) { QRect rect(0, 0, width(), height()); QBrush nb = QBrush(Qt::NoBrush); - QPalette pal = QPalette(nb, nb, QBrush(QColor(255, 255, 255, 30)), - QBrush(QColor(0, 0, 0, 110)), + QPalette pal = QPalette(nb, nb, QBrush(QColor(getColBorderColor())), + QBrush(QColor(getColBorderColor())), QBrush(QColor(Qt::gray)), nb, nb, nb, nb); - p.fillRect(rect, QColor(0, 0, 0, 90)); // bg color + p.fillRect(rect, getColColor()); - p.setPen(QColor(200, 200, 200, 255)); // text color - int h = 0; // fontMetrics().descent(); + p.setPen(getColTextColor()); + int h = 0; // fontMetrics().descent(); int y = rect.top(); int ly = rect.height(); int lx = rect.width(); @@ -1778,11 +1779,11 @@ void DvItemViewerTitleBar::paintEvent(QPaintEvent *) { // paint background QColor bgColor; if (dataType == model->getCurrentOrderType()) - bgColor = QColor(255, 255, 255, 30); + bgColor = QColor(getColSortedColor()); else bgColor = QColor(0, 0, 0, 0); - QRect typeRect(x, y, columnLx, ly); + QRect typeRect(x - 1, y - 1, columnLx + 1, ly + 1); QBrush brush(bgColor); qDrawShadePanel(&p, typeRect, pal, false, 1, &brush); @@ -1793,7 +1794,7 @@ void DvItemViewerTitleBar::paintEvent(QPaintEvent *) { arrowIcon = createQIconPNG("arrow_up"); else arrowIcon = createQIconPNG("arrow_down"); - p.drawPixmap(QRect(x + columnLx - 10, y + 6, 8, 8), + p.drawPixmap(QRect(x + columnLx - 11, y + 6, 8, 8), arrowIcon.pixmap(8, 8)); } @@ -1817,20 +1818,11 @@ DvItemViewerButtonBar::DvItemViewerButtonBar(DvItemViewer *itemViewer, QWidget *parent) : QToolBar(parent) { setToolButtonStyle(Qt::ToolButtonTextBesideIcon); - setIconSize(QSize(17, 17)); setObjectName("buttonBar"); - // buttonBar->setIconSize(QSize(10,10)); - - QString backButtonEnable = QString(":Resources/fb_history_back_enable.svg"); - QString backButtonDisable = QString(":Resources/fb_history_back_disable.svg"); - QString fwdButtonEnable = QString(":Resources/fb_history_fwd_enable.svg"); - QString fwdButtonDisable = QString(":Resources/fb_history_fwd_disable.svg"); + setIconSize(QSize(16, 16)); - QIcon backButtonIcon, fwdButtonIcon; - backButtonIcon.addFile(backButtonEnable, QSize(), QIcon::Normal); - backButtonIcon.addFile(backButtonDisable, QSize(), QIcon::Disabled); - fwdButtonIcon.addFile(fwdButtonEnable, QSize(), QIcon::Normal); - fwdButtonIcon.addFile(fwdButtonDisable, QSize(), QIcon::Disabled); + QIcon backButtonIcon = createQIcon("fb_back"); + QIcon fwdButtonIcon = createQIcon("fb_fwd"); m_folderBack = new QAction(backButtonIcon, tr("Back"), this); m_folderBack->setIconText(""); @@ -1839,13 +1831,13 @@ DvItemViewerButtonBar::DvItemViewerButtonBar(DvItemViewer *itemViewer, m_folderFwd->setIconText(""); addAction(m_folderFwd); - QIcon folderUpIcon = createQIcon("folderup"); + QIcon folderUpIcon = createQIcon("fb_up"); QAction *folderUp = new QAction(folderUpIcon, tr("Up One Level"), this); folderUp->setIconText(tr("Up")); addAction(folderUp); addSeparator(); - QIcon newFolderIcon = createQIcon("newfolder"); + QIcon newFolderIcon = createQIcon("folder_new"); QAction *newFolder = new QAction(newFolderIcon, tr("New Folder"), this); newFolder->setIconText(tr("New")); addAction(newFolder); @@ -1855,7 +1847,7 @@ DvItemViewerButtonBar::DvItemViewerButtonBar(DvItemViewer *itemViewer, QActionGroup *actions = new QActionGroup(this); actions->setExclusive(true); - QIcon thumbViewIcon = createQIconOnOff("viewicon"); + QIcon thumbViewIcon = createQIcon("viewicon"); QAction *thumbView = new QAction(thumbViewIcon, tr("Icons View"), this); thumbView->setCheckable(true); thumbView->setIconText(tr("Icon")); @@ -1866,7 +1858,7 @@ DvItemViewerButtonBar::DvItemViewerButtonBar(DvItemViewer *itemViewer, actions->addAction(thumbView); addAction(thumbView); - QIcon listViewIcon = createQIconOnOff("viewlist"); + QIcon listViewIcon = createQIcon("viewlist"); QAction *listView = new QAction(listViewIcon, tr("List View"), this); listView->setCheckable(true); listView->setIconText(tr("List")); @@ -1886,8 +1878,8 @@ DvItemViewerButtonBar::DvItemViewerButtonBar(DvItemViewer *itemViewer, // button to export file list to csv QAction *exportFileListAction = new QAction(tr("Export File List"), this); + exportFileListAction->setIcon(createQIcon("export")); addAction(exportFileListAction); - addSeparator(); if (itemViewer->m_windowType == DvItemViewer::Browser && !Preferences::instance()->isWatchFileSystemEnabled()) { diff --git a/toonz/sources/toonz/dvitemview.h b/toonz/sources/toonz/dvitemview.h index c3bbb36..f382d3b 100644 --- a/toonz/sources/toonz/dvitemview.h +++ b/toonz/sources/toonz/dvitemview.h @@ -443,7 +443,31 @@ class DvItemViewerTitleBar final : public QWidget { int m_dragColumnIndex; QPoint m_pos; + QColor m_colColor; + QColor m_colSortedColor; + QColor m_colTextColor; + QColor m_colBorderColor; + QColor m_colRaisedColor; + + Q_PROPERTY(QColor ColColor READ getColColor WRITE setColColor); + Q_PROPERTY(QColor ColSortedColor READ getColColor WRITE setColSortedColor); + Q_PROPERTY(QColor ColTextColor READ getColColor WRITE setColTextColor); + Q_PROPERTY(QColor ColBorderColor READ getColColor WRITE setColBorderColor); + Q_PROPERTY( + QColor ColRaisedColor READ getColRaisedColor WRITE setColRaisedColor); + public: + void setColColor(const QColor &color) { m_colColor = color; } + QColor getColColor() const { return m_colColor; } + void setColSortedColor(const QColor &color) { m_colSortedColor = color; } + QColor getColSortedColor() const { return m_colSortedColor; } + void setColTextColor(const QColor &color) { m_colTextColor = color; } + QColor getColTextColor() const { return m_colTextColor; } + void setColBorderColor(const QColor &color) { m_colBorderColor = color; } + QColor getColBorderColor() const { return m_colBorderColor; } + void setColRaisedColor(const QColor &color) { m_colRaisedColor = color; } + QColor getColRaisedColor() const { return m_colRaisedColor; } + DvItemViewerTitleBar(DvItemViewer *itemViewer, QWidget *parent = 0, bool isInteractive = true); diff --git a/toonz/sources/toonz/exportscenepopup.cpp b/toonz/sources/toonz/exportscenepopup.cpp index f88ac91..2a542d7 100644 --- a/toonz/sources/toonz/exportscenepopup.cpp +++ b/toonz/sources/toonz/exportscenepopup.cpp @@ -115,10 +115,10 @@ ExportSceneDvDirModelFileFolderNode::createExposeSceneNode( // ExportSceneDvDirModelProjectNode QPixmap ExportSceneDvDirModelProjectNode::getPixmap(bool isOpen) const { - static QPixmap openProjectPixmap( - svgToPixmap(":Resources/browser_project_open.svg")); - static QPixmap closeProjectPixmap( - svgToPixmap(":Resources/browser_project_close.svg")); + static QPixmap openProjectPixmap(recolorPixmap( + svgToPixmap(getIconThemePath("actions/18/folder_project_on.svg")))); + static QPixmap closeProjectPixmap(recolorPixmap( + svgToPixmap(getIconThemePath("actions/18/folder_project.svg")))); return isOpen ? openProjectPixmap : closeProjectPixmap; } @@ -185,7 +185,8 @@ void ExportSceneDvDirModelRootNode::refreshChildren() { ExportSceneDvDirModelSpecialFileFolderNode *projectRootNode = new ExportSceneDvDirModelSpecialFileFolderNode(this, L"Project root", projectRoot); - projectRootNode->setPixmap(QPixmap(svgToPixmap(":Resources/projects.svg"))); + projectRootNode->setPixmap(QPixmap(recolorPixmap( + svgToPixmap(getIconThemePath("actions/18/folder_project_root.svg"))))); m_projectRootNodes.push_back(projectRootNode); addChild(projectRootNode); } @@ -264,7 +265,7 @@ DvDirModelNode *ExportSceneDvDirModel::getNode(const QModelIndex &index) const { QModelIndex ExportSceneDvDirModel::index(int row, int column, const QModelIndex &parent) const { if (column != 0) return QModelIndex(); - DvDirModelNode *parentNode = m_root; + DvDirModelNode *parentNode = m_root; if (parent.isValid()) parentNode = getNode(parent); if (row < 0 || row >= parentNode->getChildCount()) return QModelIndex(); DvDirModelNode *node = parentNode->getChild(row); @@ -443,7 +444,7 @@ QSize ExportSceneTreeViewDelegate::sizeHint(const QStyleOptionViewItem &option, ExportSceneTreeView::ExportSceneTreeView(QWidget *parent) : StyledTreeView(parent) { - setStyleSheet("border:1px solid rgb(120,120,120);"); + setStyleSheet("border:1px solid rgba(0,0,0,0.5);"); m_model = new ExportSceneDvDirModel(); setModel(m_model); header()->close(); @@ -454,9 +455,9 @@ ExportSceneTreeView::ExportSceneTreeView(QWidget *parent) // bottom horizontal scrollbar to resize contents... bool ret = connect(this, SIGNAL(expanded(const QModelIndex &)), this, SLOT(resizeToConts())); - ret = ret && connect(this, SIGNAL(collapsed(const QModelIndex &)), this, + ret = ret && connect(this, SIGNAL(collapsed(const QModelIndex &)), this, SLOT(resizeToConts())); - ret = ret && connect(this->model(), SIGNAL(layoutChanged()), this, + ret = ret && connect(this->model(), SIGNAL(layoutChanged()), this, SLOT(resizeToConts())); assert(ret); @@ -678,7 +679,7 @@ TFilePath ExportScenePopup::createNewProject() { if (node) currentProjectRoot = node->getPath(); else - currentProjectRoot = pm->getCurrentProjectRoot(); + currentProjectRoot = pm->getCurrentProjectRoot(); TFilePath projectFolder = currentProjectRoot + projectName; TFilePath projectPath = pm->projectFolderToProjectPath(projectFolder); TProject *project = new TProject(); diff --git a/toonz/sources/toonz/filebrowser.cpp b/toonz/sources/toonz/filebrowser.cpp index 8be27f5..f5013d2 100644 --- a/toonz/sources/toonz/filebrowser.cpp +++ b/toonz/sources/toonz/filebrowser.cpp @@ -402,7 +402,7 @@ void FileBrowser::onFwdButtonPushed() { void FileBrowser::clearHistory() { int size = m_indexHistoryList.size(); // leave the last item - for (int i = 1; i < size; i++) m_indexHistoryList.removeLast(); + for (int i = 1; i < size; i++) m_indexHistoryList.removeLast(); m_currentPosition = 0; refreshHistoryButtons(); } @@ -918,20 +918,23 @@ QVariant FileBrowser::getItemData(int index, DataType dataType, QSize iconSize = m_itemViewer->getPanel()->getIconSize(); // parent folder icons if (item.m_path == m_folder.getParentDir()) { - static QPixmap folderUpPixmap(svgToPixmap(":Resources/folderup_icon.svg", - iconSize, Qt::KeepAspectRatio)); + static QPixmap folderUpPixmap( + svgToPixmap(getIconThemePath("actions/60/folder_browser_up.svg"), + iconSize, Qt::KeepAspectRatio)); return folderUpPixmap; } // folder icons else if (item.m_isFolder) { if (item.m_isLink) { - static QPixmap linkIcon(svgToPixmap(":Resources/link_icon.svg", - iconSize, Qt::KeepAspectRatio)); - return linkIcon; + static QPixmap folderLinkPixmap( + svgToPixmap(getIconThemePath("actions/60/folder_browser_link.svg"), + iconSize, Qt::KeepAspectRatio)); + return folderLinkPixmap; } else { - static QPixmap folderIcon(svgToPixmap(":Resources/folder_icon.svg", - iconSize, Qt::KeepAspectRatio)); - return folderIcon; + static QPixmap folderPixmap( + svgToPixmap(getIconThemePath("actions/60/folder_browser.svg"), + iconSize, Qt::KeepAspectRatio)); + return folderPixmap; } } @@ -1143,7 +1146,7 @@ QMenu *FileBrowser::getContextMenu(QWidget *parent, int index) { for (i = 0; i < (int)files.size(); i++) { TFileType::Type type = TFileType::getInfo(files[i]); if (areResources && !TFileType::isResource(type)) areResources = false; - if (!areScenes && TFileType::isScene(type)) areScenes = true; + if (!areScenes && TFileType::isScene(type)) areScenes = true; } bool areFullcolor = true; @@ -1164,7 +1167,7 @@ QMenu *FileBrowser::getContextMenu(QWidget *parent, int index) { if (clickedFile != TFilePath() && clickedFile.getType() == "tnz") title = tr("Load As Sub-xsheet"); else - title = tr("Load"); + title = tr("Load"); QAction *action = new QAction(title, menu); ret = ret && connect(action, SIGNAL(triggered()), this, SLOT(loadResources())); @@ -1689,7 +1692,7 @@ namespace { bool parsePathName(const QString &fullpath, QString &parentPath, QString &name, QString &format) { - int index = fullpath.lastIndexOf('\\'); + int index = fullpath.lastIndexOf('\\'); if (index == -1) index = fullpath.lastIndexOf('/'); QString filename; diff --git a/toonz/sources/toonz/filebrowsermodel.cpp b/toonz/sources/toonz/filebrowsermodel.cpp index d054e9d..0031d55 100644 --- a/toonz/sources/toonz/filebrowsermodel.cpp +++ b/toonz/sources/toonz/filebrowsermodel.cpp @@ -76,7 +76,7 @@ TFilePath getDesktopPath() { return TFilePath(dir.absolutePath().toStdString()); #endif } -} +} // namespace //============================================================================= // @@ -353,9 +353,9 @@ DvDirModelNode *DvDirModelFileFolderNode::getNodeByPath(const TFilePath &path) { QPixmap DvDirModelFileFolderNode::getPixmap(bool isOpen) const { static QPixmap openFolderPixmap( - svgToPixmap(":Resources/browser_folder_open.svg")); + svgToPixmap(getIconThemePath("actions/18/folder_on.svg"))); static QPixmap closeFolderPixmap( - svgToPixmap(":Resources/browser_folder_close.svg")); + svgToPixmap(getIconThemePath("actions/18/folder.svg"))); return isOpen ? openFolderPixmap : closeFolderPixmap; } @@ -506,9 +506,9 @@ DvDirModelNode *DvDirVersionControlNode::makeChild(std::wstring name) { QPixmap DvDirVersionControlNode::getPixmap(bool isOpen) const { static QPixmap openFolderPixmap( - svgToPixmap(":Resources/browser_folder_open.svg")); + svgToPixmap(getIconThemePath("actions/18/folder_on.svg"))); static QPixmap closeFolderPixmap( - svgToPixmap(":Resources/browser_folder_open.svg")); + svgToPixmap(getIconThemePath("actions/18/folder.svg"))); static QPixmap openMissingPixmap( svgToPixmap(":Resources/vcfolder_mis_open.svg")); static QPixmap closeMissingPixmap( @@ -782,9 +782,9 @@ void DvDirModelProjectNode::makeCurrent() { QPixmap DvDirModelProjectNode::getPixmap(bool isOpen) const { static QPixmap openProjectPixmap( - svgToPixmap(":Resources/browser_project_open.svg")); + svgToPixmap(getIconThemePath("actions/18/folder_project_on.svg"))); static QPixmap closeProjectPixmap( - svgToPixmap(":Resources/browser_project_close.svg")); + svgToPixmap(getIconThemePath("actions/18/folder_project.svg"))); return isOpen ? openProjectPixmap : closeProjectPixmap; } @@ -866,9 +866,9 @@ void DvDirModelDayNode::visualizeContent(FileBrowser *browser) { QPixmap DvDirModelDayNode::getPixmap(bool isOpen) const { static QPixmap openFolderPixmap( - svgToPixmap(":Resources/browser_folder_open.svg")); + svgToPixmap(getIconThemePath("actions/18/folder_on.svg"))); static QPixmap closeFolderPixmap( - svgToPixmap(":Resources/browser_folder_close.svg")); + svgToPixmap(getIconThemePath("actions/18/folder.svg"))); return isOpen ? openFolderPixmap : closeFolderPixmap; } @@ -900,7 +900,8 @@ void DvDirModelHistoryNode::refreshChildren() { //----------------------------------------------------------------------------- QPixmap DvDirModelHistoryNode::getPixmap(bool isOpen) const { - static QPixmap pixmap(svgToPixmap(":Resources/history.svg")); + QIcon icon = createQIcon("history"); + static QPixmap pixmap = icon.pixmap(16); return pixmap; } @@ -939,7 +940,8 @@ void DvDirModelMyComputerNode::refreshChildren() { //----------------------------------------------------------------------------- QPixmap DvDirModelMyComputerNode::getPixmap(bool isOpen) const { - static QPixmap pixmap(svgToPixmap(":Resources/my_computer.svg")); + QIcon icon = createQIcon("my_computer"); + static QPixmap pixmap = icon.pixmap(16); return pixmap; } @@ -1011,7 +1013,8 @@ void DvDirModelNetworkNode::refreshChildren() { //----------------------------------------------------------------------------- QPixmap DvDirModelNetworkNode::getPixmap(bool isOpen) const { - static QPixmap pixmap(svgToPixmap(":Resources/network.svg")); + QIcon icon = createQIcon("network"); + static QPixmap pixmap = icon.pixmap(16); return pixmap; } @@ -1047,23 +1050,25 @@ void DvDirModelRootNode::refreshChildren() { #ifdef _WIN32 addChild(m_networkNode = new DvDirModelNetworkNode(this)); #endif - DvDirModelSpecialFileFolderNode *child; child = new DvDirModelSpecialFileFolderNode(this, L"My Documents", getMyDocumentsPath()); - child->setPixmap(svgToPixmap(":Resources/my_documents.svg")); + child->setPixmap(recolorPixmap( + svgToPixmap(getIconThemePath("actions/16/my_documents.svg")))); m_specialNodes.push_back(child); addChild(child); child = new DvDirModelSpecialFileFolderNode(this, L"Desktop", getDesktopPath()); - child->setPixmap(svgToPixmap(":Resources/desktop.svg")); + child->setPixmap( + recolorPixmap(svgToPixmap(getIconThemePath("actions/16/desktop.svg")))); m_specialNodes.push_back(child); addChild(child); child = new DvDirModelSpecialFileFolderNode( this, L"Library", ToonzFolder::getLibraryFolder()); - child->setPixmap(svgToPixmap(":Resources/library.svg")); + child->setPixmap( + recolorPixmap(svgToPixmap(getIconThemePath("actions/16/library.svg")))); m_specialNodes.push_back(child); addChild(child); @@ -1080,8 +1085,8 @@ void DvDirModelRootNode::refreshChildren() { DvDirModelSpecialFileFolderNode *projectRootNode = new DvDirModelSpecialFileFolderNode( this, L"Project root (" + roothDir + L")", projectRoot); - projectRootNode->setPixmap( - QPixmap(svgToPixmap(":Resources/projects.svg"))); + projectRootNode->setPixmap(QPixmap(recolorPixmap(svgToPixmap( + getIconThemePath("actions/18/folder_project_root.svg"))))); m_projectRootNodes.push_back(projectRootNode); addChild(projectRootNode); } @@ -1407,7 +1412,7 @@ Qt::ItemFlags DvDirModel::flags(const QModelIndex &index) const { //----------------------------------------------------------------------------- /*! used only for name / rename of items -*/ + */ bool DvDirModel::setData(const QModelIndex &index, const QVariant &value, int role) { if (!index.isValid()) return false; diff --git a/toonz/sources/toonz/filebrowserpopup.cpp b/toonz/sources/toonz/filebrowserpopup.cpp index 4f8bf1e..7183dbd 100644 --- a/toonz/sources/toonz/filebrowserpopup.cpp +++ b/toonz/sources/toonz/filebrowserpopup.cpp @@ -189,7 +189,6 @@ void FileBrowserPopup::addFilterType(const QString &type) { //----------------------------------------------------------------------------- void FileBrowserPopup::setFileMode(bool isDirectoryOnly) { - m_isDirectoryOnly = isDirectoryOnly; if (isDirectoryOnly) { m_nameFieldLabel->setText(tr("Folder name:")); @@ -656,8 +655,9 @@ void SaveSubSceneAsPopup::initFolder() { namespace { QPushButton *createShowButton(QWidget *parent) { QPushButton *button = new QPushButton(parent); - button->setObjectName("LoadLevelShowButton"); + button->setObjectName("menuToggleButton"); button->setFixedSize(15, 15); + button->setIcon(createQIcon("menu_toggle")); button->setCheckable(true); button->setChecked(false); button->setAutoDefault(false); @@ -1222,10 +1222,10 @@ bool LoadLevelPopup::execute() { args.frameIdsSet.push_back(tmp_fids); } - int xFrom = m_xFrom->text().toInt(); + int xFrom = m_xFrom->text().toInt(); if (xFrom) args.xFrom = xFrom; - int xTo = m_xTo->text().toInt(); - if (xTo) args.xTo = xTo; + int xTo = m_xTo->text().toInt(); + if (xTo) args.xTo = xTo; args.levelName = m_levelName->text().toStdWString(); args.step = m_stepCombo->currentIndex(); @@ -1576,7 +1576,7 @@ bool SaveLevelAsPopup::execute() { TXshSimpleLevel *sl = dynamic_cast( TApp::instance()->getCurrentLevel()->getLevel()); if (!sl) return false; - std::string ext = sl->getPath().getType(); + std::string ext = sl->getPath().getType(); if (fp.getType() == "") fp = fp.withType(ext); IoCmd::LoadResourceArguments args(fp); @@ -2233,7 +2233,7 @@ void BrowserPopup::initFolder(TFilePath path) { } if (!TFileStatus(path).doesExist()) { ToonzScene *scene = TApp::instance()->getCurrentScene()->getScene(); - if (scene) path = scene->decodeFilePath(path); + if (scene) path = scene->decodeFilePath(path); } if (!path.getType().empty()) path = path.getParentDir(); @@ -2302,8 +2302,8 @@ void BrowserPopupController::openPopup(QStringList filters, QString BrowserPopupController::getPath(bool codePath) { m_isExecute = false; if (!m_browserPopup) return QString(); - ToonzScene *scene = TApp::instance()->getCurrentScene()->getScene(); - TFilePath fp = m_browserPopup->getPath(); + ToonzScene *scene = TApp::instance()->getCurrentScene()->getScene(); + TFilePath fp = m_browserPopup->getPath(); if (scene && codePath) fp = scene->codeFilePath(fp); std::cout << ::to_string(fp) << std::endl; return toQString(fp); diff --git a/toonz/sources/toonz/filmstrip.cpp b/toonz/sources/toonz/filmstrip.cpp index bc67b15..6a9a9ae 100644 --- a/toonz/sources/toonz/filmstrip.cpp +++ b/toonz/sources/toonz/filmstrip.cpp @@ -1517,10 +1517,12 @@ Filmstrip::Filmstrip(QWidget *parent, Qt::WFlags flags) m_frameArea->setWidget(m_frames); m_chooseLevelCombo->setMaxVisibleItems(50); + m_chooseLevelCombo->setObjectName("filmLevelCombo"); + // layout QVBoxLayout *mainLayout = new QVBoxLayout(); mainLayout->setMargin(0); - mainLayout->setSpacing(3); + mainLayout->setSpacing(0); { mainLayout->addWidget(m_chooseLevelCombo, 0); mainLayout->addWidget(m_frameArea, 1); @@ -1898,7 +1900,7 @@ void Filmstrip::setOrientation(bool isVertical) { m_frameArea->horizontalScrollBar()->setObjectName("LevelStripScrollBar"); } m_frames->setOrientation(m_isVertical); - dynamic_cast(parentWidget())->setCanFixWidth(m_isVertical); + dynamic_cast(parentWidget())->setCanFixWidth(m_isVertical); } // SaveLoadQSettings diff --git a/toonz/sources/toonz/flipbook.cpp b/toonz/sources/toonz/flipbook.cpp index 412efa4..eeaaf0f 100644 --- a/toonz/sources/toonz/flipbook.cpp +++ b/toonz/sources/toonz/flipbook.cpp @@ -163,33 +163,34 @@ inline TRectD getImageBoundsD(const TImageP &img) { FlipBook::FlipBook(QWidget *parent, QString viewerTitle, std::vector flipConsoleButtonMask, UCHAR flags, bool isColorModel) //, bool showOnlyPlayBackgroundButton) - : QWidget(parent) - , m_viewerTitle(viewerTitle) - , m_levelNames() - , m_levels() - , m_playSound(false) - , m_snd(0) - , m_player(0) - //, m_doCompare(false) - , m_currentFrameToSave(0) - , m_lw() - , m_lr() - , m_loadPopup(0) - , m_savePopup(0) - , m_shrink(1) - , m_isPreviewFx(false) - , m_previewedFx(0) - , m_previewXsh(0) - , m_previewUpdateTimer(this) - , m_xl(0) - , m_title1() - , m_poolIndex(-1) - , m_freezed(false) - , m_loadbox() - , m_dim() - , m_loadboxes() - , m_freezeButton(0) - , m_flags(flags) { + : QWidget(parent), + m_viewerTitle(viewerTitle), + m_levelNames(), + m_levels(), + m_playSound(false), + m_snd(0), + m_player(0) + //, m_doCompare(false) + , + m_currentFrameToSave(0), + m_lw(), + m_lr(), + m_loadPopup(0), + m_savePopup(0), + m_shrink(1), + m_isPreviewFx(false), + m_previewedFx(0), + m_previewXsh(0), + m_previewUpdateTimer(this), + m_xl(0), + m_title1(), + m_poolIndex(-1), + m_freezed(false), + m_loadbox(), + m_dim(), + m_loadboxes(), + m_freezeButton(0), + m_flags(flags) { setAcceptDrops(true); setFocusPolicy(Qt::StrongFocus); @@ -266,8 +267,7 @@ void FlipBook::addFreezeButtonToTitleBar() { if (panel) { TPanelTitleBar *titleBar = panel->getTitleBar(); m_freezeButton = new TPanelTitleBarButton( - titleBar, ":Resources/pane_freeze_off.svg", - ":Resources/pane_freeze_over.svg", ":Resources/pane_freeze_on.svg"); + titleBar, getIconThemePath("actions/20/pane_freeze.svg")); m_freezeButton->setToolTip("Freeze"); titleBar->add(QPoint(-64, 0), m_freezeButton); connect(m_freezeButton, SIGNAL(toggled(bool)), this, SLOT(freeze(bool))); @@ -503,7 +503,7 @@ void LoadImagesPopup::onFilePathClicked(const TFilePath &fp) { if (!level || level->getFrameCount() == 0) goto clear; - it = level->begin(); + it = level->begin(); m_to = m_from = it->first.getNumber(); for (; it != level->end(); ++it) m_to = it->first.getNumber(); @@ -1103,7 +1103,7 @@ void FlipBook::setLevel(const TFilePath &fp, TPalette *palette, int from, fromIndex = level->begin()->first.getNumber(); toIndex = (--level->end())->first.getNumber(); if (m_imageViewer->isColorModel()) - current = m_flipConsole->getCurrentFrame(); + current = m_flipConsole->getCurrentFrame(); incrementalIndexing = true; } else { TLevel::Iterator it = level->begin(); @@ -1141,9 +1141,10 @@ void FlipBook::setLevel(const TFilePath &fp, TPalette *palette, int from, levelToPush.m_incrementalIndexing = incrementalIndexing; int formatIdx = Preferences::instance()->matchLevelFormat(fp); - if (formatIdx >= 0 && Preferences::instance() - ->levelFormat(formatIdx) - .m_options.m_premultiply) { + if (formatIdx >= 0 && + Preferences::instance() + ->levelFormat(formatIdx) + .m_options.m_premultiply) { levelToPush.m_premultiply = true; } @@ -2145,7 +2146,7 @@ void FlipBook::minimize(bool doMinimize) { */ void FlipBook::loadAndCacheAllTlvImages(Level level, int fromFrame, int toFrame) { - TFilePath fp = level.m_fp; + TFilePath fp = level.m_fp; if (!m_lr || (fp != m_lr->getFilePath())) m_lr = TLevelReaderP(fp); if (!m_lr) return; @@ -2222,7 +2223,7 @@ FlipBook *viewFile(const TFilePath &path, int from, int to, int step, if (step == -1 || shrink == -1) { int _step = 1, _shrink = 1; Preferences::instance()->getViewValues(_shrink, _step); - if (step == -1) step = _step; + if (step == -1) step = _step; if (shrink == -1) shrink = _shrink; } diff --git a/toonz/sources/toonz/formatsettingspopups.cpp b/toonz/sources/toonz/formatsettingspopups.cpp index ec8cbb0..c153efd 100644 --- a/toonz/sources/toonz/formatsettingspopups.cpp +++ b/toonz/sources/toonz/formatsettingspopups.cpp @@ -76,7 +76,7 @@ FormatSettingsPopup::FormatSettingsPopup(QWidget *parent, if (format == "avi") { m_codecRestriction = new QLabel(this); m_codecRestriction->setMinimumHeight(70); - m_codecRestriction->setStyleSheet("border: 1px solid rgb(200,200,200);"); + m_codecRestriction->setStyleSheet("border: 1px solid rgba(0,0,0,0.5);"); m_mainLayout->addWidget(m_codecRestriction, m_mainLayout->rowCount(), 0, 1, 2); m_configureCodec = new QPushButton(tr("Configure Codec"), this); diff --git a/toonz/sources/toonz/icons/dark/actions/11/menu_toggle.svg b/toonz/sources/toonz/icons/dark/actions/11/menu_toggle.svg new file mode 100644 index 0000000..e5ef278 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/11/menu_toggle.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/11/menu_toggle_on.svg b/toonz/sources/toonz/icons/dark/actions/11/menu_toggle_on.svg new file mode 100644 index 0000000..bd145ed --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/11/menu_toggle_on.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/15/zoom_in.svg b/toonz/sources/toonz/icons/dark/actions/15/zoom_in.svg new file mode 100644 index 0000000..799a976 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/15/zoom_in.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/15/zoom_in_rollover.svg b/toonz/sources/toonz/icons/dark/actions/15/zoom_in_rollover.svg new file mode 100644 index 0000000..ecb5333 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/15/zoom_in_rollover.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/15/zoom_out.svg b/toonz/sources/toonz/icons/dark/actions/15/zoom_out.svg new file mode 100644 index 0000000..dd4855a --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/15/zoom_out.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/15/zoom_out_rollover.svg b/toonz/sources/toonz/icons/dark/actions/15/zoom_out_rollover.svg new file mode 100644 index 0000000..08e88a2 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/15/zoom_out_rollover.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/align_center.svg b/toonz/sources/toonz/icons/dark/actions/16/align_center.svg new file mode 100644 index 0000000..583fc44 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/align_center.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/align_left.svg b/toonz/sources/toonz/icons/dark/actions/16/align_left.svg new file mode 100644 index 0000000..d56d406 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/align_left.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/align_right.svg b/toonz/sources/toonz/icons/dark/actions/16/align_right.svg new file mode 100644 index 0000000..8313444 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/align_right.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/bevel_join.svg b/toonz/sources/toonz/icons/dark/actions/16/bevel_join.svg new file mode 100644 index 0000000..6387fe8 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/bevel_join.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/bold.svg b/toonz/sources/toonz/icons/dark/actions/16/bold.svg new file mode 100644 index 0000000..14c13da --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/bold.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/butt_cap.svg b/toonz/sources/toonz/icons/dark/actions/16/butt_cap.svg new file mode 100644 index 0000000..71b3d61 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/butt_cap.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/clapboard.svg b/toonz/sources/toonz/icons/dark/actions/16/clapboard.svg new file mode 100644 index 0000000..c8287a6 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/clapboard.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/content_copy.svg b/toonz/sources/toonz/icons/dark/actions/16/content_copy.svg new file mode 100644 index 0000000..e8e832b --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/content_copy.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/cut.svg b/toonz/sources/toonz/icons/dark/actions/16/cut.svg new file mode 100644 index 0000000..14f81fa --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/cut.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/delete.svg b/toonz/sources/toonz/icons/dark/actions/16/delete.svg new file mode 100644 index 0000000..db18f9a --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/delete.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/desktop.svg b/toonz/sources/toonz/icons/dark/actions/16/desktop.svg new file mode 100644 index 0000000..a6e80ec --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/desktop.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/export.svg b/toonz/sources/toonz/icons/dark/actions/16/export.svg new file mode 100644 index 0000000..912ebec --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/export.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/fb_back.svg b/toonz/sources/toonz/icons/dark/actions/16/fb_back.svg new file mode 100644 index 0000000..68bd34b --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/fb_back.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/fb_down.svg b/toonz/sources/toonz/icons/dark/actions/16/fb_down.svg new file mode 100644 index 0000000..5eecee0 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/fb_down.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/fb_fwd.svg b/toonz/sources/toonz/icons/dark/actions/16/fb_fwd.svg new file mode 100644 index 0000000..f6f9c65 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/fb_fwd.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/fb_up.svg b/toonz/sources/toonz/icons/dark/actions/16/fb_up.svg new file mode 100644 index 0000000..3635b91 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/fb_up.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/file_copy.svg b/toonz/sources/toonz/icons/dark/actions/16/file_copy.svg new file mode 100644 index 0000000..64350e9 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/file_copy.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/folder_new.svg b/toonz/sources/toonz/icons/dark/actions/16/folder_new.svg new file mode 100644 index 0000000..6e6e3b1 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/folder_new.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/gear.svg b/toonz/sources/toonz/icons/dark/actions/16/gear.svg new file mode 100644 index 0000000..85f253d --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/gear.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/help.svg b/toonz/sources/toonz/icons/dark/actions/16/help.svg new file mode 100644 index 0000000..343a8b0 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/help.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/history.svg b/toonz/sources/toonz/icons/dark/actions/16/history.svg new file mode 100644 index 0000000..7583114 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/history.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/import.svg b/toonz/sources/toonz/icons/dark/actions/16/import.svg new file mode 100644 index 0000000..232f463 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/import.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/info.svg b/toonz/sources/toonz/icons/dark/actions/16/info.svg new file mode 100644 index 0000000..db1b7d7 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/info.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/invert_selection.svg b/toonz/sources/toonz/icons/dark/actions/16/invert_selection.svg new file mode 100644 index 0000000..76831ca --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/invert_selection.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/italic.svg b/toonz/sources/toonz/icons/dark/actions/16/italic.svg new file mode 100644 index 0000000..0a86d07 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/italic.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/library.svg b/toonz/sources/toonz/icons/dark/actions/16/library.svg new file mode 100644 index 0000000..03c8cdb --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/library.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/load.svg b/toonz/sources/toonz/icons/dark/actions/16/load.svg new file mode 100644 index 0000000..232f463 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/load.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/manual.svg b/toonz/sources/toonz/icons/dark/actions/16/manual.svg new file mode 100644 index 0000000..347f838 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/manual.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/menu.svg b/toonz/sources/toonz/icons/dark/actions/16/menu.svg new file mode 100644 index 0000000..bf514b1 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/menu.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/minus.svg b/toonz/sources/toonz/icons/dark/actions/16/minus.svg new file mode 100644 index 0000000..261c779 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/minus.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/miter_join.svg b/toonz/sources/toonz/icons/dark/actions/16/miter_join.svg new file mode 100644 index 0000000..ae05c1c --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/miter_join.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/my_computer.svg b/toonz/sources/toonz/icons/dark/actions/16/my_computer.svg new file mode 100644 index 0000000..04dcf1a --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/my_computer.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/my_documents.svg b/toonz/sources/toonz/icons/dark/actions/16/my_documents.svg new file mode 100644 index 0000000..d8cb3f4 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/my_documents.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/network.svg b/toonz/sources/toonz/icons/dark/actions/16/network.svg new file mode 100644 index 0000000..3ea08fa --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/network.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/notice.svg b/toonz/sources/toonz/icons/dark/actions/16/notice.svg new file mode 100644 index 0000000..133a936 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/notice.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/orientation_h.svg b/toonz/sources/toonz/icons/dark/actions/16/orientation_h.svg new file mode 100644 index 0000000..8eea08e --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/orientation_h.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/orientation_v.svg b/toonz/sources/toonz/icons/dark/actions/16/orientation_v.svg new file mode 100644 index 0000000..f70e53f --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/orientation_v.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/palette.svg b/toonz/sources/toonz/icons/dark/actions/16/palette.svg new file mode 100644 index 0000000..83a7652 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/palette.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/palette_tab.svg b/toonz/sources/toonz/icons/dark/actions/16/palette_tab.svg new file mode 100644 index 0000000..8d8f045 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/palette_tab.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/plus.svg b/toonz/sources/toonz/icons/dark/actions/16/plus.svg new file mode 100644 index 0000000..e02929a --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/plus.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/projecting_cap.svg b/toonz/sources/toonz/icons/dark/actions/16/projecting_cap.svg new file mode 100644 index 0000000..6cfef12 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/projecting_cap.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/redo.svg b/toonz/sources/toonz/icons/dark/actions/16/redo.svg new file mode 100644 index 0000000..bfe9e56 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/redo.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/round_cap.svg b/toonz/sources/toonz/icons/dark/actions/16/round_cap.svg new file mode 100644 index 0000000..2093df6 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/round_cap.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/round_join.svg b/toonz/sources/toonz/icons/dark/actions/16/round_join.svg new file mode 100644 index 0000000..ad2cd84 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/round_join.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/save.svg b/toonz/sources/toonz/icons/dark/actions/16/save.svg new file mode 100644 index 0000000..77d42d9 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/save.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/saveall.svg b/toonz/sources/toonz/icons/dark/actions/16/saveall.svg new file mode 100644 index 0000000..a55ad3e --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/saveall.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/saveas.svg b/toonz/sources/toonz/icons/dark/actions/16/saveas.svg new file mode 100644 index 0000000..4f08d34 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/saveas.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/select_all.svg b/toonz/sources/toonz/icons/dark/actions/16/select_all.svg new file mode 100644 index 0000000..c09b125 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/select_all.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/squarepixel.svg b/toonz/sources/toonz/icons/dark/actions/16/squarepixel.svg new file mode 100644 index 0000000..6004da3 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/squarepixel.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/subcamera.svg b/toonz/sources/toonz/icons/dark/actions/16/subcamera.svg new file mode 100644 index 0000000..cd3d7e3 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/subcamera.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/underline.svg b/toonz/sources/toonz/icons/dark/actions/16/underline.svg new file mode 100644 index 0000000..521e407 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/underline.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/undo.svg b/toonz/sources/toonz/icons/dark/actions/16/undo.svg new file mode 100644 index 0000000..4c032e2 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/undo.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/viewicon.svg b/toonz/sources/toonz/icons/dark/actions/16/viewicon.svg new file mode 100644 index 0000000..2c248a9 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/viewicon.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/viewlist.svg b/toonz/sources/toonz/icons/dark/actions/16/viewlist.svg new file mode 100644 index 0000000..49dca87 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/viewlist.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/16/web.svg b/toonz/sources/toonz/icons/dark/actions/16/web.svg new file mode 100644 index 0000000..1f9ab86 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/16/web.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/actual_pixel_size.svg b/toonz/sources/toonz/icons/dark/actions/18/actual_pixel_size.svg new file mode 100644 index 0000000..84f6287 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/actual_pixel_size.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/fit_to_window.svg b/toonz/sources/toonz/icons/dark/actions/18/fit_to_window.svg new file mode 100644 index 0000000..4ec6c2e --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/fit_to_window.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/fliphoriz.svg b/toonz/sources/toonz/icons/dark/actions/18/fliphoriz.svg new file mode 100644 index 0000000..a1b732b --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/fliphoriz.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/fliphoriz2.svg b/toonz/sources/toonz/icons/dark/actions/18/fliphoriz2.svg new file mode 100644 index 0000000..4b17455 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/fliphoriz2.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/flipvert.svg b/toonz/sources/toonz/icons/dark/actions/18/flipvert.svg new file mode 100644 index 0000000..9edbda0 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/flipvert.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/flipvert2.svg b/toonz/sources/toonz/icons/dark/actions/18/flipvert2.svg new file mode 100644 index 0000000..4249078 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/flipvert2.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/folder.svg b/toonz/sources/toonz/icons/dark/actions/18/folder.svg new file mode 100644 index 0000000..a8b9406 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/folder.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/folder_anim.svg b/toonz/sources/toonz/icons/dark/actions/18/folder_anim.svg new file mode 100644 index 0000000..a12c36b --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/folder_anim.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/folder_anim_inactive.svg b/toonz/sources/toonz/icons/dark/actions/18/folder_anim_inactive.svg new file mode 100644 index 0000000..0605238 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/folder_anim_inactive.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/folder_anim_inactive_on.svg b/toonz/sources/toonz/icons/dark/actions/18/folder_anim_inactive_on.svg new file mode 100644 index 0000000..beb6cf6 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/folder_anim_inactive_on.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/folder_anim_on.svg b/toonz/sources/toonz/icons/dark/actions/18/folder_anim_on.svg new file mode 100644 index 0000000..1b1e49a --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/folder_anim_on.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/folder_inactive.svg b/toonz/sources/toonz/icons/dark/actions/18/folder_inactive.svg new file mode 100644 index 0000000..09a7214 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/folder_inactive.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/folder_inactive_on.svg b/toonz/sources/toonz/icons/dark/actions/18/folder_inactive_on.svg new file mode 100644 index 0000000..8d72df2 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/folder_inactive_on.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/folder_on.svg b/toonz/sources/toonz/icons/dark/actions/18/folder_on.svg new file mode 100644 index 0000000..c0f2ae3 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/folder_on.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/folder_preset.svg b/toonz/sources/toonz/icons/dark/actions/18/folder_preset.svg new file mode 100644 index 0000000..5a5d1bc --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/folder_preset.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/folder_preset_on.svg b/toonz/sources/toonz/icons/dark/actions/18/folder_preset_on.svg new file mode 100644 index 0000000..7b089ef --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/folder_preset_on.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/folder_project.svg b/toonz/sources/toonz/icons/dark/actions/18/folder_project.svg new file mode 100644 index 0000000..9fe5929 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/folder_project.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/folder_project_on.svg b/toonz/sources/toonz/icons/dark/actions/18/folder_project_on.svg new file mode 100644 index 0000000..1757cc9 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/folder_project_on.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/folder_project_root.svg b/toonz/sources/toonz/icons/dark/actions/18/folder_project_root.svg new file mode 100644 index 0000000..9f8cf6a --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/folder_project_root.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/folder_vc.svg b/toonz/sources/toonz/icons/dark/actions/18/folder_vc.svg new file mode 100644 index 0000000..71ec61f --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/folder_vc.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/folder_vc_on.svg b/toonz/sources/toonz/icons/dark/actions/18/folder_vc_on.svg new file mode 100644 index 0000000..d3a34cb --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/folder_vc_on.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/fx.svg b/toonz/sources/toonz/icons/dark/actions/18/fx.svg new file mode 100644 index 0000000..ecb0660 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/fx.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/lock.svg b/toonz/sources/toonz/icons/dark/actions/18/lock.svg new file mode 100644 index 0000000..23ae690 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/lock.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/lock_on.svg b/toonz/sources/toonz/icons/dark/actions/18/lock_on.svg new file mode 100644 index 0000000..fd636a5 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/lock_on.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/preview.svg b/toonz/sources/toonz/icons/dark/actions/18/preview.svg new file mode 100644 index 0000000..f7ad3c7 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/preview.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/reset.svg b/toonz/sources/toonz/icons/dark/actions/18/reset.svg new file mode 100644 index 0000000..a4a6b64 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/reset.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/switch.svg b/toonz/sources/toonz/icons/dark/actions/18/switch.svg new file mode 100644 index 0000000..c0be9c5 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/switch.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/tasks.svg b/toonz/sources/toonz/icons/dark/actions/18/tasks.svg new file mode 100644 index 0000000..522baff --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/tasks.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/zoomin.svg b/toonz/sources/toonz/icons/dark/actions/18/zoomin.svg new file mode 100644 index 0000000..d016f2b --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/zoomin.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/18/zoomout.svg b/toonz/sources/toonz/icons/dark/actions/18/zoomout.svg new file mode 100644 index 0000000..f38bb42 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/18/zoomout.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/add_cell.svg b/toonz/sources/toonz/icons/dark/actions/20/add_cell.svg new file mode 100644 index 0000000..24e5fe6 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/add_cell.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/add_cells.svg b/toonz/sources/toonz/icons/dark/actions/20/add_cells.svg new file mode 100644 index 0000000..5d6d294 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/add_cells.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/antialias.svg b/toonz/sources/toonz/icons/dark/actions/20/antialias.svg new file mode 100644 index 0000000..a7f21a1 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/antialias.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/apply_match_lines.svg b/toonz/sources/toonz/icons/dark/actions/20/apply_match_lines.svg new file mode 100644 index 0000000..731cacb --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/apply_match_lines.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/auto_input_cell_number.svg b/toonz/sources/toonz/icons/dark/actions/20/auto_input_cell_number.svg new file mode 100644 index 0000000..e303318 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/auto_input_cell_number.svg @@ -0,0 +1,17 @@ + + + + + + + + + 1 + + + 2 + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/autocenter.svg b/toonz/sources/toonz/icons/dark/actions/20/autocenter.svg new file mode 100644 index 0000000..f0cc95c --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/autocenter.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/autoexpose.svg b/toonz/sources/toonz/icons/dark/actions/20/autoexpose.svg new file mode 100644 index 0000000..f39a230 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/autoexpose.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/batchservers.svg b/toonz/sources/toonz/icons/dark/actions/20/batchservers.svg new file mode 100644 index 0000000..6fc8b57 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/batchservers.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/binarize.svg b/toonz/sources/toonz/icons/dark/actions/20/binarize.svg new file mode 100644 index 0000000..cca66f3 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/binarize.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/blackbg_check.svg b/toonz/sources/toonz/icons/dark/actions/20/blackbg_check.svg new file mode 100644 index 0000000..8a66ba5 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/blackbg_check.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/brightness_contrast.svg b/toonz/sources/toonz/icons/dark/actions/20/brightness_contrast.svg new file mode 100644 index 0000000..4ae6c58 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/brightness_contrast.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/camera.svg b/toonz/sources/toonz/icons/dark/actions/20/camera.svg new file mode 100644 index 0000000..91aeae5 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/camera.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/camera_capture.svg b/toonz/sources/toonz/icons/dark/actions/20/camera_capture.svg new file mode 100644 index 0000000..0f2a133 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/camera_capture.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/camera_settings.svg b/toonz/sources/toonz/icons/dark/actions/20/camera_settings.svg new file mode 100644 index 0000000..93de80a --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/camera_settings.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/clapboard.svg b/toonz/sources/toonz/icons/dark/actions/20/clapboard.svg new file mode 100644 index 0000000..44b26de --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/clapboard.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/cleanup.svg b/toonz/sources/toonz/icons/dark/actions/20/cleanup.svg new file mode 100644 index 0000000..5630e68 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/cleanup.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/cleanup_add.svg b/toonz/sources/toonz/icons/dark/actions/20/cleanup_add.svg new file mode 100644 index 0000000..c98734c --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/cleanup_add.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/cleanup_preview.svg b/toonz/sources/toonz/icons/dark/actions/20/cleanup_preview.svg new file mode 100644 index 0000000..878bfdf --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/cleanup_preview.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/cleanup_settings.svg b/toonz/sources/toonz/icons/dark/actions/20/cleanup_settings.svg new file mode 100644 index 0000000..80ad4bf --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/cleanup_settings.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/clear.svg b/toonz/sources/toonz/icons/dark/actions/20/clear.svg new file mode 100644 index 0000000..8880849 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/clear.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/clone_cells.svg b/toonz/sources/toonz/icons/dark/actions/20/clone_cells.svg new file mode 100644 index 0000000..e4ed282 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/clone_cells.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/colorfade.svg b/toonz/sources/toonz/icons/dark/actions/20/colorfade.svg new file mode 100644 index 0000000..4d02160 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/colorfade.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/colormodel.svg b/toonz/sources/toonz/icons/dark/actions/20/colormodel.svg new file mode 100644 index 0000000..e2bf0b2 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/colormodel.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/console.svg b/toonz/sources/toonz/icons/dark/actions/20/console.svg new file mode 100644 index 0000000..4feb85b --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/console.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/contrast.svg b/toonz/sources/toonz/icons/dark/actions/20/contrast.svg new file mode 100644 index 0000000..5516664 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/contrast.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/convert.svg b/toonz/sources/toonz/icons/dark/actions/20/convert.svg new file mode 100644 index 0000000..59e3334 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/convert.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/delete_lines.svg b/toonz/sources/toonz/icons/dark/actions/20/delete_lines.svg new file mode 100644 index 0000000..05588fc --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/delete_lines.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/delete_match_lines.svg b/toonz/sources/toonz/icons/dark/actions/20/delete_match_lines.svg new file mode 100644 index 0000000..6dcebf3 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/delete_match_lines.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/dragpalette.svg b/toonz/sources/toonz/icons/dark/actions/20/dragpalette.svg new file mode 100644 index 0000000..2591f15 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/dragpalette.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/duplicate.svg b/toonz/sources/toonz/icons/dark/actions/20/duplicate.svg new file mode 100644 index 0000000..ad41ee2 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/duplicate.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/duplicate_drawing.svg b/toonz/sources/toonz/icons/dark/actions/20/duplicate_drawing.svg new file mode 100644 index 0000000..19e5102 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/duplicate_drawing.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/enter_group.svg b/toonz/sources/toonz/icons/dark/actions/20/enter_group.svg new file mode 100644 index 0000000..1d8500b --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/enter_group.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/export_level.svg b/toonz/sources/toonz/icons/dark/actions/20/export_level.svg new file mode 100644 index 0000000..426dbb8 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/export_level.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/fast_render_mp4.svg b/toonz/sources/toonz/icons/dark/actions/20/fast_render_mp4.svg new file mode 100644 index 0000000..221c24a --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/fast_render_mp4.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/filebrowser.svg b/toonz/sources/toonz/icons/dark/actions/20/filebrowser.svg new file mode 100644 index 0000000..d5c834a --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/filebrowser.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/fill_auto.svg b/toonz/sources/toonz/icons/dark/actions/20/fill_auto.svg new file mode 100644 index 0000000..1d1196b --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/fill_auto.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/fill_check.svg b/toonz/sources/toonz/icons/dark/actions/20/fill_check.svg new file mode 100644 index 0000000..d998623 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/fill_check.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/fill_empty_cells.svg b/toonz/sources/toonz/icons/dark/actions/20/fill_empty_cells.svg new file mode 100644 index 0000000..970af9f --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/fill_empty_cells.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/fill_freehand.svg b/toonz/sources/toonz/icons/dark/actions/20/fill_freehand.svg new file mode 100644 index 0000000..71f507d --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/fill_freehand.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/fill_normal.svg b/toonz/sources/toonz/icons/dark/actions/20/fill_normal.svg new file mode 100644 index 0000000..7f5b34c --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/fill_normal.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/fill_polyline.svg b/toonz/sources/toonz/icons/dark/actions/20/fill_polyline.svg new file mode 100644 index 0000000..4c7dc3f --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/fill_polyline.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/fill_rectangular.svg b/toonz/sources/toonz/icons/dark/actions/20/fill_rectangular.svg new file mode 100644 index 0000000..b23b0d7 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/fill_rectangular.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/flipbook.svg b/toonz/sources/toonz/icons/dark/actions/20/flipbook.svg new file mode 100644 index 0000000..e20696b --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/flipbook.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/flipbook_link.svg b/toonz/sources/toonz/icons/dark/actions/20/flipbook_link.svg new file mode 100644 index 0000000..22d7307 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/flipbook_link.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/focus.svg b/toonz/sources/toonz/icons/dark/actions/20/focus.svg new file mode 100644 index 0000000..9401f2a --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/focus.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/fold_column.svg b/toonz/sources/toonz/icons/dark/actions/20/fold_column.svg new file mode 100644 index 0000000..799efe3 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/fold_column.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/function_editor.svg b/toonz/sources/toonz/icons/dark/actions/20/function_editor.svg new file mode 100644 index 0000000..812cfd4 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/function_editor.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/fx_logo.svg b/toonz/sources/toonz/icons/dark/actions/20/fx_logo.svg new file mode 100644 index 0000000..8918a9d --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/fx_logo.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/fx_settings.svg b/toonz/sources/toonz/icons/dark/actions/20/fx_settings.svg new file mode 100644 index 0000000..d0c08ee --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/fx_settings.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/gap_check.svg b/toonz/sources/toonz/icons/dark/actions/20/gap_check.svg new file mode 100644 index 0000000..4d8e344 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/gap_check.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/group.svg b/toonz/sources/toonz/icons/dark/actions/20/group.svg new file mode 100644 index 0000000..2e83df5 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/group.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/hand_schematic.svg b/toonz/sources/toonz/icons/dark/actions/20/hand_schematic.svg new file mode 100644 index 0000000..6b747b7 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/hand_schematic.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/iconifynodes.svg b/toonz/sources/toonz/icons/dark/actions/20/iconifynodes.svg new file mode 100644 index 0000000..28ef4c6 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/iconifynodes.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/iconifynodes_on.svg b/toonz/sources/toonz/icons/dark/actions/20/iconifynodes_on.svg new file mode 100644 index 0000000..3a1581d --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/iconifynodes_on.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/iconifynodes_over.svg b/toonz/sources/toonz/icons/dark/actions/20/iconifynodes_over.svg new file mode 100644 index 0000000..3a1581d --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/iconifynodes_over.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/ink_check.svg b/toonz/sources/toonz/icons/dark/actions/20/ink_check.svg new file mode 100644 index 0000000..022acb1 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/ink_check.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/ink_no1_check.svg b/toonz/sources/toonz/icons/dark/actions/20/ink_no1_check.svg new file mode 100644 index 0000000..e58e13b --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/ink_no1_check.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/inks_only.svg b/toonz/sources/toonz/icons/dark/actions/20/inks_only.svg new file mode 100644 index 0000000..0d4a43f --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/inks_only.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/insert.svg b/toonz/sources/toonz/icons/dark/actions/20/insert.svg new file mode 100644 index 0000000..5843612 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/insert.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/insert_above_after.svg b/toonz/sources/toonz/icons/dark/actions/20/insert_above_after.svg new file mode 100644 index 0000000..ed070e6 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/insert_above_after.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/insert_frame.svg b/toonz/sources/toonz/icons/dark/actions/20/insert_frame.svg new file mode 100644 index 0000000..fed999d --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/insert_frame.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/insert_multiple_keys.svg b/toonz/sources/toonz/icons/dark/actions/20/insert_multiple_keys.svg new file mode 100644 index 0000000..c29229b --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/insert_multiple_keys.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/invert_selection.svg b/toonz/sources/toonz/icons/dark/actions/20/invert_selection.svg new file mode 100644 index 0000000..d9e7e24 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/invert_selection.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/key_modified.svg b/toonz/sources/toonz/icons/dark/actions/20/key_modified.svg new file mode 100644 index 0000000..fe4434e --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/key_modified.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/key_off.svg b/toonz/sources/toonz/icons/dark/actions/20/key_off.svg new file mode 100644 index 0000000..985f1b5 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/key_off.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/key_on.svg b/toonz/sources/toonz/icons/dark/actions/20/key_on.svg new file mode 100644 index 0000000..e68f641 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/key_on.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/key_partial.svg b/toonz/sources/toonz/icons/dark/actions/20/key_partial.svg new file mode 100644 index 0000000..48352a5 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/key_partial.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/leave_group.svg b/toonz/sources/toonz/icons/dark/actions/20/leave_group.svg new file mode 100644 index 0000000..642a09e --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/leave_group.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/level_info.svg b/toonz/sources/toonz/icons/dark/actions/20/level_info.svg new file mode 100644 index 0000000..247c18b --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/level_info.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/level_settings.svg b/toonz/sources/toonz/icons/dark/actions/20/level_settings.svg new file mode 100644 index 0000000..ba8fb4d --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/level_settings.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/load_colormodel.svg b/toonz/sources/toonz/icons/dark/actions/20/load_colormodel.svg new file mode 100644 index 0000000..fa25511 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/load_colormodel.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/load_folder.svg b/toonz/sources/toonz/icons/dark/actions/20/load_folder.svg new file mode 100644 index 0000000..8c5ab49 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/load_folder.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/load_level.svg b/toonz/sources/toonz/icons/dark/actions/20/load_level.svg new file mode 100644 index 0000000..46f82f6 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/load_level.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/load_scene.svg b/toonz/sources/toonz/icons/dark/actions/20/load_scene.svg new file mode 100644 index 0000000..5a8feee --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/load_scene.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/maximizenodes.svg b/toonz/sources/toonz/icons/dark/actions/20/maximizenodes.svg new file mode 100644 index 0000000..7c48fe2 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/maximizenodes.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/merge_levels.svg b/toonz/sources/toonz/icons/dark/actions/20/merge_levels.svg new file mode 100644 index 0000000..6ed8ebc --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/merge_levels.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/merge_levels_tlv.svg b/toonz/sources/toonz/icons/dark/actions/20/merge_levels_tlv.svg new file mode 100644 index 0000000..dd9e54b --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/merge_levels_tlv.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/messagecenter.svg b/toonz/sources/toonz/icons/dark/actions/20/messagecenter.svg new file mode 100644 index 0000000..4a4cc3a --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/messagecenter.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/minimizenodes.svg b/toonz/sources/toonz/icons/dark/actions/20/minimizenodes.svg new file mode 100644 index 0000000..f3602ad --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/minimizenodes.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/mode_areas.svg b/toonz/sources/toonz/icons/dark/actions/20/mode_areas.svg new file mode 100644 index 0000000..2349680 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/mode_areas.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/mode_areas_lines.svg b/toonz/sources/toonz/icons/dark/actions/20/mode_areas_lines.svg new file mode 100644 index 0000000..69e4c91 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/mode_areas_lines.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/mode_lines.svg b/toonz/sources/toonz/icons/dark/actions/20/mode_lines.svg new file mode 100644 index 0000000..e6a2576 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/mode_lines.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/motionpath.svg b/toonz/sources/toonz/icons/dark/actions/20/motionpath.svg new file mode 100644 index 0000000..39d6a32 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/motionpath.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/move_back_one.svg b/toonz/sources/toonz/icons/dark/actions/20/move_back_one.svg new file mode 100644 index 0000000..59cedc9 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/move_back_one.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/move_forward_one.svg b/toonz/sources/toonz/icons/dark/actions/20/move_forward_one.svg new file mode 100644 index 0000000..06c60d5 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/move_forward_one.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/move_to_back.svg b/toonz/sources/toonz/icons/dark/actions/20/move_to_back.svg new file mode 100644 index 0000000..896673f --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/move_to_back.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/move_to_front.svg b/toonz/sources/toonz/icons/dark/actions/20/move_to_front.svg new file mode 100644 index 0000000..921437e --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/move_to_front.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/new_document.svg b/toonz/sources/toonz/icons/dark/actions/20/new_document.svg new file mode 100644 index 0000000..ccec59d --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/new_document.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/new_note_level.svg b/toonz/sources/toonz/icons/dark/actions/20/new_note_level.svg new file mode 100644 index 0000000..631f94c --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/new_note_level.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/new_raster_level.svg b/toonz/sources/toonz/icons/dark/actions/20/new_raster_level.svg new file mode 100644 index 0000000..49e8d97 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/new_raster_level.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/new_scene.svg b/toonz/sources/toonz/icons/dark/actions/20/new_scene.svg new file mode 100644 index 0000000..dcff17c --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/new_scene.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/new_toonz_raster_level.svg b/toonz/sources/toonz/icons/dark/actions/20/new_toonz_raster_level.svg new file mode 100644 index 0000000..0ad08cb --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/new_toonz_raster_level.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/new_vector_level.svg b/toonz/sources/toonz/icons/dark/actions/20/new_vector_level.svg new file mode 100644 index 0000000..7c28448 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/new_vector_level.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/newpage.svg b/toonz/sources/toonz/icons/dark/actions/20/newpage.svg new file mode 100644 index 0000000..62b8d95 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/newpage.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/newstyle.svg b/toonz/sources/toonz/icons/dark/actions/20/newstyle.svg new file mode 100644 index 0000000..2b8c173 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/newstyle.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/next_drawing.svg b/toonz/sources/toonz/icons/dark/actions/20/next_drawing.svg new file mode 100644 index 0000000..a30389c --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/next_drawing.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/nextkey.svg b/toonz/sources/toonz/icons/dark/actions/20/nextkey.svg new file mode 100644 index 0000000..61fafea --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/nextkey.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/nextstep.svg b/toonz/sources/toonz/icons/dark/actions/20/nextstep.svg new file mode 100644 index 0000000..4f7ac1f --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/nextstep.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/on_1s.svg b/toonz/sources/toonz/icons/dark/actions/20/on_1s.svg new file mode 100644 index 0000000..61b47b4 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/on_1s.svg @@ -0,0 +1,16 @@ + + + + + + + + + + s + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/on_2s.svg b/toonz/sources/toonz/icons/dark/actions/20/on_2s.svg new file mode 100644 index 0000000..6d67441 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/on_2s.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + s + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/on_3s.svg b/toonz/sources/toonz/icons/dark/actions/20/on_3s.svg new file mode 100644 index 0000000..74e45e6 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/on_3s.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + s + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/on_4s.svg b/toonz/sources/toonz/icons/dark/actions/20/on_4s.svg new file mode 100644 index 0000000..c41850e --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/on_4s.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + s + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/on_with_empty.svg b/toonz/sources/toonz/icons/dark/actions/20/on_with_empty.svg new file mode 100644 index 0000000..41462e9 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/on_with_empty.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + s + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/onionskin_toggle.svg b/toonz/sources/toonz/icons/dark/actions/20/onionskin_toggle.svg new file mode 100644 index 0000000..868ee26 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/onionskin_toggle.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/opacity_check.svg b/toonz/sources/toonz/icons/dark/actions/20/opacity_check.svg new file mode 100644 index 0000000..218c6d3 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/opacity_check.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/opentoonz.svg b/toonz/sources/toonz/icons/dark/actions/20/opentoonz.svg new file mode 100644 index 0000000..dea004c --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/opentoonz.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/output.svg b/toonz/sources/toonz/icons/dark/actions/20/output.svg new file mode 100644 index 0000000..21527d2 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/output.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/output_settings.svg b/toonz/sources/toonz/icons/dark/actions/20/output_settings.svg new file mode 100644 index 0000000..6d5f722 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/output_settings.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/paint_check.svg b/toonz/sources/toonz/icons/dark/actions/20/paint_check.svg new file mode 100644 index 0000000..489cb9a --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/paint_check.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/palettegizmo.svg b/toonz/sources/toonz/icons/dark/actions/20/palettegizmo.svg new file mode 100644 index 0000000..78fdebb --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/palettegizmo.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/pane_3d.svg b/toonz/sources/toonz/icons/dark/actions/20/pane_3d.svg new file mode 100644 index 0000000..0ddee53 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/pane_3d.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/pane_cam.svg b/toonz/sources/toonz/icons/dark/actions/20/pane_cam.svg new file mode 100644 index 0000000..4894a69 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/pane_cam.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/pane_close.svg b/toonz/sources/toonz/icons/dark/actions/20/pane_close.svg new file mode 100644 index 0000000..5d6f412 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/pane_close.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/pane_freeze.svg b/toonz/sources/toonz/icons/dark/actions/20/pane_freeze.svg new file mode 100644 index 0000000..9994630 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/pane_freeze.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/pane_grid.svg b/toonz/sources/toonz/icons/dark/actions/20/pane_grid.svg new file mode 100644 index 0000000..bf0869b --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/pane_grid.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/pane_minimize.svg b/toonz/sources/toonz/icons/dark/actions/20/pane_minimize.svg new file mode 100644 index 0000000..8c794f2 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/pane_minimize.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/pane_preview.svg b/toonz/sources/toonz/icons/dark/actions/20/pane_preview.svg new file mode 100644 index 0000000..9f2c34c --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/pane_preview.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/pane_safe.svg b/toonz/sources/toonz/icons/dark/actions/20/pane_safe.svg new file mode 100644 index 0000000..26c70eb --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/pane_safe.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/pane_subpreview.svg b/toonz/sources/toonz/icons/dark/actions/20/pane_subpreview.svg new file mode 100644 index 0000000..8553334 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/pane_subpreview.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/pane_table.svg b/toonz/sources/toonz/icons/dark/actions/20/pane_table.svg new file mode 100644 index 0000000..78aac6d --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/pane_table.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/paste.svg b/toonz/sources/toonz/icons/dark/actions/20/paste.svg new file mode 100644 index 0000000..fad3e87 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/paste.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/paste_above_after.svg b/toonz/sources/toonz/icons/dark/actions/20/paste_above_after.svg new file mode 100644 index 0000000..5047f0c --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/paste_above_after.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/paste_duplicate.svg b/toonz/sources/toonz/icons/dark/actions/20/paste_duplicate.svg new file mode 100644 index 0000000..96ea093 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/paste_duplicate.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/paste_into.svg b/toonz/sources/toonz/icons/dark/actions/20/paste_into.svg new file mode 100644 index 0000000..186c881 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/paste_into.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/pegbar.svg b/toonz/sources/toonz/icons/dark/actions/20/pegbar.svg new file mode 100644 index 0000000..1facec9 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/pegbar.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/pickscreen.svg b/toonz/sources/toonz/icons/dark/actions/20/pickscreen.svg new file mode 100644 index 0000000..4c6745f --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/pickscreen.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/prev_drawing.svg b/toonz/sources/toonz/icons/dark/actions/20/prev_drawing.svg new file mode 100644 index 0000000..79f5ac1 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/prev_drawing.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/preview_settings.svg b/toonz/sources/toonz/icons/dark/actions/20/preview_settings.svg new file mode 100644 index 0000000..1df5f2a --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/preview_settings.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/prevkey.svg b/toonz/sources/toonz/icons/dark/actions/20/prevkey.svg new file mode 100644 index 0000000..9067a19 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/prevkey.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/prevstep.svg b/toonz/sources/toonz/icons/dark/actions/20/prevstep.svg new file mode 100644 index 0000000..bd353a8 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/prevstep.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/random.svg b/toonz/sources/toonz/icons/dark/actions/20/random.svg new file mode 100644 index 0000000..1c4a6f8 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/random.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/recordaudio.svg b/toonz/sources/toonz/icons/dark/actions/20/recordaudio.svg new file mode 100644 index 0000000..9cdfffb --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/recordaudio.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/reload_level.svg b/toonz/sources/toonz/icons/dark/actions/20/reload_level.svg new file mode 100644 index 0000000..6058094 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/reload_level.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/remove_cell.svg b/toonz/sources/toonz/icons/dark/actions/20/remove_cell.svg new file mode 100644 index 0000000..cba151d --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/remove_cell.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/remove_cells.svg b/toonz/sources/toonz/icons/dark/actions/20/remove_cells.svg new file mode 100644 index 0000000..82a5b36 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/remove_cells.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/remove_frame.svg b/toonz/sources/toonz/icons/dark/actions/20/remove_frame.svg new file mode 100644 index 0000000..b76baef --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/remove_frame.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/remove_level.svg b/toonz/sources/toonz/icons/dark/actions/20/remove_level.svg new file mode 100644 index 0000000..96a6fbd --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/remove_level.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/remove_multiple_keys.svg b/toonz/sources/toonz/icons/dark/actions/20/remove_multiple_keys.svg new file mode 100644 index 0000000..660449a --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/remove_multiple_keys.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/remove_unused_levels.svg b/toonz/sources/toonz/icons/dark/actions/20/remove_unused_levels.svg new file mode 100644 index 0000000..1e54124 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/remove_unused_levels.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/remove_vector_overflow.svg b/toonz/sources/toonz/icons/dark/actions/20/remove_vector_overflow.svg new file mode 100644 index 0000000..f0777a6 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/remove_vector_overflow.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/render.svg b/toonz/sources/toonz/icons/dark/actions/20/render.svg new file mode 100644 index 0000000..732f4c7 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/render.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/render_add.svg b/toonz/sources/toonz/icons/dark/actions/20/render_add.svg new file mode 100644 index 0000000..74121ab --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/render_add.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/renumber.svg b/toonz/sources/toonz/icons/dark/actions/20/renumber.svg new file mode 100644 index 0000000..d9ce607 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/renumber.svg @@ -0,0 +1,20 @@ + + + + + + 1 + + + 2 + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/reorder.svg b/toonz/sources/toonz/icons/dark/actions/20/reorder.svg new file mode 100644 index 0000000..4e1d953 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/reorder.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/repeat.svg b/toonz/sources/toonz/icons/dark/actions/20/repeat.svg new file mode 100644 index 0000000..d521e1d --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/repeat.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/replace_level.svg b/toonz/sources/toonz/icons/dark/actions/20/replace_level.svg new file mode 100644 index 0000000..97f154c --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/replace_level.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/resequence.svg b/toonz/sources/toonz/icons/dark/actions/20/resequence.svg new file mode 100644 index 0000000..6911299 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/resequence.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/resize.svg b/toonz/sources/toonz/icons/dark/actions/20/resize.svg new file mode 100644 index 0000000..f0c4ba2 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/resize.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/reverse.svg b/toonz/sources/toonz/icons/dark/actions/20/reverse.svg new file mode 100644 index 0000000..149f9ef --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/reverse.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/revert_level_to_cleanup.svg b/toonz/sources/toonz/icons/dark/actions/20/revert_level_to_cleanup.svg new file mode 100644 index 0000000..04b01cc --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/revert_level_to_cleanup.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/revert_scene.svg b/toonz/sources/toonz/icons/dark/actions/20/revert_scene.svg new file mode 100644 index 0000000..f609199 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/revert_scene.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/rolldown.svg b/toonz/sources/toonz/icons/dark/actions/20/rolldown.svg new file mode 100644 index 0000000..4438d1e --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/rolldown.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/rollup.svg b/toonz/sources/toonz/icons/dark/actions/20/rollup.svg new file mode 100644 index 0000000..877c1f9 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/rollup.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/run_script.svg b/toonz/sources/toonz/icons/dark/actions/20/run_script.svg new file mode 100644 index 0000000..5ea9c8a --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/run_script.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/save_all_levels.svg b/toonz/sources/toonz/icons/dark/actions/20/save_all_levels.svg new file mode 100644 index 0000000..3d442b5 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/save_all_levels.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/save_level.svg b/toonz/sources/toonz/icons/dark/actions/20/save_level.svg new file mode 100644 index 0000000..7271595 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/save_level.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/save_level_as.svg b/toonz/sources/toonz/icons/dark/actions/20/save_level_as.svg new file mode 100644 index 0000000..f46eeaf --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/save_level_as.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/save_previewed_frames.svg b/toonz/sources/toonz/icons/dark/actions/20/save_previewed_frames.svg new file mode 100644 index 0000000..b65194b --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/save_previewed_frames.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/save_scene.svg b/toonz/sources/toonz/icons/dark/actions/20/save_scene.svg new file mode 100644 index 0000000..7f91384 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/save_scene.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/save_scene_as.svg b/toonz/sources/toonz/icons/dark/actions/20/save_scene_as.svg new file mode 100644 index 0000000..2204d9e --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/save_scene_as.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/scene_settings.svg b/toonz/sources/toonz/icons/dark/actions/20/scene_settings.svg new file mode 100644 index 0000000..cea7439 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/scene_settings.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/scenecast.svg b/toonz/sources/toonz/icons/dark/actions/20/scenecast.svg new file mode 100644 index 0000000..0c29dae --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/scenecast.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/schematic.svg b/toonz/sources/toonz/icons/dark/actions/20/schematic.svg new file mode 100644 index 0000000..8b36f8d --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/schematic.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/segment_linked.svg b/toonz/sources/toonz/icons/dark/actions/20/segment_linked.svg new file mode 100644 index 0000000..c166f85 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/segment_linked.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/segment_linked_on.svg b/toonz/sources/toonz/icons/dark/actions/20/segment_linked_on.svg new file mode 100644 index 0000000..616160d --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/segment_linked_on.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/selection_schematic.svg b/toonz/sources/toonz/icons/dark/actions/20/selection_schematic.svg new file mode 100644 index 0000000..0b9c195 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/selection_schematic.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/set_key.svg b/toonz/sources/toonz/icons/dark/actions/20/set_key.svg new file mode 100644 index 0000000..40f836b --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/set_key.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/shift_and_trace.svg b/toonz/sources/toonz/icons/dark/actions/20/shift_and_trace.svg new file mode 100644 index 0000000..ed727f2 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/shift_and_trace.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/shift_and_trace_edit.svg b/toonz/sources/toonz/icons/dark/actions/20/shift_and_trace_edit.svg new file mode 100644 index 0000000..28edd98 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/shift_and_trace_edit.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/shift_and_trace_no_shift.svg b/toonz/sources/toonz/icons/dark/actions/20/shift_and_trace_no_shift.svg new file mode 100644 index 0000000..20e39d7 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/shift_and_trace_no_shift.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/shift_and_trace_on.svg b/toonz/sources/toonz/icons/dark/actions/20/shift_and_trace_on.svg new file mode 100644 index 0000000..cec21fb --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/shift_and_trace_on.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/shift_and_trace_reset.svg b/toonz/sources/toonz/icons/dark/actions/20/shift_and_trace_reset.svg new file mode 100644 index 0000000..1df2132 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/shift_and_trace_reset.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/shift_keys_down.svg b/toonz/sources/toonz/icons/dark/actions/20/shift_keys_down.svg new file mode 100644 index 0000000..723d337 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/shift_keys_down.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/shift_keys_up.svg b/toonz/sources/toonz/icons/dark/actions/20/shift_keys_up.svg new file mode 100644 index 0000000..a82d7a9 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/shift_keys_up.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/step_2.svg b/toonz/sources/toonz/icons/dark/actions/20/step_2.svg new file mode 100644 index 0000000..8ab9b3f --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/step_2.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/step_3.svg b/toonz/sources/toonz/icons/dark/actions/20/step_3.svg new file mode 100644 index 0000000..e83c48c --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/step_3.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/step_4.svg b/toonz/sources/toonz/icons/dark/actions/20/step_4.svg new file mode 100644 index 0000000..dcc10a9 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/step_4.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/step_minus.svg b/toonz/sources/toonz/icons/dark/actions/20/step_minus.svg new file mode 100644 index 0000000..5b14ed9 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/step_minus.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/step_plus.svg b/toonz/sources/toonz/icons/dark/actions/20/step_plus.svg new file mode 100644 index 0000000..b345a2f --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/step_plus.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/studiopalette.svg b/toonz/sources/toonz/icons/dark/actions/20/studiopalette.svg new file mode 100644 index 0000000..9528ae8 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/studiopalette.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/styleeditor.svg b/toonz/sources/toonz/icons/dark/actions/20/styleeditor.svg new file mode 100644 index 0000000..b89cfcd --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/styleeditor.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/sub_clone.svg b/toonz/sources/toonz/icons/dark/actions/20/sub_clone.svg new file mode 100644 index 0000000..7143a94 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/sub_clone.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/sub_collapse.svg b/toonz/sources/toonz/icons/dark/actions/20/sub_collapse.svg new file mode 100644 index 0000000..3c9d2b2 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/sub_collapse.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/sub_edit_in_place.svg b/toonz/sources/toonz/icons/dark/actions/20/sub_edit_in_place.svg new file mode 100644 index 0000000..7f51298 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/sub_edit_in_place.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/sub_enter.svg b/toonz/sources/toonz/icons/dark/actions/20/sub_enter.svg new file mode 100644 index 0000000..05d88cc --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/sub_enter.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/sub_explode.svg b/toonz/sources/toonz/icons/dark/actions/20/sub_explode.svg new file mode 100644 index 0000000..bf23f2b --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/sub_explode.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/sub_leave.svg b/toonz/sources/toonz/icons/dark/actions/20/sub_leave.svg new file mode 100644 index 0000000..b857404 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/sub_leave.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/subcamera.svg b/toonz/sources/toonz/icons/dark/actions/20/subcamera.svg new file mode 100644 index 0000000..0b1feab --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/subcamera.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/swap.svg b/toonz/sources/toonz/icons/dark/actions/20/swap.svg new file mode 100644 index 0000000..8eceb56 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/swap.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/swing.svg b/toonz/sources/toonz/icons/dark/actions/20/swing.svg new file mode 100644 index 0000000..7e71ff3 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/swing.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/switchport.svg b/toonz/sources/toonz/icons/dark/actions/20/switchport.svg new file mode 100644 index 0000000..30d72d1 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/switchport.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/switchport_on.svg b/toonz/sources/toonz/icons/dark/actions/20/switchport_on.svg new file mode 100644 index 0000000..114d6d8 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/switchport_on.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/switchport_over.svg b/toonz/sources/toonz/icons/dark/actions/20/switchport_over.svg new file mode 100644 index 0000000..114d6d8 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/switchport_over.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/thickness.svg b/toonz/sources/toonz/icons/dark/actions/20/thickness.svg new file mode 100644 index 0000000..b09dbe6 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/thickness.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/time_stretch.svg b/toonz/sources/toonz/icons/dark/actions/20/time_stretch.svg new file mode 100644 index 0000000..3327c69 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/time_stretch.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/timeline.svg b/toonz/sources/toonz/icons/dark/actions/20/timeline.svg new file mode 100644 index 0000000..481c665 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/timeline.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/toggle_fullscreen.svg b/toonz/sources/toonz/icons/dark/actions/20/toggle_fullscreen.svg new file mode 100644 index 0000000..f316fa1 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/toggle_fullscreen.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/toggle_xsheet_orientation.svg b/toonz/sources/toonz/icons/dark/actions/20/toggle_xsheet_orientation.svg new file mode 100644 index 0000000..2f0613d --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/toggle_xsheet_orientation.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/tracking_options.svg b/toonz/sources/toonz/icons/dark/actions/20/tracking_options.svg new file mode 100644 index 0000000..cf30c6f --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/tracking_options.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/transparency_check.svg b/toonz/sources/toonz/icons/dark/actions/20/transparency_check.svg new file mode 100644 index 0000000..74afb27 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/transparency_check.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/type_erase_segment.svg b/toonz/sources/toonz/icons/dark/actions/20/type_erase_segment.svg new file mode 100644 index 0000000..d4aec9a --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/type_erase_segment.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/type_lasso.svg b/toonz/sources/toonz/icons/dark/actions/20/type_lasso.svg new file mode 100644 index 0000000..69211a5 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/type_lasso.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/type_normal.svg b/toonz/sources/toonz/icons/dark/actions/20/type_normal.svg new file mode 100644 index 0000000..e7570fe --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/type_normal.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/type_polyline.svg b/toonz/sources/toonz/icons/dark/actions/20/type_polyline.svg new file mode 100644 index 0000000..f3621a1 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/type_polyline.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/type_rectangular.svg b/toonz/sources/toonz/icons/dark/actions/20/type_rectangular.svg new file mode 100644 index 0000000..4df1274 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/type_rectangular.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/ungroup.svg b/toonz/sources/toonz/icons/dark/actions/20/ungroup.svg new file mode 100644 index 0000000..8653b0e --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/ungroup.svg @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/viewer.svg b/toonz/sources/toonz/icons/dark/actions/20/viewer.svg new file mode 100644 index 0000000..f63c3e7 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/viewer.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/xsheet.svg b/toonz/sources/toonz/icons/dark/actions/20/xsheet.svg new file mode 100644 index 0000000..a7eb339 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/xsheet.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/20/zoom_schematic.svg b/toonz/sources/toonz/icons/dark/actions/20/zoom_schematic.svg new file mode 100644 index 0000000..cfa2ff2 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/20/zoom_schematic.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/30/newmemo.svg b/toonz/sources/toonz/icons/dark/actions/30/newmemo.svg new file mode 100644 index 0000000..fa101e5 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/30/newmemo.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/30/sound_header.svg b/toonz/sources/toonz/icons/dark/actions/30/sound_header.svg new file mode 100644 index 0000000..2cade97 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/30/sound_header.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/30/sound_header_on.svg b/toonz/sources/toonz/icons/dark/actions/30/sound_header_on.svg new file mode 100644 index 0000000..141ed4f --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/30/sound_header_on.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/35/task_cleanup_completed.svg b/toonz/sources/toonz/icons/dark/actions/35/task_cleanup_completed.svg new file mode 100644 index 0000000..7964ff0 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/35/task_cleanup_completed.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/35/task_cleanup_completed_with_errors.svg b/toonz/sources/toonz/icons/dark/actions/35/task_cleanup_completed_with_errors.svg new file mode 100644 index 0000000..8379f57 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/35/task_cleanup_completed_with_errors.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/35/task_cleanup_computing.svg b/toonz/sources/toonz/icons/dark/actions/35/task_cleanup_computing.svg new file mode 100644 index 0000000..4ab5d9b --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/35/task_cleanup_computing.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/35/task_cleanup_failed.svg b/toonz/sources/toonz/icons/dark/actions/35/task_cleanup_failed.svg new file mode 100644 index 0000000..4adbd43 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/35/task_cleanup_failed.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/35/task_cleanup_suspended.svg b/toonz/sources/toonz/icons/dark/actions/35/task_cleanup_suspended.svg new file mode 100644 index 0000000..6f7db49 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/35/task_cleanup_suspended.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/35/task_cln_completed.svg b/toonz/sources/toonz/icons/dark/actions/35/task_cln_completed.svg new file mode 100644 index 0000000..5e52c63 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/35/task_cln_completed.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/35/task_cln_completed_with_errors.svg b/toonz/sources/toonz/icons/dark/actions/35/task_cln_completed_with_errors.svg new file mode 100644 index 0000000..f7cccae --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/35/task_cln_completed_with_errors.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/35/task_cln_computing.svg b/toonz/sources/toonz/icons/dark/actions/35/task_cln_computing.svg new file mode 100644 index 0000000..b3a3b82 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/35/task_cln_computing.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/35/task_cln_failed.svg b/toonz/sources/toonz/icons/dark/actions/35/task_cln_failed.svg new file mode 100644 index 0000000..9cbe898 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/35/task_cln_failed.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/35/task_cln_suspended.svg b/toonz/sources/toonz/icons/dark/actions/35/task_cln_suspended.svg new file mode 100644 index 0000000..74322d1 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/35/task_cln_suspended.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/35/task_render_completed.svg b/toonz/sources/toonz/icons/dark/actions/35/task_render_completed.svg new file mode 100644 index 0000000..cfe8451 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/35/task_render_completed.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/35/task_render_completed_with_errors.svg b/toonz/sources/toonz/icons/dark/actions/35/task_render_completed_with_errors.svg new file mode 100644 index 0000000..baa9f6d --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/35/task_render_completed_with_errors.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/35/task_render_computing.svg b/toonz/sources/toonz/icons/dark/actions/35/task_render_computing.svg new file mode 100644 index 0000000..0f7d7c3 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/35/task_render_computing.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/35/task_render_failed.svg b/toonz/sources/toonz/icons/dark/actions/35/task_render_failed.svg new file mode 100644 index 0000000..98b80be --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/35/task_render_failed.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/35/task_render_suspended.svg b/toonz/sources/toonz/icons/dark/actions/35/task_render_suspended.svg new file mode 100644 index 0000000..ee4ca05 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/35/task_render_suspended.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/48/colorchiporder_leftup.svg b/toonz/sources/toonz/icons/dark/actions/48/colorchiporder_leftup.svg new file mode 100644 index 0000000..26124a2 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/48/colorchiporder_leftup.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/48/colorchiporder_lowleft.svg b/toonz/sources/toonz/icons/dark/actions/48/colorchiporder_lowleft.svg new file mode 100644 index 0000000..410b1ec --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/48/colorchiporder_lowleft.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/48/colorchiporder_upleft.svg b/toonz/sources/toonz/icons/dark/actions/48/colorchiporder_upleft.svg new file mode 100644 index 0000000..22a627e --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/48/colorchiporder_upleft.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/60/folder_browser.svg b/toonz/sources/toonz/icons/dark/actions/60/folder_browser.svg new file mode 100644 index 0000000..a11b5b0 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/60/folder_browser.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/60/folder_browser_link.svg b/toonz/sources/toonz/icons/dark/actions/60/folder_browser_link.svg new file mode 100644 index 0000000..907697b --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/60/folder_browser_link.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/60/folder_browser_up.svg b/toonz/sources/toonz/icons/dark/actions/60/folder_browser_up.svg new file mode 100644 index 0000000..11bc7d7 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/60/folder_browser_up.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/actions/74/notelevel.svg b/toonz/sources/toonz/icons/dark/actions/74/notelevel.svg new file mode 100644 index 0000000..83c1360 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/actions/74/notelevel.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/channelblue.svg b/toonz/sources/toonz/icons/dark/console/20/channelblue.svg new file mode 100644 index 0000000..d8d062d --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/channelblue.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/channelblue_on.svg b/toonz/sources/toonz/icons/dark/console/20/channelblue_on.svg new file mode 100644 index 0000000..a8bcc7d --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/channelblue_on.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/channelblue_over.svg b/toonz/sources/toonz/icons/dark/console/20/channelblue_over.svg new file mode 100644 index 0000000..8cc3446 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/channelblue_over.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/channelgreen.svg b/toonz/sources/toonz/icons/dark/console/20/channelgreen.svg new file mode 100644 index 0000000..ed3d784 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/channelgreen.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/channelgreen_on.svg b/toonz/sources/toonz/icons/dark/console/20/channelgreen_on.svg new file mode 100644 index 0000000..70b7ddc --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/channelgreen_on.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/channelgreen_over.svg b/toonz/sources/toonz/icons/dark/console/20/channelgreen_over.svg new file mode 100644 index 0000000..b7574f7 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/channelgreen_over.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/channelmatte.svg b/toonz/sources/toonz/icons/dark/console/20/channelmatte.svg new file mode 100644 index 0000000..6478810 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/channelmatte.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/channelmatte_on.svg b/toonz/sources/toonz/icons/dark/console/20/channelmatte_on.svg new file mode 100644 index 0000000..1292db7 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/channelmatte_on.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/channelmatte_over.svg b/toonz/sources/toonz/icons/dark/console/20/channelmatte_over.svg new file mode 100644 index 0000000..b381775 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/channelmatte_over.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/channelred.svg b/toonz/sources/toonz/icons/dark/console/20/channelred.svg new file mode 100644 index 0000000..44390f6 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/channelred.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/channelred_on.svg b/toonz/sources/toonz/icons/dark/console/20/channelred_on.svg new file mode 100644 index 0000000..015ebbf --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/channelred_on.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/channelred_over.svg b/toonz/sources/toonz/icons/dark/console/20/channelred_over.svg new file mode 100644 index 0000000..3e90f12 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/channelred_over.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/compare.svg b/toonz/sources/toonz/icons/dark/console/20/compare.svg new file mode 100644 index 0000000..e3255ca --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/compare.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/define_subcamera_preview.svg b/toonz/sources/toonz/icons/dark/console/20/define_subcamera_preview.svg new file mode 100644 index 0000000..56d560a --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/define_subcamera_preview.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/framefirst.svg b/toonz/sources/toonz/icons/dark/console/20/framefirst.svg new file mode 100644 index 0000000..20e5698 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/framefirst.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/framelast.svg b/toonz/sources/toonz/icons/dark/console/20/framelast.svg new file mode 100644 index 0000000..a796012 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/framelast.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/framenext.svg b/toonz/sources/toonz/icons/dark/console/20/framenext.svg new file mode 100644 index 0000000..c0c81de --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/framenext.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/frameprev.svg b/toonz/sources/toonz/icons/dark/console/20/frameprev.svg new file mode 100644 index 0000000..9f4951f --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/frameprev.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/half_B.svg b/toonz/sources/toonz/icons/dark/console/20/half_B.svg new file mode 100644 index 0000000..eede213 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/half_B.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/half_B_on.svg b/toonz/sources/toonz/icons/dark/console/20/half_B_on.svg new file mode 100644 index 0000000..7cb98a5 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/half_B_on.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/half_B_over.svg b/toonz/sources/toonz/icons/dark/console/20/half_B_over.svg new file mode 100644 index 0000000..d64dd51 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/half_B_over.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/half_G.svg b/toonz/sources/toonz/icons/dark/console/20/half_G.svg new file mode 100644 index 0000000..b0c818f --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/half_G.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/half_G_on.svg b/toonz/sources/toonz/icons/dark/console/20/half_G_on.svg new file mode 100644 index 0000000..f3f3fb5 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/half_G_on.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/half_G_over.svg b/toonz/sources/toonz/icons/dark/console/20/half_G_over.svg new file mode 100644 index 0000000..89e3f4e --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/half_G_over.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/half_R.svg b/toonz/sources/toonz/icons/dark/console/20/half_R.svg new file mode 100644 index 0000000..94f5a67 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/half_R.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/half_R_on.svg b/toonz/sources/toonz/icons/dark/console/20/half_R_on.svg new file mode 100644 index 0000000..4d54773 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/half_R_on.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/half_R_over.svg b/toonz/sources/toonz/icons/dark/console/20/half_R_over.svg new file mode 100644 index 0000000..a0a96bf --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/half_R_over.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/half_bw.svg b/toonz/sources/toonz/icons/dark/console/20/half_bw.svg new file mode 100644 index 0000000..583b129 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/half_bw.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/half_bw_on.svg b/toonz/sources/toonz/icons/dark/console/20/half_bw_on.svg new file mode 100644 index 0000000..5364339 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/half_bw_on.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/half_bw_over.svg b/toonz/sources/toonz/icons/dark/console/20/half_bw_over.svg new file mode 100644 index 0000000..dda15a2 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/half_bw_over.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/histograms.svg b/toonz/sources/toonz/icons/dark/console/20/histograms.svg new file mode 100644 index 0000000..e60cf8b --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/histograms.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/locator.svg b/toonz/sources/toonz/icons/dark/console/20/locator.svg new file mode 100644 index 0000000..c09ffa5 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/locator.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/loop.svg b/toonz/sources/toonz/icons/dark/console/20/loop.svg new file mode 100644 index 0000000..c040f1f --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/loop.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/pause.svg b/toonz/sources/toonz/icons/dark/console/20/pause.svg new file mode 100644 index 0000000..ac06ede --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/pause.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/play.svg b/toonz/sources/toonz/icons/dark/console/20/play.svg new file mode 100644 index 0000000..1e47be3 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/play.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/preview_black.svg b/toonz/sources/toonz/icons/dark/console/20/preview_black.svg new file mode 100644 index 0000000..36948fb --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/preview_black.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/preview_checkboard.svg b/toonz/sources/toonz/icons/dark/console/20/preview_checkboard.svg new file mode 100644 index 0000000..2344c22 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/preview_checkboard.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/preview_white.svg b/toonz/sources/toonz/icons/dark/console/20/preview_white.svg new file mode 100644 index 0000000..fd48dd3 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/preview_white.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/record.svg b/toonz/sources/toonz/icons/dark/console/20/record.svg new file mode 100644 index 0000000..4f3d76b --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/record.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/snapshot.svg b/toonz/sources/toonz/icons/dark/console/20/snapshot.svg new file mode 100644 index 0000000..0f2a133 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/snapshot.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/sound.svg b/toonz/sources/toonz/icons/dark/console/20/sound.svg new file mode 100644 index 0000000..44250ee --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/sound.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/sound_on.svg b/toonz/sources/toonz/icons/dark/console/20/sound_on.svg new file mode 100644 index 0000000..bb52b74 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/sound_on.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/stop.svg b/toonz/sources/toonz/icons/dark/console/20/stop.svg new file mode 100644 index 0000000..783dbbc --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/stop.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/console/20/use_subcamera_preview.svg b/toonz/sources/toonz/icons/dark/console/20/use_subcamera_preview.svg new file mode 100644 index 0000000..4add7f5 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/console/20/use_subcamera_preview.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/devices/20/printer.svg b/toonz/sources/toonz/icons/dark/devices/20/printer.svg new file mode 100644 index 0000000..d7c3b1a --- /dev/null +++ b/toonz/sources/toonz/icons/dark/devices/20/printer.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/devices/20/scanner.svg b/toonz/sources/toonz/icons/dark/devices/20/scanner.svg new file mode 100644 index 0000000..8219618 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/devices/20/scanner.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/devices/20/scanner_settings.svg b/toonz/sources/toonz/icons/dark/devices/20/scanner_settings.svg new file mode 100644 index 0000000..8b70acc --- /dev/null +++ b/toonz/sources/toonz/icons/dark/devices/20/scanner_settings.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/index.theme b/toonz/sources/toonz/icons/dark/index.theme new file mode 100644 index 0000000..d38bc9a --- /dev/null +++ b/toonz/sources/toonz/icons/dark/index.theme @@ -0,0 +1,62 @@ +[Icon Theme] +Name=dark +Comment=a dark icon set for use in light themes +Inherits=light + +Directories=actions/11,actions/15,actions/16,actions/18,actions/20,actions/30,actions/35,actions/48,actions/60,actions/74,console/20,tools/18,tools/20,devices/20 + +[actions/11] +Size=11 +Type=Scalable + +[actions/15] +Size=15 +Type=Scalable + +[actions/16] +Size=16 +Type=Scalable + +[actions/18] +Size=18 +Type=Scalable + +[actions/20] +Size=20 +Type=Scalable + +[actions/30] +Size=30 +Type=Scalable + +[actions/35] +Size=35 +Type=Scalable + +[actions/48] +Size=48 +Type=Scalable + +[actions/60] +Size=60 +Type=Scalable + +[actions/74] +Size=74 +Type=Scalable + +[console/20] +Size=20 +Type=Scalable + +[tools/18] +Size=18 +Type=Scalabe + +[tools/20] +Size=20 +Type=Scalabe + +[devices/20] +Size=20 +Type=Scalable diff --git a/toonz/sources/toonz/icons/dark/mimetypes/60/audio_icon.svg b/toonz/sources/toonz/icons/dark/mimetypes/60/audio_icon.svg new file mode 100644 index 0000000..1af6f27 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/mimetypes/60/audio_icon.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/mimetypes/60/broken_icon.svg b/toonz/sources/toonz/icons/dark/mimetypes/60/broken_icon.svg new file mode 100644 index 0000000..97397c7 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/mimetypes/60/broken_icon.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/mimetypes/60/cleanup_icon.svg b/toonz/sources/toonz/icons/dark/mimetypes/60/cleanup_icon.svg new file mode 100644 index 0000000..d8a4b16 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/mimetypes/60/cleanup_icon.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/mimetypes/60/curve_icon.svg b/toonz/sources/toonz/icons/dark/mimetypes/60/curve_icon.svg new file mode 100644 index 0000000..8c82f98 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/mimetypes/60/curve_icon.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/mimetypes/60/missing_icon.svg b/toonz/sources/toonz/icons/dark/mimetypes/60/missing_icon.svg new file mode 100644 index 0000000..925f318 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/mimetypes/60/missing_icon.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/mimetypes/60/motionpath_icon.svg b/toonz/sources/toonz/icons/dark/mimetypes/60/motionpath_icon.svg new file mode 100644 index 0000000..609c264 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/mimetypes/60/motionpath_icon.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/mimetypes/60/psd_icon.svg b/toonz/sources/toonz/icons/dark/mimetypes/60/psd_icon.svg new file mode 100644 index 0000000..9aa9524 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/mimetypes/60/psd_icon.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/mimetypes/60/script_icon.svg b/toonz/sources/toonz/icons/dark/mimetypes/60/script_icon.svg new file mode 100644 index 0000000..651a4c8 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/mimetypes/60/script_icon.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/mimetypes/60/svg_icon.svg b/toonz/sources/toonz/icons/dark/mimetypes/60/svg_icon.svg new file mode 100644 index 0000000..776c80e --- /dev/null +++ b/toonz/sources/toonz/icons/dark/mimetypes/60/svg_icon.svg @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/mimetypes/60/tasklist_icon.svg b/toonz/sources/toonz/icons/dark/mimetypes/60/tasklist_icon.svg new file mode 100644 index 0000000..22cadeb --- /dev/null +++ b/toonz/sources/toonz/icons/dark/mimetypes/60/tasklist_icon.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/mimetypes/60/unknown_icon.svg b/toonz/sources/toonz/icons/dark/mimetypes/60/unknown_icon.svg new file mode 100644 index 0000000..69c008f --- /dev/null +++ b/toonz/sources/toonz/icons/dark/mimetypes/60/unknown_icon.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/mimetypes/60/xdts_icon.svg b/toonz/sources/toonz/icons/dark/mimetypes/60/xdts_icon.svg new file mode 100644 index 0000000..769ed59 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/mimetypes/60/xdts_icon.svg @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/misc/startup.png b/toonz/sources/toonz/icons/dark/misc/startup.png new file mode 100644 index 0000000..9a54126 Binary files /dev/null and b/toonz/sources/toonz/icons/dark/misc/startup.png differ diff --git a/toonz/sources/toonz/icons/dark/tools/18/edit_all.svg b/toonz/sources/toonz/icons/dark/tools/18/edit_all.svg new file mode 100644 index 0000000..632b3ad --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/18/edit_all.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/18/edit_center.svg b/toonz/sources/toonz/icons/dark/tools/18/edit_center.svg new file mode 100644 index 0000000..275d06f --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/18/edit_center.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/18/edit_position.svg b/toonz/sources/toonz/icons/dark/tools/18/edit_position.svg new file mode 100644 index 0000000..b362f53 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/18/edit_position.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/18/edit_rotation.svg b/toonz/sources/toonz/icons/dark/tools/18/edit_rotation.svg new file mode 100644 index 0000000..e9d74fd --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/18/edit_rotation.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/18/edit_scale.svg b/toonz/sources/toonz/icons/dark/tools/18/edit_scale.svg new file mode 100644 index 0000000..6c0e1f1 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/18/edit_scale.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/18/edit_shear.svg b/toonz/sources/toonz/icons/dark/tools/18/edit_shear.svg new file mode 100644 index 0000000..a9475f5 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/18/edit_shear.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/animate.svg b/toonz/sources/toonz/icons/dark/tools/20/animate.svg new file mode 100644 index 0000000..89d82cb --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/animate.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/animate_position.svg b/toonz/sources/toonz/icons/dark/tools/20/animate_position.svg new file mode 100644 index 0000000..25b7220 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/animate_position.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/bender.svg b/toonz/sources/toonz/icons/dark/tools/20/bender.svg new file mode 100644 index 0000000..9f30d39 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/bender.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/brush.svg b/toonz/sources/toonz/icons/dark/tools/20/brush.svg new file mode 100644 index 0000000..22da421 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/brush.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/controlpointeditor.svg b/toonz/sources/toonz/icons/dark/tools/20/controlpointeditor.svg new file mode 100644 index 0000000..75f39bf --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/controlpointeditor.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/cutter.svg b/toonz/sources/toonz/icons/dark/tools/20/cutter.svg new file mode 100644 index 0000000..4c9c417 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/cutter.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/eraser.svg b/toonz/sources/toonz/icons/dark/tools/20/eraser.svg new file mode 100644 index 0000000..2d930d5 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/eraser.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/fill.svg b/toonz/sources/toonz/icons/dark/tools/20/fill.svg new file mode 100644 index 0000000..596de05 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/fill.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/finger.svg b/toonz/sources/toonz/icons/dark/tools/20/finger.svg new file mode 100644 index 0000000..92a46a3 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/finger.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/geometric.svg b/toonz/sources/toonz/icons/dark/tools/20/geometric.svg new file mode 100644 index 0000000..102b446 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/geometric.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/hand.svg b/toonz/sources/toonz/icons/dark/tools/20/hand.svg new file mode 100644 index 0000000..5152981 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/hand.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/hook.svg b/toonz/sources/toonz/icons/dark/tools/20/hook.svg new file mode 100644 index 0000000..f71c8f5 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/hook.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/iron.svg b/toonz/sources/toonz/icons/dark/tools/20/iron.svg new file mode 100644 index 0000000..4044c00 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/iron.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/magnet.svg b/toonz/sources/toonz/icons/dark/tools/20/magnet.svg new file mode 100644 index 0000000..e363e21 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/magnet.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/paintbrush.svg b/toonz/sources/toonz/icons/dark/tools/20/paintbrush.svg new file mode 100644 index 0000000..b14a0eb --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/paintbrush.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/pinch.svg b/toonz/sources/toonz/icons/dark/tools/20/pinch.svg new file mode 100644 index 0000000..81a8b2f --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/pinch.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/plastic.svg b/toonz/sources/toonz/icons/dark/tools/20/plastic.svg new file mode 100644 index 0000000..5297619 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/plastic.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/pump.svg b/toonz/sources/toonz/icons/dark/tools/20/pump.svg new file mode 100644 index 0000000..a558ec2 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/pump.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/radar.svg b/toonz/sources/toonz/icons/dark/tools/20/radar.svg new file mode 100644 index 0000000..3498a35 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/radar.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/rgbpicker.svg b/toonz/sources/toonz/icons/dark/tools/20/rgbpicker.svg new file mode 100644 index 0000000..6b3cea9 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/rgbpicker.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/rgbpicker_on.svg b/toonz/sources/toonz/icons/dark/tools/20/rgbpicker_on.svg new file mode 100644 index 0000000..da8b921 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/rgbpicker_on.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/rgbpicker_over.svg b/toonz/sources/toonz/icons/dark/tools/20/rgbpicker_over.svg new file mode 100644 index 0000000..da8b921 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/rgbpicker_over.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/rotate.svg b/toonz/sources/toonz/icons/dark/tools/20/rotate.svg new file mode 100644 index 0000000..92c2b33 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/rotate.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/ruler.svg b/toonz/sources/toonz/icons/dark/tools/20/ruler.svg new file mode 100644 index 0000000..54120b5 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/ruler.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/selection.svg b/toonz/sources/toonz/icons/dark/tools/20/selection.svg new file mode 100644 index 0000000..af53212 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/selection.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/skeleton.svg b/toonz/sources/toonz/icons/dark/tools/20/skeleton.svg new file mode 100644 index 0000000..eb1a175 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/skeleton.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/stylepicker.svg b/toonz/sources/toonz/icons/dark/tools/20/stylepicker.svg new file mode 100644 index 0000000..4e83423 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/stylepicker.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/tape.svg b/toonz/sources/toonz/icons/dark/tools/20/tape.svg new file mode 100644 index 0000000..7ba9557 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/tape.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/tracker.svg b/toonz/sources/toonz/icons/dark/tools/20/tracker.svg new file mode 100644 index 0000000..ea28f74 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/tracker.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/type.svg b/toonz/sources/toonz/icons/dark/tools/20/type.svg new file mode 100644 index 0000000..f5fa257 --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/type.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/icons/dark/tools/20/zoom.svg b/toonz/sources/toonz/icons/dark/tools/20/zoom.svg new file mode 100644 index 0000000..c8c510d --- /dev/null +++ b/toonz/sources/toonz/icons/dark/tools/20/zoom.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/light/index.theme b/toonz/sources/toonz/icons/light/index.theme new file mode 100644 index 0000000..03245f7 --- /dev/null +++ b/toonz/sources/toonz/icons/light/index.theme @@ -0,0 +1,66 @@ +[Icon Theme] +Name=light +Comment=a light icon set for use in dark themes +Inherits=dark + +Directories=actions/11,actions/15,actions/16,actions/18,actions/20,actions/30,actions/35,actions/48,actions/60,actions/74,console/20,tools/18,tools/20,devices/20 + +[actions/11] +Size=11 +Type=Scalable + +[actions/15] +Size=15 +Type=Scalable + +[actions/16] +Size=16 +Type=Scalable + +[actions/18] +Size=18 +Type=Scalable + +[actions/20] +Size=20 +Type=Scalable + +[actions/30] +Size=30 +Type=Scalable + +[actions/35] +Size=35 +Type=Scalable + +[actions/48] +Size=48 +Type=Scalable + +[actions/60] +Size=60 +Type=Scalable + +[actions/74] +Size=74 +Type=Scalable + +[console/20] +Size=20 +Type=Scalable + +[tools/18] +Size=18 +Type=Scalabe + +[tools/20] +Size=20 +Type=Scalabe + +[devices/20] +Size=20 +Type=Scalable + +[mimetypes/60] +Size=60 +Type=Scalable diff --git a/toonz/sources/toonz/icons/light/misc/startup.png b/toonz/sources/toonz/icons/light/misc/startup.png new file mode 100644 index 0000000..8a5e602 Binary files /dev/null and b/toonz/sources/toonz/icons/light/misc/startup.png differ diff --git a/toonz/sources/toonz/icons/templates/20x20_tool_command.svg b/toonz/sources/toonz/icons/templates/20x20_tool_command.svg new file mode 100644 index 0000000..a831d65 --- /dev/null +++ b/toonz/sources/toonz/icons/templates/20x20_tool_command.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/toonz/sources/toonz/icons/templates/60x60_mimetype.svg b/toonz/sources/toonz/icons/templates/60x60_mimetype.svg new file mode 100644 index 0000000..08a64a9 --- /dev/null +++ b/toonz/sources/toonz/icons/templates/60x60_mimetype.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/icons/templates/misc_emblems_shapes.svg b/toonz/sources/toonz/icons/templates/misc_emblems_shapes.svg new file mode 100644 index 0000000..54087f2 --- /dev/null +++ b/toonz/sources/toonz/icons/templates/misc_emblems_shapes.svg @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonz/insertfxpopup.cpp b/toonz/sources/toonz/insertfxpopup.cpp index ebacb45..136f847 100644 --- a/toonz/sources/toonz/insertfxpopup.cpp +++ b/toonz/sources/toonz/insertfxpopup.cpp @@ -120,7 +120,7 @@ TFx *createMacroFxByPath(TFilePath path) { std::string inFxOldId = oldPortName; inFxOldId.erase(0, inFxOldId.find_last_of("_") + 1); assert(oldNewId.contains(::to_wstring(inFxOldId))); - std::string inFxNewId = ::to_string(oldNewId[::to_wstring(inFxOldId)]); + std::string inFxNewId = ::to_string(oldNewId[ ::to_wstring(inFxOldId)]); std::string newPortName = oldPortName; newPortName.erase(newPortName.find_last_of("_") + 1, newPortName.size() - 1); @@ -233,24 +233,15 @@ InsertFxPopup::InsertFxPopup() SLOT(onSearchTextChanged(const QString &))); m_fxTree = new FxTree(); - m_fxTree->setIconSize(QSize(21, 17)); + m_fxTree->setIconSize(QSize(21, 18)); m_fxTree->setColumnCount(1); m_fxTree->header()->close(); m_fxTree->setObjectName("FxTreeView"); m_fxTree->setAlternatingRowColors(true); - QString open = QString(":Resources/folder_close.svg"); - QString close = QString(":Resources/folder_open.svg"); - m_folderIcon.addFile(close, QSize(22, 22), QIcon::Normal, QIcon::On); - m_folderIcon.addFile(open, QSize(22, 22), QIcon::Normal, QIcon::Off); - - QString presetOpen = QString(":Resources/folderpreset_close.svg"); - QString presetClose = QString(":Resources/folderpreset_open.svg"); - m_presetIcon.addFile(presetClose, QSize(22, 22), QIcon::Normal, QIcon::On); - m_presetIcon.addFile(presetOpen, QSize(22, 22), QIcon::Normal, QIcon::Off); - - m_fxIcon = QIcon(QString(":Resources/fx.svg")); + m_presetIcon = createQIcon("folder_preset", true); + m_fxIcon = createQIcon("fx"); QList fxItems; @@ -263,7 +254,7 @@ InsertFxPopup::InsertFxPopup() // add 'Plugins' directory auto plugins = new QTreeWidgetItem((QTreeWidget *)NULL, QStringList("Plugins")); - plugins->setIcon(0, m_folderIcon); + plugins->setIcon(0, createQIcon("folder", true)); m_fxTree->addTopLevelItem(plugins); // create vendor / Fx @@ -273,7 +264,7 @@ InsertFxPopup::InsertFxPopup() PluginLoader::create_menu_items( [&](QTreeWidgetItem *firstlevel_item) { plugins->addChild(firstlevel_item); - firstlevel_item->setIcon(0, m_folderIcon); + firstlevel_item->setIcon(0, createQIcon("folder")); }, [&](QTreeWidgetItem *secondlevel_item) { secondlevel_item->setIcon(0, m_fxIcon); @@ -339,7 +330,7 @@ void InsertFxPopup::loadFolder(QTreeWidgetItem *parent) { std::unique_ptr folder( new QTreeWidgetItem((QTreeWidget *)0, QStringList(folderName))); - folder->setIcon(0, m_folderIcon); + folder->setIcon(0, createQIcon("folder", true)); loadFolder(folder.get()); m_is->closeChild(); @@ -422,7 +413,7 @@ void InsertFxPopup::loadMacro() { QTreeWidgetItem *macroFolder = new QTreeWidgetItem((QTreeWidget *)0, QStringList(tr("Macro"))); macroFolder->setData(0, Qt::UserRole, QVariant(toQString(fp))); - macroFolder->setIcon(0, m_folderIcon); + macroFolder->setIcon(0, createQIcon("folder", true)); m_fxTree->addTopLevelItem(macroFolder); for (TFilePathSet::iterator it = macros.begin(); it != macros.end(); ++it) { diff --git a/toonz/sources/toonz/layerfooterpanel.cpp b/toonz/sources/toonz/layerfooterpanel.cpp index 9fd3c25..3c607ee 100644 --- a/toonz/sources/toonz/layerfooterpanel.cpp +++ b/toonz/sources/toonz/layerfooterpanel.cpp @@ -20,196 +20,196 @@ using XsheetGUI::ColumnArea; #if QT_VERSION >= 0x050500 LayerFooterPanel::LayerFooterPanel(XsheetViewer *viewer, QWidget *parent, - Qt::WindowFlags flags) + Qt::WindowFlags flags) #else LayerFooterPanel::LayerFooterPanel(XsheetViewer *viewer, QWidget *parent, - Qt::WFlags flags) + Qt::WFlags flags) #endif - : QWidget(parent, flags), m_viewer(viewer) { - const Orientation *o = Orientations::leftToRight(); - QRect rect = o->rect(PredefinedRect::LAYER_FOOTER_PANEL); + : QWidget(parent, flags), m_viewer(viewer) { + const Orientation *o = Orientations::leftToRight(); + QRect rect = o->rect(PredefinedRect::LAYER_FOOTER_PANEL); - setObjectName("layerFooterPanel"); + setObjectName("layerFooterPanel"); - setFixedSize(rect.size()); - - setMouseTracking(true); + setFixedSize(rect.size()); - m_frameZoomSlider = new QSlider(Qt::Horizontal, this); - m_frameZoomSlider->setMinimum(20); - m_frameZoomSlider->setMaximum(100); - m_frameZoomSlider->setValue(m_viewer->getFrameZoomFactor()); - m_frameZoomSlider->setToolTip(tr("Zoom in/out of timeline")); + setMouseTracking(true); - connect(m_frameZoomSlider, SIGNAL(valueChanged(int)), this, - SLOT(onFrameZoomSliderValueChanged(int))); + m_frameZoomSlider = new QSlider(Qt::Horizontal, this); + m_frameZoomSlider->setMinimum(20); + m_frameZoomSlider->setMaximum(100); + m_frameZoomSlider->setValue(m_viewer->getFrameZoomFactor()); + m_frameZoomSlider->setToolTip(tr("Zoom in/out of timeline")); + + connect(m_frameZoomSlider, SIGNAL(valueChanged(int)), this, + SLOT(onFrameZoomSliderValueChanged(int))); } LayerFooterPanel::~LayerFooterPanel() {} namespace { - QColor mix(const QColor &a, const QColor &b, double w) { - return QColor(a.red() * w + b.red() * (1 - w), - a.green() * w + b.green() * (1 - w), - a.blue() * w + b.blue() * (1 - w)); - } +QColor mix(const QColor &a, const QColor &b, double w) { + return QColor(a.red() * w + b.red() * (1 - w), + a.green() * w + b.green() * (1 - w), + a.blue() * w + b.blue() * (1 - w)); +} - QColor withAlpha(const QColor &color, double alpha) { - QColor result(color); - result.setAlpha(alpha * 255); - return result; - } +QColor withAlpha(const QColor &color, double alpha) { + QColor result(color); + result.setAlpha(alpha * 255); + return result; +} - QRect shorter(const QRect original) { return original.adjusted(0, 2, 0, -2); } +QRect shorter(const QRect original) { return original.adjusted(0, 2, 0, -2); } - QLine leftSide(const QRect &r) { return QLine(r.topLeft(), r.bottomLeft()); } +QLine leftSide(const QRect &r) { return QLine(r.topLeft(), r.bottomLeft()); } - QLine rightSide(const QRect &r) { return QLine(r.topRight(), r.bottomRight()); } +QLine rightSide(const QRect &r) { return QLine(r.topRight(), r.bottomRight()); } } void LayerFooterPanel::paintEvent(QPaintEvent *event) { - QPainter p(this); - p.setRenderHint(QPainter::SmoothPixmapTransform, true); + QPainter p(this); + p.setRenderHint(QPainter::SmoothPixmapTransform, true); - const Orientation *o = Orientations::leftToRight(); + const Orientation *o = Orientations::leftToRight(); - QRect zoomSliderRect = o->rect(PredefinedRect::ZOOM_SLIDER_AREA); - p.fillRect(zoomSliderRect, Qt::NoBrush); + QRect zoomSliderRect = o->rect(PredefinedRect::ZOOM_SLIDER_AREA); + p.fillRect(zoomSliderRect, Qt::NoBrush); - QRect sliderObjRect = o->rect(PredefinedRect::ZOOM_SLIDER); - m_frameZoomSlider->setGeometry(sliderObjRect); + QRect sliderObjRect = o->rect(PredefinedRect::ZOOM_SLIDER); + m_frameZoomSlider->setGeometry(sliderObjRect); - static QPixmap zoomIn = svgToPixmap(":Resources/zoom_in.svg"); - static QPixmap zoomInRollover = svgToPixmap(":Resources/zoom_in_rollover.svg"); - const QRect zoomInImgRect = o->rect(PredefinedRect::ZOOM_IN); + static QPixmap zoomIn = + recolorPixmap(svgToPixmap(getIconThemePath("actions/15/zoom_in.svg"))); + static QPixmap zoomInRollover = recolorPixmap( + svgToPixmap(getIconThemePath("actions/15/zoom_in_rollover.svg"))); + const QRect zoomInImgRect = o->rect(PredefinedRect::ZOOM_IN); - static QPixmap zoomOut = svgToPixmap(":Resources/zoom_out.svg"); - static QPixmap zoomOutRollover = svgToPixmap(":Resources/zoom_out_rollover.svg"); - const QRect zoomOutImgRect = o->rect(PredefinedRect::ZOOM_OUT); + static QPixmap zoomOut = + recolorPixmap(svgToPixmap(getIconThemePath("actions/15/zoom_out.svg"))); + static QPixmap zoomOutRollover = recolorPixmap( + svgToPixmap(getIconThemePath("actions/15/zoom_out_rollover.svg"))); + const QRect zoomOutImgRect = o->rect(PredefinedRect::ZOOM_OUT); - p.setRenderHint(QPainter::SmoothPixmapTransform, true); - if (m_zoomInHighlighted) - p.drawPixmap(zoomInImgRect, zoomInRollover); - else - p.drawPixmap(zoomInImgRect, zoomIn); + p.setRenderHint(QPainter::SmoothPixmapTransform, true); + if (m_zoomInHighlighted) + p.drawPixmap(zoomInImgRect, zoomInRollover); + else + p.drawPixmap(zoomInImgRect, zoomIn); - if (m_zoomOutHighlighted) - p.drawPixmap(zoomOutImgRect, zoomOutRollover); - else - p.drawPixmap(zoomOutImgRect, zoomOut); + if (m_zoomOutHighlighted) + p.drawPixmap(zoomOutImgRect, zoomOutRollover); + else + p.drawPixmap(zoomOutImgRect, zoomOut); - p.setPen(withAlpha(m_viewer->getTextColor(), 0.5)); + p.setPen(m_viewer->getVerticalLineColor()); - QLine line = { leftSide(shorter(zoomOutImgRect)).translated(-2, 0) }; - p.drawLine(line); + QLine line = {leftSide(shorter(zoomOutImgRect)).translated(-2, 0)}; + p.drawLine(line); } void LayerFooterPanel::showOrHide(const Orientation *o) { - QRect rect = o->rect(PredefinedRect::LAYER_FOOTER_PANEL); - if (rect.isEmpty()) - hide(); - else - show(); + QRect rect = o->rect(PredefinedRect::LAYER_FOOTER_PANEL); + if (rect.isEmpty()) + hide(); + else + show(); } //----------------------------------------------------------------------------- void LayerFooterPanel::enterEvent(QEvent *) { - m_zoomInHighlighted = false; - m_zoomOutHighlighted = false; + m_zoomInHighlighted = false; + m_zoomOutHighlighted = false; - update(); + update(); } void LayerFooterPanel::leaveEvent(QEvent *) { - m_zoomInHighlighted = false; - m_zoomOutHighlighted = false; + m_zoomInHighlighted = false; + m_zoomOutHighlighted = false; - update(); + update(); } void LayerFooterPanel::mousePressEvent(QMouseEvent *event) { - const Orientation *o = Orientations::leftToRight(); - - if (event->button() == Qt::LeftButton) { - // get mouse position - QPoint pos = event->pos(); - if (o->rect(PredefinedRect::ZOOM_IN_AREA).contains(pos)) { - int newFactor = isCtrlPressed ? m_frameZoomSlider->maximum() - : m_frameZoomSlider->value() + 10; - m_frameZoomSlider->setValue(newFactor); - } - else if (o->rect(PredefinedRect::ZOOM_OUT_AREA).contains(pos)) { - int newFactor = isCtrlPressed ? m_frameZoomSlider->minimum() - : m_frameZoomSlider->value() - 10; - m_frameZoomSlider->setValue(newFactor); - } - } - - update(); + const Orientation *o = Orientations::leftToRight(); + + if (event->button() == Qt::LeftButton) { + // get mouse position + QPoint pos = event->pos(); + if (o->rect(PredefinedRect::ZOOM_IN_AREA).contains(pos)) { + int newFactor = isCtrlPressed ? m_frameZoomSlider->maximum() + : m_frameZoomSlider->value() + 10; + m_frameZoomSlider->setValue(newFactor); + } else if (o->rect(PredefinedRect::ZOOM_OUT_AREA).contains(pos)) { + int newFactor = isCtrlPressed ? m_frameZoomSlider->minimum() + : m_frameZoomSlider->value() - 10; + m_frameZoomSlider->setValue(newFactor); + } + } + + update(); } void LayerFooterPanel::mouseMoveEvent(QMouseEvent *event) { - const Orientation *o = Orientations::leftToRight(); - - QPoint pos = event->pos(); - - m_zoomInHighlighted = false; - m_zoomOutHighlighted = false; - if (o->rect(PredefinedRect::ZOOM_IN_AREA).contains(pos)) { - m_zoomInHighlighted = true; - m_tooltip = tr("Zoom in (Ctrl-click to zoom in all the way)"); - } - else if (o->rect(PredefinedRect::ZOOM_OUT_AREA) - .contains(pos)) { - m_zoomOutHighlighted = true; - m_tooltip = tr("Zoom out (Ctrl-click to zoom out all the way)"); - } - else { - m_tooltip = tr(""); - } - - m_pos = pos; - - update(); + const Orientation *o = Orientations::leftToRight(); + + QPoint pos = event->pos(); + + m_zoomInHighlighted = false; + m_zoomOutHighlighted = false; + if (o->rect(PredefinedRect::ZOOM_IN_AREA).contains(pos)) { + m_zoomInHighlighted = true; + m_tooltip = tr("Zoom in (Ctrl-click to zoom in all the way)"); + } else if (o->rect(PredefinedRect::ZOOM_OUT_AREA).contains(pos)) { + m_zoomOutHighlighted = true; + m_tooltip = tr("Zoom out (Ctrl-click to zoom out all the way)"); + } else { + m_tooltip = tr(""); + } + + m_pos = pos; + + update(); } //----------------------------------------------------------------------------- bool LayerFooterPanel::event(QEvent *event) { - if (event->type() == QEvent::ToolTip) { - if (!m_tooltip.isEmpty()) - QToolTip::showText(mapToGlobal(m_pos), m_tooltip); - else - QToolTip::hideText(); - } - return QWidget::event(event); + if (event->type() == QEvent::ToolTip) { + if (!m_tooltip.isEmpty()) + QToolTip::showText(mapToGlobal(m_pos), m_tooltip); + else + QToolTip::hideText(); + } + return QWidget::event(event); } //----------------------------------------------------------------------------- void LayerFooterPanel::setZoomSliderValue(int val) { - if (val > m_frameZoomSlider->maximum()) - val = m_frameZoomSlider->maximum(); - else if (val < m_frameZoomSlider->minimum()) - val = m_frameZoomSlider->minimum(); - - m_frameZoomSlider->blockSignals(true); - m_frameZoomSlider->setValue(val); - m_frameZoomSlider->blockSignals(false); + if (val > m_frameZoomSlider->maximum()) + val = m_frameZoomSlider->maximum(); + else if (val < m_frameZoomSlider->minimum()) + val = m_frameZoomSlider->minimum(); + + m_frameZoomSlider->blockSignals(true); + m_frameZoomSlider->setValue(val); + m_frameZoomSlider->blockSignals(false); } //----------------------------------------------------------------------------- void LayerFooterPanel::onFrameZoomSliderValueChanged(int val) { - m_viewer->zoomOnFrame(m_viewer->getCurrentRow(), val); + m_viewer->zoomOnFrame(m_viewer->getCurrentRow(), val); } //----------------------------------------------------------------------------- void LayerFooterPanel::onControlPressed(bool pressed) { - isCtrlPressed = pressed; - update(); + isCtrlPressed = pressed; + update(); } //----------------------------------------------------------------------------- diff --git a/toonz/sources/toonz/layerheaderpanel.cpp b/toonz/sources/toonz/layerheaderpanel.cpp index 53173ca..2612d64 100644 --- a/toonz/sources/toonz/layerheaderpanel.cpp +++ b/toonz/sources/toonz/layerheaderpanel.cpp @@ -27,9 +27,7 @@ LayerHeaderPanel::LayerHeaderPanel(XsheetViewer *viewer, QWidget *parent, QRect rect = o->rect(PredefinedRect::LAYER_HEADER_PANEL); setObjectName("layerHeaderPanel"); - setFixedSize(rect.size()); - setMouseTracking(true); } @@ -62,11 +60,6 @@ void LayerHeaderPanel::paintEvent(QPaintEvent *event) { const Orientation *o = Orientations::leftToRight(); - QColor background = m_viewer->getBGColor(); - QColor slightlyLighter = {mix(background, Qt::white, 0.95)}; - QRect rect = QRect(QPoint(0, 0), size()); - p.fillRect(rect.adjusted(0, 0, -3, 0), slightlyLighter); - QImage preview = (m_buttonHighlighted == PreviewButton ? m_viewer->getLayerHeaderPreviewOverImage() : m_viewer->getLayerHeaderPreviewImage()); @@ -80,22 +73,6 @@ void LayerHeaderPanel::paintEvent(QPaintEvent *event) { drawIcon(p, PredefinedRect::PANEL_EYE, boost::none, preview); drawIcon(p, PredefinedRect::PANEL_PREVIEW_LAYER, boost::none, camstand); drawIcon(p, PredefinedRect::PANEL_LOCK, boost::none, lock); - - QRect numberRect = o->rect(PredefinedRect::LAYER_NUMBER); - - int leftadj = 2; - if (Preferences::instance()->isShowColumnNumbersEnabled()) { - p.drawText(numberRect, Qt::AlignCenter | Qt::TextSingleLine, "#"); - - leftadj += 20; - } - - QRect nameRect = - o->rect(PredefinedRect::PANEL_LAYER_NAME).adjusted(leftadj, 0, -1, 0); - p.drawText(nameRect, Qt::AlignLeft | Qt::AlignVCenter | Qt::TextSingleLine, - QObject::tr("Layer name")); - - drawLines(p, numberRect, nameRect); } void LayerHeaderPanel::drawIcon(QPainter &p, PredefinedRect rect, diff --git a/toonz/sources/toonz/main.cpp b/toonz/sources/toonz/main.cpp index d12ef9a..88bf5bd 100644 --- a/toonz/sources/toonz/main.cpp +++ b/toonz/sources/toonz/main.cpp @@ -415,6 +415,14 @@ int main(int argc, char *argv[]) { } #endif + // Set icon theme search paths + QStringList themeSearchPathsList = {":/icons"}; + QIcon::setThemeSearchPaths(themeSearchPathsList); + // qDebug() << "All icon theme search paths:" << QIcon::themeSearchPaths(); + + // Set show icons in menus flag (use iconVisibleInMenu to disable selectively) + QApplication::instance()->setAttribute(Qt::AA_DontShowIconsInMenus, false); + TEnv::setApplicationFileName(argv[0]); // splash screen @@ -583,6 +591,11 @@ int main(int argc, char *argv[]) { Qt::white); a.processEvents(); + // Set default start icon theme + QIcon::setThemeName(Preferences::instance()->getIconTheme() ? "dark" + : "light"); + // qDebug() << "Icon theme name:" << QIcon::themeName(); + // stile QApplication::setStyle("windows"); diff --git a/toonz/sources/toonz/mainwindow.cpp b/toonz/sources/toonz/mainwindow.cpp index bf84594..79301a2 100644 --- a/toonz/sources/toonz/mainwindow.cpp +++ b/toonz/sources/toonz/mainwindow.cpp @@ -1297,7 +1297,7 @@ void MainWindow::onMenuCheckboxChanged() { FieldGuideToggleAction = isChecked; else if (cm->getAction(MI_RasterizePli) == action) { if (!QGLPixelBuffer::hasOpenGLPbuffers()) isChecked = 0; - RasterizePliToggleAction = isChecked; + RasterizePliToggleAction = isChecked; } else if (cm->getAction(MI_SafeArea) == action) SafeAreaToggleAction = isChecked; else if (cm->getAction(MI_ViewColorcard) == action) @@ -1449,6 +1449,7 @@ QAction *MainWindow::createAction(const char *id, const QString &name, const QString &defaultShortcut, CommandType type) { QAction *action = new DVAction(name, this); + action->setIconVisibleInMenu(false); // Hide icons addAction(action); #ifdef MACOSX // To prevent the wrong menu items (due to MacOS menu naming conventions), @@ -1633,15 +1634,11 @@ QAction *MainWindow::createToggle(const char *id, const QString &name, QAction *MainWindow::createToolAction(const char *id, const char *iconName, const QString &name, const QString &defaultShortcut) { - QString normalResource = QString(":Resources/") + iconName + ".svg"; - QString overResource = QString(":Resources/") + iconName + "_rollover.svg"; - QIcon icon; - icon.addFile(normalResource, QSize(), QIcon::Normal, QIcon::Off); - icon.addFile(overResource, QSize(), QIcon::Normal, QIcon::On); - icon.addFile(overResource, QSize(), QIcon::Active); + QIcon icon = createQIcon(iconName); QAction *action = new DVAction(icon, name, this); action->setCheckable(true); action->setActionGroup(m_toolsActionGroup); + action->setIconVisibleInMenu(true); // When the viewer is maximized (not fullscreen) the toolbar is hided and the // action are disabled, @@ -1657,19 +1654,27 @@ QAction *MainWindow::createToolAction(const char *id, const char *iconName, //----------------------------------------------------------------------------- void MainWindow::defineActions() { - createMenuFileAction(MI_NewScene, tr("&New Scene"), "Ctrl+N"); - createMenuFileAction(MI_LoadScene, tr("&Load Scene..."), "Ctrl+L"); - createMenuFileAction(MI_SaveScene, tr("&Save Scene"), "Ctrl+Shift+S"); - createMenuFileAction(MI_SaveSceneAs, tr("&Save Scene As..."), ""); - createMenuFileAction(MI_SaveAll, tr("&Save All"), "Ctrl+S"); - createMenuFileAction(MI_RevertScene, tr("&Revert Scene"), ""); + QAction *menuAct = + createMenuFileAction(MI_NewScene, tr("&New Scene"), "Ctrl+N"); + menuAct->setIcon(createQIcon("new_scene")); + menuAct = createMenuFileAction(MI_LoadScene, tr("&Load Scene..."), "Ctrl+L"); + menuAct->setIcon(createQIcon("load_scene")); + menuAct = + createMenuFileAction(MI_SaveScene, tr("&Save Scene"), "Ctrl+Shift+S"); + menuAct->setIcon(createQIcon("save_scene")); + menuAct = createMenuFileAction(MI_SaveSceneAs, tr("&Save Scene As..."), ""); + menuAct->setIcon(createQIcon("save_scene_as")); + menuAct = createMenuFileAction(MI_SaveAll, tr("&Save All"), "Ctrl+S"); + menuAct->setIconText(tr("Save All")); + menuAct->setIcon(createQIcon("saveall")); + menuAct = createMenuFileAction(MI_RevertScene, tr("&Revert Scene"), ""); + menuAct->setIcon(createQIcon("revert_scene")); QAction *act = CommandManager::instance()->getAction(MI_RevertScene); if (act) act->setEnabled(false); - QList files; - - createMenuFileAction(MI_LoadFolder, tr("&Load Folder..."), ""); + menuAct = createMenuFileAction(MI_LoadFolder, tr("&Load Folder..."), ""); + menuAct->setIcon(createQIcon("load_folder")); createMenuFileAction(MI_LoadSubSceneFile, tr("&Load As Sub-xsheet..."), ""); createMenuAction(MI_OpenRecentScene, tr("&Open Recent Scene File"), files); createMenuAction(MI_OpenRecentLevel, tr("&Open Recent Level File"), files); @@ -1677,47 +1682,59 @@ void MainWindow::defineActions() { ""); createMenuFileAction(MI_ClearRecentLevel, tr("&Clear Recent level File List"), ""); - createMenuLevelAction(MI_NewLevel, tr("&New Level..."), "Alt+N"); - QAction *newVectorLevelAction = + menuAct = createMenuLevelAction(MI_NewLevel, tr("&New Level..."), "Alt+N"); + menuAct->setIcon(createQIcon("new_document")); + menuAct = createMenuLevelAction(MI_NewVectorLevel, tr("&New Vector Level"), ""); - newVectorLevelAction->setIconText(tr("New Vector Level")); - newVectorLevelAction->setIcon(QIcon(":Resources/new_vector_level.svg")); - QAction *newToonzRasterLevelAction = createMenuLevelAction( - MI_NewToonzRasterLevel, tr("&New Toonz Raster Level"), ""); - newToonzRasterLevelAction->setIconText(tr("New Toonz Raster Level")); - newToonzRasterLevelAction->setIcon( - QIcon(":Resources/new_toonz_raster_level.svg")); - QAction *newRasterLevelAction = + menuAct->setIcon(createQIcon("new_vector_level")); + menuAct = createMenuLevelAction(MI_NewToonzRasterLevel, + tr("&New Toonz Raster Level"), ""); + menuAct->setIcon(createQIcon("new_toonz_raster_level")); + menuAct = createMenuLevelAction(MI_NewRasterLevel, tr("&New Raster Level"), ""); - newRasterLevelAction->setIconText(tr("New Raster Level")); - newRasterLevelAction->setIcon(QIcon(":Resources/new_raster_level.svg")); - QAction *loadLevelAction = - createMenuLevelAction(MI_LoadLevel, tr("&Load Level..."), ""); - loadLevelAction->setIcon(QIcon(":Resources/load_level.svg")); - createMenuLevelAction(MI_SaveLevel, tr("&Save Level"), ""); - createMenuLevelAction(MI_SaveAllLevels, tr("&Save All Levels"), ""); - createMenuLevelAction(MI_SaveLevelAs, tr("&Save Level As..."), ""); - createMenuLevelAction(MI_ExportLevel, tr("&Export Level..."), ""); - createMenuFileAction(MI_ConvertFileWithInput, tr("&Convert File..."), ""); + menuAct->setIcon(createQIcon("new_raster_level")); + menuAct = createMenuLevelAction(MI_LoadLevel, tr("&Load Level..."), ""); + menuAct->setIcon(createQIcon("load_level")); + menuAct = createMenuLevelAction(MI_SaveLevel, tr("&Save Level"), ""); + menuAct->setIcon(createQIcon("save_level")); + menuAct = createMenuLevelAction(MI_SaveAllLevels, tr("&Save All Levels"), ""); + menuAct->setIcon(createQIcon("save_all_levels")); + menuAct = createMenuLevelAction(MI_SaveLevelAs, tr("&Save Level As..."), ""); + menuAct->setIcon(createQIcon("save_level_as")); + menuAct = createMenuLevelAction(MI_ExportLevel, tr("&Export Level..."), ""); + menuAct->setIcon(createQIcon("export_level")); + menuAct = + createMenuFileAction(MI_ConvertFileWithInput, tr("&Convert File..."), ""); + menuAct->setIcon(createQIcon("convert")); createRightClickMenuAction(MI_SavePaletteAs, tr("&Save Palette As..."), ""); createRightClickMenuAction(MI_OverwritePalette, tr("&Save Palette"), ""); - createMenuFileAction(MI_LoadColorModel, tr("&Load Color Model..."), ""); + menuAct = + createMenuFileAction(MI_LoadColorModel, tr("&Load Color Model..."), ""); + menuAct->setIcon(createQIcon("load_colormodel")); createMenuFileAction(MI_ImportMagpieFile, tr("&Import Toonz Lip Sync File..."), ""); createMenuFileAction(MI_NewProject, tr("&New Project..."), ""); createMenuFileAction(MI_ProjectSettings, tr("&Project Settings..."), ""); createMenuFileAction(MI_SaveDefaultSettings, tr("&Save Default Settings"), ""); - createMenuRenderAction(MI_OutputSettings, tr("&Output Settings..."), - "Ctrl+O"); - createMenuRenderAction(MI_PreviewSettings, tr("&Preview Settings..."), ""); - createMenuRenderAction(MI_Render, tr("&Render"), "Ctrl+Shift+R"); - createMenuRenderAction(MI_FastRender, tr("&Fast Render to MP4"), "Alt+R"); - createMenuRenderAction(MI_Preview, tr("&Preview"), "Ctrl+R"); + menuAct = createMenuRenderAction(MI_OutputSettings, tr("&Output Settings..."), + "Ctrl+O"); + menuAct->setIcon(createQIcon("output_settings")); + menuAct = createMenuRenderAction(MI_PreviewSettings, + tr("&Preview Settings..."), ""); + menuAct->setIcon(createQIcon("preview_settings")); + menuAct = createMenuRenderAction(MI_Render, tr("&Render"), "Ctrl+Shift+R"); + menuAct->setIcon(createQIcon("render")); + menuAct = + createMenuRenderAction(MI_FastRender, tr("&Fast Render to MP4"), "Alt+R"); + menuAct->setIcon(createQIcon("fast_render_mp4")); + menuAct = createMenuRenderAction(MI_Preview, tr("&Preview"), "Ctrl+R"); + menuAct->setIcon(createQIcon("preview")); createMenuFileAction(MI_SoundTrack, tr("&Export Soundtrack"), ""); - createMenuRenderAction(MI_SavePreviewedFrames, tr("&Save Previewed Frames"), - ""); + menuAct = createMenuRenderAction(MI_SavePreviewedFrames, + tr("&Save Previewed Frames"), ""); + menuAct->setIcon(createQIcon("save_previewed_frames")); createRightClickMenuAction(MI_RegeneratePreview, tr("&Regenerate Preview"), ""); createRightClickMenuAction(MI_RegenerateFramePr, @@ -1729,17 +1746,28 @@ void MainWindow::defineActions() { MI_FreezePreview, tr("Freeze Preview"), tr("Unfreeze Preview")); // createAction(MI_SavePreview, "&Save Preview", ""); createRightClickMenuAction(MI_SavePreset, tr("&Save As Preset"), ""); - QAction *preferencesAction = + menuAct = createMenuFileAction(MI_Preferences, tr("&Preferences..."), "Ctrl+U"); - preferencesAction->setIcon(QIcon(":Resources/preferences.svg")); + menuAct->setIcon(createQIcon("gear")); createMenuFileAction(MI_ShortcutPopup, tr("&Configure Shortcuts..."), ""); - createMenuFileAction(MI_PrintXsheet, tr("&Print Xsheet"), ""); + + menuAct = createMenuFileAction(MI_PrintXsheet, tr("&Print Xsheet"), ""); + menuAct->setIcon(createQIcon("printer")); + createMenuFileAction(MI_ExportXDTS, tr("Export Exchange Digital Time Sheet (XDTS)"), ""); - createMenuFileAction("MI_RunScript", tr("Run Script..."), ""); - createMenuFileAction("MI_OpenScriptConsole", tr("Open Script Console..."), - ""); - createMenuFileAction(MI_Print, tr("&Print Current Frame..."), "Ctrl+P"); + + menuAct = createMenuFileAction("MI_RunScript", tr("Run Script..."), ""); + menuAct->setIcon(createQIcon("run_script")); + + menuAct = createMenuFileAction("MI_OpenScriptConsole", + tr("Open Script Console..."), ""); + menuAct->setIcon(createQIcon("console")); + + menuAct = + createMenuFileAction(MI_Print, tr("&Print Current Frame..."), "Ctrl+P"); + menuAct->setIcon(createQIcon("printer")); + createMenuFileAction(MI_Quit, tr("&Quit"), "Ctrl+Q"); #ifndef NDEBUG createMenuFileAction("MI_ReloadStyle", tr("Reload qss"), ""); @@ -1751,21 +1779,34 @@ void MainWindow::defineActions() { createRightClickMenuAction(MI_PreviewFx, tr("Preview Fx"), ""); - createMenuEditAction(MI_SelectAll, tr("&Select All"), "Ctrl+A"); - createMenuEditAction(MI_InvertSelection, tr("&Invert Selection"), ""); - QAction *undoAction = createMenuEditAction(MI_Undo, tr("&Undo"), "Ctrl+Z"); - undoAction->setIcon(QIcon(":Resources/undo.svg")); - QAction *redoAction = createMenuEditAction(MI_Redo, tr("&Redo"), "Ctrl+Y"); - redoAction->setIcon(QIcon(":Resources/redo.svg")); - createMenuEditAction(MI_Cut, tr("&Cut"), "Ctrl+X"); - createMenuEditAction(MI_Copy, tr("&Copy"), "Ctrl+C"); - createMenuEditAction(MI_Paste, tr("&Paste Insert"), "Ctrl+V"); - createMenuEditAction(MI_PasteAbove, tr("&Paste Insert Above/After"), - "Ctrl+Shift+V"); - // createMenuEditAction(MI_PasteNew, tr("&Paste New"), ""); - createMenuCellsAction(MI_MergeFrames, tr("&Merge"), ""); - createMenuEditAction(MI_PasteInto, tr("&Paste Into"), ""); - createMenuEditAction(MI_PasteDuplicate, tr("&Paste as a Copy"), ""); + menuAct = createMenuEditAction(MI_SelectAll, tr("&Select All"), "Ctrl+A"); + menuAct->setIcon(createQIcon("select_all")); + + menuAct = + createMenuEditAction(MI_InvertSelection, tr("&Invert Selection"), ""); + menuAct->setIcon(createQIcon("invert_selection")); + + menuAct = createMenuEditAction(MI_Undo, tr("&Undo"), "Ctrl+Z"); + menuAct->setIcon(createQIcon("undo")); + + menuAct = createMenuEditAction(MI_Redo, tr("&Redo"), "Ctrl+Y"); + menuAct->setIcon(createQIcon("redo")); + + menuAct = createMenuEditAction(MI_Cut, tr("&Cut"), "Ctrl+X"); + menuAct->setIcon(createQIcon("cut")); + + menuAct = createMenuEditAction(MI_Copy, tr("&Copy"), "Ctrl+C"); + menuAct->setIcon(createQIcon("content_copy")); + + menuAct = createMenuEditAction(MI_Paste, tr("&Paste Insert"), "Ctrl+V"); + menuAct->setIcon(createQIcon("paste")); + menuAct = createMenuEditAction(MI_PasteAbove, tr("&Paste Insert Above/After"), + "Ctrl+Shift+V"); + menuAct->setIcon(createQIcon("paste_above_after")); + menuAct = createMenuEditAction(MI_PasteDuplicate, tr("&Paste as a Copy"), ""); + menuAct->setIcon(createQIcon("paste_duplicate")); + menuAct = createMenuEditAction(MI_PasteInto, tr("&Paste Into"), ""); + menuAct->setIcon(createQIcon("paste_into")); createRightClickMenuAction(MI_PasteValues, tr("&Paste Color && Name"), ""); createRightClickMenuAction(MI_PasteColors, tr("Paste Color"), ""); createRightClickMenuAction(MI_PasteNames, tr("Paste Name"), ""); @@ -1775,31 +1816,59 @@ void MainWindow::defineActions() { tr("Toggle Link to Studio Palette"), ""); createRightClickMenuAction(MI_RemoveReferenceToStudioPalette, tr("Remove Reference to Studio Palette"), ""); - createMenuEditAction(MI_Clear, tr("&Delete"), "Del"); - createMenuEditAction(MI_Insert, tr("&Insert"), "Ins"); - createMenuEditAction(MI_InsertAbove, tr("&Insert Above/After"), "Shift+Ins"); - createMenuEditAction(MI_Group, tr("&Group"), "Ctrl+G"); - createMenuEditAction(MI_Ungroup, tr("&Ungroup"), "Ctrl+Shift+G"); - createMenuEditAction(MI_BringToFront, tr("&Bring to Front"), "Ctrl+]"); - createMenuEditAction(MI_BringForward, tr("&Bring Forward"), "]"); - createMenuEditAction(MI_SendBack, tr("&Send to Back"), "Ctrl+["); - createMenuEditAction(MI_SendBackward, tr("&Send Backward"), "["); - createMenuEditAction(MI_EnterGroup, tr("&Enter Group"), ""); - createMenuEditAction(MI_ExitGroup, tr("&Exit Group"), ""); - createMenuLevelAction(MI_RemoveEndpoints, tr("&Remove Vector Overflow"), ""); - QAction *touchToggle = + // createMenuEditAction(MI_PasteNew, tr("&Paste New"), ""); + createMenuCellsAction(MI_MergeFrames, tr("&Merge"), ""); + + menuAct = createMenuEditAction(MI_Clear, tr("&Delete"), "Del"); + menuAct->setIcon(createQIcon("delete")); + menuAct = createMenuEditAction(MI_Insert, tr("&Insert"), "Ins"); + menuAct->setIcon(createQIcon("insert")); + menuAct = createMenuEditAction(MI_InsertAbove, tr("&Insert Above/After"), + "Shift+Ins"); + menuAct->setIcon(createQIcon("insert_above_after")); + menuAct = createMenuEditAction(MI_Group, tr("&Group"), "Ctrl+G"); + menuAct->setIcon(createQIcon("group")); + menuAct = createMenuEditAction(MI_Ungroup, tr("&Ungroup"), "Ctrl+Shift+G"); + menuAct->setIcon(createQIcon("ungroup")); + menuAct = createMenuEditAction(MI_EnterGroup, tr("&Enter Group"), ""); + menuAct->setIcon(createQIcon("enter_group")); + menuAct = createMenuEditAction(MI_ExitGroup, tr("&Exit Group"), ""); + menuAct->setIcon(createQIcon("leave_group")); + + menuAct = createMenuEditAction(MI_SendBack, tr("&Move to Back"), "Ctrl+["); + menuAct->setIcon(createQIcon("move_to_back")); + menuAct = createMenuEditAction(MI_SendBackward, tr("&Move Back One"), "["); + menuAct->setIcon(createQIcon("move_back_one")); + menuAct = createMenuEditAction(MI_BringForward, tr("&Move Forward One"), "]"); + menuAct->setIcon(createQIcon("move_forward_one")); + menuAct = + createMenuEditAction(MI_BringToFront, tr("&Move to Front"), "Ctrl+]"); + menuAct->setIcon(createQIcon("move_to_front")); + + menuAct = createMenuLevelAction(MI_RemoveEndpoints, + tr("&Remove Vector Overflow"), ""); + menuAct->setIcon(createQIcon("remove_vector_overflow")); + QAction *toggle = createToggle(MI_TouchGestureControl, tr("&Touch Gesture Control"), "", TouchGestureControl ? 1 : 0, MiscCommandType); - touchToggle->setEnabled(true); - touchToggle->setIcon(QIcon(":Resources/touch.svg")); - - createMenuScanCleanupAction(MI_DefineScanner, tr("&Define Scanner..."), ""); - createMenuScanCleanupAction(MI_ScanSettings, tr("&Scan Settings..."), ""); - createMenuScanCleanupAction(MI_Scan, tr("&Scan"), ""); - createMenuScanCleanupAction(MI_Autocenter, tr("&Autocenter..."), ""); - - QAction *toggle = createToggle(MI_SetScanCropbox, tr("&Set Cropbox"), "", 0, - MenuScanCleanupCommandType); + toggle->setEnabled(true); + toggle->setIcon(QIcon(":Resources/touch.svg")); + + menuAct = createMenuScanCleanupAction(MI_DefineScanner, + tr("&Define Scanner..."), ""); + menuAct->setIcon(createQIcon("scanner_settings")); + menuAct = + createMenuScanCleanupAction(MI_ScanSettings, tr("&Scan Settings..."), ""); + menuAct->setIcon(createQIcon("scanner_settings")); + + menuAct = createMenuScanCleanupAction(MI_Scan, tr("&Scan"), ""); + menuAct->setIcon(createQIcon("scanner")); + menuAct = + createMenuScanCleanupAction(MI_Autocenter, tr("&Autocenter..."), ""); + menuAct->setIcon(createQIcon("autocenter")); + + toggle = createToggle(MI_SetScanCropbox, tr("&Set Cropbox"), "", 0, + MenuScanCleanupCommandType); if (toggle) { SetScanCropboxCheck::instance()->setToggle(toggle); QString scannerType = QSettings().value("CurrentScannerType").toString(); @@ -1808,134 +1877,189 @@ void MainWindow::defineActions() { tr("&Reset Cropbox"), ""); if (scannerType == "TWAIN") toggle->setDisabled(true); } - - createMenuScanCleanupAction(MI_CleanupSettings, tr("&Cleanup Settings..."), - ""); - + QAction *cleanupSettingsAction = createMenuScanCleanupAction( + MI_CleanupSettings, tr("&Cleanup Settings..."), ""); + cleanupSettingsAction->setIcon(createQIcon("cleanup_settings")); toggle = createToggle(MI_CleanupPreview, tr("&Preview Cleanup"), "", 0, MenuScanCleanupCommandType); + toggle->setIcon(createQIcon("cleanup_preview")); CleanupPreviewCheck::instance()->setToggle(toggle); toggle = createToggle(MI_CameraTest, tr("&Camera Test"), "", 0, MenuScanCleanupCommandType); CameraTestCheck::instance()->setToggle(toggle); - createToggle(MI_OpacityCheck, tr("&Opacity Check"), "Alt+1", false, - MenuScanCleanupCommandType); - - createMenuScanCleanupAction(MI_Cleanup, tr("&Cleanup"), ""); - - createMenuScanCleanupAction(MI_PencilTest, tr("&Camera Capture..."), ""); - - createMenuLevelAction(MI_AddFrames, tr("&Add Frames..."), ""); - createMenuLevelAction(MI_Renumber, tr("&Renumber..."), ""); - createMenuLevelAction(MI_ReplaceLevel, tr("&Replace Level..."), ""); - createMenuLevelAction(MI_RevertToCleanedUp, tr("&Revert to Cleaned Up"), ""); - createMenuLevelAction(MI_RevertToLastSaved, tr("&Reload"), ""); + menuAct = createToggle(MI_OpacityCheck, tr("&Opacity Check"), "Alt+1", false, + MenuScanCleanupCommandType); + menuAct->setIcon(createQIcon("opacity_check")); + + menuAct = createMenuScanCleanupAction(MI_Cleanup, tr("&Cleanup"), ""); + menuAct->setIcon(createQIcon("cleanup")); + + menuAct = + createMenuScanCleanupAction(MI_PencilTest, tr("&Camera Capture..."), ""); + menuAct->setIcon(createQIcon("camera_capture")); + + menuAct = createMenuLevelAction(MI_AddFrames, tr("&Add Frames..."), ""); + menuAct->setIcon(createQIcon("add_cells")); + + menuAct = createMenuLevelAction(MI_Renumber, tr("&Renumber..."), ""); + menuAct->setIcon(createQIcon("renumber")); + menuAct = createMenuLevelAction(MI_ReplaceLevel, tr("&Replace Level..."), ""); + menuAct->setIcon(createQIcon("replace_level")); + menuAct = createMenuLevelAction(MI_RevertToCleanedUp, + tr("&Revert to Cleaned Up"), ""); + menuAct->setIcon(createQIcon("revert_level_to_cleanup")); + menuAct = createMenuLevelAction(MI_RevertToLastSaved, tr("&Reload"), ""); + menuAct->setIcon(createQIcon("reload_level")); createMenuLevelAction(MI_ExposeResource, tr("&Expose in Xsheet"), ""); createMenuLevelAction(MI_EditLevel, tr("&Display in Level Strip"), ""); - createMenuLevelAction(MI_LevelSettings, tr("&Level Settings..."), ""); - createMenuLevelAction(MI_AdjustLevels, tr("Adjust Levels..."), ""); - createMenuLevelAction(MI_AdjustThickness, tr("Adjust Thickness..."), ""); - createMenuLevelAction(MI_Antialias, tr("&Antialias..."), ""); - createMenuLevelAction(MI_Binarize, tr("&Binarize..."), ""); - createMenuLevelAction(MI_BrightnessAndContrast, - tr("&Brightness and Contrast..."), ""); - createMenuLevelAction(MI_LinesFade, tr("&Color Fade..."), ""); - QAction *action = - createMenuLevelAction(MI_CanvasSize, tr("&Canvas Size..."), ""); - if (action) action->setDisabled(true); - action->setIcon(QIcon(":Resources/canvas.svg")); - createMenuLevelAction(MI_FileInfo, tr("&Info..."), ""); + menuAct = + createMenuLevelAction(MI_LevelSettings, tr("&Level Settings..."), ""); + menuAct->setIcon(createQIcon("level_settings")); + menuAct = createMenuLevelAction(MI_AdjustLevels, tr("Adjust Levels..."), ""); + menuAct->setIcon(createQIcon("histograms")); + menuAct = + createMenuLevelAction(MI_AdjustThickness, tr("Adjust Thickness..."), ""); + menuAct->setIcon(createQIcon("thickness")); + menuAct = createMenuLevelAction(MI_Antialias, tr("&Antialias..."), ""); + menuAct->setIcon(createQIcon("antialias")); + menuAct = createMenuLevelAction(MI_Binarize, tr("&Binarize..."), ""); + menuAct->setIcon(createQIcon("binarize")); + menuAct = createMenuLevelAction(MI_BrightnessAndContrast, + tr("&Brightness and Contrast..."), ""); + menuAct->setIcon(createQIcon("brightness_contrast")); + menuAct = createMenuLevelAction(MI_LinesFade, tr("&Color Fade..."), ""); + menuAct->setIcon(createQIcon("colorfade")); + + menuAct = createMenuLevelAction(MI_CanvasSize, tr("&Canvas Size..."), ""); + if (menuAct) menuAct->setDisabled(true); + menuAct->setIcon(createQIcon("resize")); + + menuAct = createMenuLevelAction(MI_FileInfo, tr("&Info..."), ""); + menuAct->setIcon(createQIcon("level_info")); createRightClickMenuAction(MI_ViewFile, tr("&View..."), ""); - createMenuLevelAction(MI_RemoveUnused, tr("&Remove All Unused Levels"), ""); + menuAct = createMenuLevelAction(MI_RemoveUnused, + tr("&Remove All Unused Levels"), ""); + menuAct->setIcon(createQIcon("remove_unused_levels")); createMenuLevelAction(MI_ReplaceParentDirectory, tr("&Replace Parent Directory..."), ""); - - createMenuXsheetAction(MI_SceneSettings, tr("&Scene Settings..."), ""); - createMenuXsheetAction(MI_CameraSettings, tr("&Camera Settings..."), ""); + menuAct = + createMenuXsheetAction(MI_SceneSettings, tr("&Scene Settings..."), ""); + menuAct->setIcon(createQIcon("scene_settings")); + menuAct = + createMenuXsheetAction(MI_CameraSettings, tr("&Camera Settings..."), ""); + menuAct->setIcon(createQIcon("camera_settings")); createMiscAction(MI_CameraStage, tr("&Camera Settings..."), ""); - QAction *openChildAction = - createMenuXsheetAction(MI_OpenChild, tr("&Open Sub-xsheet"), ""); - openChildAction->setIconText("Open Sub-XSheet"); - openChildAction->setIcon(QIcon(":Resources/sub_enter.svg")); - - QAction *closeChildAction = - createMenuXsheetAction(MI_CloseChild, tr("&Close Sub-xsheet"), ""); - closeChildAction->setIconText("Close Sub-XSheet"); - closeChildAction->setIcon(QIcon(":Resources/sub_leave.svg")); - - createMenuXsheetAction(MI_ExplodeChild, tr("Explode Sub-xsheet"), ""); - - QAction *collapseAction = - createMenuXsheetAction(MI_Collapse, tr("Collapse"), ""); - collapseAction->setIconText("Collapse"); - collapseAction->setIcon(QIcon(":Resources/collapse.svg")); - + menuAct = createMenuXsheetAction(MI_OpenChild, tr("&Open Sub-Xsheet"), ""); + menuAct->setIcon(createQIcon("sub_enter")); + menuAct = createMenuXsheetAction(MI_CloseChild, tr("&Close Sub-Xsheet"), ""); + menuAct->setIcon(createQIcon("sub_leave")); + menuAct = + createMenuXsheetAction(MI_ExplodeChild, tr("Explode Sub-Xsheet"), ""); + menuAct->setIcon(createQIcon("sub_explode")); + menuAct = createMenuXsheetAction(MI_Collapse, tr("Collapse"), ""); + menuAct->setIcon(createQIcon("sub_collapse")); toggle = createToggle(MI_ToggleEditInPlace, tr("&Toggle Edit In Place"), "", EditInPlaceToggleAction ? 1 : 0, MenuXsheetCommandType); toggle->setIconText(tr("Toggle Edit in Place")); - toggle->setIcon(QIcon(":Resources/edit_in_place.svg")); - - createMenuXsheetAction(MI_SaveSubxsheetAs, tr("&Save Sub-xsheet As..."), ""); - createMenuXsheetAction(MI_Resequence, tr("Resequence"), ""); - QAction *cloneAction = - createMenuXsheetAction(MI_CloneChild, tr("Clone Sub-xsheet"), ""); - cloneAction->setIcon(QIcon(":Resources/clone.svg")); - createMenuXsheetAction(MI_ApplyMatchLines, tr("&Apply Match Lines..."), ""); - createMenuXsheetAction(MI_MergeCmapped, tr("&Merge Tlv Levels..."), ""); - createMenuXsheetAction(MI_DeleteMatchLines, tr("&Delete Match Lines"), ""); - createMenuXsheetAction(MI_DeleteInk, tr("&Delete Lines..."), ""); - QAction *mergeLevelsAction = - createMenuXsheetAction(MI_MergeColumns, tr("&Merge Levels"), ""); - mergeLevelsAction->setIcon(QIcon(":Resources/merge.svg")); - createMenuXsheetAction(MI_InsertFx, tr("&New FX..."), "Ctrl+F"); - QAction *newOutputAction = - createMenuXsheetAction(MI_NewOutputFx, tr("&New Output"), "Alt+O"); - newOutputAction->setIcon(createQIconOnOff("output", false)); - - createMenuXsheetAction(MI_InsertSceneFrame, tr("Insert Frame"), ""); - createMenuXsheetAction(MI_RemoveSceneFrame, tr("Remove Frame"), ""); - createMenuXsheetAction(MI_InsertGlobalKeyframe, tr("Insert Multiple Keys"), - ""); - createMenuXsheetAction(MI_RemoveGlobalKeyframe, tr("Remove Multiple Keys"), - ""); - createMenuLevelAction(MI_NewNoteLevel, tr("New Note Level"), ""); - createMenuXsheetAction(MI_RemoveEmptyColumns, tr("Remove Empty Columns"), ""); + toggle->setIcon(createQIcon("sub_edit_in_place")); + menuAct = createMenuXsheetAction(MI_SaveSubxsheetAs, + tr("&Save Sub-Xsheet As..."), ""); + menuAct->setIcon(createQIcon("saveas")); + menuAct = createMenuXsheetAction(MI_Resequence, tr("Resequence"), ""); + menuAct->setIcon(createQIcon("resequence")); + menuAct = createMenuXsheetAction(MI_CloneChild, tr("Clone Sub-Xsheet"), ""); + menuAct->setIcon(createQIcon("sub_clone")); + + menuAct = createMenuXsheetAction(MI_ApplyMatchLines, + tr("&Apply Match Lines..."), ""); + menuAct->setIcon(createQIcon("apply_match_lines")); + menuAct = + createMenuXsheetAction(MI_MergeCmapped, tr("&Merge Tlv Levels..."), ""); + menuAct->setIcon(createQIcon("merge_levels_tlv")); + menuAct = createMenuXsheetAction(MI_DeleteMatchLines, + tr("&Delete Match Lines"), ""); + menuAct->setIcon(createQIcon("delete_match_lines")); + menuAct = createMenuXsheetAction(MI_DeleteInk, tr("&Delete Lines..."), ""); + menuAct->setIcon(createQIcon("delete_lines")); + + menuAct = createMenuXsheetAction(MI_MergeColumns, tr("&Merge Levels"), ""); + menuAct->setIcon(createQIcon("merge_levels")); + + menuAct = createMenuXsheetAction(MI_InsertFx, tr("&New FX..."), "Ctrl+F"); + menuAct->setIcon(createQIcon("fx_new")); + + menuAct = createMenuXsheetAction(MI_NewOutputFx, tr("&New Output"), "Alt+O"); + menuAct->setIcon(createQIcon("output")); + + menuAct = createMenuXsheetAction(MI_InsertSceneFrame, tr("Insert Frame"), ""); + menuAct->setIcon(createQIcon("insert_frame")); + + menuAct = createMenuXsheetAction(MI_RemoveSceneFrame, tr("Remove Frame"), ""); + menuAct->setIcon(createQIcon("remove_frame")); + + menuAct = createMenuXsheetAction(MI_InsertGlobalKeyframe, + tr("Insert Multiple Keys"), ""); + menuAct->setIcon(createQIcon("insert_multiple_keys")); + + menuAct = createMenuXsheetAction(MI_RemoveGlobalKeyframe, + tr("Remove Multiple Keys"), ""); + menuAct->setIcon(createQIcon("remove_multiple_keys")); + + menuAct = createMenuLevelAction(MI_NewNoteLevel, tr("New Note Level"), ""); + menuAct->setIcon(createQIcon("new_note_level")); + + menuAct = createMenuXsheetAction(MI_RemoveEmptyColumns, + tr("Remove Empty Columns"), ""); + menuAct->setIcon(createQIcon("clear")); createMenuXsheetAction(MI_LipSyncPopup, tr("&Apply Lip Sync Data to Column"), "Alt+L"); createRightClickMenuAction(MI_ToggleXSheetToolbar, tr("Toggle XSheet Toolbar"), ""); createRightClickMenuAction(MI_ToggleXsheetCameraColumn, tr("Show/Hide Xsheet Camera Column"), ""); - createMenuCellsAction(MI_Reverse, tr("&Reverse"), ""); - createMenuCellsAction(MI_Swing, tr("&Swing"), ""); - createMenuCellsAction(MI_Random, tr("&Random"), ""); - createMenuCellsAction(MI_Increment, tr("&Autoexpose"), ""); - - QAction *repeatAction = createMenuCellsAction(MI_Dup, tr("&Repeat..."), ""); - repeatAction->setIconText("Repeat"); - repeatAction->setIcon(QIcon(":Resources/repeat_icon.svg")); + menuAct = createMenuCellsAction(MI_Reverse, tr("&Reverse"), ""); + menuAct->setIcon(createQIcon("reverse")); + menuAct = createMenuCellsAction(MI_Swing, tr("&Swing"), ""); + menuAct->setIcon(createQIcon("swing")); + menuAct = createMenuCellsAction(MI_Random, tr("&Random"), ""); + menuAct->setIcon(createQIcon("random")); + menuAct = createMenuCellsAction(MI_Increment, tr("&Autoexpose"), ""); + menuAct->setIcon(createQIcon("autoexpose")); + menuAct = createMenuCellsAction(MI_Dup, tr("&Repeat..."), ""); + menuAct->setIcon(createQIcon("repeat")); createMenuCellsAction(MI_ResetStep, tr("&Reset Step"), ""); - createMenuCellsAction(MI_IncreaseStep, tr("&Increase Step"), "'"); - createMenuCellsAction(MI_DecreaseStep, tr("&Decrease Step"), ";"); - createMenuCellsAction(MI_Step2, tr("&Step 2"), ""); - createMenuCellsAction(MI_Step3, tr("&Step 3"), ""); - createMenuCellsAction(MI_Step4, tr("&Step 4"), ""); + menuAct = createMenuCellsAction(MI_IncreaseStep, tr("&Increase Step"), "'"); + menuAct->setIcon(createQIcon("step_plus")); + menuAct = createMenuCellsAction(MI_DecreaseStep, tr("&Decrease Step"), ";"); + menuAct->setIcon(createQIcon("step_minus")); + menuAct = createMenuCellsAction(MI_Step2, tr("&Step 2"), ""); + menuAct->setIcon(createQIcon("step_2")); + menuAct = createMenuCellsAction(MI_Step3, tr("&Step 3"), ""); + menuAct->setIcon(createQIcon("step_3")); + menuAct = createMenuCellsAction(MI_Step4, tr("&Step 4"), ""); + menuAct->setIcon(createQIcon("step_4")); createMenuCellsAction(MI_Each2, tr("&Each 2"), ""); createMenuCellsAction(MI_Each3, tr("&Each 3"), ""); createMenuCellsAction(MI_Each4, tr("&Each 4"), ""); - createMenuCellsAction(MI_Rollup, tr("&Roll Up"), ""); - createMenuCellsAction(MI_Rolldown, tr("&Roll Down"), ""); - QAction *timeStretchAction = - createMenuCellsAction(MI_TimeStretch, tr("&Time Stretch..."), ""); - timeStretchAction->setIcon(QIcon(":Resources/timestretch.svg")); - createMenuCellsAction(MI_CreateBlankDrawing, tr("&Create Blank Drawing"), - "Alt+D"); - createMenuCellsAction(MI_Duplicate, tr("&Duplicate Drawing "), "D"); - createMenuCellsAction(MI_Autorenumber, tr("&Autorenumber"), ""); - createMenuCellsAction(MI_CloneLevel, tr("&Clone"), ""); + menuAct = createMenuCellsAction(MI_Rollup, tr("&Roll Up"), ""); + menuAct->setIcon(createQIcon("rollup")); + menuAct = createMenuCellsAction(MI_Rolldown, tr("&Roll Down"), ""); + menuAct->setIcon(createQIcon("rolldown")); + menuAct = createMenuCellsAction(MI_TimeStretch, tr("&Time Stretch..."), ""); + menuAct->setIcon(createQIcon("time_stretch")); + menuAct = createMenuCellsAction(MI_CreateBlankDrawing, + tr("&Create Blank Drawing"), "Alt+D"); + menuAct->setIcon(createQIcon("add_cell")); + menuAct = + createMenuCellsAction(MI_Duplicate, tr("&Duplicate Drawing "), "D"); + menuAct->setIcon(createQIcon("duplicate_drawing")); + menuAct = createMenuCellsAction(MI_Autorenumber, tr("&Autorenumber"), ""); + menuAct->setIcon(createQIcon("renumber")); + menuAct = createMenuCellsAction(MI_CloneLevel, tr("&Clone Cells"), ""); + menuAct->setIcon(createQIcon("clone_cells")); createMenuCellsAction(MI_DrawingSubForward, tr("Drawing Substitution Forward"), "W"); createMenuCellsAction(MI_DrawingSubBackward, @@ -1944,29 +2068,32 @@ void MainWindow::defineActions() { tr("Similar Drawing Substitution Forward"), "Alt+W"); createMenuCellsAction(MI_DrawingSubGroupBackward, tr("Similar Drawing Substitution Backward"), "Alt+Q"); - QAction *reframeOnesAction = - createMenuCellsAction(MI_Reframe1, tr("1's"), ""); - reframeOnesAction->setIconText("1's"); - - QAction *reframeTwosAction = - createMenuCellsAction(MI_Reframe2, tr("2's"), ""); - reframeTwosAction->setIconText("2's"); - - QAction *reframeThreesAction = - createMenuCellsAction(MI_Reframe3, tr("3's"), ""); - reframeThreesAction->setIconText("3's"); - - createMenuCellsAction(MI_Reframe4, tr("4's"), ""); - - createMenuCellsAction(MI_ReframeWithEmptyInbetweens, - tr("Reframe with Empty Inbetweens..."), ""); - createMenuCellsAction(MI_AutoInputCellNumber, tr("Auto Input Cell Number..."), - ""); - createMenuCellsAction(MI_FillEmptyCell, tr("&Fill In Empty Cells"), ""); - - createRightClickMenuAction(MI_SetKeyframes, tr("&Set Key"), "Z"); - createRightClickMenuAction(MI_ShiftKeyframesDown, tr("&Shift Keys Down"), ""); - createRightClickMenuAction(MI_ShiftKeyframesUp, tr("&Shift Keys Up"), ""); + menuAct = createMenuCellsAction(MI_Reframe1, tr("Reframe on 1's"), ""); + menuAct->setIcon(createQIcon("on_1s")); + menuAct = createMenuCellsAction(MI_Reframe2, tr("Reframe on 2's"), ""); + menuAct->setIcon(createQIcon("on_2s")); + menuAct = createMenuCellsAction(MI_Reframe3, tr("Reframe on 3's"), ""); + menuAct->setIcon(createQIcon("on_3s")); + menuAct = createMenuCellsAction(MI_Reframe4, tr("Reframe on 4's"), ""); + menuAct->setIcon(createQIcon("on_4s")); + menuAct = createMenuCellsAction(MI_ReframeWithEmptyInbetweens, + tr("Reframe with Empty Inbetweens..."), ""); + menuAct->setIcon(createQIcon("on_with_empty")); + menuAct = createMenuCellsAction(MI_AutoInputCellNumber, + tr("Auto Input Cell Number..."), ""); + menuAct->setIcon(createQIcon("auto_input_cell_number")); + menuAct = + createMenuCellsAction(MI_FillEmptyCell, tr("&Fill In Empty Cells"), ""); + menuAct->setIcon(createQIcon("fill_empty_cells")); + + menuAct = createRightClickMenuAction(MI_SetKeyframes, tr("&Set Key"), "Z"); + menuAct->setIcon(createQIcon("set_key")); + menuAct = createRightClickMenuAction(MI_ShiftKeyframesDown, + tr("&Shift Keys Down"), ""); + menuAct->setIcon(createQIcon("shift_keys_down")); + menuAct = + createRightClickMenuAction(MI_ShiftKeyframesUp, tr("&Shift Keys Up"), ""); + menuAct->setIcon(createQIcon("shift_keys_up")); createRightClickMenuAction(MI_PasteNumbers, tr("&Paste Numbers"), ""); @@ -1986,46 +2113,63 @@ void MainWindow::defineActions() { MenuViewCommandType); createToggle(MI_ViewRuler, tr("&Ruler"), "", ViewRulerToggleAction ? 1 : 0, MenuViewCommandType); - createToggle(MI_TCheck, tr("&Transparency Check "), "", - TCheckToggleAction ? 1 : 0, MenuViewCommandType); + menuAct = createToggle(MI_TCheck, tr("&Transparency Check "), "", + TCheckToggleAction ? 1 : 0, MenuViewCommandType); + menuAct->setIcon(createQIcon("transparency_check")); + QAction *inkCheckAction = createToggle(MI_ICheck, tr("&Ink Check"), "", ICheckToggleAction ? 1 : 0, MenuViewCommandType); + inkCheckAction->setIcon(createQIcon("ink_check")); QAction *ink1CheckAction = createToggle(MI_Ink1Check, tr("&Ink#1 Check"), "", Ink1CheckToggleAction ? 1 : 0, MenuViewCommandType); + ink1CheckAction->setIcon(createQIcon("ink_no1_check")); /*-- Ink Check と Ink1Checkを排他的にする --*/ connect(inkCheckAction, SIGNAL(triggered(bool)), this, SLOT(onInkCheckTriggered(bool))); connect(ink1CheckAction, SIGNAL(triggered(bool)), this, SLOT(onInk1CheckTriggered(bool))); - createToggle(MI_PCheck, tr("&Paint Check"), "", PCheckToggleAction ? 1 : 0, - MenuViewCommandType); - createToggle(MI_IOnly, tr("Inks &Only"), "", IOnlyToggleAction ? 1 : 0, - MenuViewCommandType); - createToggle(MI_GCheck, tr("&Fill Check"), "", GCheckToggleAction ? 1 : 0, - MenuViewCommandType); - createToggle(MI_BCheck, tr("&Black BG Check"), "", BCheckToggleAction ? 1 : 0, - MenuViewCommandType); - createToggle(MI_ACheck, tr("&Gap Check"), "", ACheckToggleAction ? 1 : 0, - MenuViewCommandType); - QAction *shiftTraceAction = createToggle(MI_ShiftTrace, tr("Shift and Trace"), - "", false, MenuViewCommandType); - shiftTraceAction->setIcon(QIcon(":Resources/shift_and_trace.svg")); - shiftTraceAction = createToggle(MI_EditShift, tr("Edit Shift"), "", false, - MenuViewCommandType); - shiftTraceAction->setIcon(QIcon(":Resources/shift_and_trace_edit.svg")); - createToggle(MI_NoShift, tr("No Shift"), "", false, MenuViewCommandType); + QAction *paintCheckAction = + createToggle(MI_PCheck, tr("&Paint Check"), "", + PCheckToggleAction ? 1 : 0, MenuViewCommandType); + paintCheckAction->setIcon(createQIcon("paint_check")); + QAction *checkModesAction = + createToggle(MI_IOnly, tr("Inks &Only"), "", IOnlyToggleAction ? 1 : 0, + MenuViewCommandType); + checkModesAction->setIcon(createQIcon("inks_only")); + QAction *fillCheckAction = + createToggle(MI_GCheck, tr("&Fill Check"), "", GCheckToggleAction ? 1 : 0, + MenuViewCommandType); + fillCheckAction->setIcon(createQIcon("fill_check")); + QAction *blackBgCheckAction = + createToggle(MI_BCheck, tr("&Black BG Check"), "", + BCheckToggleAction ? 1 : 0, MenuViewCommandType); + blackBgCheckAction->setIcon(createQIcon("blackbg_check")); + QAction *gapCheckAction = + createToggle(MI_ACheck, tr("&Gap Check"), "", ACheckToggleAction ? 1 : 0, + MenuViewCommandType); + gapCheckAction->setIcon(createQIcon("gap_check")); + toggle = createToggle(MI_ShiftTrace, tr("Shift and Trace"), "", false, + MenuViewCommandType); + toggle->setIcon(createQIcon("shift_and_trace")); + + toggle = createToggle(MI_EditShift, tr("Edit Shift"), "", false, + MenuViewCommandType); + toggle->setIcon(createQIcon("shift_and_trace_edit")); + toggle = + createToggle(MI_NoShift, tr("No Shift"), "", false, MenuViewCommandType); + toggle->setIcon(createQIcon("shift_and_trace_no_shift")); CommandManager::instance()->enable(MI_EditShift, false); CommandManager::instance()->enable(MI_NoShift, false); - shiftTraceAction = + menuAct = createAction(MI_ResetShift, tr("Reset Shift"), "", MenuViewCommandType); - shiftTraceAction->setIcon(QIcon(":Resources/shift_and_trace_reset.svg")); + menuAct->setIcon(createQIcon("shift_and_trace_reset")); - QAction *GuidedDrawingAction = createToggle( - MI_VectorGuidedDrawing, tr("Vector Guided Drawing"), "", - Preferences::instance()->isGuidedDrawingEnabled(), MenuViewCommandType); + toggle = createToggle(MI_VectorGuidedDrawing, tr("Vector Guided Drawing"), "", + Preferences::instance()->isGuidedDrawingEnabled(), + MenuViewCommandType); if (QGLPixelBuffer::hasOpenGLPbuffers()) createToggle(MI_RasterizePli, tr("&Visualize Vector As Raster"), "", @@ -2036,25 +2180,37 @@ void MainWindow::defineActions() { createRightClickMenuAction(MI_Histogram, tr("&Histogram"), ""); // createToolOptionsAction("A_ToolOption_Link", tr("Link"), ""); - createToggle(MI_Link, tr("Link Flipbooks"), "", LinkToggleAction ? 1 : 0, - MenuPlayCommandType); + menuAct = createToggle(MI_Link, tr("Link Flipbooks"), "", + LinkToggleAction ? 1 : 0, MenuPlayCommandType); + menuAct->setIcon(createQIcon("flipbook_link")); - createMenuPlayAction(MI_Play, tr("Play"), "P"); + menuAct = createMenuPlayAction(MI_Play, tr("Play"), "P"); + menuAct->setIcon(createQIcon("play")); createMenuPlayAction(MI_ShortPlay, tr("Short Play"), "Alt+P"); - createMenuPlayAction(MI_Loop, tr("Loop"), "L"); - createMenuPlayAction(MI_Pause, tr("Pause"), ""); - createMenuPlayAction(MI_FirstFrame, tr("First Frame"), "Alt+,"); - createMenuPlayAction(MI_LastFrame, tr("Last Frame"), "Alt+."); - createMenuPlayAction(MI_PrevFrame, tr("Previous Frame"), "Shift+,"); - createMenuPlayAction(MI_NextFrame, tr("Next Frame"), "Shift+."); - - createMenuPlayAction(MI_NextDrawing, tr("Next Drawing"), "."); - createMenuPlayAction(MI_PrevDrawing, tr("Prev Drawing"), ","); - createMenuPlayAction(MI_NextStep, tr("Next Step"), ""); - createMenuPlayAction(MI_PrevStep, tr("Prev Step"), ""); - - createMenuPlayAction(MI_NextKeyframe, tr("Next Key"), "Ctrl+."); - createMenuPlayAction(MI_PrevKeyframe, tr("Prev Key"), "Ctrl+,"); + menuAct = createMenuPlayAction(MI_Loop, tr("Loop"), "L"); + menuAct->setIcon(createQIcon("loop")); + menuAct = createMenuPlayAction(MI_Pause, tr("Pause"), ""); + menuAct->setIcon(createQIcon("pause")); + menuAct = createMenuPlayAction(MI_FirstFrame, tr("First Frame"), "Alt+,"); + menuAct->setIcon(createQIcon("framefirst")); + menuAct = createMenuPlayAction(MI_LastFrame, tr("Last Frame"), "Alt+."); + menuAct->setIcon(createQIcon("framelast")); + menuAct = createMenuPlayAction(MI_PrevFrame, tr("Previous Frame"), "Shift+,"); + menuAct->setIcon(createQIcon("frameprev")); + menuAct = createMenuPlayAction(MI_NextFrame, tr("Next Frame"), "Shift+."); + menuAct->setIcon(createQIcon("framenext")); + menuAct = createMenuPlayAction(MI_NextDrawing, tr("Next Drawing"), "."); + menuAct->setIcon(createQIcon("next_drawing")); + menuAct = createMenuPlayAction(MI_PrevDrawing, tr("Previous Drawing"), ","); + menuAct->setIcon(createQIcon("prev_drawing")); + menuAct = createMenuPlayAction(MI_NextStep, tr("Next Step"), ""); + menuAct->setIcon(createQIcon("nextstep")); + menuAct = createMenuPlayAction(MI_PrevStep, tr("Previous Step"), ""); + menuAct->setIcon(createQIcon("prevstep")); + menuAct = createMenuPlayAction(MI_NextKeyframe, tr("Next Key"), "Ctrl+."); + menuAct->setIcon(createQIcon("nextkey")); + menuAct = createMenuPlayAction(MI_PrevKeyframe, tr("Previous Key"), "Ctrl+,"); + menuAct->setIcon(createQIcon("prevkey")); createRGBAAction(MI_RedChannel, tr("Red Channel"), ""); createRGBAAction(MI_GreenChannel, tr("Green Channel"), ""); @@ -2065,10 +2221,8 @@ void MainWindow::defineActions() { createRGBAAction(MI_BlueChannelGreyscale, tr("Blue Channel Greyscale"), ""); /*-- Viewer下部のCompareToSnapshotボタンのトグル --*/ createViewerAction(MI_CompareToSnapshot, tr("Compare to Snapshot"), ""); - createFillAction(MI_AutoFillToggle, tr("Toggle Autofill on Current Palette Color"), "Shift+A"); - toggle = createToggle(MI_DockingCheck, tr("&Lock Room Panes"), "", DockingCheckToggleAction ? 1 : 0, MenuWindowsCommandType); @@ -2079,27 +2233,49 @@ void MainWindow::defineActions() { // createMenuWindowsAction(MI_OpenExport, tr("&Export"), ""); - createMenuWindowsAction(MI_OpenFileBrowser, tr("&File Browser"), ""); - createMenuWindowsAction(MI_OpenFileViewer, tr("&Flipbook"), ""); - createMenuWindowsAction(MI_OpenFunctionEditor, tr("&Function Editor"), ""); + menuAct = + createMenuWindowsAction(MI_OpenFileBrowser, tr("&File Browser"), ""); + menuAct->setIcon(createQIcon("filebrowser")); + menuAct = createMenuWindowsAction(MI_OpenFileViewer, tr("&Flipbook"), ""); + menuAct->setIcon(createQIcon("flipbook")); + menuAct = createMenuWindowsAction(MI_OpenFunctionEditor, + tr("&Function Editor"), ""); + menuAct->setIcon(createQIcon("function_editor")); createMenuWindowsAction(MI_OpenFilmStrip, tr("&Level Strip"), ""); - createMenuWindowsAction(MI_OpenPalette, tr("&Palette"), ""); - QAction *pltGizmoAction = + menuAct = createMenuWindowsAction(MI_OpenPalette, tr("&Palette"), ""); + menuAct->setIcon(createQIcon("palette")); + menuAct = createRightClickMenuAction(MI_OpenPltGizmo, tr("&Palette Gizmo"), ""); - pltGizmoAction->setIcon(QIcon(":Resources/palettegizmo.svg")); + menuAct->setIcon(createQIcon("palettegizmo")); createRightClickMenuAction(MI_EraseUnusedStyles, tr("&Delete Unused Styles"), ""); - createMenuWindowsAction(MI_OpenTasks, tr("&Tasks"), ""); - createMenuWindowsAction(MI_OpenBatchServers, tr("&Batch Servers"), ""); - createMenuWindowsAction(MI_OpenTMessage, tr("&Message Center"), ""); - createMenuWindowsAction(MI_OpenColorModel, tr("&Color Model"), ""); - createMenuWindowsAction(MI_OpenStudioPalette, tr("&Studio Palette"), ""); - createMenuWindowsAction(MI_OpenSchematic, tr("&Schematic"), ""); - createMenuWindowsAction(MI_FxParamEditor, tr("&FX Editor"), "Ctrl+K"); - createMenuWindowsAction(MI_OpenCleanupSettings, tr("&Cleanup Settings"), ""); - - createMenuWindowsAction(MI_OpenFileBrowser2, tr("&Scene Cast"), ""); - createMenuWindowsAction(MI_OpenStyleControl, tr("&Style Editor"), ""); + menuAct = createMenuWindowsAction(MI_OpenTasks, tr("&Tasks"), ""); + menuAct->setIcon(createQIcon("tasks")); + menuAct = + createMenuWindowsAction(MI_OpenBatchServers, tr("&Batch Servers"), ""); + menuAct->setIcon(createQIcon("batchservers")); + menuAct = createMenuWindowsAction(MI_OpenTMessage, tr("&Message Center"), ""); + menuAct->setIcon(createQIcon("messagecenter")); + menuAct = createMenuWindowsAction(MI_OpenColorModel, tr("&Color Model"), ""); + menuAct->setIcon(createQIcon("colormodel")); + menuAct = + createMenuWindowsAction(MI_OpenStudioPalette, tr("&Studio Palette"), ""); + menuAct->setIcon(createQIcon("studiopalette")); + + menuAct = createMenuWindowsAction(MI_OpenSchematic, tr("&Schematic"), ""); + menuAct->setIcon(createQIcon("schematic")); + menuAct = + createMenuWindowsAction(MI_FxParamEditor, tr("&FX Editor"), "Ctrl+K"); + menuAct->setIcon(createQIcon("fx_settings")); + menuAct = createMenuWindowsAction(MI_OpenCleanupSettings, + tr("&Cleanup Settings"), ""); + menuAct->setIcon(createQIcon("cleanup_settings")); + + menuAct = createMenuWindowsAction(MI_OpenFileBrowser2, tr("&Scene Cast"), ""); + menuAct->setIcon(createQIcon("scenecast")); + menuAct = + createMenuWindowsAction(MI_OpenStyleControl, tr("&Style Editor"), ""); + menuAct->setIcon(createQIcon("styleeditor")); createMenuWindowsAction(MI_OpenToolbar, tr("&Toolbar"), ""); createMenuWindowsAction(MI_OpenToolOptionBar, tr("&Tool Option Bar"), ""); createMenuWindowsAction(MI_OpenCommandToolbar, tr("&Command Bar"), ""); @@ -2108,36 +2284,68 @@ void MainWindow::defineActions() { ""); #endif - createMenuWindowsAction(MI_OpenLevelView, tr("&Viewer"), ""); - createMenuWindowsAction(MI_OpenXshView, tr("&Xsheet"), ""); - createMenuWindowsAction(MI_OpenTimelineView, tr("&Timeline"), ""); + menuAct = createMenuWindowsAction(MI_OpenLevelView, tr("&Viewer"), ""); + menuAct->setIcon(createQIcon("viewer")); + menuAct = createMenuWindowsAction(MI_OpenXshView, tr("&Xsheet"), ""); + menuAct->setIcon(createQIcon("xsheet")); + menuAct = createMenuWindowsAction(MI_OpenTimelineView, tr("&Timeline"), ""); + menuAct->setIcon(createQIcon("timeline")); // createAction(MI_TestAnimation, "Test Animation", "Ctrl+Return"); // createAction(MI_Export, "Export", "Ctrl+E"); - createMenuWindowsAction(MI_OpenComboViewer, tr("&ComboViewer"), ""); - createMenuWindowsAction(MI_OpenHistoryPanel, tr("&History"), "Ctrl+H"); - createMenuWindowsAction(MI_AudioRecording, tr("Record Audio"), "Alt+A"); + menuAct = createMenuWindowsAction(MI_OpenComboViewer, tr("&ComboViewer"), ""); + menuAct->setIcon(createQIcon("viewer")); + menuAct = + createMenuWindowsAction(MI_OpenHistoryPanel, tr("&History"), "Ctrl+H"); + menuAct->setIcon(createQIcon("history")); + menuAct = + createMenuWindowsAction(MI_AudioRecording, tr("Record Audio"), "Alt+A"); + menuAct->setIcon(createQIcon("recordaudio")); createMenuWindowsAction(MI_ResetRoomLayout, tr("&Reset to Default Rooms"), ""); - createMenuWindowsAction(MI_MaximizePanel, tr("Toggle Maximize Panel"), "`"); - createMenuWindowsAction(MI_FullScreenWindow, - tr("Toggle Main Window's Full Screen Mode"), - "Ctrl+`"); - createMenuHelpAction(MI_About, tr("&About OpenToonz..."), ""); - createMenuWindowsAction(MI_StartupPopup, tr("&Startup Popup..."), "Alt+S"); - - createMenuHelpAction(MI_OpenOnlineManual, tr("&Online Manual..."), "F1"); - createMenuHelpAction(MI_OpenWhatsNew, tr("&What's New..."), ""); - createMenuHelpAction(MI_OpenCommunityForum, tr("&Community Forum..."), ""); - createMenuHelpAction(MI_OpenReportABug, tr("&Report a Bug..."), ""); + menuAct = createMenuWindowsAction(MI_MaximizePanel, + tr("Toggle Maximize Panel"), "`"); + menuAct->setIcon(createQIcon("fit_to_window")); + menuAct = createMenuWindowsAction(MI_FullScreenWindow, + tr("Toggle Main Window's Full Screen Mode"), + "Ctrl+`"); + menuAct->setIcon(createQIcon("toggle_fullscreen")); + + menuAct = createMenuHelpAction(MI_About, tr("&About OpenToonz..."), ""); + menuAct->setIconText(tr("About OpenToonz...")); + menuAct->setIcon(createQIcon("info")); + + menuAct = createMenuWindowsAction(MI_StartupPopup, tr("&Startup Popup..."), + "Alt+S"); + menuAct->setIcon(createQIcon("opentoonz")); + + menuAct = + createMenuHelpAction(MI_OpenOnlineManual, tr("&Online Manual..."), "F1"); + menuAct->setIconText(tr("Online Manual...")); + menuAct->setIcon(createQIcon("manual")); + + menuAct = createMenuHelpAction(MI_OpenWhatsNew, tr("&What's New..."), ""); + menuAct->setIconText(tr("What's New...")); + menuAct->setIcon(createQIcon("web")); + + menuAct = createMenuHelpAction(MI_OpenCommunityForum, + tr("&Community Forum..."), ""); + menuAct->setIconText(tr("Community Forum...")); + menuAct->setIcon(createQIcon("web")); + + menuAct = createMenuHelpAction(MI_OpenReportABug, tr("&Report a Bug..."), ""); + menuAct->setIconText(tr("Report a Bug...")); + menuAct->setIcon(createQIcon("web")); createMenuWindowsAction(MI_OpenGuidedDrawingControls, tr("Guided Drawing Controls"), ""); createRightClickMenuAction(MI_BlendColors, tr("&Blend colors"), ""); - createToggle(MI_OnionSkin, tr("Onion Skin Toggle"), "/", false, - RightClickMenuCommandType); + toggle = createToggle(MI_OnionSkin, tr("Onion Skin Toggle"), "/", false, + RightClickMenuCommandType); + toggle->setIcon(createQIcon("onionskin_toggle")); + createToggle(MI_ZeroThick, tr("Zero Thick Lines"), "Shift+/", false, RightClickMenuCommandType); createToggle(MI_CursorOutline, tr("Toggle Cursor Size Outline"), "", false, @@ -2150,7 +2358,10 @@ void MainWindow::defineActions() { // Sub-xsheet"), ""); // createRightClickMenuAction(MI_LoadResourceFile, tr("Load"), // ""); - createRightClickMenuAction(MI_DuplicateFile, tr("Duplicate"), ""); + + menuAct = createRightClickMenuAction(MI_DuplicateFile, tr("Duplicate"), ""); + menuAct->setIcon(createQIcon("duplicate")); + createRightClickMenuAction(MI_ShowFolderContents, tr("Show Folder Contents"), ""); createRightClickMenuAction(MI_ConvertFiles, tr("Convert..."), ""); @@ -2165,12 +2376,19 @@ void MainWindow::defineActions() { ""); createMenuLevelAction(MI_ConvertVectorToVector, tr("Replace Vectors with Simplified Vectors"), ""); - createMenuLevelAction(MI_Tracking, tr("Tracking..."), ""); - createRightClickMenuAction(MI_RemoveLevel, tr("Remove Level"), ""); - createRightClickMenuAction(MI_AddToBatchRenderList, tr("Add As Render Task"), - ""); - createRightClickMenuAction(MI_AddToBatchCleanupList, - tr("Add As Cleanup Task"), ""); + + menuAct = createMenuLevelAction(MI_Tracking, tr("Tracking..."), ""); + menuAct->setIcon(createQIcon("tracking_options")); + + menuAct = createRightClickMenuAction(MI_RemoveLevel, tr("Remove Level"), ""); + menuAct->setIcon(createQIcon("remove_level")); + + menuAct = createRightClickMenuAction(MI_AddToBatchRenderList, + tr("Add As Render Task"), ""); + menuAct->setIcon(createQIcon("render_add")); + menuAct = createRightClickMenuAction(MI_AddToBatchCleanupList, + tr("Add As Cleanup Task"), ""); + menuAct->setIcon(createQIcon("cleanup_add")); createRightClickMenuAction(MI_SelectRowKeyframes, tr("Select All Keys in this Frame"), ""); @@ -2215,7 +2433,8 @@ void MainWindow::defineActions() { createRightClickMenuAction(MI_UseConstantInterpolation, tr("Constant Interpolation"), ""); - createRightClickMenuAction(MI_FoldColumns, tr("Fold Column"), ""); + menuAct = createRightClickMenuAction(MI_FoldColumns, tr("Fold Column"), ""); + menuAct->setIcon(createQIcon("fold_column")); createRightClickMenuAction(MI_ActivateThisColumnOnly, tr("Show This Only"), ""); @@ -2250,7 +2469,7 @@ void MainWindow::defineActions() { createRightClickMenuAction(MI_SeparateColors, tr("Separate Colors..."), ""); - createToolAction(T_Edit, "edit", tr("Animate Tool"), "A"); + createToolAction(T_Edit, "animate", tr("Animate Tool"), "A"); createToolAction(T_Selection, "selection", tr("Selection Tool"), "S"); createToolAction(T_Brush, "brush", tr("Brush Tool"), "B"); createToolAction(T_Geometric, "geometric", tr("Geometric Tool"), "G"); @@ -2260,7 +2479,7 @@ void MainWindow::defineActions() { createToolAction(T_Eraser, "eraser", tr("Eraser Tool"), "E"); createToolAction(T_Tape, "tape", tr("Tape Tool"), "T"); createToolAction(T_StylePicker, "stylepicker", tr("Style Picker Tool"), "K"); - createToolAction(T_RGBPicker, "RGBpicker", tr("RGB Picker Tool"), "R"); + createToolAction(T_RGBPicker, "rgbpicker", tr("RGB Picker Tool"), "R"); createToolAction(T_ControlPointEditor, "controlpointeditor", tr("Control Point Editor Tool"), "C"); createToolAction(T_Pinch, "pinch", tr("Pinch Tool"), "M"); @@ -2268,9 +2487,10 @@ void MainWindow::defineActions() { createToolAction(T_Magnet, "magnet", tr("Magnet Tool"), ""); createToolAction(T_Bender, "bender", tr("Bender Tool"), ""); createToolAction(T_Iron, "iron", tr("Iron Tool"), ""); + createToolAction(T_Cutter, "cutter", tr("Cutter Tool"), ""); createToolAction(T_Skeleton, "skeleton", tr("Skeleton Tool"), "V"); - createToolAction(T_Tracker, "tracker", tr("Tracker Tool"), ""); + createToolAction(T_Tracker, "radar", tr("Tracker Tool"), ""); createToolAction(T_Hook, "hook", tr("Hook Tool"), "O"); createToolAction(T_Zoom, "zoom", tr("Zoom Tool"), "Shift+Space"); createToolAction(T_Rotate, "rotate", tr("Rotate Tool"), "Ctrl+Space"); @@ -2286,6 +2506,7 @@ void MainWindow::defineActions() { createViewerAction(V_ZoomReset, tr("Reset Zoom"), ""); createViewerAction(V_RotateReset, tr("Reset Rotation"), ""); createViewerAction(V_PositionReset, tr("Reset Position"), ""); + createViewerAction(V_ActualPixelSize, tr("Actual Pixel Size"), "N"); createViewerAction(V_FlipX, tr("Flip Viewer Horizontally"), ""); createViewerAction(V_FlipY, tr("Flip Viewer Vertically"), ""); @@ -2319,19 +2540,31 @@ void MainWindow::defineActions() { // in the command bar. Assinging shortcut keys and registering as MenuItem // will break a logic of ShortcutZoomer. So here we register separate items // and bypass the command. - createVisualizationButtonAction(VB_ViewReset, tr("Reset View")); - createVisualizationButtonAction(VB_ZoomFit, tr("Fit to Window")); + menuAct = createVisualizationButtonAction(VB_ViewReset, tr("Reset View")); + menuAct->setIcon(createQIcon("reset")); + + menuAct = createVisualizationButtonAction(VB_ZoomFit, tr("Fit to Window")); + menuAct->setIcon(createQIcon("fit_to_window")); + createVisualizationButtonAction(VB_ZoomReset, tr("Reset Zoom")); createVisualizationButtonAction(VB_RotateReset, tr("Reset Rotation")); createVisualizationButtonAction(VB_PositionReset, tr("Reset Position")); - createVisualizationButtonAction(VB_ActualPixelSize, tr("Actual Pixel Size")); - createVisualizationButtonAction(VB_FlipX, tr("Flip Viewer Horizontally")); - createVisualizationButtonAction(VB_FlipY, tr("Flip Viewer Vertically")); - QAction *refreshAct = - createMiscAction(MI_RefreshTree, tr("Refresh Folder Tree"), ""); - refreshAct->setIconText(tr("Refresh")); - refreshAct->setIcon(createQIcon("refresh")); + menuAct = createVisualizationButtonAction(VB_ActualPixelSize, + tr("Actual Pixel Size")); + menuAct->setIcon(createQIcon("actual_pixel_size")); + + menuAct = + createVisualizationButtonAction(VB_FlipX, tr("Flip Viewer Horizontally")); + menuAct->setIcon(createQIcon("fliphoriz_off")); + + menuAct = + createVisualizationButtonAction(VB_FlipY, tr("Flip Viewer Vertically")); + menuAct->setIcon(createQIcon("flipvert_off")); + + menuAct = createMiscAction(MI_RefreshTree, tr("Refresh Folder Tree"), ""); + menuAct->setIconText(tr("Refresh")); + menuAct->setIcon(createQIcon("refresh")); createToolOptionsAction("A_ToolOption_GlobalKey", tr("Global Key"), ""); @@ -2403,10 +2636,15 @@ void MainWindow::defineActions() { createToolOptionsAction("A_ToolOption_GeometricEdge", tr("Geometric Edge"), ""); createToolOptionsAction("A_ToolOption_Mode", tr("Mode"), ""); - createToolOptionsAction("A_ToolOption_Mode:Areas", tr("Mode - Areas"), ""); - createToolOptionsAction("A_ToolOption_Mode:Lines", tr("Mode - Lines"), ""); - createToolOptionsAction("A_ToolOption_Mode:Lines & Areas", - tr("Mode - Lines & Areas"), ""); + menuAct = createToolOptionsAction("A_ToolOption_Mode:Areas", + tr("Mode - Areas"), ""); + menuAct->setIcon(createQIcon("mode_areas")); + menuAct = createToolOptionsAction("A_ToolOption_Mode:Lines", + tr("Mode - Lines"), ""); + menuAct->setIcon(createQIcon("mode_lines")); + menuAct = createToolOptionsAction("A_ToolOption_Mode:Lines & Areas", + tr("Mode - Lines && Areas"), ""); + menuAct->setIcon(createQIcon("mode_areas_lines")); createToolOptionsAction("A_ToolOption_Mode:Endpoint to Endpoint", tr("Mode - Endpoint to Endpoint"), ""); createToolOptionsAction("A_ToolOption_Mode:Endpoint to Line", @@ -2414,15 +2652,26 @@ void MainWindow::defineActions() { createToolOptionsAction("A_ToolOption_Mode:Line to Line", tr("Mode - Line to Line"), ""); createToolOptionsAction("A_ToolOption_Type", tr("Type"), ""); - createToolOptionsAction("A_ToolOption_Type:Normal", tr("Type - Normal"), ""); - createToolOptionsAction("A_ToolOption_Type:Rectangular", - tr("Type - Rectangular"), "F5"); - createToolOptionsAction("A_ToolOption_Type:Freehand", tr("Type - Freehand"), - ""); - createToolOptionsAction("A_ToolOption_Type:Polyline", tr("Type - Polyline"), - ""); - createToolOptionsAction("A_ToolOption_Type:Segment", tr("Type - Segment"), - ""); + + menuAct = createToolOptionsAction("A_ToolOption_Type:Normal", + tr("Type - Normal"), ""); + menuAct->setIcon(createQIcon("type_normal")); + + menuAct = createToolOptionsAction("A_ToolOption_Type:Rectangular", + tr("Type - Rectangular"), "F5"); + menuAct->setIcon(createQIcon("type_rectangular")); + + menuAct = createToolOptionsAction("A_ToolOption_Type:Freehand", + tr("Type - Freehand"), ""); + menuAct->setIcon(createQIcon("type_lasso")); + + menuAct = createToolOptionsAction("A_ToolOption_Type:Polyline", + tr("Type - Polyline"), ""); + menuAct->setIcon(createQIcon("type_polyline")); + menuAct = createToolOptionsAction("A_ToolOption_Type:Segment", + tr("Type - Segment"), ""); + menuAct->setIcon(createQIcon("type_erase_segment")); + createToolOptionsAction("A_ToolOption_TypeFont", tr("TypeTool Font"), ""); createToolOptionsAction("A_ToolOption_TypeSize", tr("TypeTool Size"), ""); createToolOptionsAction("A_ToolOption_TypeStyle", tr("TypeTool Style"), ""); @@ -2467,11 +2716,14 @@ void MainWindow::defineActions() { tr("Column Pick Mode"), ""); createToolOptionsAction("A_ToolOption_AutoSelect:Pegbar", tr("Pegbar Pick Mode"), ""); - createToolOptionsAction("A_ToolOption_PickScreen", tr("Pick Screen"), ""); + menuAct = + createToolOptionsAction("A_ToolOption_PickScreen", tr("Pick Screen"), ""); + menuAct->setIcon(createQIcon("pickscreen")); createToolOptionsAction("A_ToolOption_Meshify", tr("Create Mesh"), ""); - createToolOptionsAction("A_ToolOption_AutopaintLines", - tr("Fill Tool - Autopaint Lines"), ""); + menuAct = createToolOptionsAction("A_ToolOption_AutopaintLines", + tr("Fill Tool - Autopaint Lines"), ""); + menuAct->setIcon(createQIcon("fill_auto")); /*-- Animate tool + mode switching shortcuts --*/ createAction(MI_EditNextMode, tr("Animate Tool - Next Mode"), "", @@ -2527,13 +2779,18 @@ void MainWindow::defineActions() { /*-- Fill tool + type/mode switching shortcuts --*/ createAction(MI_FillNextType, tr("Fill Tool - Next Type"), "", ToolCommandType); - createAction(MI_FillNormal, tr("Fill Tool - Normal"), "", ToolCommandType); - createAction(MI_FillRectangular, tr("Fill Tool - Rectangular"), "", - ToolCommandType); - createAction(MI_FillFreehand, tr("Fill Tool - Freehand"), "", - ToolCommandType); - createAction(MI_FillPolyline, tr("Fill Tool - Polyline"), "", - ToolCommandType); + menuAct = createAction(MI_FillNormal, tr("Fill Tool - Normal"), "", + ToolCommandType); + menuAct->setIcon(createQIcon("fill_normal")); + menuAct = createAction(MI_FillRectangular, tr("Fill Tool - Rectangular"), "", + ToolCommandType); + menuAct->setIcon(createQIcon("fill_rectangular")); + menuAct = createAction(MI_FillFreehand, tr("Fill Tool - Freehand"), "", + ToolCommandType); + menuAct->setIcon(createQIcon("fill_freehand")); + menuAct = createAction(MI_FillPolyline, tr("Fill Tool - Polyline"), "", + ToolCommandType); + menuAct->setIcon(createQIcon("fill_polyline")); createAction(MI_FillNextMode, tr("Fill Tool - Next Mode"), "", ToolCommandType); createAction(MI_FillAreas, tr("Fill Tool - Areas"), "", ToolCommandType); @@ -3165,7 +3422,7 @@ void MainWindow::clearCacheFolder() { // 1. $CACHE/[Current ProcessID] // 2. $CACHE/temp/[Current scene folder] if the current scene is untitled - TFilePath cacheRoot = ToonzFolder::getCacheRootFolder(); + TFilePath cacheRoot = ToonzFolder::getCacheRootFolder(); if (cacheRoot.isEmpty()) cacheRoot = TEnv::getStuffDir() + "cache"; TFilePathSet filesToBeRemoved; @@ -3279,9 +3536,9 @@ RecentFiles::~RecentFiles() {} void RecentFiles::addFilePath(QString path, FileType fileType, QString projectName) { QList files = - (fileType == Scene) - ? m_recentScenes - : (fileType == Level) ? m_recentLevels : m_recentFlipbookImages; + (fileType == Scene) ? m_recentScenes : (fileType == Level) + ? m_recentLevels + : m_recentFlipbookImages; int i; for (i = 0; i < files.size(); i++) if (files.at(i) == path) { @@ -3448,9 +3705,9 @@ void RecentFiles::saveRecentFiles() { QList RecentFiles::getFilesNameList(FileType fileType) { QList files = - (fileType == Scene) - ? m_recentScenes - : (fileType == Level) ? m_recentLevels : m_recentFlipbookImages; + (fileType == Scene) ? m_recentScenes : (fileType == Level) + ? m_recentLevels + : m_recentFlipbookImages; QList names; int i; for (i = 0; i < files.size(); i++) { @@ -3477,9 +3734,9 @@ void RecentFiles::refreshRecentFilesMenu(FileType fileType) { menu->setEnabled(false); else { CommandId clearActionId = - (fileType == Scene) - ? MI_ClearRecentScene - : (fileType == Level) ? MI_ClearRecentLevel : MI_ClearRecentImage; + (fileType == Scene) ? MI_ClearRecentScene : (fileType == Level) + ? MI_ClearRecentLevel + : MI_ClearRecentImage; menu->setActions(names); menu->addSeparator(); QAction *clearAction = CommandManager::instance()->getAction(clearActionId); diff --git a/toonz/sources/toonz/menubarpopup.cpp b/toonz/sources/toonz/menubarpopup.cpp index 15f4aea..1a9815e 100644 --- a/toonz/sources/toonz/menubarpopup.cpp +++ b/toonz/sources/toonz/menubarpopup.cpp @@ -82,9 +82,7 @@ public: /*- Menu title will be translated if the title is registered in translation * file -*/ setText(0, StackedMenuBar::tr(title.toStdString().c_str())); - QIcon subMenuIcon(":Resources/browser_folder_close.svg"); - subMenuIcon.addFile(":Resources/browser_folder_open.svg", QSize(), - QIcon::Normal, QIcon::On); + QIcon subMenuIcon(createQIcon("folder", true)); setIcon(0, subMenuIcon); setToolTip(0, QObject::tr( "[Drag] to move position, [Double Click] to edit title")); @@ -106,7 +104,7 @@ MenuBarTree::MenuBarTree(TFilePath& path, QWidget* parent) setDropIndicatorShown(true); setDefaultDropAction(Qt::MoveAction); setDragDropMode(QAbstractItemView::DragDrop); - setIconSize(QSize(21, 17)); + setIconSize(QSize(21, 18)); setColumnCount(1); header()->close(); @@ -356,12 +354,10 @@ CommandListTree::CommandListTree(QWidget* parent) : QTreeWidget(parent) { setDragEnabled(true); setDragDropMode(QAbstractItemView::DragOnly); setColumnCount(1); - setIconSize(QSize(21, 17)); + setIconSize(QSize(21, 18)); header()->close(); - QIcon menuFolderIcon(":Resources/browser_project_close.svg"); - menuFolderIcon.addFile(":Resources/browser_project_open.svg", QSize(), - QIcon::Normal, QIcon::On); + QIcon menuFolderIcon(createQIcon("folder_project", true)); invisibleRootItem()->setIcon(0, menuFolderIcon); QTreeWidgetItem* menuCommandFolder = new QTreeWidgetItem(this); diff --git a/toonz/sources/toonz/outputsettingspopup.cpp b/toonz/sources/toonz/outputsettingspopup.cpp index b799a05..5667924 100644 --- a/toonz/sources/toonz/outputsettingspopup.cpp +++ b/toonz/sources/toonz/outputsettingspopup.cpp @@ -226,6 +226,8 @@ OutputSettingsPopup::OutputSettingsPopup(bool isPreview) otherSettingsLabel = new QLabel(tr("Other Settings"), this); otherSettingsFrame = new QFrame(this); m_renderButton = new QPushButton(tr("Render"), this); + m_renderButton->setIcon(createQIcon("render")); + m_renderButton->setIconSize(QSize(20, 20)); // Board m_addBoard = new DVGui::CheckBox(tr("Add Clapperboard"), this); @@ -290,8 +292,9 @@ OutputSettingsPopup::OutputSettingsPopup(bool isPreview) m_channelWidthOm->addItem(tr("16 bit"), "16 bit"); if (!isPreview) { - showOtherSettingsButton->setObjectName("OutputSettingsShowButton"); + showOtherSettingsButton->setObjectName("menuToggleButton"); showOtherSettingsButton->setFixedSize(15, 15); + showOtherSettingsButton->setIcon(createQIcon("menu_toggle")); showOtherSettingsButton->setCheckable(true); showOtherSettingsButton->setChecked(false); showOtherSettingsButton->setFocusPolicy(Qt::NoFocus); @@ -314,8 +317,9 @@ OutputSettingsPopup::OutputSettingsPopup(bool isPreview) << tr("Fx Schematic Terminal Nodes"); m_multimediaOm->addItems(multimediaTypes); - showCameraSettingsButton->setObjectName("OutputSettingsShowButton"); + showCameraSettingsButton->setObjectName("menuToggleButton"); showCameraSettingsButton->setFixedSize(15, 15); + showCameraSettingsButton->setIcon(createQIcon("menu_toggle")); showCameraSettingsButton->setCheckable(true); showCameraSettingsButton->setChecked(true); showCameraSettingsButton->setFocusPolicy(Qt::NoFocus); @@ -935,8 +939,8 @@ void OutputSettingsPopup::onNameChanged() { } if (isReservedFileName_message(name)) { TOutputProperties *prop = getProperties(); - TFilePath fp = prop->getPath(); - QString name = QString::fromStdString(fp.getName()); + TFilePath fp = prop->getPath(); + QString name = QString::fromStdString(fp.getName()); if (name.isEmpty()) name = QString::fromStdString(scene->getScenePath().getName()); m_fileNameFld->setText(name); diff --git a/toonz/sources/toonz/pane.cpp b/toonz/sources/toonz/pane.cpp index a7eebeb..8c7f453 100644 --- a/toonz/sources/toonz/pane.cpp +++ b/toonz/sources/toonz/pane.cpp @@ -190,13 +190,10 @@ void TPanel::restoreFloatingPanelState() { //----------------------------------------------------------------------------- TPanelTitleBarButton::TPanelTitleBarButton(QWidget *parent, - const QString &standardPixmapName, - const QString &rolloverPixmapName, - const QString &pressedPixmapName) + const QString &standardPixmapName) : QWidget(parent) , m_standardPixmap(standardPixmapName) - , m_rolloverPixmap(rolloverPixmapName) - , m_pressedPixmap(pressedPixmapName) + , m_standardPixmapName(standardPixmapName) , m_rollover(false) , m_pressed(false) , m_buttonSet(0) @@ -207,13 +204,9 @@ TPanelTitleBarButton::TPanelTitleBarButton(QWidget *parent, //----------------------------------------------------------------------------- TPanelTitleBarButton::TPanelTitleBarButton(QWidget *parent, - const QPixmap &standardPixmap, - const QPixmap &rolloverPixmap, - const QPixmap &pressedPixmap) + const QPixmap &standardPixmap) : QWidget(parent) , m_standardPixmap(standardPixmap) - , m_rolloverPixmap(rolloverPixmap) - , m_pressedPixmap(pressedPixmap) , m_rollover(false) , m_pressed(false) , m_buttonSet(0) @@ -243,10 +236,33 @@ void TPanelTitleBarButton::setPressed(bool pressed) { void TPanelTitleBarButton::paintEvent(QPaintEvent *event) { QPainter painter(this); - painter.drawPixmap(0, 0, - m_pressed - ? m_pressedPixmap - : m_rollover ? m_rolloverPixmap : m_standardPixmap); + + // Create color states for the button + QPixmap normalPixmap(m_standardPixmap.size()); + QPixmap onPixmap(m_standardPixmap.size()); + QPixmap overPixmap(m_standardPixmap.size()); + normalPixmap.fill(Qt::transparent); + onPixmap.fill(QColor(getPressedColor())); + overPixmap.fill(QColor(getOverColor())); + + // Set unique 'pressed' colors if filename contains... + if (m_standardPixmapName.contains("freeze", Qt::CaseInsensitive)) { + onPixmap.fill(QColor(getFreezeColor())); + } + if (m_standardPixmapName.contains("preview", Qt::CaseInsensitive)) { + onPixmap.fill(QColor(getPreviewColor())); + } + + // Compose the state colors + painter.drawPixmap( + 0, 0, m_pressed ? onPixmap : m_rollover ? overPixmap : normalPixmap); + + // Icon + QPixmap panePixmap = recolorPixmap(m_standardPixmap); + QPixmap paneOffPixmap = setOpacity(panePixmap, 0.8); + painter.drawPixmap( + 0, 0, m_pressed ? panePixmap : m_rollover ? panePixmap : paneOffPixmap); + painter.end(); } @@ -431,16 +447,17 @@ void TPanelTitleBar::paintEvent(QPaintEvent *) { painter.setBrush(Qt::NoBrush); painter.setPen(isPanelActive ? m_activeTitleColor : m_titleColor); - painter.drawText(QPointF(10, 15), titleText); + painter.drawText(QPointF(8, 13), titleText); } if (dw->isFloating()) { + QIcon paneCloseIcon = createQIcon("pane_close"); const static QPixmap closeButtonPixmap( - svgToPixmap(":/Resources/pane_close.svg", QSize(18, 18))); + paneCloseIcon.pixmap(20, 18, QIcon::Normal, QIcon::Off)); const static QPixmap closeButtonPixmapOver( - svgToPixmap(":/Resources/pane_close_rollover.svg", QSize(18, 18))); + paneCloseIcon.pixmap(20, 18, QIcon::Active)); - QPoint closeButtonPos(rect.right() - 18, rect.top() + 1); + QPoint closeButtonPos(rect.right() - 20, rect.top()); if (m_closeButtonHighlighted) painter.drawPixmap(closeButtonPos, closeButtonPixmapOver); @@ -460,7 +477,7 @@ void TPanelTitleBar::mousePressEvent(QMouseEvent *event) { if (dw->isFloating()) { QRect rect = this->rect(); - QRect closeButtonRect(rect.right() - 18, rect.top() + 1, 18, 18); + QRect closeButtonRect(rect.right() - 20, rect.top() + 1, 20, 18); if (closeButtonRect.contains(pos) && dw->isFloating()) { event->accept(); dw->hide(); diff --git a/toonz/sources/toonz/pane.h b/toonz/sources/toonz/pane.h index 70388b4..2ea8f68 100644 --- a/toonz/sources/toonz/pane.h +++ b/toonz/sources/toonz/pane.h @@ -14,7 +14,18 @@ class Room; //! icon buttons placed on the panel titlebar (cfr. viewerpane.h) class TPanelTitleBarButton : public QWidget { Q_OBJECT - QPixmap m_standardPixmap, m_rolloverPixmap, m_pressedPixmap; + QString m_standardPixmapName; + QPixmap m_standardPixmap; + QColor m_overColor; + QColor m_pressedColor; + QColor m_freezeColor; + QColor m_previewColor; + + Q_PROPERTY(QColor OverColor READ getOverColor WRITE setOverColor); + Q_PROPERTY(QColor PressedColor READ getPressedColor WRITE setPressedColor); + Q_PROPERTY(QColor FreezeColor READ getFreezeColor WRITE setFreezeColor); + Q_PROPERTY(QColor PreviewColor READ getPreviewColor WRITE setPreviewColor); + bool m_rollover; TPanelTitleBarButtonSet *m_buttonSet; int m_id; @@ -23,18 +34,22 @@ protected: bool m_pressed; public: - TPanelTitleBarButton(QWidget *parent, const QString &standardPixmapName, - const QString &rolloverPixmapName, - const QString &pressedPixmapName); - - TPanelTitleBarButton(QWidget *parent, const QPixmap &standardPixmap, - const QPixmap &rolloverPixmap, - const QPixmap &pressedPixmap); + TPanelTitleBarButton(QWidget *parent, const QString &standardPixmapName); + TPanelTitleBarButton(QWidget *parent, const QPixmap &standardPixmap); //! call this method to make a radio button. id is the button identifier void setButtonSet(TPanelTitleBarButtonSet *buttonSet, int id); int getId() const { return m_id; } + void setOverColor(const QColor &color) { m_overColor = color; } + QColor getOverColor() const { return m_overColor; } + void setPressedColor(const QColor &color) { m_pressedColor = color; } + QColor getPressedColor() const { return m_pressedColor; } + void setFreezeColor(const QColor &color) { m_freezeColor = color; } + QColor getFreezeColor() const { return m_freezeColor; } + void setPreviewColor(const QColor &color) { m_previewColor = color; } + QColor getPreviewColor() const { return m_previewColor; } + public slots: void setPressed(bool pressed); // n.b. doesn't emit signals. calls update() @@ -61,11 +76,8 @@ class TPanelTitleBarButtonForSafeArea final : public TPanelTitleBarButton { Q_OBJECT public: TPanelTitleBarButtonForSafeArea(QWidget *parent, - const QString &standardPixmapName, - const QString &rolloverPixmapName, - const QString &pressedPixmapName) - : TPanelTitleBarButton(parent, standardPixmapName, rolloverPixmapName, - pressedPixmapName) {} + const QString &standardPixmapName) + : TPanelTitleBarButton(parent, standardPixmapName) {} void getSafeAreaNameList(QList &nameList); protected: diff --git a/toonz/sources/toonz/penciltestpopup.cpp b/toonz/sources/toonz/penciltestpopup.cpp index 3e0da9c..8990650 100644 --- a/toonz/sources/toonz/penciltestpopup.cpp +++ b/toonz/sources/toonz/penciltestpopup.cpp @@ -1214,13 +1214,14 @@ void PencilTestSaveInFolderPopup::updateParentFolder() { PencilTestPopup::PencilTestPopup() // set the parent 0 in order to enable the popup behind the main window - : Dialog(0, false, false, "PencilTest") - , m_currentCamera(NULL) - , m_captureWhiteBGCue(false) - , m_captureCue(false) - , m_useMjpg(CamCapUseMjpg != 0) + : Dialog(0, false, false, "PencilTest"), + m_currentCamera(NULL), + m_captureWhiteBGCue(false), + m_captureCue(false), + m_useMjpg(CamCapUseMjpg != 0) #ifdef _WIN32 - , m_useDirectShow(CamCapUseDirectShow != 0) + , + m_useDirectShow(CamCapUseDirectShow != 0) #endif { setWindowTitle(tr("Camera Capture")); @@ -1342,19 +1343,22 @@ PencilTestPopup::PencilTestPopup() m_captureButton->setIconSize(QSize(30, 30)); m_captureFilterSettingsBtn->setObjectName("GearButton"); - m_captureFilterSettingsBtn->setFixedSize(23, 23); - m_captureFilterSettingsBtn->setIconSize(QSize(15, 15)); + m_captureFilterSettingsBtn->setFixedSize(24, 24); + m_captureFilterSettingsBtn->setIconSize(QSize(16, 16)); + m_captureFilterSettingsBtn->setIcon(createQIcon("gear")); m_captureFilterSettingsBtn->setToolTip(tr("Options")); m_captureFilterSettingsBtn->setMenu(createOptionsMenu()); subfolderButton->setObjectName("SubfolderButton"); - subfolderButton->setIconSize(QSize(15, 15)); + subfolderButton->setIconSize(QSize(16, 16)); + subfolderButton->setIcon(createQIcon("folder_new")); m_saveInFileFld->setMaximumWidth(380); m_saveInFolderPopup->hide(); m_subcameraButton->setObjectName("SubcameraButton"); - m_subcameraButton->setIconSize(QSize(15, 15)); + m_subcameraButton->setIconSize(QSize(16, 16)); + m_subcameraButton->setIcon(createQIcon("subcamera")); m_subcameraButton->setCheckable(true); m_subcameraButton->setChecked(false); subCamWidget->setHidden(true); @@ -2438,8 +2442,9 @@ bool PencilTestPopup::importImage(QImage image) { /* if the loaded level does not match in pixel size, then return */ sl = level->getSimpleLevel(); - if (!sl || sl->getProperties()->getImageRes() != - TDimension(image.width(), image.height())) { + if (!sl || + sl->getProperties()->getImageRes() != + TDimension(image.width(), image.height())) { error(tr( "The captured image size does not match with the existing level.")); return false; @@ -2464,7 +2469,7 @@ bool PencilTestPopup::importImage(QImage image) { else { TXshLevel* level = scene->createNewLevel(OVL_XSHLEVEL, levelName, TDimension(), 0, levelFp); - sl = level->getSimpleLevel(); + sl = level->getSimpleLevel(); sl->setPath(levelFp, true); sl->getProperties()->setDpiPolicy(LevelProperties::DP_CustomDpi); TPointD dpi; @@ -2653,7 +2658,7 @@ void PencilTestPopup::refreshFrameInfo() { // frame existence TFilePath frameFp(actualLevelFp.withFrame(frameNumber)); - bool frameExist = false; + bool frameExist = false; if (levelExist) frameExist = TFileStatus(frameFp).doesExist(); // reset acceptable camera size diff --git a/toonz/sources/toonz/penciltestpopup_qt.cpp b/toonz/sources/toonz/penciltestpopup_qt.cpp index 1d3b3fc..97a0c33 100644 --- a/toonz/sources/toonz/penciltestpopup_qt.cpp +++ b/toonz/sources/toonz/penciltestpopup_qt.cpp @@ -177,7 +177,7 @@ inline void doPixBinary(QRgb* pix, int threshold) { gray = 255; else gray = 0; - *pix = qRgb(gray, gray, gray); + *pix = qRgb(gray, gray, gray); } //----------------------------------------------------------------------------- @@ -220,7 +220,7 @@ void onChange(QImage& img, int black, int white, float gamma, bool doGray) { void onChangeBW(QImage& img, int threshold) { int lx = img.width(), y, ly = img.height(); for (y = 0; y < ly; ++y) { - QRgb *pix = (QRgb*)img.scanLine(y), *endPix = (QRgb*)(pix + lx); + QRgb *pix = (QRgb *)img.scanLine(y), *endPix = (QRgb *)(pix + lx); while (pix < endPix) { doPixBinary(pix, threshold); ++pix; @@ -476,7 +476,7 @@ bool getRasterLevelSize(TXshLevel* level, TDimension& dim) { void ApplyLutTask::run() { int lx = m_img.width(); for (int y = m_fromY; y < m_toY; ++y) { - QRgb *pix = (QRgb*)m_img.scanLine(y), *endPix = (QRgb*)(pix + lx); + QRgb *pix = (QRgb *)m_img.scanLine(y), *endPix = (QRgb *)(pix + lx); while (pix < endPix) { doPix(pix, m_lut); ++pix; @@ -487,7 +487,7 @@ void ApplyLutTask::run() { void ApplyGrayLutTask::run() { int lx = m_img.width(); for (int y = m_fromY; y < m_toY; ++y) { - QRgb *pix = (QRgb*)m_img.scanLine(y), *endPix = (QRgb*)(pix + lx); + QRgb *pix = (QRgb *)m_img.scanLine(y), *endPix = (QRgb *)(pix + lx); while (pix < endPix) { doPixGray(pix, m_lut); ++pix; @@ -1418,10 +1418,10 @@ void PencilTestSaveInFolderPopup::updateParentFolder() { PencilTestPopup::PencilTestPopup() // set the parent 0 in order to enable the popup behind the main window - : Dialog(0, false, false, "PencilTest") - , m_currentCamera(NULL) - , m_captureWhiteBGCue(false) - , m_captureCue(false) { + : Dialog(0, false, false, "PencilTest"), + m_currentCamera(NULL), + m_captureWhiteBGCue(false), + m_captureCue(false) { setWindowTitle(tr("Camera Capture")); // add maximize button to the dialog @@ -1545,20 +1545,23 @@ PencilTestPopup::PencilTestPopup() if (m_captureFilterSettingsBtn) { m_captureFilterSettingsBtn->setObjectName("GearButton"); - m_captureFilterSettingsBtn->setFixedSize(23, 23); - m_captureFilterSettingsBtn->setIconSize(QSize(15, 15)); + m_captureFilterSettingsBtn->setFixedSize(24, 24); + m_captureFilterSettingsBtn->setIconSize(QSize(16, 16)); + m_captureFilterSettingsBtn->setIcon(createQIcon("gear")); m_captureFilterSettingsBtn->setToolTip( tr("Video Capture Filter Settings...")); } subfolderButton->setObjectName("SubfolderButton"); - subfolderButton->setIconSize(QSize(15, 15)); + subfolderButton->setIconSize(QSize(16, 16)); + subfolderButton->setIcon(createQIcon("folder_new")); m_saveInFileFld->setMaximumWidth(380); m_saveInFolderPopup->hide(); m_subcameraButton->setObjectName("SubcameraButton"); - m_subcameraButton->setIconSize(QSize(15, 15)); + m_subcameraButton->setIconSize(QSize(16, 16)); + m_subcameraButton->setIcon(createQIcon("subcamera")); m_subcameraButton->setCheckable(true); m_subcameraButton->setChecked(false); subCamWidget->setHidden(true); @@ -1744,7 +1747,7 @@ PencilTestPopup::PencilTestPopup() bool ret = true; ret = ret && connect(refreshCamListButton, SIGNAL(pressed()), this, SLOT(refreshCameraList())); - ret = ret && connect(m_cameraListCombo, SIGNAL(activated(int)), this, + ret = ret && connect(m_cameraListCombo, SIGNAL(activated(int)), this, SLOT(onCameraListComboActivated(int))); ret = ret && connect(m_resolutionCombo, SIGNAL(activated(const QString&)), this, SLOT(onResolutionComboActivated(const QString&))); @@ -2539,8 +2542,9 @@ bool PencilTestPopup::importImage(QImage image) { /* if the loaded level does not match in pixel size, then return */ sl = level->getSimpleLevel(); - if (!sl || sl->getProperties()->getImageRes() != - TDimension(image.width(), image.height())) { + if (!sl || + sl->getProperties()->getImageRes() != + TDimension(image.width(), image.height())) { error(tr( "The captured image size does not match with the existing level.")); return false; @@ -2565,7 +2569,7 @@ bool PencilTestPopup::importImage(QImage image) { else { TXshLevel* level = scene->createNewLevel(OVL_XSHLEVEL, levelName, TDimension(), 0, levelFp); - sl = level->getSimpleLevel(); + sl = level->getSimpleLevel(); sl->setPath(levelFp, true); sl->getProperties()->setDpiPolicy(LevelProperties::DP_CustomDpi); TPointD dpi; @@ -2754,7 +2758,7 @@ void PencilTestPopup::refreshFrameInfo() { // frame existence TFilePath frameFp(actualLevelFp.withFrame(frameNumber)); - bool frameExist = false; + bool frameExist = false; if (levelExist) frameExist = TFileStatus(frameFp).doesExist(); // reset acceptable camera size diff --git a/toonz/sources/toonz/preferencespopup.cpp b/toonz/sources/toonz/preferencespopup.cpp index 8e9d348..b43707f 100644 --- a/toonz/sources/toonz/preferencespopup.cpp +++ b/toonz/sources/toonz/preferencespopup.cpp @@ -355,6 +355,15 @@ void PreferencesPopup::onStyleSheetTypeChanged() { //----------------------------------------------------------------------------- +void PreferencesPopup::onIconThemeChanged() { + // Switch between dark or light icons + QIcon::setThemeName(Preferences::instance()->getIconTheme() ? "dark" + : "light"); + // qDebug() << "Icon theme name (preference switch):" << QIcon::themeName(); +} + +//----------------------------------------------------------------------------- + void PreferencesPopup::onPixelsOnlyChanged() { QComboBox* unitOm = getUI(linearUnits); QComboBox* cameraUnitOm = getUI(cameraUnits); @@ -931,6 +940,7 @@ QString PreferencesPopup::getUIString(PreferencesItemId id) { // Interface {CurrentStyleSheetName, tr("Theme:")}, + {iconTheme, tr("Switch to dark icons")}, {pixelsOnly, tr("All imported images will use the same DPI")}, //{ oldUnits, tr("") }, //{ oldCameraUnits, tr("") }, @@ -1239,11 +1249,7 @@ PreferencesPopup::PreferencesPopup() QVBoxLayout* categoryLayout = new QVBoxLayout(); categoryLayout->setMargin(5); categoryLayout->setSpacing(10); - { - categoryLayout->addWidget(new QLabel(tr("Category"), this), 0, - Qt::AlignLeft | Qt::AlignVCenter); - categoryLayout->addWidget(categoryList, 1); - } + categoryLayout->addWidget(categoryList, 1); mainLayout->addLayout(categoryLayout, 0); mainLayout->addWidget(stackedWidget, 1); } @@ -1383,14 +1389,18 @@ QWidget* PreferencesPopup::createInterfacePage() { insertUI(CurrentStyleSheetName, lay, styleSheetItemList); - int row = lay->rowCount(); - lay->addWidget(new QLabel(tr("Pixels Only:"), this), row, 0, + lay->addWidget(new QLabel(tr("Icon Theme*:"), this), 2, 0, Qt::AlignRight | Qt::AlignVCenter); - lay->addWidget(createUI(pixelsOnly), row, 1); + lay->addWidget(createUI(iconTheme), 2, 1); insertUI(linearUnits, lay, getComboItemList(linearUnits)); insertUI(cameraUnits, lay, getComboItemList(linearUnits)); // share items with linearUnits + + lay->addWidget(new QLabel(tr("Pixels Only:"), this), 5, 0, + Qt::AlignRight | Qt::AlignVCenter); + lay->addWidget(createUI(pixelsOnly), 5, 1); + insertUI(CurrentRoomChoice, lay, roomItemList); insertUI(functionEditorToggle, lay, getComboItemList(functionEditorToggle)); insertUI(moveCurrentFrameByClickCellArea, lay); @@ -1425,6 +1435,7 @@ QWidget* PreferencesPopup::createInterfacePage() { m_onEditedFuncMap.insert(CurrentStyleSheetName, &PreferencesPopup::onStyleSheetTypeChanged); + m_onEditedFuncMap.insert(iconTheme, &PreferencesPopup::onIconThemeChanged); m_onEditedFuncMap.insert(pixelsOnly, &PreferencesPopup::onPixelsOnlyChanged); m_onEditedFuncMap.insert(linearUnits, &PreferencesPopup::onUnitChanged); m_onEditedFuncMap.insert(cameraUnits, &PreferencesPopup::onUnitChanged); diff --git a/toonz/sources/toonz/preferencespopup.h b/toonz/sources/toonz/preferencespopup.h index 4a71f09..abd6b24 100644 --- a/toonz/sources/toonz/preferencespopup.h +++ b/toonz/sources/toonz/preferencespopup.h @@ -117,6 +117,7 @@ private: void onPathAliasPriorityChanged(); // Interface void onStyleSheetTypeChanged(); + void onIconThemeChanged(); void onPixelsOnlyChanged(); void onUnitChanged(); void beforeRoomChoiceChanged(); diff --git a/toonz/sources/toonz/projectpopup.cpp b/toonz/sources/toonz/projectpopup.cpp index 39e3e03..828cccc 100644 --- a/toonz/sources/toonz/projectpopup.cpp +++ b/toonz/sources/toonz/projectpopup.cpp @@ -37,9 +37,9 @@ using namespace DVGui; QPixmap ProjectDvDirModelProjectNode::getPixmap(bool isOpen) const { static QPixmap openProjectPixmap( - svgToPixmap(":Resources/browser_project_open.svg")); + svgToPixmap(getIconThemePath("actions/18/folder_project_on.svg"))); static QPixmap closeProjectPixmap( - svgToPixmap(":Resources/browser_project_close.svg")); + svgToPixmap(getIconThemePath("actions/18/folder_project.svg"))); return isOpen ? openProjectPixmap : closeProjectPixmap; } @@ -92,7 +92,8 @@ void ProjectDvDirModelRootNode::refreshChildren() { ProjectDvDirModelSpecialFileFolderNode *projectRootNode = new ProjectDvDirModelSpecialFileFolderNode( this, L"Project root (" + rootDir + L")", projectRoot); - projectRootNode->setPixmap(svgToPixmap(":Resources/projects.svg")); + projectRootNode->setPixmap( + svgToPixmap(getIconThemePath("actions/18/folder_project_root.svg"))); addChild(projectRootNode); } @@ -280,7 +281,6 @@ ProjectPopup::ProjectPopup(bool isModal) m_nameFld->setMaximumHeight(WidgetHeight); m_treeView->setModel(m_model); - m_treeView->setStyleSheet("border:1px solid rgb(120,120,120);"); //----layout m_topLayout->setMargin(5); diff --git a/toonz/sources/toonz/ruler.cpp b/toonz/sources/toonz/ruler.cpp index bd27cac..8ec4425 100644 --- a/toonz/sources/toonz/ruler.cpp +++ b/toonz/sources/toonz/ruler.cpp @@ -123,7 +123,7 @@ void Ruler::drawVertical(QPainter &p) { int x0 = 0, x1 = w - 1; p.setPen(Qt::DotLine); - p.setPen(grey120); + p.setPen(getBorderColor()); p.drawLine(x1, 0, x1, h - 1); double origin = -getPan() + 0.5 * h; @@ -135,8 +135,8 @@ void Ruler::drawVertical(QPainter &p) { zoom = -zoom; } for (i = 0; i < count; i++) { - QColor color = - (m_moving && count - 1 == i ? QColor(0, 255, 255) : QColor(0, 0, 255)); + QColor color = (m_moving && count - 1 == i ? QColor(getHandleDragColor()) + : QColor(getHandleColor())); double v = guides[i] / (double)getDevPixRatio(); int y = (int)(origin - zoom * v); p.fillRect(QRect(x0, y - 1, x1 - x0, 2), QBrush(color)); @@ -177,7 +177,7 @@ void Ruler::drawHorizontal(QPainter &p) { int y0 = 0; int y1 = h - 1; p.setPen(Qt::DotLine); - p.setPen(grey120); + p.setPen(getBorderColor()); p.drawLine(0, y1, w - 1, y1); double origin = getPan() + 0.5 * w; @@ -190,8 +190,8 @@ void Ruler::drawHorizontal(QPainter &p) { if (m_hiding) count--; double zoom = getZoomScale(); for (i = 0; i < count; i++) { - QColor color = - (m_moving && count - 1 == i ? QColor(0, 255, 255) : QColor(0, 0, 255)); + QColor color = (m_moving && count - 1 == i ? QColor(getHandleDragColor()) + : QColor(getHandleColor())); double v = guides[i] / (double)getDevPixRatio(); int x = (int)(origin + zoom * v); p.fillRect(QRect(x - 1, y0, 2, y1 - y0), QBrush(color)); @@ -311,14 +311,14 @@ void Ruler::mouseMoveEvent(QMouseEvent *e) { double g = guides[i] / (double)getDevPixRatio(); double dist2 = (g - v) * (g - v); if (dist2 < 25) { - setToolTip( - tr("Left click and drag to move guide. Right click to delete guide")); + setToolTip(tr( + "Left-click and drag to move guide, right-click to delete guide.")); return; } } // in case no guides are found near the cursor if (m_vertical) - setToolTip(tr("Click to create an horizontal guide")); + setToolTip(tr("Click to create a horizontal guide")); else setToolTip(tr("Click to create a vertical guide")); } diff --git a/toonz/sources/toonz/ruler.h b/toonz/sources/toonz/ruler.h index 114f37b..bcb9486 100644 --- a/toonz/sources/toonz/ruler.h +++ b/toonz/sources/toonz/ruler.h @@ -20,18 +20,36 @@ class Ruler final : public QWidget { Q_OBJECT QColor m_parentBgColor; - Q_PROPERTY(QColor ParentBGColor READ getParentBGColor WRITE setParentBGColor) QColor m_scaleColor; Q_PROPERTY(QColor ScaleColor READ getScaleColor WRITE setScaleColor) + QColor m_borderColor; + Q_PROPERTY(QColor BorderColor READ getBorderColor WRITE setBorderColor) + + QColor m_handleColor; + Q_PROPERTY(QColor HandleColor READ getHandleColor WRITE setHandleColor) + + QColor m_handleDragColor; + Q_PROPERTY( + QColor HandleDragColor READ getHandleDragColor WRITE setHandleDragColor) + void setParentBGColor(const QColor &color) { m_parentBgColor = color; } QColor getParentBGColor() const { return m_parentBgColor; } void setScaleColor(const QColor &color) { m_scaleColor = color; } QColor getScaleColor() const { return m_scaleColor; } + void setBorderColor(const QColor &color) { m_borderColor = color; } + QColor getBorderColor() const { return m_borderColor; } + + void setHandleColor(const QColor &color) { m_handleColor = color; } + QColor getHandleColor() const { return m_handleColor; } + + void setHandleDragColor(const QColor &color) { m_handleDragColor = color; } + QColor getHandleDragColor() const { return m_handleDragColor; } + SceneViewer *m_viewer; bool m_vertical; bool m_moving; diff --git a/toonz/sources/toonz/shortcutpopup.cpp b/toonz/sources/toonz/shortcutpopup.cpp index 067390c..9da7595 100644 --- a/toonz/sources/toonz/shortcutpopup.cpp +++ b/toonz/sources/toonz/shortcutpopup.cpp @@ -378,13 +378,13 @@ ShortcutPopup::ShortcutPopup() m_exportButton->setToolTip(tr("Export Current Shortcuts")); m_deletePresetButton = new QPushButton(tr("Delete"), this); m_deletePresetButton->setToolTip(tr("Delete Current Preset")); - m_deletePresetButton->setIcon(QIcon(":Resources/delete_on.svg")); + m_deletePresetButton->setIcon(createQIcon("delete")); m_savePresetButton = new QPushButton(tr("Save As"), this); m_savePresetButton->setToolTip(tr("Save Current Shortcuts as New Preset")); - m_savePresetButton->setIcon(QIcon(":Resources/saveas_on.svg")); + m_savePresetButton->setIcon(createQIcon("saveas")); m_loadPresetButton = new QPushButton(tr("Load")); m_loadPresetButton->setToolTip(tr("Use selected preset as shortcuts")); - m_loadPresetButton->setIcon(QIcon(":Resources/green.png")); + m_loadPresetButton->setIcon(createQIcon("load")); QGroupBox *presetBox = new QGroupBox(tr("Shortcut Presets"), this); presetBox->setObjectName("SolidLineFrame"); m_clearAllShortcutsButton = new QPushButton(tr("Clear All Shortcuts")); diff --git a/toonz/sources/toonz/startuppopup.cpp b/toonz/sources/toonz/startuppopup.cpp index f39f54c..67b13b7 100644 --- a/toonz/sources/toonz/startuppopup.cpp +++ b/toonz/sources/toonz/startuppopup.cpp @@ -157,7 +157,8 @@ StartupPopup::StartupPopup() m_removePresetBtn->setStyleSheet( "QPushButton { padding-left: 4px; padding-right: 4px;}"); QLabel *label = new QLabel(); - label->setPixmap(QPixmap(":Resources/startup.png")); + label->setPixmap( + QPixmap(QString(":icons/") + QIcon::themeName() + "/misc/startup.png")); m_projectBox->setObjectName("SolidLineFrame"); m_sceneBox->setObjectName("SolidLineFrame"); m_recentBox->setObjectName("SolidLineFrame"); diff --git a/toonz/sources/toonz/studiopaletteviewer.cpp b/toonz/sources/toonz/studiopaletteviewer.cpp index c9e687f..c7ca775 100644 --- a/toonz/sources/toonz/studiopaletteviewer.cpp +++ b/toonz/sources/toonz/studiopaletteviewer.cpp @@ -861,7 +861,7 @@ StudioPaletteViewer::StudioPaletteViewer(QWidget *parent, QToolBar *newToolbar = new QToolBar(treeToolbarWidget); // New folder action - QIcon newFolderIcon = createQIconPNG("newfolder"); + QIcon newFolderIcon = createQIconPNG("folder_new"); QAction *addFolder = new QAction(newFolderIcon, tr("&New Folder"), newToolbar); connect(addFolder, SIGNAL(triggered()), studioPltTreeViewer, diff --git a/toonz/sources/toonz/svncommitdialog.cpp b/toonz/sources/toonz/svncommitdialog.cpp index a999877..a9e17ea 100644 --- a/toonz/sources/toonz/svncommitdialog.cpp +++ b/toonz/sources/toonz/svncommitdialog.cpp @@ -71,7 +71,7 @@ SVNCommitDialog::SVNCommitDialog(QWidget *parent, const QString &workingDir, if (m_folderOnly) { m_treeWidget->setSelectionMode(QAbstractItemView::ExtendedSelection); - m_treeWidget->setIconSize(QSize(21, 17)); + m_treeWidget->setIconSize(QSize(21, 18)); } m_treeWidget->setStyleSheet("QTreeWidget { border: 1px solid gray; }"); @@ -619,7 +619,7 @@ void SVNCommitDialog::addUnversionedItem(const QString &relativePath) { QTreeWidgetItem *parent = 0; QString tempString = ""; - QIcon folderIcon = QIcon(":Resources/vcfolder_close.svg"); + QIcon folderIcon = QIcon(createQIcon("folder_vc", true)); int levelCount = list.count(); for (int i = 0; i < levelCount; i++) { @@ -668,7 +668,7 @@ void SVNCommitDialog::addUnversionedFolders(const QDir &dir, dir.entryList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot); int count = entries.count(); - QIcon folderIcon = QIcon(":Resources/vcfolder_close.svg"); + QIcon folderIcon = QIcon(createQIcon("folder_vc", true)); for (int i = 0; i < count; i++) { QString entry = entries.at(i); @@ -732,7 +732,7 @@ void SVNCommitDialog::addModifiedItem(const QString &relativePath) { QString tempString = ""; QBrush brush(Qt::red); - QIcon folderIcon = QIcon(":Resources/vcfolder_close.svg"); + QIcon folderIcon = QIcon(createQIcon("folder_vc", true)); int levelCount = list.count(); for (int i = 0; i < levelCount; i++) { diff --git a/toonz/sources/toonz/tasksviewer.cpp b/toonz/sources/toonz/tasksviewer.cpp index f76bbd8..9d0f4d3 100644 --- a/toonz/sources/toonz/tasksviewer.cpp +++ b/toonz/sources/toonz/tasksviewer.cpp @@ -39,7 +39,7 @@ bool isMovieType(std::string type) { return (type == "mov" || type == "avi" || type == "3gp" || type == "mp4" || type == "webm"); } -}; +}; // namespace //============================================================================= @@ -53,10 +53,10 @@ void TasksViewer::add(const QString &iconName, QString text, QToolBar *toolBar, const char *slot, QString iconText) { #if QT_VERSION >= 0x050500 QAction *action = new QAction( - createQIconOnOff(iconName.toLatin1().constData(), false), text, this); + createQIcon(iconName.toLatin1().constData(), false), text, this); #else QAction *action = new QAction( - createQIconOnOff(iconName.toAscii().constData(), false), text, this); + createQIcon(iconName.toAscii().constData(), false), text, this); #endif action->setIconText(iconText); bool ret = connect(action, SIGNAL(triggered(bool)), @@ -80,19 +80,19 @@ QWidget *TasksViewer::createToolBar() { // Create toolbar. It is an horizontal layout with three internal toolbar. QWidget *toolBarWidget = new QWidget(this); QToolBar *cmdToolbar = new QToolBar(toolBarWidget); - cmdToolbar->setIconSize(QSize(21, 17)); + cmdToolbar->setIconSize(QSize(20, 20)); cmdToolbar->clear(); cmdToolbar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); - add("start", tr("&Start"), cmdToolbar, SLOT(start(bool)), tr("Start")); + add("play", tr("&Start"), cmdToolbar, SLOT(start(bool)), tr("Start")); add("stop", tr("&Stop"), cmdToolbar, SLOT(stop(bool)), tr("Stop")); cmdToolbar->addSeparator(); - add("addrender", tr("&Add Render Task"), cmdToolbar, + add("render_add", tr("&Add Render Task"), cmdToolbar, SLOT(addRenderTask(bool)), tr("Add Render")); - add("addcleanup", tr("&Add Cleanup Task"), cmdToolbar, + add("cleanup_add", tr("&Add Cleanup Task"), cmdToolbar, SLOT(addCleanupTask(bool)), tr("Add Cleanup")); QToolBar *saveToolbar = new QToolBar(toolBarWidget); - saveToolbar->setIconSize(QSize(21, 17)); + saveToolbar->setIconSize(QSize(20, 20)); saveToolbar->clear(); saveToolbar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); add("save", tr("&Save Task List"), saveToolbar, SLOT(save(bool)), tr("Save")); @@ -1021,7 +1021,7 @@ TaskTreeView::TaskTreeView(TasksViewer *parent, TaskTreeModel *treeModel) if (!treeModel) treeModel = new TaskTreeModel(this); setModel(treeModel); setObjectName("taskeditortree"); - setIconSize(QSize(21, 17)); + setIconSize(QSize(35, 18)); // connect(this, SIGNAL(pressed (const QModelIndex &) ), this, // SLOT(onActivated(const QModelIndex &))); @@ -1131,41 +1131,56 @@ QVariant TaskTreeModel::data(const QModelIndex &index, int role) const { case 0: return QVariant(); case 1: - return QIcon(":Resources/farm_tasks.svg"); + return createQIcon("tasks"); case 2: case 3: TFarmTask *t = item->getTask(); bool sourceFileIsCLN = (t->m_taskFilePath.getType() == "cln"); switch (t->m_status) { case Suspended: - return QIcon(t->m_isComposerTask - ? ":Resources/render_suspended.svg" - : (sourceFileIsCLN - ? ":Resources/cln_suspended.svg" - : ":Resources/cleanup_suspended.svg")); + return QIcon( + t->m_isComposerTask + ? getIconThemePath("actions/35/task_render_suspended.svg") + : (sourceFileIsCLN + ? getIconThemePath("actions/35/task_cln_suspended.svg") + : getIconThemePath( + "actions/35/task_cleanup_suspended.svg"))); case Waiting: - return QIcon(t->m_isComposerTask - ? ":Resources/render_done_with_errors.svg" - : (sourceFileIsCLN - ? ":Resources/cln_done_with_errors.svg" - : ":Resources/cleanup_done_with_errors.svg")); + return QIcon( + t->m_isComposerTask + ? getIconThemePath( + "actions/35/task_render_completed_with_errors.svg") + : (sourceFileIsCLN + ? getIconThemePath( + "actions/35/task_cln_completed_with_errors.svg") + : getIconThemePath( + "actions/35/" + "task_cleanup_completed_with_errors.svg"))); case Running: - return QIcon(t->m_isComposerTask - ? ":Resources/render_computing.svg" - : (sourceFileIsCLN - ? ":Resources/cln_computing.svg" - : ":Resources/cleanup_computing.svg")); + return QIcon( + t->m_isComposerTask + ? getIconThemePath("actions/35/task_render_computing.svg") + : (sourceFileIsCLN + ? getIconThemePath("actions/35/task_cln_computing.svg") + : getIconThemePath( + "actions/35/task_cleanup_computing.svg"))); case Completed: - return QIcon(t->m_isComposerTask - ? ":Resources/render_done.svg" - : (sourceFileIsCLN ? ":Resources/cln_done.svg" - : ":Resources/cleanup_done.svg")); + return QIcon( + t->m_isComposerTask + ? getIconThemePath("actions/35/task_render_completed.svg") + : (sourceFileIsCLN + ? getIconThemePath("actions/35/task_cln_completed.svg") + : getIconThemePath( + "actions/35/task_cleanup_completed.svg"))); case Aborted: case TaskUnknown: - return QIcon(t->m_isComposerTask - ? ":Resources/render_failed.svg" - : (sourceFileIsCLN ? ":Resources/cln_failed.svg" - : ":Resources/cleanup_failed.svg")); + return QIcon( + t->m_isComposerTask + ? getIconThemePath("actions/35/task_render_failed.svg") + : (sourceFileIsCLN + ? getIconThemePath("actions/35/task_cln_failed.svg") + : getIconThemePath( + "actions/35/task_cleanup_failed.svg"))); default: assert(false); } diff --git a/toonz/sources/toonz/toolbar.cpp b/toonz/sources/toonz/toolbar.cpp index 4635ad4..4b2c5a1 100755 --- a/toonz/sources/toonz/toolbar.cpp +++ b/toonz/sources/toonz/toolbar.cpp @@ -69,7 +69,7 @@ Toolbar::Toolbar(QWidget *parent, bool isVertical) else setOrientation(Qt::Horizontal); - setIconSize(QSize(23, 23)); + setIconSize(QSize(20, 20)); setToolButtonStyle(Qt::ToolButtonIconOnly); m_expandButton = new QToolButton(this); diff --git a/toonz/sources/toonz/toonz.qrc b/toonz/sources/toonz/toonz.qrc index a03bf8b..a683704 100644 --- a/toonz/sources/toonz/toonz.qrc +++ b/toonz/sources/toonz/toonz.qrc @@ -1,481 +1,603 @@ - - Resources/pane_3d_off.svg - Resources/pane_3d_on.svg - Resources/pane_3d_over.svg - Resources/3Dside_l.svg - Resources/3Dside_r.svg - Resources/3Dtop.svg - Resources/RGBpicker.svg - Resources/RGBpicker_rollover.svg - Resources/arrow_down.png - Resources/arrow_down_over.png - Resources/arrow_left.png - Resources/arrow_left_over.png - Resources/arrow_right.png - Resources/arrow_right_over.png - Resources/arrow_up.png - Resources/arrow_up_over.png - Resources/backg.png - Resources/bender.png - Resources/bender.svg - Resources/bender_rollover.svg - Resources/bottomover.png - Resources/broken.svg - Resources/brush.png - Resources/brush.svg - Resources/brush_rollover.svg - Resources/camera.png - Resources/camera.svg - Resources/camera_small.svg - Resources/camera_selected.png - Resources/camerastand_toggle.png - Resources/canvas.svg - Resources/center.png - Resources/centerHTitle.png - Resources/centerHTitle_inactive.png - Resources/centerVTitle.png - Resources/channelblue.svg - Resources/channelblue_click.svg - Resources/channelblue_over.svg - Resources/channelgreen.svg - Resources/channelgreen_click.svg - Resources/channelgreen_over.svg - Resources/channelmatte.svg - Resources/channelmatte_click.svg - Resources/channelmatte_over.svg - Resources/channelred.svg - Resources/channelred_click.svg - Resources/channelred_over.svg - Resources/check.png - Resources/clapboard.png - Resources/cleanup_failed.svg - Resources/cleanup_done.svg - Resources/cleanup_done_with_errors.svg - Resources/cleanup_computing.svg - Resources/cleanup_suspended.svg - Resources/clone.svg - Resources/pane_close.svg - Resources/pane_close_rollover.svg - Resources/collapse.svg - Resources/controlpointeditor.svg - Resources/controlpointeditor_rollover.svg - Resources/compare.svg - Resources/compare_click.svg - Resources/compare_over.svg - Resources/curve.svg - Resources/custom_off.svg - Resources/custom_on.svg - Resources/cutter.png - Resources/cutter.svg - Resources/cutter_rollover.svg - Resources/paintbrush.svg - Resources/paintbrush_rollover.svg - Resources/desktop.svg - Resources/downTitle.png - Resources/edit.svg - Resources/edit_in_place.svg - Resources/edit_rollover.svg - Resources/emptychip.png - Resources/eraser.png - Resources/eraser.svg - Resources/eraser_rollover.svg - Resources/farm_tasks.svg - Resources/fill.png - Resources/fill.svg - Resources/fill_rollover.svg - Resources/folderpreset_open.svg - Resources/folderpreset_close.svg - Resources/folderup.svg - Resources/folderup_over.svg - Resources/framefirst.svg - Resources/framefirst_click.svg - Resources/framefirst_over.svg - Resources/framelast.svg - Resources/framelast_click.svg - Resources/framelast_over.svg - Resources/framenext.svg - Resources/framenext_click.svg - Resources/framenext_over.svg - Resources/frameprev.svg - Resources/frameprev_click.svg - Resources/frameprev_over.svg - Resources/pane_freeze_off.svg - Resources/pane_freeze_on.svg - Resources/pane_freeze_over.svg - Resources/fx.svg - Resources/geometric.svg - Resources/geometric_rollover.svg - Resources/h_slider.png - Resources/hand.svg - Resources/hand_rollover.svg - Resources/histograms.svg - Resources/histograms_click.svg - Resources/histograms_over.svg - Resources/history.svg - Resources/hook.svg - Resources/hook_rollover.svg - Resources/iron.png - Resources/iron.svg - Resources/iron_rollover.svg - Resources/iconplay.png - Resources/iconpause.png - Resources/key.svg - Resources/leftTitle.png - Resources/leftTitle_inactive.png - Resources/library.svg - Resources/link_child.bmp - Resources/link_child_rollover.bmp - Resources/link_closed.bmp - Resources/link_closed_rollover.bmp - Resources/link_parent.bmp - Resources/load_level.svg - Resources/lock.png - Resources/lock_over.png - Resources/loop.svg - Resources/loop_click.svg - Resources/loop_over.svg - Resources/lock_toggle.png - Resources/magnet.png - Resources/magnet.svg - Resources/magnet_rollover.svg - Resources/menu.svg - Resources/merge.svg - Resources/motionpath_fileicon.svg - Resources/motionpath.svg - Resources/motionpath_delete.svg - Resources/motionpath_rot.svg - Resources/move.png - Resources/my_computer.svg - Resources/my_documents.svg - Resources/network.svg - Resources/new_raster_level.svg - Resources/new_toonz_raster_level.svg - Resources/new_vector_level.svg - Resources/newmemo.svg - Resources/newmemo_disabled.svg - Resources/newstyle.png - Resources/newstyle_click.png - Resources/newstyle_over.png - Resources/no_specialstyle.png - Resources/no_vectorbrush.png - Resources/no_mypaintbrush.png - Resources/palette_add_color.bmp - Resources/palette_add_page.bmp - Resources/palette_chooser.bmp - Resources/palette_color.bmp - Resources/palette_color.png - Resources/palette_header.svg - Resources/palette_key.bmp - Resources/palette_pattern.bmp - Resources/palette_settings.bmp - Resources/palette_texture.bmp - Resources/palette_view_mode.bmp - Resources/paletteicon.svg - Resources/pan.png - Resources/pause.svg - Resources/pause_click.svg - Resources/pause_disabled.svg - Resources/pause_over.svg - Resources/pegging_top_arrow.png - Resources/pegging_topright_arrow.png - Resources/pen.png - Resources/picker.png - Resources/pinch.png - Resources/pinch.svg - Resources/pinch_angle.png - Resources/pinch_curve.png - Resources/pinch_point.png - Resources/pinch_rollover.svg - Resources/pinch_wave.png - Resources/plaincolor_off.svg - Resources/plaincolor_on.svg - Resources/plastic.svg - Resources/plastic_rollover.svg - Resources/play.svg - Resources/play_click.svg - Resources/play_disabled.svg - Resources/play_over.svg - Resources/preferences.svg - Resources/preview_toggle.png - Resources/previuos_folder.png - Resources/projects.svg - Resources/psd.svg - Resources/pump.png - Resources/pump.svg - Resources/pump_rollover.svg - Resources/record.svg - Resources/record_click.svg - Resources/record_disabled.svg - Resources/record_over.svg - Resources/redo.svg - Resources/render_failed.svg - Resources/render_done.svg - Resources/render_done_with_errors.svg - Resources/render_computing.svg - Resources/render_suspended.svg - Resources/repeat_icon.svg - Resources/resizeColumnNode.svg - Resources/rightTitle_inactive.png - Resources/rightTitle.png - Resources/rot.png - Resources/rot_bottom_left.png - Resources/rot_bottom_right.png - Resources/rot_top_left.png - Resources/rotate.png - Resources/rotate.svg - Resources/rotate_rollover.svg - Resources/savescreen.png - Resources/scale.png - Resources/scale_h.png - Resources/scale_inv.png - Resources/scale_v.png - Resources/schematic_spin_arrows.svg - Resources/schematic_spline_aim_rhomb.svg - Resources/schematic_spline_aim_square.svg - Resources/selected_key.svg - Resources/selection.svg - Resources/selection_add.png - Resources/selection_convert.png - Resources/selection_rollover.svg - Resources/settings_off.svg - Resources/settings_on.svg - Resources/shear.png - Resources/skeleton.svg - Resources/skeleton_rollover.svg - Resources/snapshot.svg - Resources/snapshot_click.svg - Resources/snapshot_over.svg - Resources/sound.svg - Resources/sound_click.svg - Resources/sound_over.svg - Resources/sound_header_off.svg - Resources/sound_header_on.svg - Resources/sound_toggle.png - Resources/special_off.svg - Resources/special_on.svg - Resources/splash.svg - Resources/pane_table_off.svg - Resources/pane_table_on.svg - Resources/pane_table_over.svg - Resources/startup.png - Resources/start_off.svg - Resources/start_on.svg - Resources/stop.svg - Resources/stop_click.svg - Resources/stop_disabled.svg - Resources/stop_over.svg - Resources/stop_off.svg - Resources/stop_on.svg - Resources/stroke_select.png - Resources/stylepicker.svg - Resources/stylepicker_rollover.svg - Resources/sub.png - Resources/sub2.png - Resources/sub3.png - Resources/sub4.png - Resources/sub_enter.svg - Resources/sub_leave.svg - Resources/swap_off.svg - Resources/swap_on.svg - Resources/svg.svg - Resources/switch.svg - Resources/switch_on.svg - Resources/switch_over.svg - Resources/table_view_act.png - Resources/tape.png - Resources/tape.svg - Resources/tape_rollover.svg - Resources/texture_off.svg - Resources/texture_on.svg - Resources/thumbnails_view_act.png - Resources/timestretch.svg - Resources/toggle_audibility_click.png - Resources/toggle_audibility_over.png - Resources/toggle_lock.png - Resources/toolbar_arrow.svg - Resources/touch.svg - Resources/tracker.svg - Resources/tracker_rollover.svg - Resources/type.svg - Resources/type_in.png - Resources/type_out.png - Resources/type_rollover.svg - Resources/tzpicon.png - Resources/tzuicon.png - Resources/unknown.svg - Resources/upTitle.png - Resources/v_chandle.png - Resources/pane_cam_off.svg - Resources/pane_cam_on.svg - Resources/pane_cam_over.svg - Resources/viewicon_off.svg - Resources/viewicon_on.svg - Resources/viewicon_over.svg - Resources/viewlist_off.svg - Resources/viewlist_on.svg - Resources/viewlist_over.svg - Resources/pane_preview_off.svg - Resources/pane_preview_on.svg - Resources/pane_preview_over.svg - Resources/undo.svg - Resources/viewtable_off.svg - Resources/viewtable_on.svg - Resources/viewtable_over.svg - Resources/work.png - Resources/zoom.png - Resources/zoom.svg - Resources/zoom_rollover.svg - Resources/browser_folder_open.svg - Resources/browser_folder_close.svg - Resources/browser_scene_open.svg - Resources/browser_scene_close.svg - Resources/browser_project_open.svg - Resources/browser_project_close.svg - Resources/half_R.svg - Resources/half_R_click.svg - Resources/half_R_over.svg - Resources/half_G.svg - Resources/half_G_click.svg - Resources/half_G_over.svg - Resources/half_B.svg - Resources/half_B_click.svg - Resources/half_B_over.svg - Resources/half_bw.svg - Resources/half_bw_click.svg - Resources/half_bw_over.svg - Resources/addcleanup_off.svg - Resources/addcleanup_on.svg - Resources/addrender_off.svg - Resources/addrender_on.svg - Resources/delete_off.svg - Resources/delete_on.svg - Resources/save_off.svg - Resources/save_on.svg - Resources/saveas_off.svg - Resources/saveas_on.svg - Resources/load_off.svg - Resources/load_on.svg - Resources/flip_h.png - Resources/flip_v.png - Resources/level_select.png - Resources/vcroot.svg - Resources/vcfolder_open.png - Resources/vcfolder_close.svg - Resources/vcfolder_mis_open.svg - Resources/vcfolder_mis_close.svg - Resources/browser_vcproject_close.svg - Resources/browser_vcproject_open.svg - Resources/waiting.gif - Resources/green.png - Resources/red.png - Resources/orange.png - Resources/gray.png - Resources/bronze.png - Resources/halfGreen.png - Resources/halfRed.png - Resources/halfBronze.png - Resources/plus.png - Resources/missing.svg - Resources/forbidden.png - Resources/define_subcamera_preview.svg - Resources/define_subcamera_preview_over.svg - Resources/define_subcamera_preview_click.svg - Resources/use_subcamera_preview.svg - Resources/use_subcamera_preview_over.svg - Resources/use_subcamera_preview_click.svg - Resources/pane_subpreview_off.svg - Resources/pane_subpreview_over.svg - Resources/pane_subpreview_on.svg - Resources/round_cap.svg - Resources/butt_cap.svg - Resources/projecting_cap.svg - Resources/round_join.svg - Resources/bevel_join.svg - Resources/miter_join.svg - Resources/init.js - Resources/scripticon.png - Resources/pane_safe_off.svg - Resources/pane_safe_over.svg - Resources/pane_safe_on.svg - Resources/pane_minimize.svg - Resources/pane_minimize_over.svg - Resources/pane_minimize_on.svg - Resources/pane_grid_off.svg - Resources/pane_grid_over.svg - Resources/pane_grid_on.svg - Resources/folderup_icon.svg - Resources/link_icon.svg - Resources/folder_icon.svg - Resources/fb_history_back_enable.svg - Resources/fb_history_back_disable.svg - Resources/fb_history_fwd_enable.svg - Resources/fb_history_fwd_disable.svg - Resources/x_prev_eye.png - Resources/x_table_view.png - Resources/x_table_view_transp.png - Resources/x_lock.svg - Resources/filmstrip_inbetween.svg - Resources/history_normal.png - Resources/history_brush.png - Resources/history_eraser.png - Resources/history_fill.png - Resources/history_paintbrush.png - Resources/history_autoclose.png - Resources/history_geometric.png - Resources/history_controlpointeditor.png - Resources/history_move.png - Resources/history_finger.png - Resources/history_palette.png - Resources/history_fx.png - Resources/history_schematic.png - Resources/history_xsheet.png - Resources/history_filmstrip.png - Resources/history_unidentified.png - Resources/cln_suspended.svg - Resources/cln_done_with_errors.svg - Resources/cln_computing.svg - Resources/cln_done.svg - Resources/cln_failed.svg - Resources/match_lup_nogap.png - Resources/match_rup_nogap.png - Resources/match_lup_gap.png - Resources/match_rup_gap.png - Resources/finger.svg - Resources/finger_rollover.svg - Resources/ruler.svg - Resources/ruler_rollover.svg - Resources/locator.svg - Resources/locator_click.svg - Resources/locator_over.svg - Resources/refresh.svg - Resources/refresh_over.svg - Resources/zoom_in.svg - Resources/zoom_out.svg - Resources/zoom_in_rollover.svg - Resources/zoom_out_rollover.svg - Resources/colorchiporder_leftup.svg - Resources/colorchiporder_lowleft.svg - Resources/colorchiporder_upleft.svg - Resources/timeline2xsheet.svg - Resources/xsheet2timeline.svg - Resources/shift_and_trace.svg - Resources/shift_and_trace_edit.svg - Resources/shift_and_trace_reset.svg - Resources/up.svg - Resources/down.svg - Resources/zoomin.svg - Resources/zoomin_over.svg - Resources/zoomout.svg - Resources/zoomout_over.svg - Resources/fliphoriz_on.svg - Resources/fliphoriz_off.svg - Resources/fliphoriz_over.svg - Resources/flipvert_on.svg - Resources/flipvert_off.svg - Resources/flipvert_over.svg - Resources/reset.svg - Resources/reset_over.svg - Resources/xdts.svg - + + + icons/dark/index.theme + icons/light/index.theme + + + icons/dark/tools/20/animate.svg + icons/dark/tools/20/brush.svg + icons/dark/tools/20/paintbrush.svg + icons/dark/tools/20/eraser.svg + icons/dark/tools/20/geometric.svg + icons/dark/tools/20/fill.svg + icons/dark/tools/20/controlpointeditor.svg + icons/dark/tools/20/cutter.svg + icons/dark/tools/20/finger.svg + icons/dark/tools/20/hook.svg + icons/dark/tools/20/iron.svg + icons/dark/tools/20/magnet.svg + icons/dark/tools/20/stylepicker.svg + icons/dark/tools/20/rgbpicker.svg + icons/dark/tools/20/rgbpicker_over.svg + icons/dark/tools/20/rgbpicker_on.svg + icons/dark/tools/20/pinch.svg + icons/dark/tools/20/bender.svg + icons/dark/tools/20/plastic.svg + icons/dark/tools/20/pump.svg + icons/dark/tools/20/ruler.svg + icons/dark/tools/20/selection.svg + icons/dark/tools/20/skeleton.svg + icons/dark/tools/20/type.svg + icons/dark/tools/20/tracker.svg + icons/dark/tools/20/radar.svg + icons/dark/tools/20/tape.svg + icons/dark/tools/20/hand.svg + icons/dark/tools/20/rotate.svg + icons/dark/tools/20/zoom.svg + + icons/dark/tools/18/edit_center.svg + icons/dark/tools/18/edit_all.svg + icons/dark/tools/18/edit_position.svg + icons/dark/tools/18/edit_rotation.svg + icons/dark/tools/18/edit_scale.svg + icons/dark/tools/18/edit_shear.svg + + icons/dark/actions/16/round_join.svg + icons/dark/actions/16/projecting_cap.svg + icons/dark/actions/16/round_cap.svg + icons/dark/actions/16/bevel_join.svg + icons/dark/actions/16/butt_cap.svg + icons/dark/actions/16/miter_join.svg + + + icons/dark/actions/16/menu.svg + icons/dark/actions/16/export.svg + icons/dark/actions/16/import.svg + icons/dark/actions/16/load.svg + icons/dark/actions/18/lock.svg + icons/dark/actions/18/lock_on.svg + icons/dark/actions/16/file_copy.svg + icons/dark/actions/16/content_copy.svg + icons/dark/actions/16/cut.svg + icons/dark/actions/20/paste.svg + icons/dark/actions/20/paste_into.svg + icons/dark/actions/20/paste_above_after.svg + icons/dark/actions/20/paste_duplicate.svg + icons/dark/actions/20/insert.svg + icons/dark/actions/20/insert_above_after.svg + icons/dark/actions/16/select_all.svg + icons/dark/actions/16/invert_selection.svg + icons/dark/actions/16/save.svg + icons/dark/actions/16/saveas.svg + icons/dark/actions/16/saveall.svg + icons/dark/actions/16/gear.svg + icons/dark/actions/20/clear.svg + icons/dark/actions/16/undo.svg + icons/dark/actions/16/redo.svg + icons/dark/actions/16/delete.svg + icons/dark/actions/20/new_scene.svg + icons/dark/actions/20/load_scene.svg + icons/dark/actions/20/revert_scene.svg + icons/dark/actions/20/save_scene.svg + icons/dark/actions/20/save_scene_as.svg + icons/dark/actions/20/convert.svg + icons/dark/actions/16/orientation_h.svg + icons/dark/actions/16/orientation_v.svg + + + icons/dark/actions/20/move_back_one.svg + icons/dark/actions/20/move_forward_one.svg + icons/dark/actions/20/move_to_back.svg + icons/dark/actions/20/move_to_front.svg + + + icons/dark/actions/20/group.svg + icons/dark/actions/20/ungroup.svg + icons/dark/actions/20/enter_group.svg + icons/dark/actions/20/leave_group.svg + + + icons/dark/actions/20/preview_settings.svg + icons/dark/actions/18/preview.svg + icons/dark/actions/20/save_previewed_frames.svg + icons/dark/actions/20/cleanup_settings.svg + icons/dark/actions/20/cleanup_preview.svg + icons/dark/actions/20/cleanup.svg + icons/dark/actions/20/cleanup_add.svg + icons/dark/actions/20/autocenter.svg + icons/dark/actions/20/camera_capture.svg + icons/dark/actions/16/subcamera.svg + + + icons/dark/actions/16/my_computer.svg + icons/dark/actions/16/my_documents.svg + icons/dark/actions/16/network.svg + icons/dark/actions/16/desktop.svg + icons/dark/actions/16/library.svg + icons/dark/actions/16/history.svg + icons/dark/actions/16/fb_fwd.svg + icons/dark/actions/16/fb_back.svg + icons/dark/actions/16/fb_up.svg + icons/dark/actions/16/fb_down.svg + icons/dark/actions/16/viewlist.svg + icons/dark/actions/16/viewicon.svg + + icons/dark/actions/18/folder_project_root.svg + icons/dark/actions/60/folder_browser.svg + icons/dark/actions/60/folder_browser_link.svg + icons/dark/actions/60/folder_browser_up.svg + + + icons/dark/actions/18/folder_vc.svg + icons/dark/actions/18/folder_vc_on.svg + icons/dark/actions/35/task_cln_suspended.svg + icons/dark/actions/35/task_cln_computing.svg + icons/dark/actions/35/task_cln_completed.svg + icons/dark/actions/35/task_cln_completed_with_errors.svg + icons/dark/actions/35/task_cln_failed.svg + icons/dark/actions/35/task_cleanup_suspended.svg + icons/dark/actions/35/task_cleanup_computing.svg + icons/dark/actions/35/task_cleanup_completed.svg + icons/dark/actions/35/task_cleanup_completed_with_errors.svg + icons/dark/actions/35/task_cleanup_failed.svg + icons/dark/actions/35/task_render_suspended.svg + icons/dark/actions/35/task_render_computing.svg + icons/dark/actions/35/task_render_completed.svg + icons/dark/actions/35/task_render_completed_with_errors.svg + icons/dark/actions/35/task_render_failed.svg + + + icons/dark/mimetypes/60/tasklist_icon.svg + icons/dark/mimetypes/60/xdts_icon.svg + icons/dark/mimetypes/60/missing_icon.svg + icons/dark/mimetypes/60/motionpath_icon.svg + icons/dark/mimetypes/60/curve_icon.svg + icons/dark/mimetypes/60/unknown_icon.svg + icons/dark/mimetypes/60/cleanup_icon.svg + icons/dark/mimetypes/60/psd_icon.svg + icons/dark/mimetypes/60/svg_icon.svg + icons/dark/mimetypes/60/audio_icon.svg + icons/dark/mimetypes/60/script_icon.svg + icons/dark/mimetypes/60/broken_icon.svg + + + icons/dark/actions/20/render.svg + icons/dark/actions/20/render_add.svg + icons/dark/actions/20/output_settings.svg + icons/dark/actions/20/fast_render_mp4.svg + + + icons/dark/actions/20/load_level.svg + icons/dark/actions/20/remove_level.svg + icons/dark/actions/20/merge_levels.svg + icons/dark/actions/20/merge_levels_tlv.svg + icons/dark/actions/20/resize.svg + icons/dark/actions/20/remove_unused_levels.svg + icons/dark/actions/20/brightness_contrast.svg + icons/dark/actions/20/contrast.svg + icons/dark/actions/20/binarize.svg + icons/dark/actions/20/antialias.svg + icons/dark/actions/20/colorfade.svg + icons/dark/actions/20/thickness.svg + icons/dark/actions/20/remove_vector_overflow.svg + icons/dark/actions/20/revert_level_to_cleanup.svg + icons/dark/actions/20/reload_level.svg + icons/dark/actions/20/delete_lines.svg + icons/dark/actions/20/delete_match_lines.svg + icons/dark/actions/20/apply_match_lines.svg + icons/dark/actions/20/level_settings.svg + icons/dark/actions/20/level_info.svg + + + icons/dark/console/20/play.svg + icons/dark/console/20/pause.svg + icons/dark/console/20/stop.svg + icons/dark/console/20/record.svg + icons/dark/console/20/loop.svg + icons/dark/console/20/framefirst.svg + icons/dark/console/20/framelast.svg + icons/dark/console/20/frameprev.svg + icons/dark/console/20/framenext.svg + icons/dark/actions/20/prev_drawing.svg + icons/dark/actions/20/next_drawing.svg + icons/dark/actions/20/nextstep.svg + icons/dark/actions/20/prevstep.svg + icons/dark/actions/20/nextkey.svg + icons/dark/actions/20/prevkey.svg + + icons/dark/console/20/snapshot.svg + icons/dark/console/20/compare.svg + icons/dark/console/20/histograms.svg + icons/dark/console/20/sound.svg + icons/dark/console/20/sound_on.svg + icons/dark/console/20/preview_black.svg + icons/dark/console/20/preview_checkboard.svg + icons/dark/console/20/preview_white.svg + icons/dark/console/20/locator.svg + icons/dark/console/20/define_subcamera_preview.svg + icons/dark/console/20/use_subcamera_preview.svg + + icons/dark/console/20/half_R.svg + icons/dark/console/20/half_R_on.svg + icons/dark/console/20/half_R_over.svg + icons/dark/console/20/half_G.svg + icons/dark/console/20/half_G_on.svg + icons/dark/console/20/half_G_over.svg + icons/dark/console/20/half_B.svg + icons/dark/console/20/half_B_on.svg + icons/dark/console/20/half_B_over.svg + icons/dark/console/20/half_bw.svg + icons/dark/console/20/half_bw_on.svg + icons/dark/console/20/half_bw_over.svg + icons/dark/console/20/channelmatte.svg + icons/dark/console/20/channelmatte_on.svg + icons/dark/console/20/channelred.svg + icons/dark/console/20/channelred_over.svg + icons/dark/console/20/channelred_on.svg + icons/dark/console/20/channelgreen.svg + icons/dark/console/20/channelgreen_over.svg + icons/dark/console/20/channelgreen_on.svg + icons/dark/console/20/channelblue.svg + icons/dark/console/20/channelblue_over.svg + icons/dark/console/20/channelblue_on.svg + + + icons/dark/actions/20/output.svg + icons/dark/actions/20/fx_logo.svg + icons/dark/actions/20/fx_settings.svg + icons/dark/actions/20/switchport.svg + icons/dark/actions/20/switchport_on.svg + icons/dark/actions/20/switchport_over.svg + icons/dark/actions/20/motionpath.svg + icons/dark/actions/20/pegbar.svg + icons/dark/actions/20/camera.svg + icons/dark/actions/20/iconifynodes.svg + icons/dark/actions/20/iconifynodes_on.svg + icons/dark/actions/20/iconifynodes_over.svg + icons/dark/actions/20/reorder.svg + icons/dark/actions/20/maximizenodes.svg + icons/dark/actions/20/minimizenodes.svg + icons/dark/actions/20/swap.svg + icons/dark/actions/20/hand_schematic.svg + icons/dark/actions/20/zoom_schematic.svg + icons/dark/actions/20/selection_schematic.svg + icons/dark/actions/20/focus.svg + icons/dark/actions/18/fx.svg + + + icons/dark/actions/18/zoomin.svg + icons/dark/actions/18/zoomout.svg + icons/dark/actions/18/reset.svg + icons/dark/actions/18/fliphoriz.svg + icons/dark/actions/18/flipvert.svg + icons/dark/actions/18/actual_pixel_size.svg + icons/dark/actions/18/fit_to_window.svg + + + icons/dark/actions/20/reverse.svg + icons/dark/actions/20/swing.svg + icons/dark/actions/20/random.svg + icons/dark/actions/20/repeat.svg + icons/dark/actions/20/time_stretch.svg + icons/dark/actions/20/set_key.svg + icons/dark/actions/20/shift_keys_down.svg + icons/dark/actions/20/shift_keys_up.svg + icons/dark/actions/20/insert_multiple_keys.svg + icons/dark/actions/20/remove_multiple_keys.svg + icons/dark/actions/20/renumber.svg + icons/dark/actions/20/rollup.svg + icons/dark/actions/20/rolldown.svg + + icons/dark/actions/20/new_document.svg + icons/dark/actions/20/new_raster_level.svg + icons/dark/actions/20/new_note_level.svg + icons/dark/actions/20/new_vector_level.svg + icons/dark/actions/20/new_toonz_raster_level.svg + icons/dark/actions/20/save_level.svg + icons/dark/actions/20/save_level_as.svg + icons/dark/actions/20/save_all_levels.svg + icons/dark/actions/20/replace_level.svg + icons/dark/actions/20/export_level.svg + + icons/dark/actions/20/on_1s.svg + icons/dark/actions/20/on_2s.svg + icons/dark/actions/20/on_3s.svg + icons/dark/actions/20/on_4s.svg + icons/dark/actions/20/on_with_empty.svg + icons/dark/actions/20/step_plus.svg + icons/dark/actions/20/step_minus.svg + icons/dark/actions/20/step_2.svg + icons/dark/actions/20/step_3.svg + icons/dark/actions/20/step_4.svg + + icons/dark/actions/20/sub_collapse.svg + icons/dark/actions/20/sub_explode.svg + icons/dark/actions/20/sub_enter.svg + icons/dark/actions/20/sub_leave.svg + icons/dark/actions/20/fold_column.svg + icons/dark/actions/20/sub_edit_in_place.svg + icons/dark/actions/20/sub_clone.svg + icons/dark/actions/20/duplicate.svg + icons/dark/actions/20/onionskin_toggle.svg + icons/dark/actions/20/insert_frame.svg + icons/dark/actions/20/remove_frame.svg + icons/dark/actions/20/add_cell.svg + icons/dark/actions/20/remove_cell.svg + icons/dark/actions/20/remove_cells.svg + icons/dark/actions/20/duplicate_drawing.svg + icons/dark/actions/20/add_cells.svg + icons/dark/actions/20/tracking_options.svg + + icons/dark/actions/20/camera_settings.svg + icons/dark/actions/20/autoexpose.svg + icons/dark/actions/20/scene_settings.svg + icons/dark/actions/20/fill_empty_cells.svg + icons/dark/actions/20/clone_cells.svg + icons/dark/actions/20/auto_input_cell_number.svg + icons/dark/actions/20/resequence.svg + + icons/dark/actions/30/newmemo.svg + icons/dark/actions/20/toggle_xsheet_orientation.svg + icons/dark/actions/15/zoom_in.svg + icons/dark/actions/15/zoom_in_rollover.svg + icons/dark/actions/15/zoom_out.svg + icons/dark/actions/15/zoom_out_rollover.svg + icons/dark/actions/30/sound_header.svg + icons/dark/actions/30/sound_header_on.svg + icons/dark/actions/74/notelevel.svg + + + icons/dark/actions/20/ink_check.svg + icons/dark/actions/20/inks_only.svg + icons/dark/actions/20/transparency_check.svg + icons/dark/actions/20/fill_check.svg + icons/dark/actions/20/gap_check.svg + icons/dark/actions/20/paint_check.svg + icons/dark/actions/20/ink_no1_check.svg + icons/dark/actions/20/blackbg_check.svg + icons/dark/actions/20/opacity_check.svg + + icons/dark/actions/20/mode_lines.svg + icons/dark/actions/20/mode_areas.svg + icons/dark/actions/20/mode_areas_lines.svg + + icons/dark/actions/20/fill_rectangular.svg + icons/dark/actions/20/fill_normal.svg + icons/dark/actions/20/fill_freehand.svg + icons/dark/actions/20/fill_polyline.svg + icons/dark/actions/20/fill_auto.svg + + icons/dark/actions/20/type_lasso.svg + icons/dark/actions/20/type_rectangular.svg + icons/dark/actions/20/type_polyline.svg + icons/dark/actions/20/type_normal.svg + icons/dark/actions/20/type_erase_segment.svg + + icons/dark/actions/20/shift_and_trace.svg + icons/dark/actions/20/shift_and_trace_edit.svg + icons/dark/actions/20/shift_and_trace_no_shift.svg + icons/dark/actions/20/shift_and_trace_reset.svg + + + icons/dark/actions/18/folder.svg + icons/dark/actions/18/folder_on.svg + icons/dark/actions/16/folder_new.svg + icons/dark/actions/20/load_folder.svg + icons/dark/actions/18/folder_project_on.svg + icons/dark/actions/18/folder_project.svg + icons/dark/actions/18/folder_inactive.svg + icons/dark/actions/18/folder_inactive_on.svg + icons/dark/actions/18/folder_anim_on.svg + icons/dark/actions/18/folder_anim.svg + icons/dark/actions/18/folder_anim_inactive.svg + icons/dark/actions/18/folder_anim_inactive_on.svg + icons/dark/actions/18/folder_preset_on.svg + icons/dark/actions/18/folder_preset.svg + + + icons/dark/actions/20/newstyle.svg + icons/dark/actions/20/newpage.svg + icons/dark/actions/16/palette.svg + icons/dark/actions/16/palette_tab.svg + icons/dark/actions/20/dragpalette.svg + icons/dark/actions/18/switch.svg + icons/dark/actions/20/palettegizmo.svg + + + icons/dark/actions/20/pane_table.svg + icons/dark/actions/20/pane_safe.svg + icons/dark/actions/20/pane_grid.svg + icons/dark/actions/20/pane_cam.svg + icons/dark/actions/20/pane_freeze.svg + icons/dark/actions/20/pane_preview.svg + icons/dark/actions/20/pane_subpreview.svg + icons/dark/actions/20/pane_3d.svg + icons/dark/actions/20/pane_minimize.svg + icons/dark/actions/20/pane_close.svg + + + icons/dark/actions/16/bold.svg + icons/dark/actions/16/italic.svg + icons/dark/actions/16/underline.svg + icons/dark/actions/16/align_left.svg + icons/dark/actions/16/align_right.svg + icons/dark/actions/16/align_center.svg + + + icons/dark/devices/20/printer.svg + icons/dark/devices/20/scanner.svg + icons/dark/devices/20/scanner_settings.svg + + + icons/dark/actions/16/minus.svg + icons/dark/actions/16/plus.svg + icons/dark/actions/16/web.svg + icons/dark/actions/16/help.svg + icons/dark/actions/16/info.svg + icons/dark/actions/16/notice.svg + icons/dark/actions/20/run_script.svg + icons/dark/actions/20/console.svg + icons/dark/actions/20/pickscreen.svg + icons/dark/actions/20/toggle_fullscreen.svg + icons/dark/actions/20/schematic.svg + icons/dark/actions/20/viewer.svg + icons/dark/actions/20/studiopalette.svg + icons/dark/actions/20/colormodel.svg + icons/dark/actions/20/load_colormodel.svg + icons/dark/actions/20/styleeditor.svg + icons/dark/actions/20/messagecenter.svg + icons/dark/actions/20/recordaudio.svg + icons/dark/actions/20/flipbook.svg + icons/dark/actions/20/flipbook_link.svg + icons/dark/actions/20/timeline.svg + icons/dark/actions/20/xsheet.svg + icons/dark/actions/16/clapboard.svg + icons/dark/actions/18/tasks.svg + icons/dark/actions/20/batchservers.svg + icons/dark/actions/20/opentoonz.svg + icons/dark/actions/16/manual.svg + icons/dark/actions/20/filebrowser.svg + icons/dark/actions/20/function_editor.svg + icons/dark/actions/20/scenecast.svg + icons/dark/actions/20/segment_linked.svg + icons/dark/actions/20/segment_linked_on.svg + icons/dark/actions/11/menu_toggle.svg + icons/dark/actions/11/menu_toggle_on.svg + icons/dark/actions/16/squarepixel.svg + icons/dark/actions/48/colorchiporder_leftup.svg + icons/dark/actions/48/colorchiporder_lowleft.svg + icons/dark/actions/48/colorchiporder_upleft.svg + icons/dark/misc/startup.png + + + icons/dark/actions/20/key_off.svg + icons/dark/actions/20/key_on.svg + icons/dark/actions/20/key_modified.svg + icons/dark/actions/20/key_partial.svg + + + + + icons/light/misc/startup.png + + + + + Resources/3Dside_l.svg + Resources/3Dside_r.svg + Resources/3Dtop.svg + Resources/arrow_down.png + Resources/arrow_down_over.png + Resources/arrow_left.png + Resources/arrow_left_over.png + Resources/arrow_right.png + Resources/arrow_right_over.png + Resources/arrow_up.png + Resources/arrow_up_over.png + Resources/backg.png + Resources/bender.png + Resources/brush.png + Resources/camera.svg + Resources/camera_small.svg + Resources/center.png + Resources/clapboard.png + Resources/curve.svg + Resources/cutter.png + Resources/eraser.png + Resources/farm_tasks.svg + Resources/fill.png + Resources/iron.png + Resources/iconplay.png + Resources/iconpause.png + Resources/key.svg + Resources/magnet.png + Resources/motionpath.svg + Resources/motionpath_delete.svg + Resources/motionpath_rot.svg + Resources/move.png + Resources/no_specialstyle.png + Resources/no_vectorbrush.png + Resources/no_mypaintbrush.png + Resources/palette_header.svg + Resources/paletteicon.svg + Resources/pan.png + Resources/pegging_top_arrow.png + Resources/pegging_topright_arrow.png + Resources/pen.png + Resources/picker.png + Resources/pinch.png + Resources/pinch_angle.png + Resources/pinch_curve.png + Resources/pinch_point.png + Resources/pinch_wave.png + Resources/pump.png + Resources/resizeColumnNode.svg + Resources/rot.png + Resources/rot_bottom_left.png + Resources/rot_bottom_right.png + Resources/rot_top_left.png + Resources/rotate.png + Resources/scale.png + Resources/scale_h.png + Resources/scale_inv.png + Resources/scale_v.png + Resources/schematic_spin_arrows.svg + Resources/schematic_spline_aim_rhomb.svg + Resources/schematic_spline_aim_square.svg + Resources/selected_key.svg + Resources/selection_add.png + Resources/selection_convert.png + Resources/shear.png + Resources/splash.svg + Resources/stroke_select.png + Resources/tape.png + Resources/touch.svg + Resources/type_in.png + Resources/type_out.png + Resources/work.png + Resources/zoom.png + Resources/browser_scene_open.svg + Resources/browser_scene_close.svg + Resources/flip_h.png + Resources/flip_v.png + Resources/level_select.png + Resources/browser_vcproject_close.svg + Resources/browser_vcproject_open.svg + Resources/waiting.gif + Resources/green.png + Resources/red.png + Resources/orange.png + Resources/gray.png + Resources/bronze.png + Resources/halfGreen.png + Resources/halfRed.png + Resources/halfBronze.png + Resources/plus.png + Resources/forbidden.png + Resources/init.js + Resources/filmstrip_inbetween.svg + Resources/history_normal.png + Resources/history_brush.png + Resources/history_eraser.png + Resources/history_fill.png + Resources/history_paintbrush.png + Resources/history_autoclose.png + Resources/history_geometric.png + Resources/history_controlpointeditor.png + Resources/history_move.png + Resources/history_finger.png + Resources/history_palette.png + Resources/history_fx.png + Resources/history_schematic.png + Resources/history_xsheet.png + Resources/history_filmstrip.png + Resources/history_unidentified.png + Resources/match_lup_nogap.png + Resources/match_rup_nogap.png + Resources/match_lup_gap.png + Resources/match_rup_gap.png + Resources/scripticon.png + Resources/savescreen.png + diff --git a/toonz/sources/toonz/tpanels.cpp b/toonz/sources/toonz/tpanels.cpp index c560977..20b8e5c 100644 --- a/toonz/sources/toonz/tpanels.cpp +++ b/toonz/sources/toonz/tpanels.cpp @@ -473,10 +473,8 @@ void PaletteViewerPanel::reset() { void PaletteViewerPanel::initializeTitleBar() { m_isCurrentButton = new TPanelTitleBarButton( - getTitleBar(), svgToPixmap(":Resources/switch.svg"), - svgToPixmap(":Resources/switch_over.svg"), - svgToPixmap(":Resources/switch_on.svg")); - getTitleBar()->add(QPoint(-54, 2), m_isCurrentButton); + getTitleBar(), svgToPixmap(getIconThemePath("actions/18/switch.svg"))); + getTitleBar()->add(QPoint(-54, 0), m_isCurrentButton); m_isCurrentButton->setPressed(true); connect(m_isCurrentButton, SIGNAL(toggled(bool)), SLOT(onCurrentButtonToggled(bool))); @@ -864,8 +862,8 @@ public: panel->setWidget(toolbar); panel->setIsMaximizable(false); // panel->setAllowedAreas(Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea); - panel->setFixedWidth(45); // 35 - toolbar->setFixedWidth(35); + panel->setFixedWidth(44); // 35 + toolbar->setFixedWidth(34); panel->setWindowTitle(QString("")); } } toolbarFactory; @@ -967,8 +965,7 @@ void FlipbookPanel::initializeTitleBar(TPanelTitleBar *titleBar) { // safe area button TPanelTitleBarButtonForSafeArea *safeAreaButton = new TPanelTitleBarButtonForSafeArea( - titleBar, ":Resources/pane_safe_off.svg", - ":Resources/pane_safe_over.svg", ":Resources/pane_safe_on.svg"); + titleBar, getIconThemePath("actions/20/pane_safe.svg")); safeAreaButton->setToolTip(tr("Safe Area (Right Click to Select)")); titleBar->add(QPoint(x, 0), safeAreaButton); ret = ret && connect(safeAreaButton, SIGNAL(toggled(bool)), @@ -981,15 +978,14 @@ void FlipbookPanel::initializeTitleBar(TPanelTitleBar *titleBar) { safeAreaButton->setPressed( CommandManager::instance()->getAction(MI_SafeArea)->isChecked()); - x += 33 + iconWidth; + x += 28 + iconWidth; // minimize button - m_button = new TPanelTitleBarButton(titleBar, ":Resources/pane_minimize.svg", - ":Resources/pane_minimize_over.svg", - ":Resources/pane_minimize_on.svg"); + m_button = new TPanelTitleBarButton( + titleBar, getIconThemePath("actions/20/pane_minimize.svg")); m_button->setToolTip(tr("Minimize")); m_button->setPressed(false); - titleBar->add(QPoint(x, 1), m_button); + titleBar->add(QPoint(x, 0), m_button); ret = ret && connect(m_button, SIGNAL(toggled(bool)), this, SLOT(onMinimizeButtonToggled(bool))); assert(ret); @@ -1096,8 +1092,8 @@ public: // ExportFactory //----------------------------------------------------------------------------- -//class ExportFactory final : public TPanelFactory { -//public: +// class ExportFactory final : public TPanelFactory { +// public: // ExportFactory() : TPanelFactory("Export") {} // // TPanel *createPanel(QWidget *parent) { @@ -1110,7 +1106,7 @@ public: // void initialize(TPanel *panel) { assert(0); } //} exportFactory; // -//OpenFloatingPanel openExportPanelCommand(MI_OpenExport, "Export", +// OpenFloatingPanel openExportPanelCommand(MI_OpenExport, "Export", // QObject::tr("Export")); //============================================================================= diff --git a/toonz/sources/toonz/vectorizerpopup.cpp b/toonz/sources/toonz/vectorizerpopup.cpp index 683453a..382179b 100644 --- a/toonz/sources/toonz/vectorizerpopup.cpp +++ b/toonz/sources/toonz/vectorizerpopup.cpp @@ -750,12 +750,12 @@ paramsLayout->addWidget(m_cThicknessRatio, row++, 1);*/ //---------------------- Toolbar -------------------------- - QAction *swatchAct = new QAction(createQIconOnOff("preview", true), - tr("Toggle Swatch Preview"), this); + QAction *swatchAct = + new QAction(createQIcon("preview"), tr("Toggle Swatch Preview"), this); swatchAct->setCheckable(true); leftToolBar->addAction(swatchAct); - QAction *centerlineAct = new QAction(createQIconOnOff("opacitycheck", true), + QAction *centerlineAct = new QAction(createQIcon("opacitycheck"), tr("Toggle Centerlines Check"), this); centerlineAct->setCheckable(true); leftToolBar->addAction(centerlineAct); @@ -771,15 +771,15 @@ paramsLayout->addWidget(m_cThicknessRatio, row++, 1);*/ rightToolBar->addSeparator(); QAction *saveAct = - new QAction(createQIconOnOff("save", false), tr("Save Settings"), this); + new QAction(createQIcon("save"), tr("Save Settings"), this); rightToolBar->addAction(saveAct); QAction *loadAct = - new QAction(createQIconOnOff("load", false), tr("Load Settings"), this); + new QAction(createQIcon("load"), tr("Load Settings"), this); rightToolBar->addAction(loadAct); rightToolBar->addSeparator(); - QAction *resetAct = new QAction(createQIconOnOff("resetsize", false), - tr("Reset Settings"), this); + QAction *resetAct = + new QAction(createQIcon("resetsize"), tr("Reset Settings"), this); rightToolBar->addAction(resetAct); connect(swatchAct, SIGNAL(triggered(bool)), m_swatchArea, diff --git a/toonz/sources/toonz/viewerpane.cpp b/toonz/sources/toonz/viewerpane.cpp index dd44f57..9e62a0a 100644 --- a/toonz/sources/toonz/viewerpane.cpp +++ b/toonz/sources/toonz/viewerpane.cpp @@ -420,8 +420,7 @@ void SceneViewerPanel::initializeTitleBar(TPanelTitleBar *titleBar) { // buttons for show / hide toggle for the field guide and the safe area TPanelTitleBarButtonForSafeArea *safeAreaButton = new TPanelTitleBarButtonForSafeArea( - titleBar, ":Resources/pane_safe_off.svg", - ":Resources/pane_safe_over.svg", ":Resources/pane_safe_on.svg"); + titleBar, getIconThemePath("actions/20/pane_safe.svg")); safeAreaButton->setToolTip(tr("Safe Area (Right Click to Select)")); titleBar->add(QPoint(x, 0), safeAreaButton); ret = ret && connect(safeAreaButton, SIGNAL(toggled(bool)), @@ -434,9 +433,8 @@ void SceneViewerPanel::initializeTitleBar(TPanelTitleBar *titleBar) { safeAreaButton->setPressed( CommandManager::instance()->getAction(MI_SafeArea)->isChecked()); - button = new TPanelTitleBarButton(titleBar, ":Resources/pane_grid_off.svg", - ":Resources/pane_grid_over.svg", - ":Resources/pane_grid_on.svg"); + button = new TPanelTitleBarButton( + titleBar, getIconThemePath("actions/20/pane_grid.svg")); button->setToolTip(tr("Field Guide")); x += 1 + iconWidth; titleBar->add(QPoint(x, 0), button); @@ -450,38 +448,34 @@ void SceneViewerPanel::initializeTitleBar(TPanelTitleBar *titleBar) { CommandManager::instance()->getAction(MI_FieldGuide)->isChecked()); // view mode toggles - button = new TPanelTitleBarButton(titleBar, ":Resources/pane_table_off.svg", - ":Resources/pane_table_over.svg", - ":Resources/pane_table_on.svg"); + button = new TPanelTitleBarButton( + titleBar, getIconThemePath("actions/20/pane_table.svg")); button->setToolTip(tr("Camera Stand View")); x += 10 + iconWidth; titleBar->add(QPoint(x, 0), button); button->setButtonSet(viewModeButtonSet, SceneViewer::NORMAL_REFERENCE); button->setPressed(true); - button = new TPanelTitleBarButton(titleBar, ":Resources/pane_3d_off.svg", - ":Resources/pane_3d_over.svg", - ":Resources/pane_3d_on.svg"); + button = new TPanelTitleBarButton(titleBar, + getIconThemePath("actions/20/pane_3d.svg")); button->setToolTip(tr("3D View")); - x += 21; // width of pane_table_off.svg = 20px + x += +1 + iconWidth; titleBar->add(QPoint(x, 0), button); button->setButtonSet(viewModeButtonSet, SceneViewer::CAMERA3D_REFERENCE); - button = new TPanelTitleBarButton(titleBar, ":Resources/pane_cam_off.svg", - ":Resources/pane_cam_over.svg", - ":Resources/pane_cam_on.svg"); + button = new TPanelTitleBarButton( + titleBar, getIconThemePath("actions/20/pane_cam.svg")); button->setToolTip(tr("Camera View")); - x += 21; // width of pane_3d_off.svg = 20px + x += +1 + iconWidth; titleBar->add(QPoint(x, 0), button); button->setButtonSet(viewModeButtonSet, SceneViewer::CAMERA_REFERENCE); ret = ret && connect(viewModeButtonSet, SIGNAL(selected(int)), m_sceneViewer, SLOT(setReferenceMode(int))); // freeze button - button = new TPanelTitleBarButton(titleBar, ":Resources/pane_freeze_off.svg", - ":Resources/pane_freeze_over.svg", - ":Resources/pane_freeze_on.svg"); - x += 10 + 20; // width of pane_cam_off.svg = 20px + button = new TPanelTitleBarButton( + titleBar, getIconThemePath("actions/20/pane_freeze.svg")); + x += 10 + iconWidth; button->setToolTip(tr("Freeze")); // RC1 titleBar->add(QPoint(x, 0), button); @@ -490,19 +484,16 @@ void SceneViewerPanel::initializeTitleBar(TPanelTitleBar *titleBar) { // preview toggles m_previewButton = new TPanelTitleBarButton( - titleBar, ":Resources/pane_preview_off.svg", - ":Resources/pane_preview_over.svg", ":Resources/pane_preview_on.svg"); + titleBar, getIconThemePath("actions/20/pane_preview.svg")); x += 10 + iconWidth; titleBar->add(QPoint(x, 0), m_previewButton); m_previewButton->setToolTip(tr("Preview")); ret = ret && connect(m_previewButton, SIGNAL(toggled(bool)), SLOT(enableFullPreview(bool))); - m_subcameraPreviewButton = - new TPanelTitleBarButton(titleBar, ":Resources/pane_subpreview_off.svg", - ":Resources/pane_subpreview_over.svg", - ":Resources/pane_subpreview_on.svg"); - x += 26; // width of pane_preview_off.svg = 25px + m_subcameraPreviewButton = new TPanelTitleBarButton( + titleBar, getIconThemePath("actions/20/pane_subpreview.svg")); + x += +1 + 24; // width of pane_preview.svg = 24px titleBar->add(QPoint(x, 0), m_subcameraPreviewButton); m_subcameraPreviewButton->setToolTip(tr("Sub-camera Preview")); @@ -611,7 +602,7 @@ void SceneViewerPanel::changeWindowTitle() { QString sceneName = QString::fromStdWString(scene->getSceneName()); if (sceneName.isEmpty()) sceneName = tr("Untitled"); if (app->getCurrentScene()->getDirtyFlag()) sceneName += QString("*"); - name = tr("[SCENE]: ") + sceneName; + name = tr("Scene: ") + sceneName; if (frame >= 0) name = name + tr(" :: Frame: ") + tr(std::to_string(frame + 1).c_str()); @@ -648,7 +639,7 @@ void SceneViewerPanel::changeWindowTitle() { TFilePath fp(level->getName()); QString imageName = QString::fromStdWString( fp.withFrame(app->getCurrentFrame()->getFid()).getWideString()); - name = name + tr("[LEVEL]: ") + imageName; + name = name + tr("Level: ") + imageName; } } if (!m_sceneViewer->is3DView()) { @@ -811,11 +802,11 @@ bool SceneViewerPanel::hasSoundtrack() { try { m_sound = xsheetHandle->getXsheet()->makeSound(prop); } catch (TSoundDeviceException &e) { - if (e.getType() == TSoundDeviceException::NoDevice) { - std::cout << ::to_string(e.getMessage()) << std::endl; - } else { - throw TSoundDeviceException(e.getType(), e.getMessage()); - } + if (e.getType() == TSoundDeviceException::NoDevice) { + std::cout << ::to_string(e.getMessage()) << std::endl; + } else { + throw TSoundDeviceException(e.getType(), e.getMessage()); + } } if (m_sound == NULL) { m_hasSoundtrack = false; diff --git a/toonz/sources/toonz/xshcellviewer.cpp b/toonz/sources/toonz/xshcellviewer.cpp index 449f1ff..61b42e7 100644 --- a/toonz/sources/toonz/xshcellviewer.cpp +++ b/toonz/sources/toonz/xshcellviewer.cpp @@ -577,18 +577,6 @@ void RenameCellField::showInRowCol(int row, int col, bool multiColumnSelected) { if (pegbar && pegbar->getKeyframeRange(r0, r1)) padding += 9; } - // make the field semi-transparent - QColor bgColor = m_viewer->getColumnHeadPastelizer(); - QString styleSheetStr = QString( - "#RenameCellField { padding-right:%1px; " - "background-color:rgba(%2,%3,%4,75); color:%5;}") - .arg(padding) - .arg(bgColor.red()) - .arg(bgColor.green()) - .arg(bgColor.blue()) - .arg(m_viewer->getTextColor().name()); - setStyleSheet(styleSheetStr); - TXshCell cell = xsh->getCell(row, col); QPoint xy = m_viewer->positionToXY(CellPosition(row, col)) - QPoint(1, 2); if (!cell.isEmpty()) { @@ -1046,6 +1034,7 @@ CellArea::CellArea(XsheetViewer *parent, Qt::WFlags flags) setMouseTracking(true); m_renameCell->hide(); setFocusPolicy(Qt::NoFocus); + setObjectName("XsheetCellArea"); } //----------------------------------------------------------------------------- @@ -1083,6 +1072,8 @@ void CellArea::drawFrameSeparator(QPainter &p, int row, int col, distance > 0 && ((row - offset) % distance) == 0 && row != 0; QColor color = isAfterMarkers ? m_viewer->getMarkerLineColor() : m_viewer->getLightLineColor(); + color.setAlpha(isAfterMarkers ? m_viewer->getMarkerLineColor().alpha() + : m_viewer->getLightLineColor().alpha()); int frameAxis = m_viewer->rowToFrameAxis(row); QLine horizontalLine = m_viewer->orientation()->horizontalLine( @@ -1092,9 +1083,10 @@ void CellArea::drawFrameSeparator(QPainter &p, int row, int col, int x = horizontalLine.x1(); int y = horizontalLine.y2() - 1; horizontalLine.setP1(QPoint(x, y)); - color.setAlpha(150); + color.setAlpha(120); } else if (!o->isVerticalTimeline() && !isAfterMarkers && emptyFrame) - color.setAlpha(100); + color.setAlpha(isAfterMarkers ? m_viewer->getMarkerLineColor().alpha() + : m_viewer->getLightLineColor().alpha()); p.setPen(color); p.drawLine(horizontalLine); } @@ -1264,11 +1256,11 @@ void CellArea::drawFoldedColumns(QPainter &p, int layerAxis, for (int i = 0; i < 3; i++) { QRect whiteRect = m_viewer->orientation()->foldedRectangle(layerAxis, frameAxis, i); - p.fillRect(whiteRect, QBrush(Qt::white)); + p.fillRect(whiteRect, QBrush(m_viewer->getFoldedColumnBGColor())); } // 3 dark lines - p.setPen(m_viewer->getLightLineColor()); + p.setPen(m_viewer->getFoldedColumnLineColor()); for (int i = 0; i < 3; i++) { QLine darkLine = m_viewer->orientation()->foldedRectangleLine(layerAxis, frameAxis, i); @@ -1449,7 +1441,13 @@ void CellArea::drawSoundCell(QPainter &p, int row, int col, bool isReference) { isSelected); // cells background - p.fillRect(rect, QBrush(cellColor)); + if (o->isVerticalTimeline()) + // Paint the cell edge-to-edge, we use LightLineColor with low opacity to + // pick up the hue of the cell color to make the separator line more + // pleasing to the eye. + p.fillRect(rect.adjusted(0, 0, 0, 1), QBrush(cellColor)); + else + p.fillRect(rect, QBrush(cellColor)); if (TApp::instance()->getCurrentFrame()->isEditingScene() && !m_viewer->orientation()->isVerticalTimeline() && @@ -1698,9 +1696,17 @@ void CellArea::drawLevelCell(QPainter &p, int row, int col, bool isReference) { : (isActive ? m_viewer->getActiveCameraColor() : m_viewer->getOtherCameraColor()); cellColor.setAlpha(50); + // paint cell - p.fillRect(rect, QBrush(cellColor)); + if (o->isVerticalTimeline()) + // Paint the cell edge-to-edge, we use LightLineColor with low opacity + // to pick up the hue of the cell color to make the separator line more + // pleasing to the eye. + p.fillRect(rect.adjusted(0, 0, 0, 1), QBrush(cellColor)); + else + p.fillRect(rect, QBrush(cellColor)); } + drawFrameSeparator(p, row, col, true); if (TApp::instance()->getCurrentFrame()->isEditingScene() && @@ -1752,7 +1758,13 @@ void CellArea::drawLevelCell(QPainter &p, int row, int col, bool isReference) { } // paint cell - p.fillRect(rect, QBrush(cellColor)); + if (o->isVerticalTimeline()) + // Paint the cell edge-to-edge, we use LightLineColor with low opacity to + // pick up the hue of the cell color to make the separator line more + // pleasing to the eye. + p.fillRect(rect.adjusted(0, 0, 0, 1), QBrush(cellColor)); + else + p.fillRect(rect, QBrush(cellColor)); if (TApp::instance()->getCurrentFrame()->isEditingScene() && !m_viewer->orientation()->isVerticalTimeline() && @@ -1813,8 +1825,7 @@ void CellArea::drawLevelCell(QPainter &p, int row, int col, bool isReference) { if (cl && cell.getFrameId().getNumber() - 1 >= cl->getFrameCount()) isRed = true; QColor penColor = - isRed ? QColor(230, 100, 100) // m_viewer->getSelectedColumnTextColor() - : m_viewer->getTextColor(); + isRed ? QColor(m_viewer->getErrorTextColor()) : m_viewer->getTextColor(); p.setPen(penColor); QString fontName = Preferences::instance()->getInterfaceFont(); @@ -1974,7 +1985,13 @@ void CellArea::drawSoundTextCell(QPainter &p, int row, int col) { isSelected); // paint cell - p.fillRect(rect, QBrush(cellColor)); + if (o->isVerticalTimeline()) + // Paint the cell edge-to-edge, we use LightLineColor with low opacity to + // pick up the hue of the cell color to make the separator line more + // pleasing to the eye. + p.fillRect(rect.adjusted(0, 0, 0, 1), QBrush(cellColor)); + else + p.fillRect(rect, QBrush(cellColor)); if (TApp::instance()->getCurrentFrame()->isEditingScene() && !m_viewer->orientation()->isVerticalTimeline() && @@ -2146,7 +2163,14 @@ void CellArea::drawPaletteCell(QPainter &p, int row, int col, sideColor = m_viewer->getPaletteColumnBorderColor(); } - p.fillRect(rect, QBrush(cellColor)); + // paint cell + if (o->isVerticalTimeline()) + // Paint the cell edge-to-edge, we use LightLineColor with low opacity to + // pick up the hue of the cell color to make the separator line more + // pleasing to the eye. + p.fillRect(rect.adjusted(0, 0, 0, 1), QBrush(cellColor)); + else + p.fillRect(rect, QBrush(cellColor)); if (TApp::instance()->getCurrentFrame()->isEditingScene() && !m_viewer->orientation()->isVerticalTimeline() && @@ -2203,9 +2227,8 @@ void CellArea::drawPaletteCell(QPainter &p, int row, int col, } nameRect.adjust(0, 0, -frameAdj, 0); - QColor penColor = - isRed ? QColor(230, 100, 100) // m_viewer->getSelectedColumnTextColor() - : m_viewer->getTextColor(); + QColor penColor = isRed ? QColor(m_viewer->getErrorTextColor()) + : m_viewer->getTextColor(); p.setPen(penColor); // il nome va scritto se e' diverso dalla cella precedente oppure se // siamo su una marker line @@ -2422,7 +2445,7 @@ void CellArea::drawKeyframeLine(QPainter &p, int col, keyRect.center() + m_viewer->positionToXY(CellPosition(rows.from(), col)); QPoint end = keyRect.center() + m_viewer->positionToXY(CellPosition(rows.to(), col)); - p.setPen(Qt::white); + p.setPen(m_viewer->getTextColor()); p.drawLine(QLine(begin, end)); } @@ -2531,7 +2554,7 @@ void CellArea::paintEvent(QPaintEvent *event) { ->rect((col < 0) ? PredefinedRect::CAMERA_CELL : PredefinedRect::CELL) .translated(xy) .adjusted(0, 0, -1 - frameAdj, 0); - p.setPen(Qt::black); + p.setPen(m_viewer->getCellFocusColor()); p.setBrush(Qt::NoBrush); for (int i = 0; i < 2; i++) // thick border within cell p.drawRect(QRect(rect.topLeft() + QPoint(i, i), diff --git a/toonz/sources/toonz/xshcolumnviewer.cpp b/toonz/sources/toonz/xshcolumnviewer.cpp index dd64834..f40990b 100644 --- a/toonz/sources/toonz/xshcolumnviewer.cpp +++ b/toonz/sources/toonz/xshcolumnviewer.cpp @@ -441,9 +441,9 @@ void ChangeObjectParent::onTextChanged(const QString &text) { hide(); return; } - bool isPegbar = false; + bool isPegbar = false; if (text.startsWith("Peg")) isPegbar = true; - QString number = text; + QString number = text; number.remove(0, 4); int index = number.toInt() - 1; if (index < 0) { @@ -516,7 +516,7 @@ void ChangeObjectHandle::onTextChanged(const QString &text) { assert(m_objectHandle); TStageObjectId currentObjectId = m_objectHandle->getObjectId(); QString handle = text; - if (text.toInt() != 0) handle = QString("H") + handle; + if (text.toInt() != 0) handle = QString("H") + handle; if (handle.isEmpty()) return; std::vector ids; ids.push_back(currentObjectId); @@ -659,11 +659,13 @@ void ColumnArea::DrawHeader::prepare() const { //----------------------------------------------------------------------------- const QPixmap &ColumnArea::Pixmaps::sound() { - static QPixmap sound = svgToPixmap(":Resources/sound_header_off.svg"); + static QPixmap sound = + svgToPixmap(getIconThemePath("actions/30/sound_header.svg")); return sound; } const QPixmap &ColumnArea::Pixmaps::soundPlaying() { - static QPixmap soundPlaying = svgToPixmap(":Resources/sound_header_on.svg"); + static QPixmap soundPlaying = + svgToPixmap(getIconThemePath("actions/30/sound_header_on.svg")); return soundPlaying; } @@ -684,7 +686,7 @@ void ColumnArea::DrawHeader::levelColors(QColor &columnColor, } enum { Normal, Reference, Control } usage = Reference; if (column) { - if (column->isControl()) usage = Control; + if (column->isControl()) usage = Control; if (column->isRendered() || column->getMeshColumn()) usage = Normal; } @@ -702,7 +704,7 @@ void ColumnArea::DrawHeader::paletteColors(QColor &columnColor, QColor &dragColor) const { enum { Normal, Reference, Control } usage = Reference; if (column) { // Check if column is a mask - if (column->isControl()) usage = Control; + if (column->isControl()) usage = Control; if (column->isRendered()) usage = Normal; } @@ -729,13 +731,17 @@ void ColumnArea::DrawHeader::drawBaseFill(const QColor &columnColor, int y0 = rect.top(); int y1 = rect.bottom(); - // fill base color + // Fill base color, in timeline view adjust it right upto thumbnail so column + // head color doesn't show under icon switches. if (isEmpty) - p.fillRect(rect, m_viewer->getEmptyColumnHeadColor()); + p.fillRect(o->isVerticalTimeline() ? rect : rect.adjusted(80, 0, 0, 0), + m_viewer->getEmptyColumnHeadColor()); else if (col < 0) - p.fillRect(rect, columnColor); + p.fillRect(o->isVerticalTimeline() ? rect : rect.adjusted(80, 0, 0, 0), + columnColor); else { - p.fillRect(rect, columnColor); + p.fillRect(o->isVerticalTimeline() ? rect : rect.adjusted(80, 0, 0, 0), + columnColor); if (o->flag(PredefinedFlag::DRAG_LAYER_VISIBLE)) { // column handle @@ -752,7 +758,7 @@ void ColumnArea::DrawHeader::drawBaseFill(const QColor &columnColor, } } - p.setPen(m_viewer->getVerticalLineColor()); + p.setPen(m_viewer->getVerticalLineHeadColor()); QLine vertical = o->verticalLine(m_viewer->columnToLayerAxis(col), o->frameSide(rect)); if (isEmpty || o->isVerticalTimeline()) p.drawLine(vertical); @@ -763,11 +769,10 @@ void ColumnArea::DrawHeader::drawBaseFill(const QColor &columnColor, bool isCameraSelected = col == -1 && isCurrent && !isEditingSpline; QColor pastelizer(m_viewer->getColumnHeadPastelizer()); - pastelizer.setAlpha(50); QColor colorSelection(m_viewer->getSelectedColumnHead()); - colorSelection.setAlpha(170); - p.fillRect(rect, isSelected ? colorSelection : pastelizer); + p.fillRect(o->isVerticalTimeline() ? rect : rect.adjusted(80, 0, 0, 0), + isSelected ? colorSelection : pastelizer); } void ColumnArea::DrawHeader::drawEye() const { @@ -783,7 +788,10 @@ void ColumnArea::DrawHeader::drawEye() const { QRect prevViewRect = o->rect(PredefinedRect::EYE_AREA).translated(orig); QRect eyeRect = o->rect(PredefinedRect::EYE).translated(orig); // preview visible toggle - p.setPen(m_viewer->getVerticalLineColor()); + if (o->isVerticalTimeline()) + p.setPen(m_viewer->getColumnIconLineColor()); // Preview border color + else + p.setPen(m_viewer->getTimelineIconLineColor()); // Preview border color if (col < 0 || column->getSoundTextColumn()) { if (o->flag(PredefinedFlag::EYE_AREA_BORDER)) p.drawRect(prevViewRect); @@ -820,7 +828,10 @@ void ColumnArea::DrawHeader::drawPreviewToggle(int opacity) const { QRect tableViewImgRect = o->rect(PredefinedRect::PREVIEW_LAYER).translated(orig); - p.setPen(m_viewer->getVerticalLineColor()); + if (o->isVerticalTimeline()) + p.setPen(m_viewer->getColumnIconLineColor()); // Camstand border color + else + p.setPen(m_viewer->getTimelineIconLineColor()); // Camstand border color if (col < 0 || column->getPaletteColumn() || column->getSoundTextColumn()) { if (o->flag(PredefinedFlag::PREVIEW_LAYER_AREA_BORDER)) @@ -860,7 +871,10 @@ void ColumnArea::DrawHeader::drawLock() const { bgColor = QColor(255, 255, 255, 128); // lock button - p.setPen(m_viewer->getVerticalLineColor()); + if (o->isVerticalTimeline()) + p.setPen(m_viewer->getColumnIconLineColor()); // Lock border color + else + p.setPen(m_viewer->getTimelineIconLineColor()); // Lock border color p.fillRect(lockModeRect, bgColor); if (o->flag(PredefinedFlag::LOCK_AREA_BORDER)) p.drawRect(lockModeRect); @@ -890,7 +904,10 @@ void ColumnArea::DrawHeader::drawConfig() const { .translated(orig); // config button - p.setPen(m_viewer->getVerticalLineColor()); + if (o->isVerticalTimeline()) + p.setPen(m_viewer->getColumnIconLineColor()); + else + p.setPen(m_viewer->getTimelineIconLineColor()); p.fillRect(configRect, bgColor); if (o->flag((col < 0) ? PredefinedFlag::CAMERA_CONFIG_AREA_BORDER : PredefinedFlag::CONFIG_AREA_BORDER)) @@ -953,14 +970,15 @@ void ColumnArea::DrawHeader::drawColumnName() const { QString("Classic")) // Legacy - No background { if (columnName.contains(area->m_pos) && col >= 0) { - p.fillRect(columnName, + p.fillRect(columnName.adjusted(0, -1, 0, 0), m_viewer->getXsheetDragBarHighlightColor()); // Qt::yellow); nameBacklit = true; } else p.fillRect(columnName, m_viewer->getXsheetColumnNameBgColor()); } - if (o->flag(PredefinedFlag::LAYER_NAME_BORDER)) p.drawRect(columnName); + if (o->flag(PredefinedFlag::LAYER_NAME_BORDER)) + p.drawRect(columnName.adjusted(0, 0, 2, 0)); if (o->isVerticalTimeline() && m_viewer->getXsheetLayout() == QString("Classic")) { @@ -1112,7 +1130,7 @@ void ColumnArea::DrawHeader::drawParentHandleName() const { QRect parenthandleRect = o->rect(PredefinedRect::PARENT_HANDLE_NAME).translated(orig); - p.setPen(m_viewer->getVerticalLineColor()); + p.setPen(Qt::yellow); // m_viewer->getVerticalLineColor()); if (o->flag(PredefinedFlag::PARENT_HANDLE_NAME_BORDER)) p.drawRect(parenthandleRect); @@ -1302,17 +1320,17 @@ void ColumnArea::drawFoldedColumnHead(QPainter &p, int col) { p.setPen(m_viewer->getDarkLineColor()); p.fillRect(x0, y0 + 1, rect.width(), 18, - QBrush(m_viewer->getDarkBGColor())); + QBrush(m_viewer->getFoldedColumnBGColor())); p.fillRect(x0, y0 + 17, 2, rect.height() - 34, - QBrush(m_viewer->getLightLightBGColor())); + QBrush(m_viewer->getFoldedColumnBGColor())); p.fillRect(x0 + 3, y0 + 20, 2, rect.height() - 36, - QBrush(m_viewer->getLightLightBGColor())); + QBrush(m_viewer->getFoldedColumnBGColor())); p.fillRect(x0 + 6, y0 + 17, 2, rect.height() - 34, - QBrush(m_viewer->getLightLightBGColor())); + QBrush(m_viewer->getFoldedColumnBGColor())); - p.setPen(m_viewer->getVerticalLineColor()); + p.setPen(m_viewer->getFoldedColumnLineColor()); p.drawLine(x0 - 1, y0 + 17, x0 - 1, rect.height()); - p.setPen(m_viewer->getDarkLineColor()); + p.setPen(m_viewer->getFoldedColumnLineColor()); p.drawLine(x0 + 2, y0 + 17, x0 + 2, rect.height()); p.drawLine(x0 + 5, y0 + 17, x0 + 5, rect.height()); p.drawLine(x0, y0 + 17, x0 + 1, 17); @@ -1338,19 +1356,19 @@ void ColumnArea::drawFoldedColumnHead(QPainter &p, int col) { x0 = 0; y0 = rect.topLeft().y() + 1; - p.setPen(m_viewer->getDarkLineColor()); + p.setPen(m_viewer->getFoldedColumnLineColor()); p.fillRect(x0 + 1, y0, 18, rect.height(), - QBrush(m_viewer->getDarkBGColor())); + QBrush(m_viewer->getFoldedColumnBGColor())); p.fillRect(x0 + 17, y0, rect.width() - 34, 2, - QBrush(m_viewer->getLightLightBGColor())); + QBrush(m_viewer->getFoldedColumnBGColor())); p.fillRect(x0 + 20, y0 + 3, rect.width() - 36, 2, - QBrush(m_viewer->getLightLightBGColor())); + QBrush(m_viewer->getFoldedColumnBGColor())); p.fillRect(x0 + 17, y0 + 6, rect.width() - 34, 2, - QBrush(m_viewer->getLightLightBGColor())); + QBrush(m_viewer->getFoldedColumnBGColor())); - p.setPen(m_viewer->getVerticalLineColor()); + p.setPen(m_viewer->getFoldedColumnLineColor()); p.drawLine(x0 + 17, y0 - 1, rect.width(), y0 - 1); - p.setPen(m_viewer->getDarkLineColor()); + p.setPen(m_viewer->getFoldedColumnLineColor()); p.drawLine(x0 + 17, y0 + 2, rect.width(), y0 + 2); p.drawLine(x0 + 17, y0 + 5, rect.width(), y0 + 5); p.drawLine(x0 + 17, y0, 17, y0 + 1); @@ -1601,7 +1619,8 @@ void ColumnArea::drawSoundTextColumnHead(QPainter &p, int col) { // AREA drawHeader.drawConfig(); drawHeader.drawColumnName(); drawHeader.drawColumnNumber(); - static QPixmap iconPixmap(svgToPixmap(":Resources/magpie.svg")); + static QPixmap iconPixmap( + recolorPixmap(svgToPixmap(getIconThemePath("actions/74/notelevel.svg")))); drawHeader.drawThumbnail(iconPixmap); drawHeader.drawPegbarName(); drawHeader.drawParentHandleName(); @@ -1701,12 +1720,12 @@ void ColumnArea::paintEvent(QPaintEvent *event) { // AREA } } - p.setPen(grey150); + p.setPen(m_viewer->getVerticalLineHeadColor()); p.setBrush(Qt::NoBrush); if (m_viewer->orientation()->isVerticalTimeline()) - p.drawRect(toBeUpdated.adjusted(0, 0, -1, -3)); + p.drawRect(toBeUpdated.adjusted(-1, 0, -1, -3)); else - p.drawRect(toBeUpdated.adjusted(0, 0, -3, -1)); + p.drawRect(toBeUpdated.adjusted(0, 0, -2, -1)); if (getDragTool()) getDragTool()->drawColumnsArea(p); } @@ -1771,11 +1790,11 @@ m_value->setFont(font);*/ bool ret = connect(m_slider, SIGNAL(sliderReleased()), this, SLOT(onSliderReleased())); - ret = ret && connect(m_slider, SIGNAL(sliderMoved(int)), this, + ret = ret && connect(m_slider, SIGNAL(sliderMoved(int)), this, SLOT(onSliderChange(int))); - ret = ret && connect(m_slider, SIGNAL(valueChanged(int)), this, + ret = ret && connect(m_slider, SIGNAL(valueChanged(int)), this, SLOT(onSliderValueChanged(int))); - ret = ret && connect(m_value, SIGNAL(textChanged(const QString &)), this, + ret = ret && connect(m_value, SIGNAL(textChanged(const QString &)), this, SLOT(onValueChanged(const QString &))); ret = ret && connect(m_filterColorCombo, SIGNAL(activated(int)), this, @@ -1888,11 +1907,11 @@ SoundColumnPopup::SoundColumnPopup(QWidget *parent) bool ret = connect(m_slider, SIGNAL(sliderReleased()), this, SLOT(onSliderReleased())); - ret = ret && connect(m_slider, SIGNAL(sliderMoved(int)), this, + ret = ret && connect(m_slider, SIGNAL(sliderMoved(int)), this, SLOT(onSliderChange(int))); - ret = ret && connect(m_slider, SIGNAL(valueChanged(int)), this, + ret = ret && connect(m_slider, SIGNAL(valueChanged(int)), this, SLOT(onSliderValueChanged(int))); - ret = ret && connect(m_value, SIGNAL(textChanged(const QString &)), this, + ret = ret && connect(m_value, SIGNAL(textChanged(const QString &)), this, SLOT(onValueChanged(const QString &))); assert(ret); } @@ -2256,8 +2275,8 @@ void ColumnArea::mouseMoveEvent(QMouseEvent *event) { return; } - int col = m_viewer->xyToPosition(pos).layer(); - if (col < -1) col = 0; + int col = m_viewer->xyToPosition(pos).layer(); + if (col < -1) col = 0; TXsheet *xsh = m_viewer->getXsheet(); TXshColumn *column = xsh->getColumn(col); QPoint mouseInCell = pos - m_viewer->positionToXY(CellPosition(0, col)); @@ -2660,14 +2679,15 @@ void ColumnArea::contextMenuEvent(QContextMenuEvent *event) { menu.addAction(cmdManager->getAction(MI_ReplaceLevel)); menu.addAction(cmdManager->getAction(MI_ReplaceParentDirectory)); - //if (containsVectorLevel(col)) { + // if (containsVectorLevel(col)) { // menu.addSeparator(); // QAction *setMask = // new QAction(tr("Temporary Mask (Not in final render)"), this); // setMask->setCheckable(true); // setMask->setChecked(xsh->getColumn(col)->isMask()); // setMask->setToolTip( - // tr("Only Toonz Vector levels can be used as masks. \n Masks don't " + // tr("Only Toonz Vector levels can be used as masks. \n Masks don't + // " // "show up in final renders.")); // bool ret = true; // ret = ret && diff --git a/toonz/sources/toonz/xsheetviewer.cpp b/toonz/sources/toonz/xsheetviewer.cpp index 6789695..6a8903e 100644 --- a/toonz/sources/toonz/xsheetviewer.cpp +++ b/toonz/sources/toonz/xsheetviewer.cpp @@ -51,7 +51,7 @@ namespace XsheetGUI { const int ColumnWidth = 74; const int RowHeight = 20; const int SCROLLBAR_WIDTH = 16; -const int TOOLBAR_HEIGHT = 30; +const int TOOLBAR_HEIGHT = 29; const int ZOOM_FACTOR_MAX = 100; const int ZOOM_FACTOR_MIN = 20; } // namespace XsheetGUI @@ -384,17 +384,17 @@ void XsheetViewer::positionSections() { if (Preferences::instance()->isShowXSheetToolbarEnabled()) { m_toolbar->showToolbar(true); - int w = visibleRegion().boundingRect().width() - 5; + int w = visibleRegion().boundingRect().width(); m_toolbarScrollArea->setGeometry(0, 0, w, XsheetGUI::TOOLBAR_HEIGHT); m_toolbar->setFixedWidth(w); if (o->isVerticalTimeline()) { headerFrame = headerFrame.adjusted(XsheetGUI::TOOLBAR_HEIGHT, XsheetGUI::TOOLBAR_HEIGHT); - bodyFrame = bodyFrame.adjusted(XsheetGUI::TOOLBAR_HEIGHT, 0); + bodyFrame = bodyFrame.adjusted(XsheetGUI::TOOLBAR_HEIGHT, 0); } else { headerLayer = headerLayer.adjusted(XsheetGUI::TOOLBAR_HEIGHT, XsheetGUI::TOOLBAR_HEIGHT); - bodyLayer = bodyLayer.adjusted(XsheetGUI::TOOLBAR_HEIGHT, 0); + bodyLayer = bodyLayer.adjusted(XsheetGUI::TOOLBAR_HEIGHT, 0); } } else { m_toolbar->showToolbar(false); @@ -723,9 +723,9 @@ void XsheetViewer::updateAreeSize() { positionToXY(CellPosition(xsh->getFrameCount() + 1, firstCol)); ColumnFan *fan = xsh->getColumnFan(m_orientation); - areaFilled.setY( - areaFilled.y() + 1 + - (fan->isActive(firstCol) ? o->cellHeight() : o->foldedCellSize())); + areaFilled.setY(areaFilled.y() + 1 + (fan->isActive(firstCol) + ? o->cellHeight() + : o->foldedCellSize())); } } if (viewArea.width() < areaFilled.x()) viewArea.setWidth(areaFilled.x()); @@ -817,9 +817,9 @@ QPoint XsheetViewer::positionToXY(const CellPosition &pos) const { // area // since the layers are flipped - usePoint.setY( - usePoint.y() - o->cellHeight() + - (fan->isActive(pos.layer()) ? o->cellHeight() : o->foldedCellSize())); + usePoint.setY(usePoint.y() - o->cellHeight() + (fan->isActive(pos.layer()) + ? o->cellHeight() + : o->foldedCellSize())); int columnCount = std::max(1, xsh->getColumnCount()); int colsHeight = o->colToLayerAxis(columnCount, fan); @@ -949,8 +949,8 @@ bool XsheetViewer::areCameraCellsSelected() { void XsheetViewer::setScrubHighlight(int row, int startRow, int col) { if (m_scrubCol == -1) m_scrubCol = col; - m_scrubRow0 = std::min(row, startRow); - m_scrubRow1 = std::max(row, startRow); + m_scrubRow0 = std::min(row, startRow); + m_scrubRow1 = std::max(row, startRow); return; } @@ -1155,12 +1155,12 @@ void XsheetViewer::wheelEvent(QWheelEvent *event) { default: // Qt::MouseEventSynthesizedByQt, // Qt::MouseEventSynthesizedByApplication - { - std::cout << "not supported event: Qt::MouseEventSynthesizedByQt, " - "Qt::MouseEventSynthesizedByApplication" - << std::endl; - break; - } + { + std::cout << "not supported event: Qt::MouseEventSynthesizedByQt, " + "Qt::MouseEventSynthesizedByApplication" + << std::endl; + break; + } } // end switch } @@ -1390,8 +1390,8 @@ void XsheetViewer::onCurrentColumnSwitched() { void XsheetViewer::scrollToColumn(int col) { int colNext = col + (m_orientation->isVerticalTimeline() ? 1 : -1); if (colNext < 0) colNext = -1; - int x0 = columnToLayerAxis(col); - int x1 = columnToLayerAxis(colNext); + int x0 = columnToLayerAxis(col); + int x1 = columnToLayerAxis(colNext); if (orientation()->isVerticalTimeline()) scrollToHorizontalRange(x0, x1); diff --git a/toonz/sources/toonz/xsheetviewer.h b/toonz/sources/toonz/xsheetviewer.h index 37f9453..7cc073e 100644 --- a/toonz/sources/toonz/xsheetviewer.h +++ b/toonz/sources/toonz/xsheetviewer.h @@ -195,6 +195,8 @@ class XsheetViewer final : public QFrame, public SaveLoadQSettings { QColor m_darkBgColor; QColor m_lightLineColor; // horizontal lines (146,144,146) QColor m_darkLineColor; + QColor m_columnIconLineColor; + QColor m_timelineIconLineColor; Q_PROPERTY(QColor LightLightBGColor READ getLightLightBGColor WRITE setLightLightBGColor) @@ -204,6 +206,10 @@ class XsheetViewer final : public QFrame, public SaveLoadQSettings { Q_PROPERTY( QColor LightLineColor READ getLightLineColor WRITE setLightLineColor) Q_PROPERTY(QColor DarkLineColor READ getDarkLineColor WRITE setDarkLineColor) + Q_PROPERTY(QColor ColumnIconLineColor READ getColumnIconLineColor WRITE + setColumnIconLineColor) + Q_PROPERTY(QColor TimelineIconLineColor READ getTimelineIconLineColor WRITE + setTimelineIconLineColor) // Row QColor m_currentRowBgColor; // current frame / column (210,210,210) @@ -211,8 +217,10 @@ class XsheetViewer final : public QFrame, public SaveLoadQSettings { QColor m_verticalLineColor; // vertical lines QColor m_verticalLineHeadColor; // vertical lines in column head QColor m_textColor; // text color (black) + QColor m_errorTextColor; // error text color (red, probably) QColor m_previewFrameTextColor; // frame number in preview range (blue) QColor m_onionSkinAreaBgColor; + QColor m_frameRangeMarkerLineColor; // timeline frame markers Q_PROPERTY(QColor CurrentRowBgColor READ getCurrentRowBgColor WRITE setCurrentRowBgColor) Q_PROPERTY( @@ -222,10 +230,14 @@ class XsheetViewer final : public QFrame, public SaveLoadQSettings { Q_PROPERTY(QColor VerticalLineHeadColor READ getVerticalLineHeadColor WRITE setVerticalLineHeadColor) Q_PROPERTY(QColor TextColor READ getTextColor WRITE setTextColor) + Q_PROPERTY( + QColor ErrorTextColor READ getErrorTextColor WRITE setErrorTextColor) Q_PROPERTY(QColor PreviewFrameTextColor READ getPreviewFrameTextColor WRITE setPreviewFrameTextColor) Q_PROPERTY(QColor OnionSkinAreaBgColor READ getOnionSkinAreaBgColor WRITE setOnionSkinAreaBgColor) + Q_PROPERTY(QColor FrameRangeMarkerLineColor READ getFrameRangeMarkerLineColor + WRITE setFrameRangeMarkerLineColor) // Column QColor m_emptyColumnHeadColor; // empty column header (200,200,200) Q_PROPERTY(QColor EmptyColumnHeadColor READ getEmptyColumnHeadColor WRITE @@ -242,6 +254,16 @@ class XsheetViewer final : public QFrame, public SaveLoadQSettings { Q_PROPERTY(QColor SelectedEmptyCellColor READ getSelectedEmptyCellColor WRITE setSelectedEmptyCellColor) + // Cell focus + QColor m_cellFocusColor; + Q_PROPERTY( + QColor CellFocusColor READ getCellFocusColor WRITE setCellFocusColor) + + // Play range + QColor m_playRangeColor; + Q_PROPERTY( + QColor PlayRangeColor READ getPlayRangeColor WRITE setPlayRangeColor) + // TZP column QColor m_levelColumnColor; //(127,219,127) QColor m_levelColumnBorderColor; //(47,82,47) @@ -359,6 +381,14 @@ class XsheetViewer final : public QFrame, public SaveLoadQSettings { Q_PROPERTY(QColor SelectedColumnHead READ getSelectedColumnHead WRITE setSelectedColumnHead) + // For folded column + QColor m_foldedColumnBGColor; + QColor m_foldedColumnLineColor; + Q_PROPERTY(QColor FoldedColumnBGColor READ getFoldedColumnBGColor WRITE + setFoldedColumnBGColor) + Q_PROPERTY(QColor FoldedColumnLineColor READ getFoldedColumnLineColor WRITE + setFoldedColumnLineColor) + // Xsheet Column name/Drag bar colors QColor m_xsheetColumnNameBgColor; QColor m_xsheetDragBarHighlightColor; @@ -715,6 +745,21 @@ public: void setDarkLineColor(const QColor &color) { m_darkLineColor = color; } QColor getDarkLineColor() const { return m_darkLineColor; } + QColor getColumnIconLineColor() const { return m_columnIconLineColor; } + void setColumnIconLineColor(const QColor &color) { + m_columnIconLineColor = color; + } + QColor getTimelineIconLineColor() const { return m_timelineIconLineColor; } + void setTimelineIconLineColor(const QColor &color) { + m_timelineIconLineColor = color; + } + QColor getFrameRangeMarkerLineColor() const { + return m_frameRangeMarkerLineColor; + } + void setFrameRangeMarkerLineColor(const QColor &color) { + m_frameRangeMarkerLineColor = color; + } + // Row void setCurrentRowBgColor(const QColor &color) { m_currentRowBgColor = color; @@ -732,6 +777,8 @@ public: QColor getVerticalLineHeadColor() const { return m_verticalLineHeadColor; } void setTextColor(const QColor &color) { m_textColor = color; } QColor getTextColor() const { return m_textColor; } + void setErrorTextColor(const QColor &color) { m_errorTextColor = color; } + QColor getErrorTextColor() const { return m_errorTextColor; } void setPreviewFrameTextColor(const QColor &color) { m_previewFrameTextColor = color; } @@ -762,6 +809,14 @@ public: } QColor getSelectedEmptyCellColor() const { return m_selectedEmptyCellColor; } + // Cell focus + void setCellFocusColor(const QColor &color) { m_cellFocusColor = color; } + QColor getCellFocusColor() const { return m_cellFocusColor; } + + // Play range + QColor getPlayRangeColor() const { return m_playRangeColor; } + void setPlayRangeColor(const QColor &color) { m_playRangeColor = color; } + // TZP column void setLevelColumnColor(const QColor &color) { m_levelColumnColor = color; } void setLevelColumnBorderColor(const QColor &color) { @@ -915,6 +970,15 @@ public: void getColumnColor(QColor &color, QColor &sidecolor, int index, TXsheet *xsh); + // For folded column + QColor getFoldedColumnBGColor() const { return m_foldedColumnBGColor; } + QColor getFoldedColumnLineColor() const { return m_foldedColumnLineColor; } + void setFoldedColumnBGColor(const QColor &color) { + m_foldedColumnBGColor = color; + } + void setFoldedColumnLineColor(const QColor &color) { + m_foldedColumnLineColor = color; + } // Xsheet Column Name/Drag Bar void setXsheetColumnNameBgColor(const QColor &color) { m_xsheetColumnNameBgColor = color; diff --git a/toonz/sources/toonz/xshnoteviewer.cpp b/toonz/sources/toonz/xshnoteviewer.cpp index 313ff76..4664b1f 100644 --- a/toonz/sources/toonz/xshnoteviewer.cpp +++ b/toonz/sources/toonz/xshnoteviewer.cpp @@ -478,37 +478,25 @@ NoteArea::NoteArea(XsheetViewer *parent, Qt::WFlags flags) m_flipOrientationButton->setFocusPolicy(Qt::FocusPolicy::NoFocus); m_flipOrientationButton->setFixedSize(QSize(70, 23)); m_flipOrientationButton->setIconSize(QSize(40, 20)); - QIcon flipOrientationIcon; - flipOrientationIcon.addFile(QString(":Resources/xsheet2timeline.svg"), - QSize(), QIcon::Normal); - m_flipOrientationButton->setIcon(flipOrientationIcon); + m_flipOrientationButton->setIcon(createQIcon("toggle_xsheet_orientation")); m_flipOrientationButton->setToolTip(tr("Toggle Xsheet/Timeline")); m_noteButton->setObjectName("ToolbarToolButton"); m_noteButton->setFixedSize(34, 25); m_noteButton->setIconSize(QSize(30, 20)); - QIcon addNoteIcon = createQIcon("newmemo"); - addNoteIcon.addFile(QString(":Resources/newmemo_disabled.svg"), QSize(), - QIcon::Disabled); - m_noteButton->setIcon(addNoteIcon); + m_noteButton->setIcon(createQIcon("newmemo")); m_noteButton->setToolTip(tr("Add New Memo")); m_precNoteButton->setObjectName("ToolbarToolButton"); - m_precNoteButton->setFixedSize(18, 25); + m_precNoteButton->setFixedSize(17, 25); m_precNoteButton->setIconSize(QSize(17, 17)); - QIcon precNoteIcon = createQIcon("prevkey"); - precNoteIcon.addFile(QString(":Resources/prevkey_disabled.svg"), QSize(), - QIcon::Disabled); - m_precNoteButton->setIcon(precNoteIcon); + m_precNoteButton->setIcon(createQIcon("prevkey")); m_precNoteButton->setToolTip(tr("Previous Memo")); m_nextNoteButton->setObjectName("ToolbarToolButton"); - m_nextNoteButton->setFixedSize(18, 25); + m_nextNoteButton->setFixedSize(17, 25); m_nextNoteButton->setIconSize(QSize(17, 17)); - QIcon nextNoteIcon = createQIcon("nextkey"); - nextNoteIcon.addFile(QString(":Resources/nextkey_disabled.svg"), QSize(), - QIcon::Disabled); - m_nextNoteButton->setIcon(nextNoteIcon); + m_nextNoteButton->setIcon(createQIcon("nextkey")); m_nextNoteButton->setToolTip(tr("Next Memo")); QStringList frameDisplayStyles; @@ -629,12 +617,7 @@ void NoteArea::flipOrientation() { m_viewer->flipOrientation(); } void NoteArea::onXsheetOrientationChanged(const Orientation *newOrientation) { // m_flipOrientationButton->setText(newOrientation->caption()); - QIcon flipOrientationIcon; - QString iconFile = newOrientation->isVerticalTimeline() - ? QString(":Resources/xsheet2timeline.svg") - : QString(":Resources/timeline2xsheet.svg"); - flipOrientationIcon.addFile(iconFile, QSize(), QIcon::Normal); - m_flipOrientationButton->setIcon(flipOrientationIcon); + m_flipOrientationButton->setIcon(createQIcon("toggle_xsheet_orientation")); removeLayout(); createLayout(); diff --git a/toonz/sources/toonz/xshrowviewer.cpp b/toonz/sources/toonz/xshrowviewer.cpp index 2a2d546..3813afd 100644 --- a/toonz/sources/toonz/xshrowviewer.cpp +++ b/toonz/sources/toonz/xshrowviewer.cpp @@ -135,7 +135,7 @@ void RowArea::drawRows(QPainter &p, int r0, int r1) { int x = horizontalLine.x1(); int y = horizontalLine.y2() - (isAfterMarkers ? 6 : 3); horizontalLine.setP1(QPoint(x, y)); - if (!isAfterMarkers) p.setPen(m_viewer->getTextColor()); + if (!isAfterMarkers) p.setPen(m_viewer->getFrameRangeMarkerLineColor()); } p.drawLine(horizontalLine); } @@ -291,7 +291,7 @@ void RowArea::drawPlayRangeBackground(QPainter &p, int r0, int r1) { QRect previewBoxRect = o->rect(PredefinedRect::PREVIEW_FRAME_AREA) .adjusted(0, 0, -frameAdj, 0) .translated(basePoint); - p.fillRect(previewBoxRect, m_viewer->getNotEmptyColumnColor()); + p.fillRect(previewBoxRect, m_viewer->getPlayRangeColor()); if (!o->isVerticalTimeline()) { if (r == playR0) { @@ -427,17 +427,34 @@ void RowArea::drawOnionSkinSelection(QPainter &p) { TPixel frontPixel, backPixel; bool inksOnly; Preferences::instance()->getOnionData(frontPixel, backPixel, inksOnly); + + // Fill QColor frontColor((int)frontPixel.r, (int)frontPixel.g, (int)frontPixel.b, 128); QColor backColor((int)backPixel.r, (int)backPixel.g, (int)backPixel.b, 128); + + // Line, outline QColor frontDotColor((int)frontPixel.r, (int)frontPixel.g, (int)frontPixel.b); QColor backDotColor((int)backPixel.r, (int)backPixel.g, (int)backPixel.b); + QColor frontDotColorDark(frontDotColor.darker(200)); + QColor backDotColorDark(backDotColor.darker(200)); + QColor frontDotOutlineColor; + QColor backDotOutlineColor; + if (m_viewer->getOnionSkinAreaBgColor().value() > 128) { + // Set darker outline colors if onion skin area value is above 50% to make + // sure the dots have good visibility across all themes. + frontDotOutlineColor = frontDotColorDark; + backDotOutlineColor = backDotColorDark; + } else { + frontDotOutlineColor = frontDotColor; + backDotOutlineColor = backDotColor; + } QPen frontPen, backPen; // If the onion skin is disabled, draw dash line instead. if (osMask.isEnabled()) { - frontPen.setColor(frontDotColor); - backPen.setColor(backDotColor); + frontPen.setColor(frontDotOutlineColor); + backPen.setColor(backDotOutlineColor); } else { frontPen.setStyle(Qt::DashLine); frontPen.setColor(QColor(128, 128, 128)); @@ -458,7 +475,7 @@ void RowArea::drawOnionSkinSelection(QPainter &p) { int maxMos = 0; int mosCount = osMask.getMosCount(); for (int i = 0; i < mosCount; i++) { - int mos = osMask.getMos(i); + int mos = osMask.getMos(i); if (minMos > mos) minMos = mos; if (maxMos < mos) maxMos = mos; } @@ -508,10 +525,10 @@ void RowArea::drawOnionSkinSelection(QPainter &p) { int angle180 = 16 * 180; int turn = m_viewer->orientation()->dimension(PredefinedDimension::ONION_TURN) * 16; - p.setPen(backDotColor); + p.setPen(backDotOutlineColor); p.setBrush(QBrush(backColor)); p.drawChord(handleRect, turn, angle180); - p.setPen(frontDotColor); + p.setPen(frontDotOutlineColor); p.setBrush(QBrush(frontColor)); p.drawChord(handleRect, turn + angle180, angle180); @@ -522,7 +539,7 @@ void RowArea::drawOnionSkinSelection(QPainter &p) { // skip drawing if the frame is under the mouse cursor if (m_showOnionToSet == Mos && currentRow + mos == m_row) continue; - p.setPen(mos < 0 ? backDotColor : frontDotColor); + p.setPen(mos < 0 ? backDotOutlineColor : frontDotOutlineColor); if (osMask.isEnabled()) p.setBrush(mos < 0 ? backDotColor : frontDotColor); else @@ -546,9 +563,17 @@ void RowArea::drawOnionSkinSelection(QPainter &p) { // skip drawing if the frame is under the mouse cursor if (m_showOnionToSet == Fos && fos == m_row) continue; - p.setPen(QColor(0, 255, 255, 128)); + // Depending on the brightness, make sure dot can be seen on onion area + if (m_viewer->getOnionSkinAreaBgColor().value() > 128) + p.setPen(QColor(25, 118, 170, 255)); + else + p.setPen(QColor(0, 255, 255, 128)); if (osMask.isEnabled()) - p.setBrush(QBrush(QColor(0, 255, 255, 128))); + // Depending on the brightness, make sure dot can be seen on onion area + if (m_viewer->getOnionSkinAreaBgColor().value() > 128) + p.setBrush(QBrush(QColor(0, 165, 255, 148))); + else + p.setBrush(QBrush(QColor(0, 255, 255, 148))); else p.setBrush(Qt::NoBrush); QPoint topLeft = m_viewer->positionToXY(CellPosition(fos, -1)); @@ -851,8 +876,7 @@ void RowArea::paintEvent(QPaintEvent *event) { #ifdef WITH_STOPMOTION StopMotion *stopMotion = StopMotion::instance(); - if (stopMotion->getPlaceOnXSheet() && - (stopMotion->m_liveViewStatus > 0)) { + if (stopMotion->getPlaceOnXSheet() && (stopMotion->m_liveViewStatus > 0)) { drawStopMotionCameraIndicator(p); } @@ -882,9 +906,9 @@ void RowArea::paintEvent(QPaintEvent *event) { p.setPen(m_viewer->getVerticalLineColor()); p.setBrush(Qt::NoBrush); if (m_viewer->orientation()->isVerticalTimeline()) - p.drawRect(toBeUpdated.adjusted(0, -1, -1, 0)); + p.drawRect(toBeUpdated.adjusted(-1, -1, -1, 0)); else - p.drawRect(toBeUpdated.adjusted(-1, 0, 0, -1)); + p.drawRect(toBeUpdated.adjusted(-1, -1, 0, -1)); } //----------------------------------------------------------------------------- @@ -1319,10 +1343,10 @@ void RowArea::setMarker(int index) { if (m_r1 < 1) m_r1 = 1; } if (index == 0) { - m_r0 = m_row; + m_r0 = m_row; if (m_r1 < m_r0) m_r1 = m_r0; } else if (index == 1) { - m_r1 = m_row; + m_r1 = m_row; if (m_r1 < m_r0) m_r0 = m_r1; m_r1 -= (step == 0) ? (m_r1 - m_r0) : (m_r1 - m_r0) % step; } @@ -1378,4 +1402,4 @@ void RowArea::onRemoveMarkers() { //----------------------------------------------------------------------------- -} // namespace XsheetGUI; +} // namespace XsheetGUI diff --git a/toonz/sources/toonz/xshtoolbar.cpp b/toonz/sources/toonz/xshtoolbar.cpp index d5b0216..8f07493 100644 --- a/toonz/sources/toonz/xshtoolbar.cpp +++ b/toonz/sources/toonz/xshtoolbar.cpp @@ -31,8 +31,9 @@ XSheetToolbar::XSheetToolbar(XsheetViewer *parent, Qt::WFlags flags) #endif : CommandBar(parent, flags, isCollapsible, true), m_viewer(parent) { setObjectName("cornerWidget"); - setFixedHeight(30); + setFixedHeight(29); setObjectName("XSheetToolbar"); + setIconSize(QSize(20, 20)); } //----------------------------------------------------------------------------- diff --git a/toonz/sources/toonzlib/preferences.cpp b/toonz/sources/toonzlib/preferences.cpp index f29260e..c5a636b 100644 --- a/toonz/sources/toonzlib/preferences.cpp +++ b/toonz/sources/toonzlib/preferences.cpp @@ -365,6 +365,7 @@ void Preferences::definePreferenceItems() { // Interface define(CurrentStyleSheetName, "CurrentStyleSheetName", QMetaType::QString, "Default"); + define(iconTheme, "iconTheme", QMetaType::Bool, false); define(pixelsOnly, "pixelsOnly", QMetaType::Bool, false); define(oldUnits, "oldUnits", QMetaType::QString, "mm"); define(oldCameraUnits, "oldCameraUnits", QMetaType::QString, "inch"); @@ -454,8 +455,7 @@ void Preferences::definePreferenceItems() { 0.1, std::numeric_limits::max()); define(EnableAutocreation, "EnableAutocreation", QMetaType::Bool, true); - define(NumberingSystem, "NumberingSystem", QMetaType::Int, - 0); // Incremental + define(NumberingSystem, "NumberingSystem", QMetaType::Int, 0); // Incremental define(EnableAutoStretch, "EnableAutoStretch", QMetaType::Bool, true); define(EnableCreationInHoldCells, "EnableCreationInHoldCells", QMetaType::Bool, true); @@ -488,8 +488,8 @@ void Preferences::definePreferenceItems() { define(cursorOutlineEnabled, "cursorOutlineEnabled", QMetaType::Bool, true); define(levelBasedToolsDisplay, "levelBasedToolsDisplay", QMetaType::Int, 0); // Default - define(useCtrlAltToResizeBrush, "useCtrlAltToResizeBrush", - QMetaType::Bool, true); + define(useCtrlAltToResizeBrush, "useCtrlAltToResizeBrush", QMetaType::Bool, + true); // Xsheet define(xsheetLayoutPreference, "xsheetLayoutPreference", QMetaType::QString, diff --git a/toonz/sources/toonzqt/Resources/fxport_blue.svg b/toonz/sources/toonzqt/Resources/fxport_blue.svg index 34bf755..ef89635 100644 --- a/toonz/sources/toonzqt/Resources/fxport_blue.svg +++ b/toonz/sources/toonzqt/Resources/fxport_blue.svg @@ -1 +1,11 @@ - \ No newline at end of file + + + + + + + + + + + diff --git a/toonz/sources/toonzqt/Resources/param_off.svg b/toonz/sources/toonzqt/Resources/param_off.svg index 5b65a60..079e6a7 100644 --- a/toonz/sources/toonzqt/Resources/param_off.svg +++ b/toonz/sources/toonzqt/Resources/param_off.svg @@ -1,19 +1,10 @@ - - - - - - - - - - + + + + + + + + + diff --git a/toonz/sources/toonzqt/Resources/param_on.svg b/toonz/sources/toonzqt/Resources/param_on.svg index 8594c7d..1d9d6a8 100644 --- a/toonz/sources/toonzqt/Resources/param_on.svg +++ b/toonz/sources/toonzqt/Resources/param_on.svg @@ -1,18 +1,10 @@ - - - - - - - - - - + + + + + + + + + diff --git a/toonz/sources/toonzqt/Resources/paramanim_off.svg b/toonz/sources/toonzqt/Resources/paramanim_off.svg index dc2537a..11da670 100644 --- a/toonz/sources/toonzqt/Resources/paramanim_off.svg +++ b/toonz/sources/toonzqt/Resources/paramanim_off.svg @@ -1,26 +1,10 @@ - - - - - - - - - - - - + + + + + + + + + diff --git a/toonz/sources/toonzqt/Resources/paramanim_on.svg b/toonz/sources/toonzqt/Resources/paramanim_on.svg index 1cbfc63..732fa81 100644 --- a/toonz/sources/toonzqt/Resources/paramanim_on.svg +++ b/toonz/sources/toonzqt/Resources/paramanim_on.svg @@ -1,26 +1,10 @@ - - - - - - - - - - - - + + + + + + + + + diff --git a/toonz/sources/toonzqt/Resources/schematic_spline_aim_rhomb.svg b/toonz/sources/toonzqt/Resources/schematic_spline_aim_rhomb.svg index df59250..1952da3 100644 --- a/toonz/sources/toonzqt/Resources/schematic_spline_aim_rhomb.svg +++ b/toonz/sources/toonzqt/Resources/schematic_spline_aim_rhomb.svg @@ -1,1229 +1,10 @@ - - - - - - - - - - -]> - - - - - - - - - - - - - - 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 -sXtyhz/iyXHjuXtTsVnlIV91SOsNZfH6Ze7Z889HS1qvafeVy56UY+a7peOnNZnn3vpu6VKV/z5v -8dezJS/PhFWVuOPGQ0sJN07VZZx0cAncl+nPu3Le/lvGrrScd/dkvVurxyLWvkHX7kl9vEepWulV -OPQQabm4tuW4K3lXw92cvdf60/uSIkTaz2CVNKWuEeqYtA6G+yBlMMLdNIdpF1cVfp6pQykiaqWA -UAXIH7h4ESrcFGYlhAoX9aAqHdN0F2Lqqoc+vTMe1aR6yJGrgsCHiAWXeO1VQZe1LFTmwktcOyTf -RSzI1Eb1DJ3RqBY1U1K8Q4aElJbz1coq9tQTsSHdhUwQYLfmZ0AG7U/RYAxzomItWsMqcD2toe3T -QDlVqK5VIaT33TgkeGpXT9WhblediquqsfwzWl4mZVBVoGEWPXR6yez0kk2XRyynqD/6UqQHrehE -3PEyt1bLMdZr7kYWY8gTMIsH60F8/i6a1kPyahVKerCXdAcn0cWSNrZj4EfLI9dnUtM8ai2HmrLW -p07fOhorDSLNQqc8WA7FPnPaWqOcXc40FcpgJlIwIvU501b50q7mltPrytU10IxKmlNJsyppXqVx -pfpc59cXpRsb8Fbqw3qVh9zmllyefYpt7tVvTZXYFHCNz27qRFLBXckc9WV5s5b1D541d9QXlwCX -zFFXS2xdL7IVb5EaYE+XMR3Xymy1XfeRKbmLSoHjC2u3jOhoCtiGCcWMnLMZNyXefaFdXGd1zZbN -dS+euJywZO2H6/O3SuISytzasra2jK1j74kreWqreeGenR+uz5ecqYx0y93rcyZzKhONRWE/XPbE -PYtCbxRFW5JiPKT2IgeTi5TOnSwCJdO61aMp/c2z3fsYb+ejHbvULLPlN977ut4YdS9z5GzF6mnM -aVpaEeGRMNYyQlOcjfkYk7KSVZWJKpdomSFS6Jk6TwsLeR9jVuOxCo/LOXHiFvUrBh6YMHbfccDs -UcyCxmGhrlkmJLn2E1afQv8v1+P675Y2ZRBVkMJZJaR1CwepXBjx/5SCBX+H95HA7Lez3FP+T7JP -2ZXZcbUNSaWkhYPMHsc2Obzf/uqyS65/bvMH909aQhwpLO7c+jZd+qaVy8OWc5VlDKCC3Gnh+DB2 -xYhPqywXzcHKu1hJ4XkKv/Q5ePuQy2W45WaO5K4ax0gZt9ntSh2vfG0Ty05po98opyzuG1tziD4D -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 -PP+c+ipnn7Pw4mvXGLuOFd709vc89PCjf/qnjz780Hve/qbCsV3GmmsvXlhX5exzFl26NDFw5N63 -vv9jn3rsi1/5xj//8ze+8sXHPvWx97/13iMDiaWXLqqpAhWWSbucB973ic9/9dvf/48nn/rRj556 -8j++/+2vfv4T73vA2SUtq6mCULp0mTx8/G0f+ezXnnjymed+9vwLL774wvM/e+6ZJ5/42mc/8rbj -w/KyS72Inb3g/IuXSsO5X3/kC9998if/8+LLr7z6GnpefeXlF//nJ09+9wuP/HpuWFp68fnuiC04 -78JrE7uO//offfmJp3/20quvvf7668By6K/XXn3pZ08/8eU/+vXjuxLXXnjeApeIK9YMOG975Mvf -f+b5V1573cuor7/2yvPPfP/Lj7zNGVhzBSdlwXlLlhl3PPCRLzzxzAs1FXCVF5554gsfeeAOY9kS -2gnq4sp1t977vs9+9+nnX6kpj+u88vzT3/3s++69dd2VtJOzURfmsV/9xONP/uyV14KW0Guv/OzJ -xz/xq8dM1MnZeKAWXr52570f+PwTP3mpFiWG2Es/eeLzH7h359rLF8JwnX3u4uvkw2959Gs/eP7V -wAqoyqvP/+Brj77lsHzd4nOhxnkXC1sn3/WZf/nxS4E4Ybxe+vG/fOZdk1uFiwEthFTPrSf+z5f+ -82dBZDPif/afX/o/J27tQWihkbrg6r4Db3706z98oRFSgNYLP/z6o28+0Hf1BeecffY5i69Tj73t -U99pghRG6zufetsx9brFqMa5F95gpt75me89+3LDLlAnLz/7vc+8M2XecOG5qMZFSzdOvPux7z/X -mAwg5LnvP/buiY1LLyI1Nk2+53P/1qrGv33uPZObWI2ofUSmI/pYRZ6P6HM+Db6aBu9GXh/R16C7 -zr/zdK0kIT2gdf4d3zp3Zcn3flRfBSr86Ht+WcLl1ce/9MTT//Pyq6976rz++qsv/8/TT3zp4355 -xWTirz3yxX/5wXMvvIyFIn5ee/XlF577wb988ZFf88tEIndFJKgf/tw//fuPfvr8Sy+/gp+XX3r+ -pz/693/63MNIVIs+uQuy/ZJl4q0Tb3nok1/69r//8Jlnn/spep579pkf/vu3v/TJh94ycau47JKF -Nepg0SVLE4N3nnzwI5/+4te/871/+//Q82/f+87Xv/jpjzx48s7BxNJL6lXOwouv6w== - - - 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 - - - + + + + + + + + + + diff --git a/toonz/sources/toonzqt/Resources/schematic_spline_aim_square.svg b/toonz/sources/toonzqt/Resources/schematic_spline_aim_square.svg index 96671db..fb1c1b9 100644 --- a/toonz/sources/toonzqt/Resources/schematic_spline_aim_square.svg +++ b/toonz/sources/toonzqt/Resources/schematic_spline_aim_square.svg @@ -1,1229 +1,10 @@ - - - - - - - - - - -]> - - - - - - - - - - - - - eJzsvWmPHUlyIPidAP9D7gcB6g+VE+7h4UdjIOBdqe0FW2p0S7M9EAYFqopV4gyPHlaVtNKvX7vd -PCJeZpKZkrp76nmxmLSM5+GHubnd9hf/129+99Xh24//+Oar+Xa6efniL/7i9OnN6x8/fvrlDYFv -fvXu3U8//PgJQX/521/cBHgMnzr8qn4tT/63N59+ePvxwy/pd7cBf3uH3//Ly/u3795+vPnV9x8+ -/tu/vf7FzV/+An/3d29/fPcGfvvDN//05v3rH99+8/UPf3j39sObr1+/ff/1D//7p9ef3tz+8M/f -/8LGAn2fX/8IXwnxv4T/Eqcw3YTwyxhuDr/GZ44ff/rw7dsP3x8//n+/vPkqLTdfhfmmpJswZfz1 -//32t29+WD2TbkOpER6M8EOGp2f4O83wlYV+g987f/zmp/dvPvz4m08fv3nzww+nj+8+fvrhlzen -f3394ebXr7+H37y++e9v3r37+C83x3evv/lf8J3Dr5av796+ewOzh4ndNFqpw69C/Pr409t33/7N -T+//8Q2sS4oMn7+mTv/+B+gNOsafCV6+/tV7AP3uzY8/wpDhnbTgv/3rox8KQKn95T/89s33b2GD -Pv6PX2ivnz7+4f3rT/8LvvlVpfnEmzjf1jiXm7nwTHPTieI3/u7N+z+8gyWm5Um3qdUlwTLJD2uA -fglmyus5Q2/LBOsZU6FHbuZW5Yc0wa+CfKWv6Zt/fvvmX3558zcfP7yRhTt8+vF3b/8NFmJpy20s -S76pKdzW2qo88Nuf3r359Pcf3v4I8+IOGy/grz9+++adwqiju3evad2ohf5/eeLvXn/6/s2PgBYf -3/30I2FunfR3sEmvXv/rm0/uJX/7hzcf/u7jf6MBfxVaup2msNyEvMgPN6m2mzTHm1DpNQv8tyzy -1kAgHRt2hR3pKwru7G9gs//209vv33745VcltMzdflXiNN82WERBir/+9PbbjhMl3lT+H83stro/ -Tf/IBGA5fvzxzQedEeDj6dcOu6bbX/8Ox3H58O3p43vcnx/oXAFefQCUe/fxe/lt/wf9Drr46Q8y -MQJ8Ddv5m09vP2DHL1/8Df+ufv2bdz/BL//608ef/vCrD999fPniL5my/Ob1j/8EZ+fNh29/ANqA -T3319oNQne9+QpLyFuB3/NMNHN/X798Czbh9/fYPv3ig69/96/t//Pju7Q/voYPfvaWfueP+78d0 -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 -CXpm5wQ9ORXlHmXXJ2uIOI9xStBAOuOUoM1I6TR9Iynhh6lLL/lF/D5YF+gdPb7lF2zNzR0iccKs -jrQsz4T7b2eWFXaGZMwKT+V8SJgVPT/YGZww6wwwyWKLLLbI4rwLcd6FOtq65kTkDLA74+OCzpcg -cd6F+KpnJ+9euuWq5/yOo47zLnStEo6venaPMo7zLsTKuKMp6hJlHOddiHVxrIvnjS7uRh/8jMJ6 -Iwujdk5ztPwLnTZPp0NVdM/szCkWXckfEyU7VbGzewqZCNtfUj0sl/DOusjN3h3m0v5qabyadfIR -vnLRbSZFvjBayVRSLQ5wfRfNoPj+TDbKR1l8ldq2lwy/UclXc3vRsj0RhUZvnXaRmBTDn9yP22Vn -R8m5t4r4O8JV5JpqbVZPvhXafdohZ6PmwmcZ6Sa9IAki/S/oF4eEpr3bvgM1Dd3RLWpxJ6pdbh30 -1v13XfGFw91sjXafeJnPttkZcWEyzmbTTcstMf/S2STC25Pdks/mdPnU2kLc3jgBTPfIi+h21BnA -ht1z3ATnE0AiWPrz1gKJYzA7X45MixG7RZR4iQt/kbbblpmUjHDtLDb1277k5q/qhvV2eMIp7ciU -Osa/02mzX7HHI8x8N3ltZSH8IQkehYMR3bK+Sm2WQjuq+dS+rhQ/85cBk4YgCmcWC+6MWbCzWFA6 -04TgQFuDe/DmCy7M7y/Z+fJEmK/QdOB6mJbd1C1G4XRvJ3WTK4fQeLrM3tiZEztzAucIhzr2Z7Px -3mtWl2ocdjtdLNqJwbz6KB18NquEBBOydcZaXL+rTUDTkmPTXbue5/fF5/DzXLLTmWqEPQQr3y7K -nBKRTvPenNhdKBWnCtnC5KlYEs6BJNRjSXhGSMLw8xxLwlgSnimSMKGtDs05XfKdYnX+fac4yqeX -u+w7xVFmqwu/U7w3N16ydzpZuxIhAi3+TLGP1PnzmeL5GfMrJSPERXWZbRVx1YadrTYu3vl7WSWd -QWI2NoTrDeFOE4axCOwmERghpLdLROD8jZaPRWCXiMAoV/W65F7b/Av9Hw+fHaBrRF/Ub/zF9/Hi -XE1tWVDdIiPm38f15vE1pzMo21T4+1zdmmxKjLDpipNNtV+9hY9FCXGzzbfe2vspuzNcq3VNkPV4 -xKC3blDVEeK7ukxV7wt/Lj04ZefzTnbUyTqpSN6M+prtorY//JH1tKmtr9lmfbYtUy5m7ZSTc/KV -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 -TiiJw21Bq/NMfCR53vnnn3/euec2O1pEpRYtWnwhehZfsGjheQ3cieCAXLT4oosvufSyyy699JIl -F12wKKgoKnbeoguXXHr5VVdfg56rr7risksuWrzovDov6IJzF16w5NIrrr72+huWoueG66+75ipU -dNH55y6oLQc+zGtvWHajsBw9wk3Lll5/zRWXLrng/HNrzv4WX3L5Ndcvu2n5ylWr0bNq5Qrhxhuu -u+oyVNLb+4LzLrj48mtuuHH5ytVre9ahp2ftmlUrblp63dWXwdmo2+C5i5ZchsqtWLV23fpEIplM -JjasW7t6pbDsuqsuvXCh2/k55y++9Orrb1yxumd9ok+U0CP2JTb0rFkpLL32iosvcE8CUYNXXLts -+aqe9ZCzQVFVVZHF5IZ1a1bcdMPVl13Em1xwHmrwhptWrkXlZFXT0aOpitS3oWf18mXXuU0iki+6 -HDW4el0CldMNEz2GrilScv3alajJS9m5Ler54quuRw1u6EPlTGsjeixTV2Ux0bNaWHoN6psVvOCS -q28QVvUkREUzrI2b0AMlUZMIy2XXXr5k0bn0AHHxpdcsRT0nJdQgOKTBJW0Zqty3fu2KGxGS3oLL -lq9Z3ydDg5s3b92KSlqGJvdtQEhef5Wn4GXXLFtBC25C5VDJBgXrW9zICt54vb/rOhwR2Wh81gCO -nJhAqg1NERPr0Ih7qEbjeAUfR8NCA2lZkJ0DTc0qGMcL2TgGzgyMNxrGG6+/6pLF5/MDmoC5Rlyx -fi1qEHrm5zKIey6/dqmwai3iMklW0CNLqBziCdTgpRe6BxMLzl98yVXXIT5DJZPAkGJfMoHKrbjx -hmt8LI6axCEFy1et6Vm/IYGeDevXrUVr4QbEt4u9iwaCCVDJZcLK1Wt60KLp6VmzeuXyG1G5S7wr -gZxsoJLXLb1p+YpVq/AqXH7TMrReoZxvYZ99DrR51bXXL73xJgE9N9247IZrr778YihXeyZz3qKL -IFDiOhAVN9xw/bVXo+W/uK4c7n3h4iWXXHYFCJ+rr77i8ksvvnBR4PkIFlMgzS65FAmzi0n4RbA4 -haIQ17F4MRKPi85vEaVxLhK55513blOJi4s2Pf2Y3Sc2eeuM0TApKWpNMnmmJhmxqWozXRhqFIva -k3jDpFk53A9FIFvOMvEJjaRCRv4GmYY0yHhH877ijEa5Wric1CSaaUiE1PUyMaxlSbJcE9j0AHnS -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 - - - + + + + + + + + + + diff --git a/toonz/sources/toonzqt/Resources/schematic_spline_cp.svg b/toonz/sources/toonzqt/Resources/schematic_spline_cp.svg index 09ef406..f0c106a 100644 --- a/toonz/sources/toonzqt/Resources/schematic_spline_cp.svg +++ b/toonz/sources/toonzqt/Resources/schematic_spline_cp.svg @@ -1,1233 +1,16 @@ - - - - - - - - - - -]> - - - - - - - - - - - - - - - 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 -dcbuyR3+iCfHjefuTcVmlYd81SGtN5TF65e5Z88/Hy1pvabdVy57Uo6Z75aOn9Zknnvru6VLVf77 -vMVfz5a8PBNWVeKOGw8tJdw4VZdx0sElcF+mP+/KeftvGbvSct7dk/VurR6LWPsGXbsn9fEepWql -V+HQQ6Tl4tqW467kXQ13c/Ze60/vS4oQaT+DVdKUukaoY9I6GO4HKYMR7qY5TLu4qvDzTB1KEVEr -BYQqQP6Bixehwk1hVkKocFEPqtIxTXchpq566NM741FNqoccuSoI/BCx4BKvvSrospaFylx4iWuH -5LuIBZnaqJ6hMxrVomZKinfIkJDScr5aWcWeeiI2pLuQCQLs1vwMyKD9KRqMYU5UrEVrWAWupzW0 -fRoopwrVtSqE9L4bhwRP7eqpOtTtqlNxVTWWP6PlZVIGVQUaZtFDp5fMTi/ZdHnEcor6oy9FetCK -TsQdL3NrtRxjveZuZDGGPAGzeLAexOfvomk9JK9WoaQHe0l3cBJdLGljOwZ+tDxyfSY1zaPWcqgp -a33q9K2jsdIg0ix0yoPlUOwzp601ytnlTFOhDGYiBSNSnzNtlS/tam45va5cXQPNqKQ5lTSrkuZV -Gleqz3V+fVG6sQFvpT6sV3nIbW7J5dmn2OZe/dZUiU0B1/jspk4kFdyVzFFfljdrWf/gWXNHfXEJ -cMkcdbXE1vUiW/EWqQH2dBnTca3MVtt1H5mSu6gUOL6wdsuIjqaAbZhQzMg5m3FT4t0X2sV1Vtds -2Vz34onLCUvWfrg+f6skLqHMrS1ra8vYOvaeuJKntpoX7tn54fp8yZnKSLfcvT5nMqcy0VgU9sNl -T9yzKPRGUbQlKcZDai9yMLlI6dzJIlAyrVs9mtLfPNu9j/F2PtqxS80yW37jva/rjVH3MkfOVqye -xpympRURHgljLSM0xdmYjzEpK1lVmahyiZYZIoWeqfO0sJD3MWY1HqvwuJwTJ25Rv2LggQlj9x0H -zB7FLGgcFuqaZUKSa5+w+in0/3I9rv9uaVMGUQUpnFVCWrdwkMqFEf9PKVjwd3gfCcx+O8s95f8k -+ym7MjuutiGplLRwkNnj2CaH99tfXXbJ9ec2f3D/pCXEkcLizq1v06VvWrk8bDlXWcYAKsidFo4P -Y1eM+LTKctEcrLyLlRSep/BLn4O3D7lchltu5kjuqnGMlHGb3a7U8crXNrHslDb6jXLK4r6xNYfo -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 -LKfzSXDxNv0PvAL/yPgDwN5PW4E//x8rKBN/ - - - + + + + + + + + + + + + + + + + diff --git a/toonz/sources/toonzqt/camerasettingswidget.cpp b/toonz/sources/toonzqt/camerasettingswidget.cpp index 7c77d08..7894b65 100644 --- a/toonz/sources/toonzqt/camerasettingswidget.cpp +++ b/toonz/sources/toonzqt/camerasettingswidget.cpp @@ -9,6 +9,7 @@ #include "toonzqt/checkbox.h" #include "toonzqt/tselectionhandle.h" #include "toonzqt/dvdialog.h" +#include // TnzLib includes #include "toonz/toonzfolders.h" @@ -240,14 +241,14 @@ CameraSettingsWidget::CameraSettingsWidget(bool forCleanup) m_fspChk->setFixedSize(20, 20); m_fspChk->setCheckable(true); m_fspChk->setChecked(true); - m_fspChk->setToolTip(tr("Force Squared Pixel")); m_fspChk->setObjectName("ForceSquaredPixelButton"); + m_fspChk->setIcon(createQIcon("squarepixel")); m_addPresetBtn->setObjectName("PushButton_NoPadding"); m_removePresetBtn->setObjectName("PushButton_NoPadding"); - m_inchPrev->setFixedSize(11, 21); - m_dotPrev->setFixedSize(11, 21); + m_inchPrev->setFixedSize(13, 13); + m_dotPrev->setFixedSize(13, 13); m_inchPrev->setObjectName("CameraSettingsRadioButton_Small"); m_dotPrev->setObjectName("CameraSettingsRadioButton_Small"); diff --git a/toonz/sources/toonzqt/combohistogram.cpp b/toonz/sources/toonzqt/combohistogram.cpp index 11400a0..35eb23e 100644 --- a/toonz/sources/toonzqt/combohistogram.cpp +++ b/toonz/sources/toonzqt/combohistogram.cpp @@ -11,6 +11,7 @@ #include "toonz/preferences.h" #include "toonzqt/lutcalibrator.h" +#include "toonzqt/gutil.h" #include #include @@ -40,7 +41,7 @@ void ChannelHistoGraph::setValues() { // normalize with the maximum value int maxValue = 1; for (i = 0; i < COMBOHIST_RESOLUTION_W; i++) { - int count = m_channelValuePtr[i]; + int count = m_channelValuePtr[i]; if (maxValue < count) maxValue = count; } @@ -149,8 +150,8 @@ void RGBHistoGraph::setValues() { imgPainter.setCompositionMode(QPainter::CompositionMode_Plus); for (int chan = 0; chan < 3; chan++) { - imgPainter.setPen((chan == 0) ? Qt::red - : (chan == 1) ? Qt::green : Qt::blue); + imgPainter.setPen((chan == 0) ? Qt::red : (chan == 1) ? Qt::green + : Qt::blue); for (int i = 0; i < COMBOHIST_RESOLUTION_W; i++) { int v = m_rgbValues[chan][i]; @@ -248,8 +249,9 @@ ChannelHisto::ChannelHisto(int channelIndex, int *channelValue, QPushButton *showAlphaChannelButton = 0; if (channelIndex == 3) { showAlphaChannelButton = new QPushButton("", this); - showAlphaChannelButton->setObjectName("FxSettingsPreviewShowButton"); + showAlphaChannelButton->setObjectName("menuToggleButton"); showAlphaChannelButton->setFixedSize(15, 15); + showAlphaChannelButton->setIcon(createQIcon("menu_toggle")); showAlphaChannelButton->setCheckable(true); showAlphaChannelButton->setChecked(false); showAlphaChannelButton->setFocusPolicy(Qt::NoFocus); @@ -338,11 +340,10 @@ void ComboHistoRGBLabel::paintEvent(QPaintEvent *pe) { p.setPen(Qt::black); p.setBrush(Qt::NoBrush); - p.drawText(rect(), Qt::AlignCenter, - tr("R:%1 G:%2 B:%3") - .arg(m_color.red()) - .arg(m_color.green()) - .arg(m_color.blue())); + p.drawText(rect(), Qt::AlignCenter, tr("R:%1 G:%2 B:%3") + .arg(m_color.red()) + .arg(m_color.green()) + .arg(m_color.blue())); } //============================================================================= @@ -351,9 +352,9 @@ void ComboHistoRGBLabel::paintEvent(QPaintEvent *pe) { ComboHistogram::ComboHistogram(QWidget *parent) : QWidget(parent), m_raster(0), m_palette(0) { - for (int chan = 0; chan < 4; chan++) + for (int chan = 0; chan < 4; chan++) m_histograms[chan] = new ChannelHisto(chan, &m_channelValue[chan][0], this); - m_histograms[4] = new ChannelHisto(4, &m_channelValue[0][0], this); + m_histograms[4] = new ChannelHisto(4, &m_channelValue[0][0], this); // RGB label m_rgbLabel = new ComboHistoRGBLabel(QColor(128, 128, 128), this); @@ -416,7 +417,7 @@ ComboHistogram::~ComboHistogram() { void ComboHistogram::setRaster(const TRasterP &raster, const TPaletteP &palette) { if (palette.getPointer()) m_palette = palette; - m_raster = raster; + m_raster = raster; computeChannelsValue(); for (int i = 0; i < 5; i++) m_histograms[i]->refleshValue(); diff --git a/toonz/sources/toonzqt/dvdialog.cpp b/toonz/sources/toonzqt/dvdialog.cpp index 9683e49..03a7b07 100644 --- a/toonz/sources/toonzqt/dvdialog.cpp +++ b/toonz/sources/toonzqt/dvdialog.cpp @@ -127,7 +127,7 @@ void Separator::paintEvent(QPaintEvent *) { p.drawText(contents.left(), 10, m_name); // make the line semi-transparent - QColor lineColor = palette().alternateBase().color(); + QColor lineColor = Qt::black; lineColor.setAlpha(128); p.setPen(lineColor); @@ -314,10 +314,10 @@ Dialog::Dialog(QWidget *parent, bool hasButton, bool hasFixedSize, // on another monitor by default, but this is better than // a user thinking the program is broken because they didn't notice // the popup on another monitor - if (x > screen.right() - 50) x = screen.right() - 50; - if (x < screen.left()) x = screen.left(); + if (x > screen.right() - 50) x = screen.right() - 50; + if (x < screen.left()) x = screen.left(); if (y > screen.bottom() - 90) y = screen.bottom() - 90; - if (y < screen.top()) y = screen.top(); + if (y < screen.top()) y = screen.top(); setGeometry(x, y, values.at(2).toInt(), values.at(3).toInt()); settings.setValue(m_name, QString::number(x) + " " + QString::number(y) + " " + QString::number(values.at(2).toInt()) + @@ -370,10 +370,10 @@ void Dialog::hideEvent(QHideEvent *event) { } QRect screen = QApplication::desktop()->availableGeometry(currentScreen); - if (x > screen.right() - 50) x = screen.right() - 50; - if (x < screen.left()) x = screen.left(); + if (x > screen.right() - 50) x = screen.right() - 50; + if (x < screen.left()) x = screen.left(); if (y > screen.bottom() - 90) y = screen.bottom() - 90; - if (y < screen.top()) y = screen.top(); + if (y < screen.top()) y = screen.top(); move(QPoint(x, y)); resize(size()); QRect r = geometry(); @@ -1347,7 +1347,7 @@ QString DVGui::getText(const QString &title, const QString &labelText, dialog.addButtonBarWidget(okBtn, cancelBtn); - int ret = dialog.exec(); + int ret = dialog.exec(); if (ok) *ok = (ret == QDialog::Accepted); return nameFld->text(); diff --git a/toonz/sources/toonzqt/dvtextedit.cpp b/toonz/sources/toonzqt/dvtextedit.cpp index 60173f7..a42a6bc 100644 --- a/toonz/sources/toonzqt/dvtextedit.cpp +++ b/toonz/sources/toonzqt/dvtextedit.cpp @@ -54,7 +54,6 @@ using namespace DVGui; DvMiniToolBar::DvMiniToolBar(QWidget *parent) : QFrame(parent), m_dragPos(0, 0) { setObjectName("DvMiniToolBar"); - setStyleSheet("#DvMiniToolBar {border: 1px solid black;}"); setWindowFlags(Qt::Tool | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint); } @@ -150,17 +149,16 @@ DvTextEdit::~DvTextEdit() {} //----------------------------------------------------------------------------- void DvTextEdit::createActions() { - m_boldAction = new QAction(createQIconOnOffPNG("bold"), tr("Bold"), this); + m_boldAction = new QAction(createQIcon("bold"), tr("Bold"), this); m_boldAction->setCheckable(true); connect(m_boldAction, SIGNAL(triggered()), this, SLOT(setTextBold())); - m_italicAction = - new QAction(createQIconOnOffPNG("italic"), tr("Italic"), this); + m_italicAction = new QAction(createQIcon("italic"), tr("Italic"), this); m_italicAction->setCheckable(true); connect(m_italicAction, SIGNAL(triggered()), this, SLOT(setTextItalic())); m_underlineAction = - new QAction(createQIconOnOffPNG("underline"), tr("Underline"), this); + new QAction(createQIcon("underline"), tr("Underline"), this); m_underlineAction->setCheckable(true); connect(m_underlineAction, SIGNAL(triggered()), this, SLOT(setTextUnderline())); @@ -174,13 +172,13 @@ void DvTextEdit::createActions() { connect(m_alignActionGroup, SIGNAL(triggered(QAction *)), this, SLOT(setTextAlign(QAction *))); - m_alignLeftAction = new QAction(createQIconOnOffPNG("align_left"), - tr("Align Left"), m_alignActionGroup); + m_alignLeftAction = new QAction(createQIcon("align_left"), tr("Align Left"), + m_alignActionGroup); m_alignLeftAction->setCheckable(true); - m_alignCenterAction = new QAction(createQIconOnOffPNG("align_center"), + m_alignCenterAction = new QAction(createQIcon("align_center"), tr("Align Center"), m_alignActionGroup); m_alignCenterAction->setCheckable(true); - m_alignRightAction = new QAction(createQIconOnOffPNG("align_right"), + m_alignRightAction = new QAction(createQIcon("align_right"), tr("Align Right"), m_alignActionGroup); m_alignRightAction->setCheckable(true); } @@ -191,7 +189,7 @@ void DvTextEdit::createMiniToolBar() { m_miniToolBar = new DvMiniToolBar(); QToolBar *toolBarUp = new QToolBar(m_miniToolBar); - toolBarUp->setIconSize(QSize(30, 30)); + toolBarUp->setIconSize(QSize(16, 16)); toolBarUp->setObjectName("toolOptionBar"); toolBarUp->setFixedHeight(30); diff --git a/toonz/sources/toonzqt/flipconsole.cpp b/toonz/sources/toonzqt/flipconsole.cpp index adda487..7fca16e 100644 --- a/toonz/sources/toonzqt/flipconsole.cpp +++ b/toonz/sources/toonzqt/flipconsole.cpp @@ -590,8 +590,8 @@ void FlipConsole::setActive(bool active) { //----------------------------------------------------------------------------- -#define LX 21 -#define LY 17 +#define LX 22 +#define LY 22 class DoubleButton final : public QToolButton { QAction *m_firstAction, *m_secondAction; QIcon::Mode m_firstMode, m_secondMode; @@ -610,6 +610,7 @@ public: , m_enabled(true) { setFixedSize(LX, LY); setMouseTracking(true); + setObjectName("flipDoubleButton"); } void setEnabledSecondButton(bool state) { if (!state && m_secondAction->isChecked()) m_secondAction->trigger(); @@ -885,7 +886,7 @@ void FlipConsole::setCurrentFPS(int val) { m_reverse = (val < 0); if (m_fpsLabel) m_fpsLabel->setText(tr(" FPS ")); - if (m_fpsField) m_fpsField->setLineEditBackgroundColor(Qt::transparent); + if (m_fpsField) m_fpsField->setLineEditBackgroundColor(getFpsFieldColor()); m_playbackExecutor.resetFps(m_fps); } @@ -941,8 +942,10 @@ QAction *FlipConsole::createDoubleButton( UINT buttonMask1, UINT buttonMask2, const char *iconStr1, const char *iconStr2, const QString &tip1, const QString &tip2, QActionGroup *group, DoubleButton *&widget) { - QAction *action1 = new QAction(createQIcon(iconStr1), tip1, m_playToolBar); - QAction *action2 = new QAction(createQIcon(iconStr2), tip2, m_playToolBar); + QAction *action1 = + new QAction(createQIcon(iconStr1, true), tip1, m_playToolBar); + QAction *action2 = + new QAction(createQIcon(iconStr2, true), tip2, m_playToolBar); m_actions[(EGadget)buttonMask1] = action1; m_actions[(EGadget)buttonMask2] = action2; @@ -967,7 +970,7 @@ QAction *FlipConsole::createDoubleButton( void FlipConsole::createOnOffButton(UINT buttonMask, const char *iconStr, const QString &tip, QActionGroup *group) { - QIcon icon = createQIconOnOff(iconStr); + QIcon icon = createQIcon(iconStr); QAction *action = new QAction(icon, tip, m_playToolBar); action->setData(QVariant(buttonMask)); action->setCheckable(true); @@ -1098,7 +1101,7 @@ void FlipConsole::applyCustomizeMask() { void FlipConsole::createCustomizeMenu(bool withCustomWidget) { if (hasButton(m_gadgetsMask, eCustomize)) { - QIcon icon = createQIcon("options"); + QIcon icon = createQIcon("menu"); QToolButton *button = new QToolButton(); button->setIcon(icon); button->setPopupMode(QToolButton::MenuButtonPopup); @@ -1174,7 +1177,7 @@ void FlipConsole::createPlayToolBar(QWidget *customWidget) { m_playToolBar = new QToolBar(this); m_playToolBar->setMovable(false); m_playToolBar->setObjectName("FlipConsolePlayToolBar"); - m_playToolBar->setIconSize(QSize(17, 17)); + m_playToolBar->setIconSize(QSize(20, 20)); // m_playToolBar->setObjectName("chackableButtonToolBar"); // m_playToolBar->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed); @@ -1248,7 +1251,7 @@ void FlipConsole::createPlayToolBar(QWidget *customWidget) { playGroup, "A_Flip_Loop"); if (hasButton(m_gadgetsMask, eNext)) - createButton(eNext, "framenext", tr("&Next frame"), false); + createButton(eNext, "framenext", tr("&Next Frame"), false); if (hasButton(m_gadgetsMask, eLast)) createButton(eLast, "framelast", tr("&Last Frame"), false); @@ -1325,10 +1328,9 @@ void FlipConsole::createPlayToolBar(QWidget *customWidget) { if (hasButton(m_gadgetsMask, eZoomOut)) createButton(eZoomOut, "zoomout", tr("&Zoom Out"), false); if (hasButton(m_gadgetsMask, eFlipHorizontal)) - createOnOffButton(eFlipHorizontal, "fliphoriz", tr("&Flip Horizontally"), - 0); + createButton(eFlipHorizontal, "fliphoriz", tr("&Flip Horizontally"), 0); if (hasButton(m_gadgetsMask, eFlipVertical)) - createOnOffButton(eFlipVertical, "flipvert", tr("&Flip Vertically"), 0); + createButton(eFlipVertical, "flipvert", tr("&Flip Vertically"), 0); if (hasButton(m_gadgetsMask, eResetView)) createButton(eResetView, "reset", tr("&Reset View"), false); m_viewerSep = m_playToolBar->addSeparator(); @@ -1561,7 +1563,8 @@ void FlipConsole::doButtonPressed(UINT button) { if ((m_fps == 0 || m_framesCount == 0) && m_playbackExecutor.isRunning()) { doButtonPressed(ePause); if (m_fpsLabel) m_fpsLabel->setText(tr(" FPS ") + QString::number(m_fps)); - if (m_fpsField) m_fpsField->setLineEditBackgroundColor(Qt::transparent); + if (m_fpsField) + m_fpsField->setLineEditBackgroundColor(getFpsFieldColor()); return; } if (m_fpsLabel) m_fpsLabel->setText(tr(" FPS ") + "/"); @@ -1574,8 +1577,8 @@ void FlipConsole::doButtonPressed(UINT button) { m_reverse = (m_fps < 0); if (!linked) { - // if the play button pressed at the end frame, then go back to the start - // frame and play + // if the play button pressed at the end frame, then go back to the + // start frame and play if (m_currentFrame <= from || m_currentFrame >= to) // the first frame of the playback is drawn right now @@ -1621,7 +1624,7 @@ void FlipConsole::doButtonPressed(UINT button) { m_consoleOwner->onDrawFrame(m_currentFrame, m_settings); } if (m_fpsLabel) m_fpsLabel->setText(tr(" FPS ")); - if (m_fpsField) m_fpsField->setLineEditBackgroundColor(Qt::transparent); + if (m_fpsField) m_fpsField->setLineEditBackgroundColor(getFpsFieldColor()); // setChecked(ePlay, false); // setChecked(eLoop, false); connect(m_editCurrFrame, SIGNAL(editingFinished()), this, @@ -1842,8 +1845,8 @@ void FlipConsole::setFrameRange(int from, int to, int step, int current) { } if (m_playbackExecutor.isRunning() || - m_isLinkedPlaying) // if in playing mode, the slider and the frame field - // are already set in the timer! + m_isLinkedPlaying) // if in playing mode, the slider and the frame + // field are already set in the timer! return; // limit the current frame in the range from-to @@ -1996,62 +1999,25 @@ void FlipConsole::onPreferenceChanged(const QString &prefName) { if (m_blanksCount > 1) buttonText += "s"; m_enableBlankFrameButton->setText(buttonText); - //--- use white text for dark color and vice versa + // Set text color based on luminescence of blankColor color QString textColor; - QString dimmedTextColor; - int val = (int)m_blankColor.r * 30 + (int)m_blankColor.g * 59 + - (int)m_blankColor.b * 11; - if (val < 12800) { - textColor = QString("white"); - dimmedTextColor = QString("rgb(200,200,200)"); - } else { - textColor = QString("black"); - dimmedTextColor = QString("rgb(55,55,55)"); - } - - int dc = 150; - QColor lightBevel(std::min(m_blankColor.r + dc, 255), - std::min(m_blankColor.g + dc, 255), - std::min(m_blankColor.b + dc, 255)); - QColor darkBevel(std::max(m_blankColor.r - dc, 0), - std::max(m_blankColor.g - dc, 0), - std::max(m_blankColor.b - dc, 0)); + double luminescence = + ((0.299 * (int)m_blankColor.r) + (0.587 * (int)m_blankColor.g) + + (0.114 * (int)m_blankColor.b)) / + 255; + if (luminescence > 0.5) + textColor = QString("black"); + else + textColor = QString("white"); m_enableBlankFrameButton->setStyleSheet( - QString("#enableBlankFrameButton{ \ - background-color: transparent; \ - padding: 2px;\ - font-weight: bold; \ - font-size: 12px; \ - color: %11;\ - border-style: inset; \ - border-left-color: rgb(%5,%6,%7); \ - border-top-color: rgb(%5,%6,%7); \ - border-right-color: rgb(%8,%9,%10); \ - border-bottom-color: rgb(%8,%9,%10); \ - border-width: 2px; \ - border-radius: 3px; \ - } \ - #enableBlankFrameButton:checked { \ + QString("#enableBlankFrameButton:checked { \ background-color: rgb(%1,%2,%3); \ - color: %4; \ - border-style: outset; \ - border-left-color: rgb(%8,%9,%10); \ - border-top-color: rgb(%8,%9,%10); \ - border-right-color: rgb(%5,%6,%7); \ - border-bottom-color: rgb(%5,%6,%7); \ - } ") + color: %4;}") .arg(m_blankColor.r) .arg(m_blankColor.g) .arg(m_blankColor.b) - .arg(textColor) - .arg(lightBevel.red()) - .arg(lightBevel.green()) - .arg(lightBevel.blue()) - .arg(darkBevel.red()) - .arg(darkBevel.green()) - .arg(darkBevel.blue()) - .arg(dimmedTextColor)); + .arg(textColor)); m_enableBlankFrameButton->update(); } } diff --git a/toonz/sources/toonzqt/framenavigator.cpp b/toonz/sources/toonzqt/framenavigator.cpp index 56fe618..a2fe082 100644 --- a/toonz/sources/toonzqt/framenavigator.cpp +++ b/toonz/sources/toonzqt/framenavigator.cpp @@ -20,7 +20,7 @@ using namespace DVGui; FrameNavigator::FrameNavigator(QWidget *parent) : QToolBar(parent), m_frame(0), m_lineEdit(0), m_frameHandle(0) { setMaximumWidth(130); - setIconSize(QSize(17, 17)); + setIconSize(QSize(20, 20)); setObjectName("WidePaddingToolBar"); QAction *prevButton = new QAction(createQIcon("frameprev"), tr("Previous Frame"), this); @@ -29,7 +29,7 @@ FrameNavigator::FrameNavigator(QWidget *parent) m_lineEdit = new DVGui::IntLineEdit(this); - m_lineEdit->setFixedHeight(16); + m_lineEdit->setFixedHeight(19); bool ret = connect(m_lineEdit, SIGNAL(editingFinished()), this, SLOT(onEditingFinished())); addWidget(m_lineEdit); diff --git a/toonz/sources/toonzqt/functionsegmentviewer.cpp b/toonz/sources/toonzqt/functionsegmentviewer.cpp index 7a30ffe..9612002 100644 --- a/toonz/sources/toonzqt/functionsegmentviewer.cpp +++ b/toonz/sources/toonzqt/functionsegmentviewer.cpp @@ -11,6 +11,7 @@ #include "tw/stringtable.h" #include "toonzqt/functionsheet.h" #include "toonzqt/functionpanel.h" +#include "toonzqt/gutil.h" // TnzLib includes #include "toonz/doubleparamcmd.h" @@ -116,9 +117,9 @@ SpeedInOutSegmentPage::SpeedInOutSegmentPage(FunctionSegmentViewer *parent) bool ret = connect(m_speed0xFld, SIGNAL(editingFinished()), this, SLOT(onFirstHandleXChanged())); - ret = ret && connect(m_speed0yFld, SIGNAL(editingFinished()), this, + ret = ret && connect(m_speed0yFld, SIGNAL(editingFinished()), this, SLOT(onFirstHandleYChanged())); - ret = ret && connect(m_firstSpeedFld, SIGNAL(editingFinished()), this, + ret = ret && connect(m_firstSpeedFld, SIGNAL(editingFinished()), this, SLOT(onFirstSpeedChanged())); ret = ret && connect(m_speed1xFld, SIGNAL(editingFinished()), this, @@ -556,11 +557,11 @@ void FunctionExpressionSegmentPage::init(int segmentLength) { /*--- すでにあるカーブをExpressionに切り替えた場合 ---*/ if (kIndex >= 0) { - TDoubleKeyframe keyFrame = curve->getKeyframe(kIndex); - double value = curve->getValue(keyFrame.m_frame); - const TUnit *unit = 0; + TDoubleKeyframe keyFrame = curve->getKeyframe(kIndex); + double value = curve->getValue(keyFrame.m_frame); + const TUnit *unit = 0; if (curve->getMeasure()) unit = curve->getMeasure()->getCurrentUnit(); - if (unit) value = unit->convertTo(value); + if (unit) value = unit->convertTo(value); m_expressionFld->setExpression(QString::number(value).toStdString()); /*--- unitがある場合だけUnitを表示 ---*/ if (unit) @@ -703,20 +704,20 @@ FileSegmentPage::FileSegmentPage(FunctionSegmentViewer *parent) void FileSegmentPage::refresh() { TDoubleKeyframe kf; TDoubleParam *curve = getCurve(); - if (curve) kf = curve->getKeyframeAt(getR0()); + if (curve) kf = curve->getKeyframeAt(getR0()); if (curve && kf.m_isKeyframe) { TFilePath path; int fieldIndex = 0; std::string unitName = ""; if (kf.m_type == TDoubleKeyframe::File) { - path = kf.m_fileParams.m_path; - fieldIndex = kf.m_fileParams.m_fieldIndex; + path = kf.m_fileParams.m_path; + fieldIndex = kf.m_fileParams.m_fieldIndex; if (fieldIndex < 0) fieldIndex = 0; - unitName = kf.m_unitName; + unitName = kf.m_unitName; if (unitName == "") { TMeasure *measure = curve->getMeasure(); if (measure) { - const TUnit *unit = measure->getCurrentUnit(); + const TUnit *unit = measure->getCurrentUnit(); if (unit) unitName = ::to_string(unit->getDefaultExtension()); } } @@ -734,7 +735,7 @@ void FileSegmentPage::init(int segmentLength) { TMeasure *measure = curve->getMeasure(); std::string unitName = ""; if (measure) { - const TUnit *unit = measure->getCurrentUnit(); + const TUnit *unit = measure->getCurrentUnit(); if (unit) unitName = ::to_string(unit->getDefaultExtension()); } m_measureFld->setText(QString::fromStdString(unitName)); @@ -954,21 +955,27 @@ FunctionSegmentViewer::FunctionSegmentViewer(QWidget *parent, m_stepFld->setText("1"); - m_prevCurveButton->setFixedSize(50, 15); - m_nextCurveButton->setFixedSize(50, 15); + m_prevCurveButton->setFixedSize(70, 22); + m_nextCurveButton->setFixedSize(70, 22); m_prevCurveButton->setFocusPolicy(Qt::NoFocus); m_nextCurveButton->setFocusPolicy(Qt::NoFocus); m_prevCurveButton->setStyleSheet("padding:0px;"); m_nextCurveButton->setStyleSheet("padding:0px;"); - m_prevLinkButton->setFixedSize(15, 15); - m_nextLinkButton->setFixedSize(15, 15); + m_prevLinkButton->setFixedSize(22, 22); + m_nextLinkButton->setFixedSize(22, 22); m_prevLinkButton->setCheckable(true); m_nextLinkButton->setCheckable(true); m_prevLinkButton->setFocusPolicy(Qt::NoFocus); m_nextLinkButton->setFocusPolicy(Qt::NoFocus); m_prevLinkButton->setObjectName("FunctionSegmentViewerLinkButton"); m_nextLinkButton->setObjectName("FunctionSegmentViewerLinkButton"); + m_prevLinkButton->setIconSize(QSize(20, 20)); + m_nextLinkButton->setIconSize(QSize(20, 20)); + m_prevLinkButton->setIcon(createQIcon("segment_linked")); + m_nextLinkButton->setIcon(createQIcon("segment_linked")); + m_nextLinkButton->setToolTip(tr("Link/Unlink Handles")); + m_prevLinkButton->setToolTip(tr("Link/Unlink Handles")); //---- layout @@ -1034,17 +1041,17 @@ FunctionSegmentViewer::FunctionSegmentViewer(QWidget *parent, bool ret = true; ret = ret && connect(m_typeCombo, SIGNAL(currentIndexChanged(int)), m_parametersPanel, SLOT(setCurrentIndex(int))); - ret = ret && connect(m_typeCombo, SIGNAL(activated(int)), this, + ret = ret && connect(m_typeCombo, SIGNAL(activated(int)), this, SLOT(onSegmentTypeChanged(int))); - ret = ret && connect(applyButton, SIGNAL(clicked()), this, + ret = ret && connect(applyButton, SIGNAL(clicked()), this, SLOT(onApplyButtonPressed())); - ret = ret && connect(m_prevCurveButton, SIGNAL(clicked()), this, + ret = ret && connect(m_prevCurveButton, SIGNAL(clicked()), this, SLOT(onPrevCurveButtonPressed())); - ret = ret && connect(m_nextCurveButton, SIGNAL(clicked()), this, + ret = ret && connect(m_nextCurveButton, SIGNAL(clicked()), this, SLOT(onNextCurveButtonPressed())); - ret = ret && connect(m_prevLinkButton, SIGNAL(clicked()), this, + ret = ret && connect(m_prevLinkButton, SIGNAL(clicked()), this, SLOT(onPrevLinkButtonPressed())); - ret = ret && connect(m_nextLinkButton, SIGNAL(clicked()), this, + ret = ret && connect(m_nextLinkButton, SIGNAL(clicked()), this, SLOT(onNextLinkButtonPressed())); assert(ret); @@ -1096,7 +1103,7 @@ void FunctionSegmentViewer::setSegmentByFrame(TDoubleParam *curve, int frame) { if (k1 >= 1) segmentIndex = k1 - 1; else { - int k0 = m_curve->getPrevKeyframe(frame); + int k0 = m_curve->getPrevKeyframe(frame); if (k0 >= 0) segmentIndex = k0; } } else { @@ -1268,9 +1275,9 @@ void FunctionSegmentViewer::onCurveChanged() { void FunctionSegmentViewer::onStepFieldChanged(const QString &text) { if (!segmentIsValid()) return; - int step = 1; + int step = 1; if (text != "") step = text.toInt(); - if (step < 1) step = 1; + if (step < 1) step = 1; KeyframeSetter setter(m_curve, m_segmentIndex); setter.setStep(step); } @@ -1375,8 +1382,8 @@ void FunctionSegmentViewer::onApplyButtonPressed() { /*--- from - * toに合わせてキーフレームを作成しようと試みる。すでに有る場合はスキップ * ---*/ - if (fromFrame < 0) fromFrame = 0; - if (toFrame < 0) toFrame = 0; + if (fromFrame < 0) fromFrame = 0; + if (toFrame < 0) toFrame = 0; if (fromFrame >= toFrame) fromFrame = toFrame + 1; if (!m_curve->isKeyframe(fromFrame)) diff --git a/toonz/sources/toonzqt/functiontoolbar.cpp b/toonz/sources/toonzqt/functiontoolbar.cpp index ddc4760..522c1a1 100644 --- a/toonz/sources/toonzqt/functiontoolbar.cpp +++ b/toonz/sources/toonzqt/functiontoolbar.cpp @@ -44,6 +44,7 @@ FunctionToolbar::FunctionToolbar(QWidget *parent) : DVGui::ToolBar(parent), m_frameHandle(0), m_curve(0), m_selection(0) { setFixedHeight(28); + setIconSize(QSize(20, 20)); m_valueToolbar = new DVGui::ToolBar(); m_keyframeToolbar = new DVGui::ToolBar(); @@ -63,7 +64,7 @@ FunctionToolbar::FunctionToolbar(QWidget *parent) space->setMinimumHeight(22); space->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); - QIcon toggleIcon = createQIconOnOff("swap", false); + QIcon toggleIcon = createQIcon("swap"); QAction *toggleAction = new QAction(tr("&Open Function Curve Editor"), this); assert(toggleAction); toggleAction->setIcon(toggleIcon); diff --git a/toonz/sources/toonzqt/functiontreeviewer.cpp b/toonz/sources/toonzqt/functiontreeviewer.cpp index 4dd286e..3a9aae3 100644 --- a/toonz/sources/toonzqt/functiontreeviewer.cpp +++ b/toonz/sources/toonzqt/functiontreeviewer.cpp @@ -139,18 +139,18 @@ QVariant FunctionTreeModel::ChannelGroup::data(int role) const { bool active = isActive(); if (active) { - static QIcon folderAnimOpen(":Resources/folderanim_open.svg"); - static QIcon folderAnimClose(":Resources/folderanim_close.svg"); - static QIcon folderOpen(":Resources/folder_open.svg"); - static QIcon folderClose(":Resources/folder_close.svg"); + static QIcon folderAnimOpen(createQIcon("folder_anim_on", true)); + static QIcon folderAnimClose(createQIcon("folder_anim", true)); + static QIcon folderOpen(createQIcon("folder_on", true)); + static QIcon folderClose(createQIcon("folder", true)); return animated ? isOpen() ? folderAnimOpen : folderAnimClose : isOpen() ? folderOpen : folderClose; } else { - static QIcon folderAnimOpen(":Resources/folderanim_open_off.svg"); - static QIcon folderAnimClose(":Resources/folderanim_close_off.svg"); - static QIcon folderOpen(":Resources/folder_open_off.svg"); - static QIcon folderClose(":Resources/folder_close_off.svg"); + static QIcon folderAnimOpen(createQIcon("folder_anim_inactive_on", true)); + static QIcon folderAnimClose(createQIcon("folder_anim_inactive", true)); + static QIcon folderOpen(createQIcon("folder_inactive_on", true)); + static QIcon folderClose(createQIcon("folder_inactive", true)); return animated ? isOpen() ? folderAnimOpen : folderAnimClose : isOpen() ? folderOpen : folderClose; @@ -352,18 +352,18 @@ QVariant FxChannelGroup::data(int role) const { break; } if (isOneChildActive) { - static QIcon folderAnimOpen(":Resources/folderanim_open.svg"); - static QIcon folderAnimClose(":Resources/folderanim_close.svg"); - static QIcon folderOpen(":Resources/folder_open.svg"); - static QIcon folderClose(":Resources/folder_close.svg"); + static QIcon folderAnimOpen(createQIcon("folder_anim_on", true)); + static QIcon folderAnimClose(createQIcon("folder_anim", true)); + static QIcon folderOpen(createQIcon("folder_on", true)); + static QIcon folderClose(createQIcon("folder", true)); return isAnimated ? isOpen() ? folderAnimOpen : folderAnimClose : isOpen() ? folderOpen : folderClose; } else { - static QIcon folderAnimOpen(":Resources/folderanim_open_off.svg"); - static QIcon folderAnimClose(":Resources/folderanim_close_off.svg"); - static QIcon folderOpen(":Resources/folder_open_off.svg"); - static QIcon folderClose(":Resources/folder_close_off.svg"); + static QIcon folderAnimOpen(createQIcon("folder_anim_inactive_on", true)); + static QIcon folderAnimClose(createQIcon("folder_anim_inactive", true)); + static QIcon folderOpen(createQIcon("folder_inactive_on", true)); + static QIcon folderClose(createQIcon("folder_inactive", true)); return isAnimated ? isOpen() ? folderAnimOpen : folderAnimClose : isOpen() ? folderOpen : folderClose; @@ -607,7 +607,7 @@ QString FunctionTreeModel::Channel::getShortName() const { //----------------------------------------------------------------------------- QString FunctionTreeModel::Channel::getLongName() const { - QString name = getShortName(); + QString name = getShortName(); if (getChannelGroup()) name = getChannelGroup()->getLongName() + " " + name; return name; } @@ -1085,7 +1085,7 @@ void FunctionTreeModel::addChannels(TFx *fx, ChannelGroup *groupItem, std::wstring fxId = L""; TMacroFx *macro = dynamic_cast(fxItem->getFx()); - if (macro) fxId = fx->getFxId(); + if (macro) fxId = fx->getFxId(); const std::string ¶mNamePref = fx->getFxType() + "."; @@ -1231,7 +1231,7 @@ void FunctionTreeModel::resetAll() { void FunctionTreeModel::setCurrentFx(TFx *fx) { TZeraryColumnFx *zcfx = dynamic_cast(fx); - if (zcfx) fx = zcfx->getZeraryFx(); + if (zcfx) fx = zcfx->getZeraryFx(); if (fx != m_currentFx) { if (fx) fx->addRef(); if (m_currentFx) m_currentFx->release(); diff --git a/toonz/sources/toonzqt/functionviewer.cpp b/toonz/sources/toonzqt/functionviewer.cpp index 9be4393..df6743a 100644 --- a/toonz/sources/toonzqt/functionviewer.cpp +++ b/toonz/sources/toonzqt/functionviewer.cpp @@ -101,7 +101,7 @@ FunctionViewer::FunctionViewer(QWidget *parent, Qt::WFlags flags) //---- m_treeView->resize(150, m_treeView->size().height()); m_treeView->setMinimumWidth(0); - m_treeView->setIconSize(QSize(21, 17)); + m_treeView->setIconSize(QSize(21, 18)); FunctionTreeModel *ftModel = dynamic_cast(m_treeView->model()); @@ -172,11 +172,11 @@ FunctionViewer::FunctionViewer(QWidget *parent, Qt::WFlags flags) bool ret = true; ret = ret && connect(m_toolbar, SIGNAL(numericalColumnToggled()), this, SLOT(toggleMode())); - ret = ret && connect(ftModel, SIGNAL(activeChannelsChanged()), + ret = ret && connect(ftModel, SIGNAL(activeChannelsChanged()), m_functionGraph, SLOT(update())); - ret = ret && connect(ftModel, SIGNAL(activeChannelsChanged()), + ret = ret && connect(ftModel, SIGNAL(activeChannelsChanged()), m_numericalColumns, SLOT(updateAll())); - ret = ret && connect(ftModel, SIGNAL(curveChanged(bool)), m_treeView, + ret = ret && connect(ftModel, SIGNAL(curveChanged(bool)), m_treeView, SLOT(update())); ret = ret && connect(ftModel, SIGNAL(curveChanged(bool)), m_functionGraph, SLOT(update())); @@ -606,7 +606,7 @@ void FunctionViewer::onStageObjectChanged(bool isDragging) { void FunctionViewer::onFxSwitched() { TFx *fx = m_fxHandle->getFx(); TZeraryColumnFx *zfx = dynamic_cast(fx); - if (zfx) fx = zfx->getZeraryFx(); + if (zfx) fx = zfx->getZeraryFx(); static_cast(m_treeView->model())->setCurrentFx(fx); m_treeView->updateAll(); m_functionGraph->update(); diff --git a/toonz/sources/toonzqt/fxsettings.cpp b/toonz/sources/toonzqt/fxsettings.cpp index e311e87..d8026b9 100644 --- a/toonz/sources/toonzqt/fxsettings.cpp +++ b/toonz/sources/toonzqt/fxsettings.cpp @@ -703,13 +703,15 @@ ParamsPageSet::ParamsPageSet(QWidget *parent, Qt::WFlags flags) // TabBar m_tabBar = new TabBar(this); // This widget is used to set the background color of the tabBar - // using the styleSheet. - // It is also used to take 6px on the left before the tabBar - // and to draw the two lines on the bottom size + // using the styleSheet and to draw the two lines on the bottom size. m_tabBarContainer = new TabBarContainter(this); m_pagesList = new QStackedWidget(this); - m_helpButton = new QPushButton(tr("Fx Help"), this); + m_helpButton = new QPushButton(tr(""), this); + m_helpButton->setIconSize(QSize(20, 20)); + m_helpButton->setIcon(createQIcon("help")); + m_helpButton->setFixedWidth(28); + m_helpButton->setToolTip(tr("View help page")); m_parent = dynamic_cast(parent); m_pageFxIndexTable.clear(); @@ -721,12 +723,12 @@ ParamsPageSet::ParamsPageSet(QWidget *parent, Qt::WFlags flags) //----layout QVBoxLayout *mainLayout = new QVBoxLayout(); - mainLayout->setMargin(1); + mainLayout->setMargin(0); mainLayout->setSpacing(0); { QHBoxLayout *hLayout = new QHBoxLayout(); hLayout->setMargin(0); - hLayout->addSpacing(6); + hLayout->addSpacing(0); { hLayout->addWidget(m_tabBar); hLayout->addStretch(1); @@ -917,7 +919,7 @@ void ParamsPageSet::createPage(TIStream &is, const TFxP &fx, int index) { std::string tagName; if (!is.matchTag(tagName) || tagName != "page") throw TException("expected "); - std::string pageName = is.getTagAttribute("name"); + std::string pageName = is.getTagAttribute("name"); if (pageName == "") pageName = "page"; ParamsPage *paramsPage = new ParamsPage(this, m_parent); @@ -1017,14 +1019,15 @@ ParamViewer::ParamViewer(QWidget *parent, Qt::WFlags flags) QLabel *swatchLabel = new QLabel(tr("Swatch Viewer"), this); swatchLabel->setObjectName("TitleTxtLabel"); - showSwatchButton->setObjectName("FxSettingsPreviewShowButton"); + showSwatchButton->setObjectName("menuToggleButton"); showSwatchButton->setFixedSize(15, 15); + showSwatchButton->setIcon(createQIcon("menu_toggle")); showSwatchButton->setCheckable(true); showSwatchButton->setChecked(false); showSwatchButton->setFocusPolicy(Qt::NoFocus); QVBoxLayout *mainLayout = new QVBoxLayout(this); - mainLayout->setMargin(1); + mainLayout->setMargin(0); mainLayout->setSpacing(0); { mainLayout->addWidget(m_tablePageSet, 1); @@ -1194,7 +1197,7 @@ FxSettings::FxSettings(QWidget *parent, const TPixel32 &checkCol1, bool ret = true; ret = ret && connect(m_paramViewer, SIGNAL(currentFxParamChanged()), SLOT(updateViewer())); - ret = ret && + ret = ret && connect(m_viewer, SIGNAL(pointPositionChanged(int, const TPointD &)), SLOT(onPointChanged(int, const TPointD &))); ret = ret && connect(m_paramViewer, SIGNAL(preferredSizeChanged(QSize)), this, @@ -1262,10 +1265,9 @@ void FxSettings::setObjectHandle(TObjectHandle *objectHandle) { void FxSettings::createToolBar() { m_toolBar = new QToolBar(this); m_toolBar->setMovable(false); - m_toolBar->setFixedHeight(23); - m_toolBar->setIconSize(QSize(17, 17)); + m_toolBar->setFixedHeight(24); + m_toolBar->setIconSize(QSize(20, 20)); m_toolBar->setObjectName("MediumPaddingToolBar"); - // m_toolBar->setIconSize(QSize(23, 21)); // m_toolBar->setSizePolicy(QSizePolicy::MinimumExpanding, // QSizePolicy::MinimumExpanding); @@ -1273,13 +1275,13 @@ void FxSettings::createToolBar() { QActionGroup *viewModeActGroup = new QActionGroup(m_toolBar); viewModeActGroup->setExclusive(false); // camera - QIcon camera = createQIconOnOff("viewcamera"); + QIcon camera = createQIcon("camera"); QAction *cameraAct = new QAction(camera, tr("&Camera Preview"), m_toolBar); cameraAct->setCheckable(true); viewModeActGroup->addAction(cameraAct); m_toolBar->addAction(cameraAct); // preview - QIcon preview = createQIconOnOff("preview"); + QIcon preview = createQIcon("preview"); QAction *previewAct = new QAction(preview, tr("&Preview"), m_toolBar); previewAct->setCheckable(true); viewModeActGroup->addAction(previewAct); @@ -1292,7 +1294,7 @@ void FxSettings::createToolBar() { QActionGroup *viewModeGroup = new QActionGroup(m_toolBar); viewModeGroup->setExclusive(true); - QAction *whiteBg = new QAction(createQIconOnOff("preview_white"), + QAction *whiteBg = new QAction(createQIcon("preview_white"), tr("&White Background"), m_toolBar); whiteBg->setCheckable(true); whiteBg->setChecked(true); @@ -1300,14 +1302,14 @@ void FxSettings::createToolBar() { connect(whiteBg, SIGNAL(triggered()), this, SLOT(setWhiteBg())); m_toolBar->addAction(whiteBg); - QAction *blackBg = new QAction(createQIconOnOff("preview_black"), + QAction *blackBg = new QAction(createQIcon("preview_black"), tr("&Black Background"), m_toolBar); blackBg->setCheckable(true); viewModeGroup->addAction(blackBg); connect(blackBg, SIGNAL(triggered()), this, SLOT(setBlackBg())); m_toolBar->addAction(blackBg); - m_checkboardBg = new QAction(createQIconOnOff("preview_checkboard"), + m_checkboardBg = new QAction(createQIcon("preview_checkboard"), tr("&Checkered Background"), m_toolBar); m_checkboardBg->setCheckable(true); viewModeGroup->addAction(m_checkboardBg); @@ -1343,10 +1345,10 @@ void FxSettings::setFx(const TFxP ¤tFx, const TFxP &actualFx) { TFxUtil::setKeyframe(currentFxWithoutCamera, m_frameHandle->getFrameIndex(), actualFx, m_frameHandle->getFrameIndex()); - ToonzScene *scene = 0; + ToonzScene *scene = 0; if (m_sceneHandle) scene = m_sceneHandle->getScene(); - int frameIndex = 0; + int frameIndex = 0; if (m_frameHandle) frameIndex = m_frameHandle->getFrameIndex(); m_paramViewer->setFx(currentFxWithoutCamera, actualFx, frameIndex, scene); @@ -1406,7 +1408,7 @@ void FxSettings::setCurrentFx() { if (TZeraryColumnFx *zfx = dynamic_cast(fx.getPointer())) fx = zfx->getZeraryFx(); else - hasEmptyInput = hasEmptyInputPort(fx); + hasEmptyInput = hasEmptyInputPort(fx); int frame = m_frameHandle->getFrame(); ToonzScene *scene = m_sceneHandle->getScene(); actualFx = fx; diff --git a/toonz/sources/toonzqt/gutil.cpp b/toonz/sources/toonzqt/gutil.cpp index 92ccfa8..28b2a96 100644 --- a/toonz/sources/toonzqt/gutil.cpp +++ b/toonz/sources/toonzqt/gutil.cpp @@ -1,6 +1,7 @@ #include "toonzqt/gutil.h" +#include "toonz/preferences.h" // TnzQt includes #include "toonzqt/dvdialog.h" @@ -203,22 +204,103 @@ int getDevPixRatio() { //----------------------------------------------------------------------------- -QIcon createQIcon(const char *iconSVGName) { - QString normal = QString(":Resources/") + iconSVGName + ".svg"; - QString click = QString(":Resources/") + iconSVGName + "_click.svg"; - QString over = QString(":Resources/") + iconSVGName + "_over.svg"; +QString getIconThemePath(const QString &fileSVGPath) { + // Use as follows: + // QPixmap pixmapIcon = getIconThemePath("path/to/file.svg"); + // Is equal to: :icons/*theme*/path/to/file.svg + // Set themeable directory + static QString theme = Preferences::instance()->getIconTheme() + ? ":icons/dark/" + : ":icons/light/"; + + // If no file in light icon theme directory, fallback to dark directory + if (!QFile::exists(QString(theme + fileSVGPath))) theme = ":icons/dark/"; + + return theme + fileSVGPath; +} + +//----------------------------------------------------------------------------- + +QPixmap setOpacity(QPixmap pixmap, const qreal &opacity) { + static int devPixRatio = getDevPixRatio(); + const QSize pixmapSize(pixmap.width() * devPixRatio, + pixmap.height() * devPixRatio); + + QPixmap opacityPixmap(pixmapSize); + opacityPixmap.setDevicePixelRatio(devPixRatio); + opacityPixmap.fill(Qt::transparent); + + if (!pixmap.isNull()) { + QPainter p(&opacityPixmap); + QPixmap normalPixmap = pixmap.scaled(pixmapSize, Qt::KeepAspectRatio); + normalPixmap.setDevicePixelRatio(devPixRatio); + p.setBackgroundMode(Qt::TransparentMode); + p.setBackground(QBrush(Qt::transparent)); + p.eraseRect(normalPixmap.rect()); + p.setOpacity(opacity); + p.drawPixmap(0, 0, normalPixmap); + } + return opacityPixmap; +} + +//----------------------------------------------------------------------------- + +QPixmap recolorPixmap(QPixmap pixmap, QColor color) { + // Change black pixels to any chosen color + QImage img = pixmap.toImage().convertToFormat(QImage::Format_ARGB32); + for (int y = 0; y < img.height(); y++) { + QRgb *pixel = reinterpret_cast(img.scanLine(y)); + QRgb *end = pixel + img.width(); + for (; pixel != end; pixel++) { + // Only recolor zero value (black) pixels + if (QColor::fromRgba(*pixel).value() == 0) + *pixel = + QColor(color.red(), color.green(), color.blue(), qAlpha(*pixel)) + .rgba(); + } + } + return pixmap = QPixmap::fromImage(img); +} + +//----------------------------------------------------------------------------- + +QIcon createQIcon(const char *iconSVGName, bool useFullOpacity) { + QIcon normalIcon = QIcon::fromTheme(iconSVGName); + + QSize iconSize(0, 0); // Get largest + for (QList sizes = normalIcon.availableSizes(); !sizes.isEmpty(); + sizes.removeFirst()) + if (sizes.first().width() > iconSize.width()) iconSize = sizes.first(); + + const qreal offOpacity = 0.8; + const qreal disabledOpacity = 0.15; + QString overStr = QString(iconSVGName) + "_over"; + QString onStr = QString(iconSVGName) + "_on"; + QPixmap normalPm = recolorPixmap(normalIcon.pixmap(iconSize)); + QPixmap overPm = recolorPixmap(QIcon::fromTheme(overStr).pixmap(iconSize)); + QPixmap onPm = recolorPixmap(QIcon::fromTheme(onStr).pixmap(iconSize)); QIcon icon; - icon.addFile(normal, QSize(), QIcon::Normal, QIcon::Off); - if (QFile::exists(click)) - icon.addFile(click, QSize(), QIcon::Normal, QIcon::On); - else - icon.addFile(normal, QSize(), QIcon::Normal, QIcon::On); - if (QFile::exists(over)) - icon.addFile(over, QSize(), QIcon::Active); - else - icon.addFile(normal, QSize(), QIcon::Active); + // Off + icon.addPixmap(useFullOpacity ? normalPm : setOpacity(normalPm, offOpacity), + QIcon::Normal, QIcon::Off); + icon.addPixmap(setOpacity(normalPm, disabledOpacity), QIcon::Disabled); + + // Over + icon.addPixmap(!overPm.isNull() ? overPm : normalPm, QIcon::Active); + + // On + if (!onPm.isNull()) { + icon.addPixmap(onPm, QIcon::Normal, QIcon::On); + icon.addPixmap(setOpacity(onPm, disabledOpacity), QIcon::Disabled, + QIcon::On); + } else { + // If file doesn't exist, let's add an opaque normal pixmap + icon.addPixmap(normalPm, QIcon::Normal, QIcon::On); + icon.addPixmap(setOpacity(normalPm, disabledOpacity), QIcon::Disabled, + QIcon::On); + } return icon; } @@ -239,23 +321,6 @@ QIcon createQIconPNG(const char *iconPNGName) { //----------------------------------------------------------------------------- -QIcon createQIconOnOff(const char *iconSVGName, bool withOver) { - QString on = QString(":Resources/") + iconSVGName + "_on.svg"; - QString off = QString(":Resources/") + iconSVGName + "_off.svg"; - QString over = QString(":Resources/") + iconSVGName + "_over.svg"; - - QIcon icon; - icon.addFile(off, QSize(), QIcon::Normal, QIcon::Off); - icon.addFile(on, QSize(), QIcon::Normal, QIcon::On); - if (withOver) - icon.addFile(over, QSize(), QIcon::Active); - else - icon.addFile(on, QSize(), QIcon::Active); - return icon; -} - -//----------------------------------------------------------------------------- - QIcon createQIconOnOffPNG(const char *iconPNGName, bool withOver) { QString on = QString(":Resources/") + iconPNGName + "_on.png"; QString off = QString(":Resources/") + iconPNGName + "_off.png"; @@ -476,17 +541,12 @@ void TabBarContainter::paintEvent(QPaintEvent *event) { ToolBarContainer::ToolBarContainer(QWidget *parent) : QFrame(parent) { setObjectName("ToolBarContainer"); - setFrameStyle(QFrame::StyledPanel); setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed); } //----------------------------------------------------------------------------- -void ToolBarContainer::paintEvent(QPaintEvent *event) { - QPainter p(this); - p.setPen(QColor(120, 120, 120)); - p.drawLine(0, 0, width(), 0); -} +void ToolBarContainer::paintEvent(QPaintEvent *event) { QPainter p(this); } //============================================================================= diff --git a/toonz/sources/toonzqt/icongenerator.cpp b/toonz/sources/toonzqt/icongenerator.cpp index 8d10249..caa66a7 100644 --- a/toonz/sources/toonzqt/icongenerator.cpp +++ b/toonz/sources/toonzqt/icongenerator.cpp @@ -1068,7 +1068,7 @@ Qt::transparent) TAffine aff = TScale(sc).place(ras32->getCenterD(), icon->getCenterD()); - icon->fill(TPixel32(160, 160, 160)); // "bands" color + icon->fill(TPixel32(255, 0, 0)); // "bands" color TRop::resample(icon, ras32, aff, TRop::Triangle); if (icon) { @@ -1150,7 +1150,6 @@ TRaster32P IconGenerator::generateSceneFileIcon(const TFilePath &path, void FileIconRenderer::run() { TDimension iconSize(getIconSize()); - try { TRaster32P iconRaster; std::string type(m_path.getType()); @@ -1170,19 +1169,19 @@ void FileIconRenderer::run() { setIcon(rasterFromQImage(palette)); return; } else if (type == "svg") { - QPixmap palette(svgToPixmap(":Resources/svg.svg", - QSize(iconSize.lx, iconSize.ly), - Qt::KeepAspectRatio)); - setIcon(rasterFromQPixmap(palette)); + QPixmap svg(svgToPixmap(getIconThemePath("mimetypes/60/svg_icon.svg"), + QSize(iconSize.lx, iconSize.ly), + Qt::KeepAspectRatio)); + setIcon(rasterFromQPixmap(svg)); return; } else if (type == "tzu") { QImage palette(":Resources/tzuicon.png"); setIcon(rasterFromQImage(palette)); return; } else if (TFileType::getInfo(m_path) == TFileType::AUDIO_LEVEL) { - QPixmap loudspeaker(svgToPixmap(":Resources/audio.svg", - QSize(iconSize.lx, iconSize.ly), - Qt::KeepAspectRatio)); + QPixmap loudspeaker( + svgToPixmap(getIconThemePath("mimetypes/60/audio_icon.svg"), + QSize(iconSize.lx, iconSize.ly), Qt::KeepAspectRatio)); setIcon(rasterFromQPixmap(loudspeaker)); return; } else if (type == "scr") { @@ -1190,7 +1189,7 @@ void FileIconRenderer::run() { setIcon(rasterFromQImage(screensaver)); return; } else if (type == "psd") { - QPixmap psdPath(svgToPixmap(":Resources/psd.svg", + QPixmap psdPath(svgToPixmap(getIconThemePath("mimetypes/60/psd_icon.svg"), QSize(iconSize.lx, iconSize.ly), Qt::KeepAspectRatio)); setIcon(rasterFromQPixmap(psdPath)); @@ -1201,69 +1200,71 @@ void FileIconRenderer::run() { iconRaster = IconGenerator::generateRasterFileIcon(m_path, iconSize, m_fid); else if (type == "mpath") { - QPixmap motionPath(svgToPixmap(":Resources/motionpath_fileicon.svg", - QSize(iconSize.lx, iconSize.ly), - Qt::KeepAspectRatio)); + QPixmap motionPath( + svgToPixmap(getIconThemePath("mimetypes/60/motionpath_icon.svg"), + QSize(iconSize.lx, iconSize.ly), Qt::KeepAspectRatio)); setIcon(rasterFromQPixmap(motionPath)); return; } else if (type == "curve") { - QPixmap motionPath(svgToPixmap(":Resources/curve.svg", - QSize(iconSize.lx, iconSize.ly), - Qt::KeepAspectRatio)); - setIcon(rasterFromQPixmap(motionPath)); + QPixmap curve(svgToPixmap(getIconThemePath("mimetypes/60/curve_icon.svg"), + QSize(iconSize.lx, iconSize.ly), + Qt::KeepAspectRatio)); + setIcon(rasterFromQPixmap(curve)); return; } else if (type == "cln") { - QPixmap motionPath(svgToPixmap(":Resources/cleanup.svg", - QSize(iconSize.lx, iconSize.ly), - Qt::KeepAspectRatio)); - setIcon(rasterFromQPixmap(motionPath)); + QPixmap cln(svgToPixmap(getIconThemePath("mimetypes/60/cleanup_icon.svg"), + QSize(iconSize.lx, iconSize.ly), + Qt::KeepAspectRatio)); + setIcon(rasterFromQPixmap(cln)); return; } else if (type == "tnzbat") { - QPixmap motionPath(svgToPixmap(":Resources/tasklist.svg", - QSize(iconSize.lx, iconSize.ly), - Qt::KeepAspectRatio)); - setIcon(rasterFromQPixmap(motionPath)); + QPixmap tnzBat( + svgToPixmap(getIconThemePath("mimetypes/60/tasklist_icon.svg"), + QSize(iconSize.lx, iconSize.ly), Qt::KeepAspectRatio)); + setIcon(rasterFromQPixmap(tnzBat)); return; } else if (type == "tls") { - QPixmap magpie(svgToPixmap(":Resources/magpie.svg", - QSize(iconSize.lx, iconSize.ly), - Qt::KeepAspectRatio)); - setIcon(rasterFromQPixmap(magpie)); + QPixmap tls(svgToPixmap(":Resources/magpie.svg", + QSize(iconSize.lx, iconSize.ly), + Qt::KeepAspectRatio)); + setIcon(rasterFromQPixmap(tls)); return; } else if (type == "xdts") { - QPixmap xdts(svgToPixmap(":Resources/xdts.svg", + QPixmap xdts(svgToPixmap(getIconThemePath("mimetypes/60/xdts_icon.svg"), QSize(iconSize.lx, iconSize.ly), Qt::KeepAspectRatio)); setIcon(rasterFromQPixmap(xdts)); return; } else if (type == "js") { - QImage script(":Resources/scripticon.png"); - setIcon(rasterFromQImage(script)); + QPixmap script( + svgToPixmap(getIconThemePath("mimetypes/60/script_icon.svg"), + QSize(iconSize.lx, iconSize.ly), Qt::KeepAspectRatio)); + setIcon(rasterFromQPixmap(script)); return; } else { - QPixmap unknown(svgToPixmap(":Resources/unknown.svg", - QSize(iconSize.lx, iconSize.ly), - Qt::KeepAspectRatio)); + QPixmap unknown( + svgToPixmap(getIconThemePath("mimetypes/60/unknown_icon.svg"), + QSize(iconSize.lx, iconSize.ly), Qt::KeepAspectRatio)); setIcon(rasterFromQPixmap(unknown)); return; } if (!iconRaster) { - QPixmap broken(svgToPixmap(":Resources/broken.svg", - QSize(iconSize.lx, iconSize.ly), - Qt::KeepAspectRatio)); + QPixmap broken( + svgToPixmap(getIconThemePath("mimetypes/60/broken_icon.svg"), + QSize(iconSize.lx, iconSize.ly), Qt::KeepAspectRatio)); setIcon(rasterFromQPixmap(broken)); return; } setIcon(iconRaster); } catch (const TImageVersionException &) { - QPixmap unknown(svgToPixmap(":Resources/unknown.svg", - QSize(iconSize.lx, iconSize.ly), - Qt::KeepAspectRatio)); + QPixmap unknown( + svgToPixmap(getIconThemePath("mimetypes/60/unknown_icon.svg"), + QSize(iconSize.lx, iconSize.ly), Qt::KeepAspectRatio)); setIcon(rasterFromQPixmap(unknown)); } catch (...) { - QPixmap broken(svgToPixmap(":Resources/broken.svg", + QPixmap broken(svgToPixmap(getIconThemePath("mimetypes/60/broken_icon.svg"), QSize(iconSize.lx, iconSize.ly), Qt::KeepAspectRatio)); setIcon(rasterFromQPixmap(broken)); diff --git a/toonz/sources/toonzqt/intfield.cpp b/toonz/sources/toonzqt/intfield.cpp index 9445115..3ca87f5 100644 --- a/toonz/sources/toonzqt/intfield.cpp +++ b/toonz/sources/toonzqt/intfield.cpp @@ -202,11 +202,25 @@ void IntLineEdit::focusOutEvent(QFocusEvent *e) { // for fps edit in flip console void IntLineEdit::setLineEditBackgroundColor(QColor color) { - QString sheet = QString("background-color: rgb(") + - QString::number(color.red()) + QString(",") + - QString::number(color.green()) + QString(",") + - QString::number(color.blue()) + QString(",") + - QString::number(color.alpha()) + QString(");"); + // Set text color based on luminescence of bg color + int value = 0; + double luminescence = ((0.299 * color.red()) + (0.587 * color.green()) + + (0.114 * color.blue())) / + 255; + if (luminescence > 0.5) + value = 0; // black + else + value = 255; // white + + QString sheet = + QString("background-color: rgb(") + QString::number(color.red()) + + QString(",") + QString::number(color.green()) + QString(",") + + QString::number(color.blue()) + QString(",") + + QString::number(color.alpha()) + + QString(");" + + QString("color: rgb(" + QString::number(value) + QString(",") + + QString::number(value) + QString(",") + + QString::number(value) + QString(");"))); setStyleSheet(sheet); } @@ -284,7 +298,7 @@ IntField::IntField(QWidget *parent, bool isMaxRangeLimited, bool isRollerHide) m_slider = new QSlider(Qt::Horizontal, this); ret = ret && connect(m_slider, SIGNAL(valueChanged(int)), this, SLOT(onSliderChanged(int))); - ret = ret && connect(m_slider, SIGNAL(sliderReleased()), this, + ret = ret && connect(m_slider, SIGNAL(sliderReleased()), this, SLOT(onSliderReleased())); ret = ret && connect(m_lineEdit, SIGNAL(editingFinished()), this, @@ -392,7 +406,7 @@ int IntField::pos2value(int x) const { else if (posRatio <= 0.9) t = -0.26 + 0.4 * posRatio; else - t = -8.0 + 9.0 * posRatio; + t = -8.0 + 9.0 * posRatio; double sliderVal = (double)m_slider->minimum() + rangeSize * t; return (int)round(sliderVal * pow(0.1, NonLinearSliderPrecision)); } diff --git a/toonz/sources/toonzqt/keyframenavigator.cpp b/toonz/sources/toonzqt/keyframenavigator.cpp index 24925b8..976f774 100644 --- a/toonz/sources/toonzqt/keyframenavigator.cpp +++ b/toonz/sources/toonzqt/keyframenavigator.cpp @@ -38,42 +38,48 @@ using namespace std; KeyframeNavigator::KeyframeNavigator(QWidget *parent, TFrameHandle *frameHandle) : QToolBar(parent), m_frameHandle(frameHandle), m_panel(0) { setLayoutDirection(Qt::LeftToRight); - - setIconSize(QSize(18, 18)); - + setIconSize(QSize(20, 20)); setObjectName("keyFrameNavigator"); - QPixmap emptyPrevPixmap( - 23, 23); // set transparent icon to show button's background - emptyPrevPixmap.fill(Qt::transparent); - QIcon emptyPrevIcon(emptyPrevPixmap); - - m_actPreviewKey = new QAction(emptyPrevIcon, tr("Previous Key"), this); + // previous key button + QIcon prevKeyIcon = createQIcon("prevkey"); + m_actPreviewKey = new QAction(prevKeyIcon, tr("Previous Key"), this); connect(m_actPreviewKey, SIGNAL(triggered()), SLOT(togglePrevKeyAct())); addAction(m_actPreviewKey); QWidget *prevWidget = widgetForAction( m_actPreviewKey); // obtain a widget generated from QAction prevWidget->setObjectName("PreviousKey"); - m_actKeyNo = new QAction(createQIcon("key_no"), tr("Set Key"), this); + // key off button + QIcon keyIcon = createQIcon("key_off"); + m_actKeyNo = new QAction(keyIcon, tr("Set Key"), this); connect(m_actKeyNo, SIGNAL(triggered()), SLOT(toggleKeyAct())); addAction(m_actKeyNo); + QWidget *keyNoWidget = + widgetForAction(m_actKeyNo); // obtain a widget generated from QAction + keyNoWidget->setObjectName("KeyNo"); - m_actKeyPartial = - new QAction(createQIcon("key_partial"), tr("Set Key"), this); + // key partial button + QIcon keyPartialIcon = createQIcon("key_partial", true); + m_actKeyPartial = new QAction(keyPartialIcon, tr("Set Key"), this); connect(m_actKeyPartial, SIGNAL(triggered()), SLOT(toggleKeyAct())); addAction(m_actKeyPartial); + QWidget *keyPartialWidget = widgetForAction( + m_actKeyPartial); // obtain a widget generated from QAction + keyPartialWidget->setObjectName("KeyPartial"); - m_actKeyTotal = new QAction(createQIcon("key_total"), tr("Set Key"), this); + // key total button + QIcon keyTotalIcon = createQIcon("key_on", true); + m_actKeyTotal = new QAction(keyTotalIcon, tr("Set Key"), this); connect(m_actKeyTotal, SIGNAL(triggered()), SLOT(toggleKeyAct())); addAction(m_actKeyTotal); + QWidget *keyTotalWidget = + widgetForAction(m_actKeyTotal); // obtain a widget generated from QAction + keyTotalWidget->setObjectName("KeyTotal"); - QPixmap emptyNextPixmap( - 23, 23); // set transparent icon to show button's background - emptyNextPixmap.fill(Qt::transparent); - QIcon emptyNextIcon(emptyNextPixmap); - - m_actNextKey = new QAction(emptyNextIcon, tr("Next Key"), this); + // next key button + QIcon nextKeyIcon = createQIcon("nextkey"); + m_actNextKey = new QAction(nextKeyIcon, tr("Next Key"), this); connect(m_actNextKey, SIGNAL(triggered()), SLOT(toggleNextKeyAct())); addAction(m_actNextKey); QWidget *nextWidget = diff --git a/toonz/sources/toonzqt/paletteviewer.cpp b/toonz/sources/toonzqt/paletteviewer.cpp index 2c83cdb..7f0ba2c 100644 --- a/toonz/sources/toonzqt/paletteviewer.cpp +++ b/toonz/sources/toonzqt/paletteviewer.cpp @@ -191,7 +191,7 @@ PaletteViewer::~PaletteViewer() { delete m_changeStyleCommand; } void PaletteViewer::setPaletteHandle(TPaletteHandle *paletteHandle) { if (m_paletteHandle == paletteHandle) return; - bool ret = true; + bool ret = true; if (m_paletteHandle) ret = ret && disconnect(m_paletteHandle, 0, this, 0); m_paletteHandle = paletteHandle; @@ -303,15 +303,13 @@ void PaletteViewer::createTabBar() { void PaletteViewer::createPaletteToolBar() { m_paletteToolBar->clear(); m_paletteToolBar->setMovable(false); - m_paletteToolBar->setIconSize(QSize(23, 20)); + m_paletteToolBar->setIconSize(QSize(20, 20)); m_paletteToolBar->setLayoutDirection(Qt::RightToLeft); // Lock button to avoid editing the palette by mistake if (m_viewType == LEVEL_PALETTE) { - QIcon lockIcon = createQIconOnOff("lockpalette"); - m_lockPaletteToolButton = new QToolButton(this); - m_lockPaletteToolButton->setIcon(lockIcon); + m_lockPaletteToolButton->setIcon(createQIcon("lock")); m_lockPaletteToolButton->setCheckable(true); m_lockPaletteToolButton->setObjectName("PaletteLockButton"); m_lockPaletteToolButton->setToolTip(tr("Lock Palette")); @@ -321,16 +319,11 @@ void PaletteViewer::createPaletteToolBar() { connect(m_lockPaletteToolButton, SIGNAL(clicked(bool)), this, SLOT(setIsLocked(bool))); - m_paletteToolBar->addWidget(m_lockPaletteToolButton); - } else if (m_viewType == STUDIO_PALETTE) { QToolButton *toolButton = new QToolButton(this); toolButton->setPopupMode(QToolButton::InstantPopup); - - QIcon lockIcon = createQIconOnOff("lockpalette"); - toolButton->setIcon(lockIcon); - + toolButton->setIcon(createQIcon("lock")); toolButton->setObjectName("PaletteLockButton"); toolButton->setToolTip(tr("Lock Palette")); toolButton->setCheckable(true); @@ -356,7 +349,7 @@ void PaletteViewer::createPaletteToolBar() { QToolButton *viewModeButton = new QToolButton(this); viewModeButton->setPopupMode(QToolButton::InstantPopup); - QIcon viewModeIcon = createQIcon("options"); + QIcon viewModeIcon = createQIcon("menu"); viewModeButton->setIcon(viewModeIcon); QMenu *viewMode = new QMenu(QString("Options"), viewModeButton); viewMode->setToolTip(tr("Options")); @@ -452,7 +445,7 @@ current viewer palette type. void PaletteViewer::createSavePaletteToolBar() { m_savePaletteToolBar->clear(); m_savePaletteToolBar->setMovable(false); - m_savePaletteToolBar->setIconSize(QSize(22, 20)); + m_savePaletteToolBar->setIconSize(QSize(20, 20)); if (!m_hasSavePaletteToolbar || m_viewType == CLEANUP_PALETTE) { m_savePaletteToolBar->hide(); @@ -460,11 +453,11 @@ void PaletteViewer::createSavePaletteToolBar() { } // save palette as - QIcon saveAsPaletteIcon = createQIconOnOff("savepaletteas", false); + QIcon saveAsPaletteIcon = createQIcon("saveas"); QAction *saveAsPalette = new QAction( saveAsPaletteIcon, tr("&Save Palette As"), m_savePaletteToolBar); // overwrite palette - QIcon savePaletteIcon = createQIconOnOff("savepalette", false); + QIcon savePaletteIcon = createQIcon("save"); QAction *savePalette = new QAction(savePaletteIcon, tr("&Save Palette"), m_savePaletteToolBar); @@ -510,8 +503,8 @@ void PaletteViewer::updateTabBar() { TPalette *palette = getPalette(); if (!palette) return; - QIcon tabIcon(":Resources/palette_tabicon.svg"); - m_pagesBar->setIconSize(QSize(20, 15)); + QIcon tabIcon = createQIcon("palette_tab"); + m_pagesBar->setIconSize(QSize(16, 16)); // Aggiungo i tab in funzione delle pagine di m_palette for (i = 0; i < palette->getPageCount(); i++) { @@ -1036,7 +1029,7 @@ void PaletteViewer::onPaletteSwitched() { if (palette) { int currentStyleId = palette->getCurrentStyleId(); TPalette::Page *page = palette->getStylePage(currentStyleId); - if (page) pageIndex = page->getIndex(); + if (page) pageIndex = page->getIndex(); } } onSwitchToPage(pageIndex); diff --git a/toonz/sources/toonzqt/paletteviewergui.cpp b/toonz/sources/toonzqt/paletteviewergui.cpp index fddf001..2407e2e 100644 --- a/toonz/sources/toonzqt/paletteviewergui.cpp +++ b/toonz/sources/toonzqt/paletteviewergui.cpp @@ -327,7 +327,7 @@ void PageViewer::drop(int dstIndexInPage, const QMimeData *mimeData) { int dstPageIndex = m_page->getIndex(); if ((m_page->getStyleId(0) == 0 || m_page->getStyleId(1) == 1) && dstIndexInPage < 2) - dstIndexInPage = 2; + dstIndexInPage = 2; if (dstIndexInPage < 0) dstIndexInPage = m_page->getStyleCount(); const PaletteData *paletteData = dynamic_cast(mimeData); @@ -455,17 +455,15 @@ void PageViewer::drawColorName(QPainter &p, QRect &nameRect, TColorStyle *style, StudioPalette::instance()->getSourceStyle(style); if (g.first != TFilePath() && g.second >= 0) name += " " + toQString(g.first) + ":" + QString::number(g.second); - if (style->getFlags() != 0) name += "(autopaint)"; + if (style->getFlags() != 0) name += " (autopaint)"; TPoint pickedPos = style->getPickedPosition().pos; if (pickedPos != TPoint()) name += QString(" (%1,%2)").arg(pickedPos.x).arg(pickedPos.y); - p.drawText(nameRect.adjusted(6, 4, -6, -4), name); + p.drawText(nameRect.adjusted(10, 4, -6, -4), name); - QColor borderCol(getTextColor()); - borderCol.setAlphaF(0.3); - p.setPen(borderCol); + p.setPen(getSeparatorColor()); } if (m_viewMode == SmallChips && style->getFlags() != 0) { @@ -490,15 +488,15 @@ void PageViewer::drawColorName(QPainter &p, QRect &nameRect, TColorStyle *style, } if (m_viewMode == LargeChips) { - QString index = QString::number(styleIndex); - QFont font = p.font(); - int fontSize = font.pointSize(); + QString index = QString::number(styleIndex); + QFont font = p.font(); + int fontSize = font.pointSize(); if (fontSize == -1) fontSize = font.pixelSize(); - int length = index.length() * fontSize; - int w = (length > 11) ? (length) : 11; - int h = 11; - int x0 = nameRect.right() - w + 1; - int y0 = nameRect.top() - h - 1; + int length = index.length() * fontSize; + int w = (length > 11) ? (length) : 11; + int h = 11; + int x0 = nameRect.right() - w + 1; + int y0 = nameRect.top() - h - 1; p.drawText(nameRect.adjusted(6, 1, -6, -1), name); QRect indexRect(x0, y0, w, h); p.fillRect(indexRect, QBrush(Qt::white)); @@ -577,7 +575,7 @@ static void drawChipName(QPainter &p, const QRect &chipRect, } //----------------------------------------------------------------------------- -/*! Pain current page styles using current view mode. +/*! Paint current page styles using current view mode. */ void PageViewer::paintEvent(QPaintEvent *e) { QPainter p(this); @@ -591,18 +589,18 @@ void PageViewer::paintEvent(QPaintEvent *e) { TPalette *palette = (m_page) ? m_page->getPalette() : 0; if (!palette) return; - // [i0,i1] = range celle visibili - QRect visibleRect = e->rect(); - int i0 = posToIndex(visibleRect.topLeft()); - if (i0 < 0) i0 = 0; - int i1 = posToIndex(visibleRect.bottomRight()); + // [i0,i1] = visible cell range + QRect visibleRect = e->rect(); + int i0 = posToIndex(visibleRect.topLeft()); + if (i0 < 0) i0 = 0; + int i1 = posToIndex(visibleRect.bottomRight()); if (i1 >= getChipCount()) i1 = getChipCount() - 1; QFont preFont = p.font(); QFont tmpFont = p.font(); if (m_viewMode == List) { - // disegno le celle + // draw the cells int i; int currentStyleIndexInPage = -1; for (i = i0; i <= i1; i++) { @@ -614,6 +612,20 @@ void PageViewer::paintEvent(QPaintEvent *e) { p.setPen(Qt::black); drawColorChip(p, chipRect, style); + // current style + if (i == currentStyleIndexInPage && 0 <= i && i < getChipCount()) { + QRect rect = getItemRect(i); + if (!m_styleSelection->isSelected(m_page->getIndex(), i)) { + p.fillRect(rect.adjusted(23, 0, 0, 0), getCurrentCellColor()); + } + } + + // selected + if (m_styleSelection->isSelected(m_page->getIndex(), i)) { + QRect itemRect = getItemRect(i); + p.fillRect(itemRect.adjusted(23, 0, 0, 0), getSelectedCellColor()); + } + // name, index and shortcut QRect nameRect = getColorNameRect(i); drawColorName(p, nameRect, style, styleIndex); @@ -622,37 +634,17 @@ void PageViewer::paintEvent(QPaintEvent *e) { if (Preferences::instance()->isUseNumpadForSwitchingStylesEnabled() && m_viewType == LEVEL_PALETTE && palette->getStyleShortcut(styleIndex) >= 0) { - p.setPen(QPen(QColor(0, 0, 0, 128), 2)); - p.drawLine(nameRect.topLeft() + QPoint(2, 1), - nameRect.bottomLeft() + QPoint(2, 0)); - p.setPen(QPen(QColor(255, 255, 255, 128), 2)); + p.setPen(QPen(QColor(getListNumpadShortcutBorderColor()), 2)); p.drawLine(nameRect.topLeft() + QPoint(4, 1), nameRect.bottomLeft() + QPoint(4, 0)); - } - - // selezione - if (m_styleSelection->isSelected(m_page->getIndex(), i)) { - p.setPen(Qt::white); - QRect itemRect = getItemRect(i); - p.drawRect(itemRect); - p.drawRect(chipRect.adjusted(1, 1, -1, -1)); - } - // stile corrente - if (i == currentStyleIndexInPage && 0 <= i && i < getChipCount()) { - QRect rect = getItemRect(i); - - p.setPen(QColor(180, 210, 255)); - p.drawRect(rect.adjusted(1, 1, -1, -1)); - - p.setPen(Qt::white); - p.drawRect(rect.adjusted(2, 2, -2, -2)); - p.setPen(Qt::black); - p.drawRect(rect.adjusted(3, 3, -3, -3)); + p.setPen(QPen(QColor(getListNumpadShortcutBorderColor()), 2)); + p.drawLine(nameRect.topLeft() + QPoint(2, 1), + nameRect.bottomLeft() + QPoint(2, 0)); - if (!m_styleSelection->isSelected(m_page->getIndex(), i)) { - p.setPen(QColor(225, 225, 225)); - p.drawRect(rect.adjusted(1, 1, -1, -1)); - } + // draw a separator line between shortcut border and name + p.setPen(QPen(QColor(getSeparatorColor()))); + p.drawLine(nameRect.topLeft() + QPoint(5, 1), + nameRect.bottomLeft() + QPoint(5, 0)); } // toggle link @@ -690,10 +682,10 @@ void PageViewer::paintEvent(QPaintEvent *e) { QRect itemRect = getItemRect(i); // paint dark p.setPen(Qt::NoPen); - p.setBrush(QColor(0, 0, 0, 64)); + p.setBrush(QColor(getNumpadShortcutBgColor())); p.drawRect(itemRect); // check the neighbours and draw light lines - p.setPen(QPen(QColor(255, 255, 255, 128), 2)); + p.setPen(QPen(QColor(getNumpadShortcutBorderColor()), 2)); // top if (!hasShortcut(i - m_chipPerRow)) p.drawLine(itemRect.topLeft(), itemRect.topRight() - QPoint(1, 0)); @@ -710,12 +702,12 @@ void PageViewer::paintEvent(QPaintEvent *e) { itemRect.bottomRight() - QPoint(0, 1)); } - // draw white frame if the style is selected or current + // draw frame if the style is selected or current if (m_styleSelection->isSelected(m_page->getIndex(), i) || currentStyleIndex == styleIndex) { QRect itemRect = getItemRect(i).adjusted(0, -1, 0, 1); p.setPen(Qt::NoPen); - p.setBrush(Qt::white); + p.setBrush(getSelectedBorderColor()); p.drawRoundRect(itemRect, 7, 25); } // paint style @@ -1236,7 +1228,7 @@ void PageViewer::dragEnterEvent(QDragEnterEvent *event) { if (index < 0) index = 0; else if (index > m_page->getStyleCount()) - index = m_page->getStyleCount(); + index = m_page->getStyleCount(); m_dropPositionIndex = index; update(); event->acceptProposedAction(); @@ -1256,7 +1248,7 @@ void PageViewer::dragMoveEvent(QDragMoveEvent *event) { if (index < 0) index = 0; else if (index > m_page->getStyleCount()) - index = m_page->getStyleCount(); + index = m_page->getStyleCount(); m_dropPositionIndex = index; update(); event->acceptProposedAction(); @@ -1332,8 +1324,9 @@ void PageViewer::keyPressEvent(QKeyEvent *e) { if (key == cManager->getKeyFromShortcut(cManager->getShortcutFromId(V_ZoomIn))) zoomInChip(); - else if (key == cManager->getKeyFromShortcut( - cManager->getShortcutFromId(V_ZoomOut))) + else if (key == + cManager->getKeyFromShortcut( + cManager->getShortcutFromId(V_ZoomOut))) zoomOutChip(); else e->ignore(); @@ -1445,8 +1438,8 @@ void PageViewer::select(int indexInPage, QMouseEvent *event) { } bool isStyleChanged = false; - if (on) selected = true; - int styleIndex = m_page->getStyleId(indexInPage); + if (on) selected = true; + int styleIndex = m_page->getStyleId(indexInPage); if (selected) { setCurrentStyleIndex(styleIndex); @@ -1670,7 +1663,7 @@ PaletteIconWidget::PaletteIconWidget(QWidget *parent, Qt::WFlags flags) #endif : QWidget(parent, flags), m_isOver(false) { setFixedSize(30, 20); - setToolTip(QObject::tr("Palette")); + setToolTip(QObject::tr("Click & Drag Palette into Studio Palette")); } //----------------------------------------------------------------------------- @@ -1681,14 +1674,15 @@ PaletteIconWidget::~PaletteIconWidget() {} void PaletteIconWidget::paintEvent(QPaintEvent *) { QPainter p(this); - + // generate icon and extract the pixmaps + QIcon dragPaletteIcon = createQIcon("dragpalette"); if (m_isOver) { static QPixmap dragPaletteIconPixmapOver( - svgToPixmap(":Resources/dragpalette_over.svg")); + dragPaletteIcon.pixmap(20, QIcon::Active)); p.drawPixmap(5, 1, dragPaletteIconPixmapOver); } else { static QPixmap dragPaletteIconPixmap( - svgToPixmap(":Resources/dragpalette.svg")); + dragPaletteIcon.pixmap(20, QIcon::Normal, QIcon::Off)); p.drawPixmap(5, 1, dragPaletteIconPixmap); } } diff --git a/toonz/sources/toonzqt/paramfield.cpp b/toonz/sources/toonzqt/paramfield.cpp index fc826bf..93939f8 100644 --- a/toonz/sources/toonzqt/paramfield.cpp +++ b/toonz/sources/toonzqt/paramfield.cpp @@ -656,7 +656,7 @@ void ParamField::setFxHandle(TFxHandle *fxHandle) { ParamFieldKeyToggle::ParamFieldKeyToggle(QWidget *parent, std::string name) : QWidget(parent), m_status(NOT_ANIMATED), m_highlighted(false) { - setFixedSize(15, 15); + setFixedSize(20, 20); } //----------------------------------------------------------------------------- @@ -689,28 +689,71 @@ ParamFieldKeyToggle::Status ParamFieldKeyToggle::getStatus() const { //----------------------------------------------------------------------------- void ParamFieldKeyToggle::paintEvent(QPaintEvent *e) { + QIcon icon; + const int iconSize = 20; + const int radius = 2; + + // Create rounded rect for key button states QPainter p(this); + p.setRenderHint(p.Antialiasing, true); + QPainterPath path; + path.addRoundedRect( + QRectF(0.5, 0.5, 19, 19), radius, + radius); // Nudge rect by half pixel so QPen looks pixel perfect + QPen pen = QColor(0, 0, 0, 0); + p.setPen(pen); switch (m_status) { case NOT_ANIMATED: - p.drawPixmap(rect(), - QPixmap(svgToPixmap(":Resources/keyframe_noanim.svg"))); + pen = QColor(getKeyBorderOffColor()); + p.setPen(pen); + p.fillPath(path, getKeyOffColor()); + m_pixmap = QPixmap(createQIcon("key_off").pixmap( + iconSize, iconSize, QIcon::Normal, QIcon::Off)); + icon.addPixmap(m_pixmap); + icon.paint(&p, QRect(0, 0, iconSize, iconSize)); break; case KEYFRAME: - p.drawPixmap(rect(), QPixmap(svgToPixmap(":Resources/keyframe_key.svg"))); + pen = QColor(getKeyBorderOnColor()); + p.setPen(pen); + p.fillPath(path, getKeyOnColor()); + m_pixmap = + QPixmap(createQIcon("key_on", true) + .pixmap(iconSize, iconSize, QIcon::Normal, QIcon::Off)); + icon.addPixmap(m_pixmap); + icon.paint(&p, QRect(0, 0, iconSize, iconSize)); break; case MODIFIED: - p.drawPixmap(rect(), - QPixmap(svgToPixmap(":Resources/keyframe_modified.svg"))); + pen = QColor(getKeyBorderModifiedColor()); + p.setPen(pen); + p.fillPath(path, getKeyModifiedColor()); + m_pixmap = + QPixmap(createQIcon("key_modified", true) + .pixmap(iconSize, iconSize, QIcon::Normal, QIcon::Off)); + icon.addPixmap(m_pixmap); + icon.paint(&p, QRect(0, 0, iconSize, iconSize)); break; default: - p.drawPixmap(rect(), - QPixmap(svgToPixmap(":Resources/keyframe_inbetween.svg"))); + pen = QColor(getKeyBorderInbetweenColor()); + p.setPen(pen); + p.fillPath(path, getKeyInbetweenColor()); + m_pixmap = + QPixmap(createQIcon("key_on", true) + .pixmap(iconSize, iconSize, QIcon::Normal, QIcon::Off)); + icon.addPixmap(m_pixmap); + icon.paint(&p, QRect(0, 0, iconSize, iconSize)); break; } + p.drawPath(path); + if (m_highlighted) { - p.fillRect(rect(), QBrush(QColor(50, 100, 255, 100))); + pen = QColor(getKeyBorderHighlightColor()); + p.setPen(pen); + p.fillPath(path, getKeyHighlightColor()); + p.drawPath(path); } + + p.end(); } //----------------------------------------------------------------------------- @@ -1536,7 +1579,7 @@ void StringParamField::onChange() { if (m_multiTextFld) value = m_multiTextFld->toPlainText().toStdWString(); else - value = m_textFld->text().toStdWString(); + value = m_textFld->text().toStdWString(); TUndo *undo = 0; if (!m_actualParam || m_actualParam->getValue() == value) return; @@ -1762,8 +1805,9 @@ ToneCurveParamField::ToneCurveParamField(QWidget *parent, QString name, void ToneCurveParamField::updateField(const QList value) { if (m_actualParam) { - assert(m_currentParam && m_currentParam->getCurrentChannel() == - m_actualParam->getCurrentChannel()); + assert(m_currentParam && + m_currentParam->getCurrentChannel() == + m_actualParam->getCurrentChannel()); m_toneCurveField->setCurrentChannel(m_actualParam->getCurrentChannel()); assert(m_currentParam && m_currentParam->isLinear() == m_actualParam->isLinear()); diff --git a/toonz/sources/toonzqt/schematicnode.cpp b/toonz/sources/toonzqt/schematicnode.cpp index 20073bc..e9e095d 100644 --- a/toonz/sources/toonzqt/schematicnode.cpp +++ b/toonz/sources/toonzqt/schematicnode.cpp @@ -2,6 +2,7 @@ #include "toonzqt/schematicnode.h" #include "toonzqt/stageschematicscene.h" +#include "toonzqt/fxschematicscene.h" #include #include @@ -470,17 +471,29 @@ QPainterPath SchematicLink::shape() const { return m_hitPath; } void SchematicLink::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { + SchematicViewer *viewer; + FxSchematicScene *fxScene = dynamic_cast(scene()); + StageSchematicScene *stageScene = + dynamic_cast(scene()); + if (fxScene) { + viewer = fxScene->getSchematicViewer(); + } else if (stageScene) { + viewer = stageScene->getSchematicViewer(); + } else { + return; + } + if (getStartPort() && (getStartPort()->getType() == 100 // eStageSplinePort || getStartPort()->getType() == 202)) { // eFxLinkPort if (isSelected() || isHighlighted()) - painter->setPen(QColor(255, 255, 10)); + painter->setPen(QPen(viewer->getMotionPathSelectedLinkColor())); else - painter->setPen(QColor(50, 255, 50, 128)); + painter->setPen(QColor(viewer->getMotionPathLinkColor())); } else if (isSelected() || isHighlighted()) - painter->setPen(QPen(Qt::cyan)); + painter->setPen(QPen(viewer->getSelectedLinkColor())); else if (!m_lineShaped) - painter->setPen(QPen(Qt::white)); + painter->setPen(QPen(viewer->getLinkColor())); else painter->setPen(QPen(QColor(170, 170, 10), 0, Qt::DashLine)); @@ -913,10 +926,22 @@ QRectF SchematicNode::boundingRect() const { return QRectF(0, 0, 1, 1); } void SchematicNode::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { + SchematicViewer *viewer; + FxSchematicScene *fxScene = dynamic_cast(scene()); + StageSchematicScene *stageScene = + dynamic_cast(scene()); + if (fxScene) { + viewer = fxScene->getSchematicViewer(); + } else if (stageScene) { + viewer = stageScene->getSchematicViewer(); + } else { + return; + } + QPen pen; if (isSelected()) { painter->setBrush(QColor(0, 0, 0, 0)); - pen.setColor(QColor(255, 255, 255, 255)); + pen.setColor(QColor(viewer->getSelectedBorderColor())); pen.setWidth(4.0); pen.setJoinStyle(Qt::RoundJoin); diff --git a/toonz/sources/toonzqt/schematicviewer.cpp b/toonz/sources/toonzqt/schematicviewer.cpp index 23b6905..f6b728c 100644 --- a/toonz/sources/toonzqt/schematicviewer.cpp +++ b/toonz/sources/toonzqt/schematicviewer.cpp @@ -384,12 +384,12 @@ void SchematicSceneViewer::wheelEvent(QWheelEvent *me) { default: // Qt::MouseEventSynthesizedByQt, // Qt::MouseEventSynthesizedByApplication - { - std::cout << "not supported event: Qt::MouseEventSynthesizedByQt, " - "Qt::MouseEventSynthesizedByApplication" - << std::endl; - break; - } + { + std::cout << "not supported event: Qt::MouseEventSynthesizedByQt, " + "Qt::MouseEventSynthesizedByApplication" + << std::endl; + break; + } } // end switch @@ -422,9 +422,8 @@ void SchematicSceneViewer::zoomQt(bool zoomin, bool resetView) { #endif if ((scale2 < 100000 || !zoomin) && (scale2 > 0.001 * 0.05 || zoomin)) { double oldZoomScale = sqrt(scale2); - double zoomScale = - resetView ? 1 - : ImageUtils::getQuantizedZoomFactor(oldZoomScale, zoomin); + double zoomScale = resetView ? 1 : ImageUtils::getQuantizedZoomFactor( + oldZoomScale, zoomin); QMatrix scale = QMatrix().scale(zoomScale / oldZoomScale, zoomScale / oldZoomScale); @@ -685,9 +684,10 @@ bool SchematicSceneViewer::event(QEvent *e) { } */ - if (e->type() == QEvent::Gesture && CommandManager::instance() - ->getAction(MI_TouchGestureControl) - ->isChecked()) { + if (e->type() == QEvent::Gesture && + CommandManager::instance() + ->getAction(MI_TouchGestureControl) + ->isChecked()) { gestureEvent(static_cast(e)); return true; } @@ -873,22 +873,22 @@ void SchematicViewer::setSchematicScene(SchematicScene *scene) { void SchematicViewer::createToolbars() { // Initialize them m_stageToolbar->setMovable(false); - m_stageToolbar->setIconSize(QSize(17, 17)); + m_stageToolbar->setIconSize(QSize(20, 20)); m_stageToolbar->setLayoutDirection(Qt::RightToLeft); m_stageToolbar->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); m_commonToolbar->setMovable(false); - m_commonToolbar->setIconSize(QSize(17, 17)); + m_commonToolbar->setIconSize(QSize(20, 20)); m_commonToolbar->setLayoutDirection(Qt::RightToLeft); m_commonToolbar->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); m_fxToolbar->setMovable(false); - m_fxToolbar->setIconSize(QSize(17, 17)); + m_fxToolbar->setIconSize(QSize(20, 20)); m_fxToolbar->setLayoutDirection(Qt::RightToLeft); m_fxToolbar->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); m_swapToolbar->setMovable(false); - m_swapToolbar->setIconSize(QSize(17, 17)); + m_swapToolbar->setIconSize(QSize(20, 20)); m_swapToolbar->setLayoutDirection(Qt::RightToLeft); m_swapToolbar->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); } @@ -901,48 +901,48 @@ void SchematicViewer::createActions() { *addOutputFx = 0, *switchPort = 0, *iconifyNodes = 0; { // Fit schematic - QIcon fitSchematicIcon = createQIconOnOff("fit", false); + QIcon fitSchematicIcon = createQIcon("fit_to_window"); m_fitSchematic = new QAction(fitSchematicIcon, tr("&Fit to Window"), m_commonToolbar); connect(m_fitSchematic, SIGNAL(triggered()), m_viewer, SLOT(fitScene())); // Center On - QIcon centerOnIcon = createQIconOnOff("centerselection", false); + QIcon centerOnIcon = createQIcon("focus"); m_centerOn = new QAction(centerOnIcon, tr("&Focus on Current"), m_commonToolbar); connect(m_centerOn, SIGNAL(triggered()), m_viewer, SLOT(centerOnCurrent())); // Reorder schematic - QIcon reorderIcon = createQIconOnOff("reorder", false); + QIcon reorderIcon = createQIcon("reorder", false); m_reorder = new QAction(reorderIcon, tr("&Reorder Nodes"), m_commonToolbar); connect(m_reorder, SIGNAL(triggered()), m_viewer, SLOT(reorderScene())); // Normalize schematic schematic - QIcon normalizeIcon = createQIconOnOff("resetsize", false); + QIcon normalizeIcon = createQIcon("actual_pixel_size"); m_normalize = new QAction(normalizeIcon, tr("&Reset Size"), m_commonToolbar); connect(m_normalize, SIGNAL(triggered()), m_viewer, SLOT(normalizeScene())); - QIcon nodeSizeIcon = createQIconOnOff( - m_maximizedNode ? "minimizenodes" : "maximizenodes", false); - m_nodeSize = new QAction( - nodeSizeIcon, - m_maximizedNode ? tr("&Minimize Nodes") : tr("&Maximize Nodes"), - m_commonToolbar); + QIcon nodeSizeIcon = + createQIcon(m_maximizedNode ? "minimizenodes" : "maximizenodes"); + m_nodeSize = + new QAction(nodeSizeIcon, m_maximizedNode ? tr("&Minimize Nodes") + : tr("&Maximize Nodes"), + m_commonToolbar); connect(m_nodeSize, SIGNAL(triggered()), this, SLOT(changeNodeSize())); - QIcon selectModeIcon = createQIconOnOff("schematic_selection_mode", false); + QIcon selectModeIcon = createQIcon("selection_schematic"); m_selectMode = new QAction(selectModeIcon, tr("&Selection Mode"), m_commonToolbar); m_selectMode->setCheckable(true); connect(m_selectMode, SIGNAL(triggered()), this, SLOT(selectModeEnabled())); - QIcon zoomModeIcon = createQIconOnOff("schematic_zoom_mode", false); + QIcon zoomModeIcon = createQIcon("zoom_schematic"); m_zoomMode = new QAction(zoomModeIcon, tr("&Zoom Mode"), m_commonToolbar); m_zoomMode->setCheckable(true); connect(m_zoomMode, SIGNAL(triggered()), this, SLOT(zoomModeEnabled())); - QIcon handModeIcon = createQIconOnOff("schematic_hand_mode", false); + QIcon handModeIcon = createQIcon("hand_schematic"); m_handMode = new QAction(handModeIcon, tr("&Hand Mode"), m_commonToolbar); m_handMode->setCheckable(true); connect(m_handMode, SIGNAL(triggered()), this, SLOT(handModeEnabled())); @@ -952,21 +952,21 @@ void SchematicViewer::createActions() { if (m_fullSchematic) { // AddPegbar addPegbar = new QAction(tr("&New Pegbar"), m_stageToolbar); - QIcon addPegbarIcon = createQIconOnOff("pegbar", false); + QIcon addPegbarIcon = createQIcon("pegbar"); addPegbar->setIcon(addPegbarIcon); connect(addPegbar, SIGNAL(triggered()), m_stageScene, SLOT(onPegbarAdded())); // AddCamera addCamera = new QAction(tr("&New Camera"), m_stageToolbar); - QIcon addCameraIcon = createQIconOnOff("camera", false); + QIcon addCameraIcon = createQIcon("camera"); addCamera->setIcon(addCameraIcon); connect(addCamera, SIGNAL(triggered()), m_stageScene, SLOT(onCameraAdded())); // AddSpline addSpline = new QAction(tr("&New Motion Path"), m_stageToolbar); - QIcon addSplineIcon = createQIconOnOff("motionpath", false); + QIcon addSplineIcon = createQIcon("motionpath"); addSpline->setIcon(addSplineIcon); connect(addSpline, SIGNAL(triggered()), m_stageScene, SLOT(onSplineAdded())); @@ -976,7 +976,7 @@ void SchematicViewer::createActions() { new QAction(tr("&Swtich output port display mode"), m_stageToolbar); switchPort->setCheckable(true); switchPort->setChecked(m_stageScene->isShowLetterOnPortFlagEnabled()); - QIcon switchPortIcon = createQIconOnOff("switchport"); + QIcon switchPortIcon = createQIcon("switchport"); switchPort->setIcon(switchPortIcon); connect(switchPort, SIGNAL(toggled(bool)), m_stageScene, SLOT(onSwitchPortModeToggled(bool))); @@ -984,7 +984,7 @@ void SchematicViewer::createActions() { // InsertFx insertFx = CommandManager::instance()->getAction("MI_InsertFx"); if (insertFx) { - QIcon insertFxIcon = createQIconOnOff("fx", false); + QIcon insertFxIcon = createQIcon("fx_logo"); insertFx->setIcon(insertFxIcon); } @@ -995,13 +995,13 @@ void SchematicViewer::createActions() { iconifyNodes = new QAction(tr("&Toggle node icons"), m_fxToolbar); iconifyNodes->setCheckable(true); iconifyNodes->setChecked(!m_fxScene->isNormalIconView()); - QIcon iconifyNodesIcon = createQIconOnOff("iconifynodes"); + QIcon iconifyNodesIcon = createQIcon("iconifynodes"); iconifyNodes->setIcon(iconifyNodesIcon); connect(iconifyNodes, SIGNAL(toggled(bool)), m_fxScene, SLOT(onIconifyNodesToggled(bool))); // Swap fx/stage schematic - QIcon changeSchematicIcon = createQIconOnOff("swap", false); + QIcon changeSchematicIcon = createQIcon("swap"); m_changeScene = CommandManager::instance()->getAction("A_FxSchematicToggle", true); if (m_changeScene) { @@ -1104,8 +1104,8 @@ void SchematicViewer::onSceneSwitched() { ->getXsheet() ->getFxDag() ->getDagGridDimension() == 0; - QIcon nodeSizeIcon = createQIconOnOff( - m_maximizedNode ? "minimizenodes" : "maximizenodes", false); + QIcon nodeSizeIcon = + createQIcon(m_maximizedNode ? "minimizenodes" : "maximizenodes"); m_nodeSize->setIcon(nodeSizeIcon); QString label(m_maximizedNode ? tr("&Minimize Nodes") : tr("&Maximize Nodes")); @@ -1160,8 +1160,8 @@ void SchematicViewer::changeNodeSize() { // aggiono l'icona del pulsante; m_fxScene->resizeNodes(m_maximizedNode); m_stageScene->resizeNodes(m_maximizedNode); - QIcon nodeSizeIcon = createQIconOnOff( - m_maximizedNode ? "minimizenodes" : "maximizenodes", false); + QIcon nodeSizeIcon = + createQIcon(m_maximizedNode ? "minimizenodes" : "maximizenodes"); m_nodeSize->setIcon(nodeSizeIcon); QString label(m_maximizedNode ? tr("&Minimize Nodes") : tr("&Maximize Nodes")); diff --git a/toonz/sources/toonzqt/stageschematicnode.cpp b/toonz/sources/toonzqt/stageschematicnode.cpp index 9a68c5c..1568c83 100644 --- a/toonz/sources/toonzqt/stageschematicnode.cpp +++ b/toonz/sources/toonzqt/stageschematicnode.cpp @@ -1326,10 +1326,10 @@ StageSchematicNode::StageSchematicNode(StageSchematicScene *scene, QIcon(":Resources/schematic_spline_aim_square.svg"), 0); m_cpToggle = new SchematicToggle_SplineOptions( this, QIcon(":Resources/schematic_spline_cp.svg"), 0); - m_pathToggle->setSize(7, 7); - m_cpToggle->setSize(7, 7); - m_cpToggle->setPos(m_splineDock->pos() - QPointF(7, 0)); - m_pathToggle->setPos(m_cpToggle->pos() - QPointF(7, 0)); + m_pathToggle->setSize(16, 16); + m_cpToggle->setSize(16, 16); + m_cpToggle->setPos(m_splineDock->pos() - QPointF(16, 0)); + m_pathToggle->setPos(m_cpToggle->pos() - QPointF(16, 0)); m_pathToggle->setToolTip(tr("Toggle Autorotate Along Motion Path")); m_cpToggle->setToolTip(tr("Toggle Link Motion Path to Control Points")); diff --git a/toonz/sources/toonzqt/studiopaletteviewer.cpp b/toonz/sources/toonzqt/studiopaletteviewer.cpp index 9627d0e..d99f1c5 100644 --- a/toonz/sources/toonzqt/studiopaletteviewer.cpp +++ b/toonz/sources/toonzqt/studiopaletteviewer.cpp @@ -107,15 +107,10 @@ StudioPaletteTreeViewer::StudioPaletteTreeViewer( header()->close(); setUniformRowHeights(true); - setIconSize(QSize(21, 17)); + setIconSize(QSize(21, 18)); QList paletteItems; - QString open = QString(":Resources/folder_close.svg"); - QString close = QString(":Resources/folder_open.svg"); - m_folderIcon.addFile(close, QSize(21, 17), QIcon::Normal, QIcon::On); - m_folderIcon.addFile(open, QSize(21, 17), QIcon::Normal, QIcon::Off); - QString levelPaletteIcon = QString(":Resources/palette.svg"); m_levelPaletteIcon.addPixmap(levelPaletteIcon, QIcon::Normal, QIcon::On); QString studioPaletteIcon = QString(":Resources/studiopalette.svg"); @@ -134,7 +129,7 @@ StudioPaletteTreeViewer::StudioPaletteTreeViewer( bool ret = connect(this, SIGNAL(itemChanged(QTreeWidgetItem *, int)), SLOT(onItemChanged(QTreeWidgetItem *, int))); - ret = ret && connect(this, SIGNAL(itemClicked(QTreeWidgetItem *, int)), + ret = ret && connect(this, SIGNAL(itemClicked(QTreeWidgetItem *, int)), SLOT(onItemClicked(QTreeWidgetItem *, int))); ret = ret && @@ -199,7 +194,7 @@ QTreeWidgetItem *StudioPaletteTreeViewer::createRootItem(TFilePath path) { if (rootName != "Global Palettes") rootName = "Project Palettes"; QTreeWidgetItem *rootItem = new QTreeWidgetItem((QTreeWidget *)0, QStringList(rootName)); - rootItem->setIcon(0, m_folderIcon); + rootItem->setIcon(0, createQIcon("folder", true)); rootItem->setData(1, Qt::UserRole, toQString(path)); refreshItem(rootItem); @@ -237,7 +232,7 @@ QTreeWidgetItem *StudioPaletteTreeViewer::createItem(const TFilePath path) { item->setIcon(0, m_levelPaletteIcon); item->setFlags(item->flags() | Qt::ItemNeverHasChildren); } else if (studioPalette->isFolder(path)) { - item->setIcon(0, m_folderIcon); + item->setIcon(0, createQIcon("folder", true)); item->setFlags(item->flags() | Qt::ItemIsDropEnabled); } item->setData(1, Qt::UserRole, toQString(path)); @@ -947,8 +942,8 @@ void StudioPaletteTreeViewer::contextMenuEvent(QContextMenuEvent *event) { QTreeWidgetItem *item = items[i]; QRect rect = visualItemRect(item); if (QRect(0, rect.y(), width(), rect.height()).contains(event->pos())) - isClickInSelection = true; - TFilePath path = getItemPath(item); + isClickInSelection = true; + TFilePath path = getItemPath(item); if (studioPalette->isFolder(path)) areAllPalette = false; } if (!isClickInSelection) return; @@ -991,8 +986,9 @@ void StudioPaletteTreeViewer::mousePressEvent(QMouseEvent *event) { void StudioPaletteTreeViewer::mouseMoveEvent(QMouseEvent *event) { // If left button is not pressed return; is not drag event. if (!(event->buttons() & Qt::LeftButton)) return; - if (!m_startPos.isNull() && (m_startPos - event->pos()).manhattanLength() >= - QApplication::startDragDistance()) + if (!m_startPos.isNull() && + (m_startPos - event->pos()).manhattanLength() >= + QApplication::startDragDistance()) startDragDrop(); } @@ -1144,7 +1140,7 @@ void StudioPaletteTreeViewer::dropEvent(QDropEvent *event) { pltName = tr("the palette \"%1\"") .arg(QString::fromStdWString(palettePaths[0].getWideName())); else - pltName = tr("the selected palettes"); + pltName = tr("the selected palettes"); QString dstName = QString::fromStdWString(newPath.getWideName()); QString question = diff --git a/toonz/sources/toonzqt/styleeditor.cpp b/toonz/sources/toonzqt/styleeditor.cpp index 77e49fc..9ca28c6 100644 --- a/toonz/sources/toonzqt/styleeditor.cpp +++ b/toonz/sources/toonzqt/styleeditor.cpp @@ -837,7 +837,7 @@ void HexagonalColorWheel::clickLeftWheel(const QPoint &pos) { // d is a length from center to edge of the wheel when saturation = 100 float d = m_triHeight / cosf(phi / 180.0f * 3.1415f); - int h = (int)theta; + int h = (int)theta; if (h > 359) h = 359; // clamping int s = (int)(std::min(p.length() / d, 1.0) * 100.0f); @@ -998,13 +998,11 @@ void ColorSlider::paintEvent(QPaintEvent *event) { if (m_channel == eAlpha) { static QPixmap checkboard(":Resources/backg.png"); - p.drawTiledPixmap(x, y, w, h, checkboard); + p.drawTiledPixmap(x, y + 1, w, h, checkboard); } if (!bgPixmap.isNull()) { - p.drawTiledPixmap(x, y, w, h, bgPixmap); - p.setPen(Qt::white); - p.drawLine(x, y + h, x + w, y + h); + p.drawTiledPixmap(x, y + 1, w, h, bgPixmap); } /*! @@ -1223,11 +1221,14 @@ void ChannelLineEdit::focusOutEvent(QFocusEvent *e) { void ChannelLineEdit::paintEvent(QPaintEvent *e) { IntLineEdit::paintEvent(e); + /* Now that stylesheets added lineEdit focus this is likely redundant, + * commenting out in-case it is still required. if (m_isEditing) { QPainter p(this); p.setPen(Qt::yellow); p.drawRect(rect().adjusted(0, 0, -1, -1)); } + */ } //***************************************************************************** @@ -1270,7 +1271,7 @@ ColorChannelControl::ColorChannelControl(ColorChannel channel, QWidget *parent) m_label->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred); m_field->setObjectName("colorSliderField"); - m_field->setFixedWidth(fontMetrics().width('0') * 6 + 5); + m_field->setFixedWidth(fontMetrics().width('0') * 4); m_field->setMinimumHeight(7); addButton->setObjectName("colorSliderAddButton"); @@ -2344,7 +2345,7 @@ void SpecialStyleChooserPage::loadItems() { tagId == 2002 || // ?? tagId == 3000 || // vector brush tagId == 4001 // mypaint brush - ) + ) continue; TColorStyle *style = TColorStyle::create(tagId); @@ -2692,6 +2693,7 @@ void SettingsPage::setStyle(const TColorStyleP &editedStyle) { QPushButton *pushButton = new QPushButton; pushButton->setToolTip(tr("Reset to default")); pushButton->setIcon(createQIcon("delete")); + pushButton->setFixedSize(24, 24); m_paramsLayout->addWidget(pushButton, p, 2); ret = QObject::connect(pushButton, SIGNAL(clicked(bool)), this, SLOT(onValueReset())) && @@ -2980,14 +2982,14 @@ StyleEditor::StyleEditor(PaletteController *paletteController, QWidget *parent) menu->addAction(m_rgbAction); QToolButton *toolButton = new QToolButton(this); - toolButton->setIcon(createQIcon("options")); + toolButton->setIcon(createQIcon("menu")); toolButton->setFixedSize(22, 22); toolButton->setMenu(menu); toolButton->setPopupMode(QToolButton::InstantPopup); toolButton->setToolTip(tr("Show or hide parts of the Color Page.")); QToolBar *displayToolbar = new QToolBar(this); m_toggleOrientationAction = - displayToolbar->addAction(QIcon(":Resources/orientation_h.svg"), ""); + displayToolbar->addAction(createQIcon("orientation_h"), ""); m_toggleOrientationAction->setToolTip( tr("Toggle orientation of the Color Page.")); QWidget *toggleOrientationButton = @@ -2996,7 +2998,7 @@ StyleEditor::StyleEditor(PaletteController *paletteController, QWidget *parent) toggleOrientationButton->setFocusPolicy(Qt::NoFocus); displayToolbar->addWidget(toolButton); displayToolbar->setMaximumHeight(22); - displayToolbar->setIconSize(QSize(18, 18)); + displayToolbar->setIconSize(QSize(16, 16)); /* ------- layout ------- */ QGridLayout *mainLayout = new QGridLayout; @@ -3006,7 +3008,7 @@ StyleEditor::StyleEditor(PaletteController *paletteController, QWidget *parent) QHBoxLayout *hLayout = new QHBoxLayout; hLayout->setMargin(0); { - hLayout->addSpacing(4); + hLayout->addSpacing(0); hLayout->addWidget(m_styleBar); hLayout->addStretch(); } @@ -3138,7 +3140,7 @@ QFrame *StyleEditor::createBottomWidget() { bool ret = true; ret = ret && connect(m_applyButton, SIGNAL(clicked()), this, SLOT(applyButtonClicked())); - ret = ret && connect(m_autoButton, SIGNAL(toggled(bool)), this, + ret = ret && connect(m_autoButton, SIGNAL(toggled(bool)), this, SLOT(autoCheckChanged(bool))); ret = ret && connect(m_oldColor, SIGNAL(clicked(const TColorStyle &)), this, SLOT(onOldStyleClicked(const TColorStyle &))); @@ -3201,9 +3203,9 @@ QFrame *StyleEditor::createVectorPage() { bool ret = true; ret = ret && connect(specialButton, SIGNAL(toggled(bool)), this, SLOT(onSpecialButtonToggled(bool))); - ret = ret && connect(customButton, SIGNAL(toggled(bool)), this, + ret = ret && connect(customButton, SIGNAL(toggled(bool)), this, SLOT(onCustomButtonToggled(bool))); - ret = ret && connect(vectorBrushButton, SIGNAL(toggled(bool)), this, + ret = ret && connect(vectorBrushButton, SIGNAL(toggled(bool)), this, SLOT(onVectorBrushButtonToggled(bool))); assert(ret); return vectorOutsideFrame; @@ -3240,9 +3242,9 @@ void StyleEditor::showEvent(QShowEvent *) { bool ret = true; ret = ret && connect(m_paletteHandle, SIGNAL(colorStyleSwitched()), SLOT(onStyleSwitched())); - ret = ret && connect(m_paletteHandle, SIGNAL(colorStyleChanged(bool)), + ret = ret && connect(m_paletteHandle, SIGNAL(colorStyleChanged(bool)), SLOT(onStyleChanged(bool))); - ret = ret && connect(m_paletteHandle, SIGNAL(paletteSwitched()), this, + ret = ret && connect(m_paletteHandle, SIGNAL(paletteSwitched()), this, SLOT(onStyleSwitched())); if (m_cleanupPaletteHandle) ret = @@ -3274,9 +3276,9 @@ void StyleEditor::hideEvent(QHideEvent *) { void StyleEditor::updateOrientationButton() { if (m_plainColorPage->getIsVertical()) { - m_toggleOrientationAction->setIcon(QIcon(":Resources/orientation_h.svg")); + m_toggleOrientationAction->setIcon(createQIcon("orientation_h")); } else { - m_toggleOrientationAction->setIcon(QIcon(":Resources/orientation_v.svg")); + m_toggleOrientationAction->setIcon(createQIcon("orientation_v")); } } @@ -3310,11 +3312,11 @@ void StyleEditor::onStyleSwitched() { QString statusText; // palette type if (isCleanUpPalette) - statusText = tr("[CLEANUP] "); + statusText = tr("Cleanup "); else if (palette->getGlobalName() != L"") - statusText = tr("[STUDIO] "); + statusText = tr("Studio "); else - statusText = tr("[LEVEL] "); + statusText = tr("Level "); // palette name statusText += tr("Palette") + " : " + diff --git a/toonz/sources/toonzqt/toonzqt.qrc b/toonz/sources/toonzqt/toonzqt.qrc index 5f5b59e..e175d15 100644 --- a/toonz/sources/toonzqt/toonzqt.qrc +++ b/toonz/sources/toonzqt/toonzqt.qrc @@ -1,329 +1,167 @@ - Resources/align_center_off.png - Resources/align_center_on.png - Resources/align_left_off.png - Resources/align_left_on.png - Resources/align_right_off.png - Resources/align_right_on.png Resources/backg.png - Resources/bottomover.png - Resources/bold_off.png - Resources/bold_on.png - Resources/camera_off.svg - Resources/camera_on.svg - Resources/camerastand_toggle.png - Resources/camerastand_toggle_transp.png - Resources/centerselection_off.svg - Resources/centerselection_on.svg - Resources/cleanup.svg - Resources/custom_off.svg - Resources/custom_on.svg - Resources/delete.svg - Resources/delete_over.svg - Resources/dragpalette.svg - Resources/dragpalette_over.svg - Resources/edit_center.svg - Resources/edit_position.svg - Resources/edit_rotation.svg - Resources/edit_scale.svg - Resources/edit_shear.svg - Resources/edit_all.svg - Resources/fit_off.svg - Resources/fit_on.svg - Resources/fx_off.svg - Resources/fx_on.svg - Resources/h_chandle.png - Resources/icon.png - Resources/italic_off.png - Resources/italic_on.png - Resources/folder_close_off.svg - Resources/folder_open_off.svg - Resources/folderanim_close_off.svg - Resources/folderanim_open_off.svg - Resources/folder_close.svg - Resources/folder_open.svg - Resources/folderanim_close.svg - Resources/folderanim_open.svg - Resources/key_no.svg - Resources/key_no_over.svg - Resources/key_partial.svg - Resources/key_partial_over.svg - Resources/key_total.svg - Resources/key_total_over.svg - Resources/magpie.svg - Resources/maximizenodes_off.svg - Resources/maximizenodes_on.svg - Resources/minimizenodes_off.svg - Resources/minimizenodes_on.svg - Resources/motionpath_off.svg - Resources/motionpath_on.svg - Resources/newfolder.svg - Resources/newfolder_over.svg - Resources/newpage.svg - Resources/newpage_over.svg Resources/newpalette.png Resources/newpalette_over.png - Resources/newstyle.svg - Resources/newstyle_over.svg - Resources/nextkey.svg - Resources/nextkey_disabled.svg - Resources/nextkey_over.svg - Resources/no_specialstyle.png - Resources/options.svg - Resources/options_over.svg - Resources/output_off.svg - Resources/output_on.svg Resources/palette.svg - Resources/palette_add_color.bmp - Resources/palette_tabicon.svg - Resources/palettegizmo.svg - Resources/palettegizmo_over.svg Resources/param_off.svg Resources/param_on.svg Resources/paramanim_off.svg Resources/paramanim_on.svg - Resources/pegbar_off.svg - Resources/pegbar_on.svg - Resources/plaincolor_off.svg - Resources/plaincolor_on.svg - Resources/reorder_off.svg - Resources/reorder_on.svg - Resources/resetsize_off.svg - Resources/resetsize_on.svg - Resources/settings_off.svg - Resources/settings_on.svg - Resources/preview_black_off.svg - Resources/preview_black_on.svg - Resources/preview_black_over.svg - Resources/preview_checkboard_off.svg - Resources/preview_checkboard_on.svg - Resources/preview_checkboard_over.svg - Resources/preview_off.svg - Resources/preview_on.svg - Resources/preview_over.svg - Resources/preview_toggle.png - Resources/preview_white_off.svg - Resources/preview_white_on.svg - Resources/preview_white_over.svg - Resources/prevkey.svg - Resources/prevkey_disabled.svg - Resources/prevkey_over.svg Resources/resizeColumnNode.svg - Resources/savepalette.png - Resources/save.svg - Resources/savepalette_click.png - Resources/save_click.svg - Resources/savepalette_over.png - Resources/save_over.svg Resources/schematic_spin_arrows.svg Resources/schematic_spline_aim_rhomb.svg Resources/schematic_spline_aim_square.svg Resources/schematic_spline_cp.svg - Resources/search_palette.png - Resources/search_palette_over.png - Resources/sizelarge_off.png - Resources/sizelarge_on.png - Resources/sizelarge_over.png - Resources/sizemedium_off.png - Resources/sizemedium_on.png - Resources/sizesmall_over.png - Resources/sizesmall_off.png - Resources/sizesmall_on.png - Resources/sizemedium_over.png - Resources/special_off.svg - Resources/special_on.svg - Resources/swap_off.svg - Resources/swap_on.svg - Resources/tasklist.svg Resources/text_edit_button.png Resources/texture_off.svg Resources/texture_on.svg - Resources/underline_off.png - Resources/underline_on.png - Resources/v_chandle.png - Resources/viewcamera_off.svg - Resources/viewcamera_on.svg - Resources/viewcamera_over.svg - Resources/unknown.svg - Resources/audio.svg - Resources/broken.svg - Resources/opacitycheck_off.svg - Resources/opacitycheck_on.svg - Resources/opacitycheck_over.svg Resources/tmsg_info.svg Resources/tmsg_error.svg Resources/tmsg_warning.svg - Resources/lockpalette_off.svg - Resources/lockpalette_on.svg - Resources/lockpalette_over.svg - Resources/savepalette_off.svg - Resources/savepalette_on.svg - Resources/savepaletteas_off.svg - Resources/savepaletteas_on.svg - Resources/studiopalette.svg - Resources/grad_r.png - Resources/grad_g.png - Resources/grad_b.png - Resources/grad_m.png - Resources/h_chandleUp.png - Resources/h_chandleDown.png - Resources/h_chandleCenter.png - Resources/schematic_palette.png - Resources/schematic_tablenode.png - Resources/port_red.svg - Resources/port_red_highlight.svg - Resources/port_blue.svg - Resources/port_blue_highlight.svg - Resources/spline_child_port.svg - Resources/spline_child_port_disconnect.svg - Resources/spline_parent_port.svg - Resources/schematic_prev_eye.png - Resources/schematic_table_view.png - Resources/schematic_table_view_transp.png - Resources/fxport_red.svg - Resources/fxport_blue.svg - Resources/cachefx.png - Resources/schematic_link.svg - Resources/schematic_link_small.svg - Resources/schematic_thumbtoggle_on.svg - Resources/schematic_thumbtoggle_off.svg - Resources/dragcursor_exp_text.png - Resources/fxicons/fx_checkboard.png - Resources/fxicons/fx_colorcard.png - Resources/fxicons/fx_tile.png - Resources/fxicons/fx_blur.png - Resources/fxicons/fx_directionalblur.png - Resources/fxicons/fx_ino_blur.png - Resources/fxicons/fx_ino_motionblur.png - Resources/fxicons/fx_ino_radialblur.png - Resources/fxicons/fx_ino_spinblur.png - Resources/fxicons/fx_localblur.png - Resources/fxicons/fx_motionblur.png - Resources/fxicons/fx_radialblur.png - Resources/fxicons/fx_spinblur.png - Resources/fxicons/fx_freedistort.png - Resources/fxicons/fx_ino_warphv.png - Resources/fxicons/fx_linearwave.png - Resources/fxicons/fx_perlinnoise.png - Resources/fxicons/fx_randomwave.png - Resources/fxicons/fx_ripple.png - Resources/fxicons/fx_warp.png - Resources/fxicons/fx_diamondgradient.png - Resources/fxicons/fx_fourpoints.png - Resources/fxicons/fx_lineargradient.png - Resources/fxicons/fx_multilineargradient.png - Resources/fxicons/fx_multiradialgradient.png - Resources/fxicons/fx_radialgradient.png - Resources/fxicons/fx_spiral.png - Resources/fxicons/fx_squaregradient.png - Resources/fxicons/fx_tonecurve.png - Resources/fxicons/fx_ino_channelselector.png - Resources/fxicons/fx_ino_density.png - Resources/fxicons/fx_ino_hlsadd.png - Resources/fxicons/fx_ino_hlsadjust.png - Resources/fxicons/fx_ino_hsvadd.png - Resources/fxicons/fx_ino_hsvadjust.png - Resources/fxicons/fx_ino_levelauto.png - Resources/fxicons/fx_ino_levelautoincamera.png - Resources/fxicons/fx_ino_levelmaster.png - Resources/fxicons/fx_ino_levelrgba.png - Resources/fxicons/fx_ino_negate.png - Resources/fxicons/fx_localtransparency.png - Resources/fxicons/fx_multitone.png - Resources/fxicons/fx_premultiply.png - Resources/fxicons/fx_rgbmcut.png - Resources/fxicons/fx_rgbmfade.png - Resources/fxicons/fx_rgbmscale.png - Resources/fxicons/fx_sharpen.png - Resources/fxicons/fx_transparency.png - Resources/fxicons/fx_ino_over.png - Resources/fxicons/fx_ino_crossdissolve.png - Resources/fxicons/fx_ino_darken.png - Resources/fxicons/fx_ino_multiply.png - Resources/fxicons/fx_ino_colorburn.png - Resources/fxicons/fx_ino_linearburn.png - Resources/fxicons/fx_ino_darkercolor.png - Resources/fxicons/fx_ino_add.png - Resources/fxicons/fx_ino_lighten.png - Resources/fxicons/fx_ino_screen.png - Resources/fxicons/fx_ino_colordodge.png - Resources/fxicons/fx_ino_lineardodge.png - Resources/fxicons/fx_ino_lightercolor.png - Resources/fxicons/fx_ino_overlay.png - Resources/fxicons/fx_ino_softlight.png - Resources/fxicons/fx_ino_hardlight.png - Resources/fxicons/fx_ino_vividlight.png - Resources/fxicons/fx_ino_linearlight.png - Resources/fxicons/fx_ino_pinlight.png - Resources/fxicons/fx_ino_hardmix.png - Resources/fxicons/fx_ino_divide.png - Resources/fxicons/fx_ino_subtract.png - Resources/fxicons/fx_backlit.png - Resources/fxicons/fx_bodyhighlight.png - Resources/fxicons/fx_castshadow.png - Resources/fxicons/fx_glow.png - Resources/fxicons/fx_ino_fog.png - Resources/fxicons/fx_lightspot.png - Resources/fxicons/fx_raylit.png - Resources/fxicons/fx_targetspot.png - Resources/fxicons/fx_hsvkey.png - Resources/fxicons/fx_in.png - Resources/fxicons/fx_out.png - Resources/fxicons/fx_rgbkey.png - Resources/fxicons/fx_visiblemattein.png - Resources/fxicons/fx_dissolve.png - Resources/fxicons/fx_ino_hlsnoise.png - Resources/fxicons/fx_ino_hlsnoiseincamera.png - Resources/fxicons/fx_ino_hsvnoise.png - Resources/fxicons/fx_ino_hsvnoiseincamera.png - Resources/fxicons/fx_ino_medianfilter.png - Resources/fxicons/fx_noise.png - Resources/fxicons/fx_saltpeppernoise.png - Resources/fxicons/fx_clouds.png - Resources/fxicons/fx_ino_pnclouds.png - Resources/fxicons/fx_particles.png - Resources/fxicons/fx_coloremboss.png - Resources/fxicons/fx_emboss.png - Resources/fxicons/fx_ino_maxmin.png - Resources/fxicons/fx_ino_motionwind.png - Resources/fxicons/fx_posterize.png - Resources/fxicons/fx_solarize.png - Resources/fxicons/fx_artcontour.png - Resources/fxicons/fx_calligraphic.png - Resources/fxicons/fx_blendtz.png - Resources/fxicons/fx_externalpalette.png - Resources/fxicons/fx_outline.png - Resources/fxicons/fx_palettefilter.png - Resources/fxicons/fx_pinnedtexture.png - Resources/fxicons/fx_texture.png - Resources/fxicons/fx_iwa_tile.png - Resources/fxicons/fx_iwa_motionblur.png - Resources/fxicons/fx_iwa_spectrum.png - Resources/fxicons/fx_iwa_perspective_distort.png - Resources/fxicons/fx_iwa_pn_perspective.png - Resources/fxicons/fx_iwa_bokeh.png - Resources/fxicons/fx_iwa_bokeh_ref.png - Resources/fxicons/fx_iwa_soapbubble.png - Resources/fxicons/fx_unidentified.png - Resources/keyframe_noanim.svg - Resources/keyframe_key.svg - Resources/keyframe_modified.svg - Resources/keyframe_inbetween.svg - Resources/switchport_on.svg - Resources/switchport_off.svg - Resources/switchport_over.svg - Resources/plus.svg - Resources/iconifynodes_on.svg - Resources/iconifynodes_off.svg - Resources/iconifynodes_over.svg - Resources/schematic_selection_mode_on.svg - Resources/schematic_selection_mode_off.svg - Resources/schematic_zoom_mode_on.svg - Resources/schematic_zoom_mode_off.svg - Resources/schematic_hand_mode_on.svg - Resources/schematic_hand_mode_off.svg - Resources/orientation_h.svg - Resources/orientation_v.svg + Resources/studiopalette.svg + Resources/grad_r.png + Resources/grad_g.png + Resources/grad_b.png + Resources/grad_m.png + Resources/h_chandleDown.png + Resources/h_chandleCenter.png + Resources/h_chandleUp.png + Resources/schematic_palette.png + Resources/schematic_tablenode.png + Resources/port_red.svg + Resources/port_red_highlight.svg + Resources/port_blue.svg + Resources/port_blue_highlight.svg + Resources/spline_child_port.svg + Resources/spline_child_port_disconnect.svg + Resources/spline_parent_port.svg + Resources/fxport_red.svg + Resources/fxport_blue.svg + Resources/cachefx.png + Resources/schematic_link.svg + Resources/schematic_link_small.svg + Resources/schematic_thumbtoggle_on.svg + Resources/schematic_thumbtoggle_off.svg + Resources/dragcursor_exp_text.png + + + Resources/fxicons/fx_checkboard.png + Resources/fxicons/fx_colorcard.png + Resources/fxicons/fx_tile.png + Resources/fxicons/fx_blur.png + Resources/fxicons/fx_directionalblur.png + Resources/fxicons/fx_ino_blur.png + Resources/fxicons/fx_ino_motionblur.png + Resources/fxicons/fx_ino_radialblur.png + Resources/fxicons/fx_ino_spinblur.png + Resources/fxicons/fx_localblur.png + Resources/fxicons/fx_motionblur.png + Resources/fxicons/fx_radialblur.png + Resources/fxicons/fx_spinblur.png + Resources/fxicons/fx_freedistort.png + Resources/fxicons/fx_ino_warphv.png + Resources/fxicons/fx_linearwave.png + Resources/fxicons/fx_perlinnoise.png + Resources/fxicons/fx_randomwave.png + Resources/fxicons/fx_ripple.png + Resources/fxicons/fx_warp.png + Resources/fxicons/fx_diamondgradient.png + Resources/fxicons/fx_fourpoints.png + Resources/fxicons/fx_lineargradient.png + Resources/fxicons/fx_multilineargradient.png + Resources/fxicons/fx_multiradialgradient.png + Resources/fxicons/fx_radialgradient.png + Resources/fxicons/fx_spiral.png + Resources/fxicons/fx_squaregradient.png + Resources/fxicons/fx_tonecurve.png + Resources/fxicons/fx_ino_channelselector.png + Resources/fxicons/fx_ino_density.png + Resources/fxicons/fx_ino_hlsadd.png + Resources/fxicons/fx_ino_hlsadjust.png + Resources/fxicons/fx_ino_hsvadd.png + Resources/fxicons/fx_ino_hsvadjust.png + Resources/fxicons/fx_ino_levelauto.png + Resources/fxicons/fx_ino_levelautoincamera.png + Resources/fxicons/fx_ino_levelmaster.png + Resources/fxicons/fx_ino_levelrgba.png + Resources/fxicons/fx_ino_negate.png + Resources/fxicons/fx_localtransparency.png + Resources/fxicons/fx_multitone.png + Resources/fxicons/fx_premultiply.png + Resources/fxicons/fx_rgbmcut.png + Resources/fxicons/fx_rgbmfade.png + Resources/fxicons/fx_rgbmscale.png + Resources/fxicons/fx_sharpen.png + Resources/fxicons/fx_transparency.png + Resources/fxicons/fx_ino_over.png + Resources/fxicons/fx_ino_crossdissolve.png + Resources/fxicons/fx_ino_darken.png + Resources/fxicons/fx_ino_multiply.png + Resources/fxicons/fx_ino_colorburn.png + Resources/fxicons/fx_ino_linearburn.png + Resources/fxicons/fx_ino_darkercolor.png + Resources/fxicons/fx_ino_add.png + Resources/fxicons/fx_ino_lighten.png + Resources/fxicons/fx_ino_screen.png + Resources/fxicons/fx_ino_colordodge.png + Resources/fxicons/fx_ino_lineardodge.png + Resources/fxicons/fx_ino_lightercolor.png + Resources/fxicons/fx_ino_overlay.png + Resources/fxicons/fx_ino_softlight.png + Resources/fxicons/fx_ino_hardlight.png + Resources/fxicons/fx_ino_vividlight.png + Resources/fxicons/fx_ino_linearlight.png + Resources/fxicons/fx_ino_pinlight.png + Resources/fxicons/fx_ino_hardmix.png + Resources/fxicons/fx_ino_divide.png + Resources/fxicons/fx_ino_subtract.png + Resources/fxicons/fx_backlit.png + Resources/fxicons/fx_bodyhighlight.png + Resources/fxicons/fx_castshadow.png + Resources/fxicons/fx_glow.png + Resources/fxicons/fx_ino_fog.png + Resources/fxicons/fx_lightspot.png + Resources/fxicons/fx_raylit.png + Resources/fxicons/fx_targetspot.png + Resources/fxicons/fx_hsvkey.png + Resources/fxicons/fx_in.png + Resources/fxicons/fx_out.png + Resources/fxicons/fx_rgbkey.png + Resources/fxicons/fx_visiblemattein.png + Resources/fxicons/fx_dissolve.png + Resources/fxicons/fx_ino_hlsnoise.png + Resources/fxicons/fx_ino_hlsnoiseincamera.png + Resources/fxicons/fx_ino_hsvnoise.png + Resources/fxicons/fx_ino_hsvnoiseincamera.png + Resources/fxicons/fx_ino_medianfilter.png + Resources/fxicons/fx_noise.png + Resources/fxicons/fx_saltpeppernoise.png + Resources/fxicons/fx_clouds.png + Resources/fxicons/fx_ino_pnclouds.png + Resources/fxicons/fx_particles.png + Resources/fxicons/fx_coloremboss.png + Resources/fxicons/fx_emboss.png + Resources/fxicons/fx_ino_maxmin.png + Resources/fxicons/fx_ino_motionwind.png + Resources/fxicons/fx_posterize.png + Resources/fxicons/fx_solarize.png + Resources/fxicons/fx_artcontour.png + Resources/fxicons/fx_calligraphic.png + Resources/fxicons/fx_blendtz.png + Resources/fxicons/fx_externalpalette.png + Resources/fxicons/fx_outline.png + Resources/fxicons/fx_palettefilter.png + Resources/fxicons/fx_pinnedtexture.png + Resources/fxicons/fx_texture.png + Resources/fxicons/fx_iwa_tile.png + Resources/fxicons/fx_iwa_motionblur.png + Resources/fxicons/fx_iwa_spectrum.png + Resources/fxicons/fx_iwa_perspective_distort.png + Resources/fxicons/fx_iwa_pn_perspective.png + Resources/fxicons/fx_iwa_bokeh.png + Resources/fxicons/fx_iwa_bokeh_ref.png + Resources/fxicons/fx_iwa_soapbubble.png + Resources/fxicons/fx_unidentified.png diff --git a/toonz/sources/toonzqt/treemodel.cpp b/toonz/sources/toonzqt/treemodel.cpp index 49404fc..5d49f32 100644 --- a/toonz/sources/toonzqt/treemodel.cpp +++ b/toonz/sources/toonzqt/treemodel.cpp @@ -1,5 +1,6 @@ +#include "toonzqt/gutil.h" #include "toonzqt/treemodel.h" #include @@ -145,8 +146,7 @@ void TreeModel::Item::setChildren(QList &newChildren) { QVariant TreeModel::Item::data(int role) const { if (role == Qt::DecorationRole) - return QIcon(isOpen() ? ":Resources/folder_open.png" - : ":Resources/folder_close.png"); + return createQIcon("folder", true); else return QVariant(); }