From d274884f4f209b65a60a426ee07a72bd9f4ec086 Mon Sep 17 00:00:00 2001 From: manongjohn Date: Sep 22 2019 02:52:32 +0000 Subject: Fix conflicts with opentoonz master --- diff --git a/appveyor.yml b/appveyor.yml index c67204f..6e93a34 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -33,19 +33,28 @@ build: verbosity: minimal after_build: - cmd: >- - C:\Qt\5.9\msvc2015_64\bin\windeployqt.exe %CONFIGURATION%\OpenToonz.exe + mkdir %CONFIGURATION%\OpenToonz - copy /Y ..\..\thirdparty\glut\3.7.6\lib\glut64.dll %CONFIGURATION% + move %CONFIGURATION%\*.* %CONFIGURATION%\OpenToonz - copy /Y ..\..\thirdparty\glew\glew-1.9.0\bin\64bit\glew32.dll %CONFIGURATION% + C:\Qt\5.9\msvc2015_64\bin\windeployqt.exe %CONFIGURATION%\OpenToonz\OpenToonz.exe - copy /Y ..\..\thirdparty\libmypaint\dist\64\libiconv-2.dll %CONFIGURATION% + copy /Y ..\..\thirdparty\glut\3.7.6\lib\glut64.dll %CONFIGURATION%\OpenToonz - copy /Y ..\..\thirdparty\libmypaint\dist\64\libintl-8.dll %CONFIGURATION% + copy /Y ..\..\thirdparty\glew\glew-1.9.0\bin\64bit\glew32.dll %CONFIGURATION%\OpenToonz - copy /Y ..\..\thirdparty\libmypaint\dist\64\libjson-c-2.dll %CONFIGURATION% + copy /Y ..\..\thirdparty\libmypaint\dist\64\libiconv-2.dll %CONFIGURATION%\OpenToonz + + copy /Y ..\..\thirdparty\libmypaint\dist\64\libintl-8.dll %CONFIGURATION%\OpenToonz + + copy /Y ..\..\thirdparty\libmypaint\dist\64\libjson-c-2.dll %CONFIGURATION%\OpenToonz + + copy /Y ..\..\thirdparty\libmypaint\dist\64\libmypaint-1-4-0.dll %CONFIGURATION%\OpenToonz + + mkdir "%CONFIGURATION%\OpenToonz stuff" + + xcopy /Y /E ..\..\stuff "%CONFIGURATION%\OpenToonz stuff" - copy /Y ..\..\thirdparty\libmypaint\dist\64\libmypaint-1-4-0.dll %CONFIGURATION% artifacts: - path: toonz\$(PLATFORM)\$(CONFIGURATION) name: OpenToonz diff --git a/doc/how_to_build_linux.md b/doc/how_to_build_linux.md index 1cb3ae7..5b667d3 100644 --- a/doc/how_to_build_linux.md +++ b/doc/how_to_build_linux.md @@ -34,7 +34,7 @@ Notes: (it may include some useless packages) ``` -$ sudo dnf install gcc gcc-c++ automake git cmake boost boost-devel SuperLU SuperLU-devel lz4-devel lzma libusb-devel lzo-devel libjpeg-turbo-devel libGLEW glew-devel freeglut-devel freeglut SDL2 SDL2-devel freetype-devel libpng-devel qt5-qtbase-devel qt5-qtsvg qt5-qtsvg-devel qt5-qtscript qt5-qtscript-devel qt5-qttools qt5-qttools-devel qt5-qtmultimedia-devel blas blas-devel json-c-devel +$ sudo dnf install gcc gcc-c++ automake git cmake boost boost-devel SuperLU SuperLU-devel lz4-devel lzma libusb-devel lzo-devel libjpeg-turbo-devel libGLEW glew-devel freeglut-devel freeglut SDL2 SDL2-devel freetype-devel libpng-devel qt5-qtbase-devel qt5-qtsvg qt5-qtsvg-devel qt5-qtscript qt5-qtscript-devel qt5-qttools qt5-qttools-devel qt5-qtmultimedia-devel blas blas-devel json-c-devel libtool intltool make ``` For newest versions of OS you may install libmypaint from repository and don't need to build it from source: diff --git a/doc/how_to_build_macosx.md b/doc/how_to_build_macosx.md index 591d4c8..069a129 100644 --- a/doc/how_to_build_macosx.md +++ b/doc/how_to_build_macosx.md @@ -6,85 +6,129 @@ - git - brew - Xcode -- cmake - - Version 3.2.2 confirmed to work. -- Qt - - http://download.qt.io/official_releases/qt/5.9/5.9.2/ - - qt-opensource-mac-x64-5.9.2.dmg -- boost - - http://www.boost.org/users/history/version_1_55_0.html (or later, though only 1.55.0 is supported) +- cmake (3.2.2 or later) +- Qt (5.9.2 or later) +- boost (1.55.0 or later) ## Building on MacOSX +### Download boost from https://boost.org -### 0. Install Qt 5.9 (Most recent is 5.9.2) +Download the .bz2 mac (unix if mac not specified) version 1_55_0 or later (last tested with 1_69_0) -### 1. Install Dependent Packages +Save for later step. -With homebrew, you can install them with following command. +### Download and install Xcode from Apple +When downloading Xcode, you should use the appropriate version for your OS version. You can refer to the Version Comparison Table on https://en.wikipedia.org/wiki/Xcode to find out which version you should use. + +Apple store usually provides for the most recent macOS version. For older versions, you will need to go to the Apple Developer site. + +After installing the application, you will need to start it in order to complete the installation. + +### Install Homebrew from https://brew.sh + +Check site for any changes in installation instructions, but they will probably just be this: + +1. Open a Terminal window +2. Execute the following statement: +``` +$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" +``` + +### Install required software using brew + +In a Terminal window, execute the following statements: ``` -$ brew install glew lz4 libjpeg libpng lzo pkg-config libusb cmake git-lfs libmypaint +$ brew install glew lz4 libjpeg libpng lzo pkg-config libusb cmake git-lfs libmypaint qt +$ git lfs install ``` -Or, you should build and install them manually. +NOTE: This will install the latest version of QT which may not be compatible with older OS versions. +If you cannot use the most recent version, download the online installer from https://www.qt.io/download and install the appropriate `macOS` version (min 5.9.2). If installing via this method, be sure to install the `Qt Script (Deprecated)` libraries. -### 2. Clone the Repository +### Set up OpenToonz repository +These steps will put the OpenToonz repository under /Users/yourlogin/Documents. ``` +$ cd ~/Documents #or where you want to store the repository# $ git clone https://github.com/opentoonz/opentoonz -cd opentoonz -git lfs pull +$ cd opentoonz +$ git lfs pull +$ cd thirdparty/boost +$ mv ~/Downloads/boost_1_69_0.tar.bz2 . #or whatever the boost filename you downloaded is# +$ tar xvjf boost_1_69_0.tar.bz2 +$ cd ../lzo +$ cp -r 2.03/include/lzo driver +$ cd ../tiff-4.0.3 +$ ./configure && make ``` -### (Optional) Create the stuff Directory +### Configure build for QT version -If the directory `/Applications/OpenToonz/OpenToonz_stuff` does not exist, enter the following command: +Edit the `/Users/yourlogin/Documents/opentoonz/toonz/sources/CMakeLists.txt` file at line 160 (64bit OS) or 172 (32bit OS) and modify the root path for the QT lib directory +If you installed QT using `brew` , you can get the version and path to use with: `$ brew info qt`. The lib path will look something like this: `/usr/local/Cellar/qt/5.12.2/lib` +If you downloaded the QT installer and installed to `/Users/yourlogin/Qt`, your lib path may look something like this: `~/Qt/5.12.2/clang_64/lib` or `~/Qt/5.12.2/clang_32/lib` + +### Configure environment and Build OpenToonz + +1. Create the build directory with the following: ``` -$ sudo cp -r stuff /Applications/OpenToonz/OpenToonz_stuff +$ cd ~/Documents/opentoonz/toonz +$ mkdir build +$ cd build ``` -### 3. Build tiff in thirdparty +2. Set up build environment +To build from command line, do the following: ``` -$ cd thirdparty/tiff-4.0.3 -$ ./configure && make +$ CMAKE_PREFIX_PATH=/usr/local/Cellar/qt/5.12.2 cmake ../sources #replace QT path with your installed QT version# +$ make ``` -### 4. Put Boost library into thirdpaty directory -The following assumes `boost_1_55_0.tar.bz2` was downloaded to `~/Downloads`. - +To build using Xcode, do the following: ``` -$ cd ../boost -$ mv ~/Downloads/boost_1_55_0.tar.bz2 . -$ tar xjvf boost_1_55_0.tar.bz2 +$ sudo xcode-select -s /Applications/Xcode.app/Contents/Developer +$ CMAKE_PREFIX_PATH=/usr/local/Cellar/qt/5.12.2 cmake -G Xcode ../sources -B. #replace QT path with your installed QT version# ``` -### 5. Update the path to your Qt 5.9 install in opentoonz/toonz/sources/CMakeLists.txt line 160 or 172 -If using Qt 5.9.2, this is unnecessary. +- Open Xcode app and open project /Users/yourlogin/Documents/opentoonz/toonz/build/OpenToonz.xcodeproj +- Change `ALL_BUILD` to `OpenToonz` +- Start build with: Product -> Build -### 6. Copy the lzo header folder to the lzo driver directory + - NOTE about rebuilding in Xcode: The initial build should succeed without any errors. There after, the build will succeed but the following 3 errors can be ignored: ``` -$ cd ../lzo -$ cp -r 2.03/include/lzo driver +/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool: for: /Users/yourlogin/Documents/opentoonz/toonz/build/toonz/Debug/OpenToonz.app/Contents/MacOS/OpenToonz (for architecture x86_64) option "-add_rpath @executable_path/." would duplicate path, file already has LC_RPATH for: @executable_path/. +/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool: for: /Users/yourlogin/Documents/opentoonz/toonz/build/toonz/Debug/OpenToonz.app/Contents/MacOS/OpenToonz (for architecture x86_64) option "-add_rpath /usr/local/Cellar/qt/5.12.2/lib/" would duplicate path, file already has LC_RPATH for: /usr/local/Cellar/qt/5.12.2/lib/ +Command /bin/sh emitted errors but did not return a nonzero exit code to indicate failure ``` -### 6. Build Everything Together +Side note: If you want the option to build by command line and Xcode, create a separate build directory for each. +### Create the stuff Directory + +If you have installed OpenToonz on the machine already, you can skip this. Otherwise, you need to create the stuff folder with the following: ``` -$ cd ../../toonz -$ mkdir build -$ cd build - CMAKE_PREFIX_PATH=~/Qt5.9.2/5.9.2/clang_64 cmake ../sources -$ make +$ cd ~/Documents/opentoonz +$ sudo mkdir /Applications/OpenToonz +$ sudo cp -r stuff /Applications/OpenToonz/OpenToonz_stuff +$ sudo chmod -R 777 /Applications/OpenToonz ``` -Please be patient as the install will take a while. - -### After Building +### Running the build +- If built using command line, run the following: ``` -$ open ./toonz/OpenToonz.app +$ open ~/Documents/opentoonz/build/toonz/OpenToonz.app ``` + +- If built using Xcode, do the following: + + - Open Scheme editor for OpenToonz: Product -> Scheme -> Edit Scheme + - Uncheck: Run -> Options -> Document Versions + - Run in Debug mode: Product -> Run + + - To open with command line or from Finder window, the application is found in `/Users/yourlogin/Documents/opentoonz/toonz/build/Debug/OpenToonz.app` diff --git a/stuff/config/qss/Blue/Blue.qss b/stuff/config/qss/Blue/Blue.qss index 77fc2b0..f8213f4 100644 --- a/stuff/config/qss/Blue/Blue.qss +++ b/stuff/config/qss/Blue/Blue.qss @@ -1 +1 @@ -.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,#CameraSettingsRadioButton::indicator,#ForceSquaredPixelButton,#SchematicBottomFrame QToolBar QToolButton,#EditToolLockButton::indicator,#flipCustomize{background-color:rgba(255,255,255,0);border:1 solid rgba(255,255,255,0);border-radius:2;color:#e4e5e9;margin:1;padding:0}.button-tool:hover,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;color:#e4e5e9}.button-tool:pressed,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;color:#e4e5e9}.button-tool:checked,QToolButton:checked,#CameraSettingsRadioButton::indicator:checked,#ForceSquaredPixelButton:checked,#SchematicBottomFrame QToolBar QToolButton:checked,#EditToolLockButton::indicator:checked,#flipCustomize:checked{background-color:#5385a6;border-color:#5385a6;color:#fff}.button-tool:checked:hover,QToolButton:checked:hover,#CameraSettingsRadioButton::indicator:checked:hover,#ForceSquaredPixelButton:checked:hover,#SchematicBottomFrame QToolBar QToolButton:checked:hover,#EditToolLockButton::indicator:checked:hover,#flipCustomize:checked:hover{background-color:#6c98b6;border-color:#6c98b6}.button-tool:disabled,QToolButton:disabled,#CameraSettingsRadioButton::indicator:disabled,#ForceSquaredPixelButton:disabled,#SchematicBottomFrame QToolBar QToolButton:disabled,#EditToolLockButton::indicator:disabled,#flipCustomize:disabled{color:#808080}.button-flat,PaletteViewer QToolBar QToolButton{background-color:none;border:0;border-radius:0;margin:0}.button-flat:hover,PaletteViewer QToolBar QToolButton:hover{background-color:#6e7174}.button-flat:pressed,PaletteViewer QToolBar QToolButton:pressed{background-color:#212223}.frame,.GroupBox,#LoadLevelFrame,#PsdSettingsGroupBox,#CleanupSettingsFrame,#OutputSettingsBox,#OutputSettingsCameraBox,#SolidLineFrame,#FunctionParametersPanel,QGroupBox{border:1 solid #212223;border-radius:2}.tab-container,#TabBarContainer{background-color:transparent;qproperty-BottomAboveLineColor:#323435;qproperty-BottomBelowLineColor:#212223}.tab-flat,#StyleEditorTabBar::tab,#PaletteTabBar::tab,#FxSettingsTabBar::tab{background-color:#323435;border-right:1 solid #212223;border-bottom:1 solid #212223;color:#94969a;padding:3 4 3 4}.tab-flat:hover,#StyleEditorTabBar::tab:hover,#PaletteTabBar::tab:hover,#FxSettingsTabBar::tab:hover{background-color:#414345;color:#94969a}.tab-flat:selected,#StyleEditorTabBar::tab:selected,#PaletteTabBar::tab:selected,#FxSettingsTabBar::tab:selected{background-color:#414345;color:#fff;border-bottom-color:#414345}.tab-flat:only-one,#StyleEditorTabBar::tab:only-one,#PaletteTabBar::tab:only-one,#FxSettingsTabBar::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;color:#94969a;margin:3 -1 0 0;padding:2 7 1 7}.tab-round:hover{background-color:#414345;color:#94969a}.tab-round:selected{background-color:#414345;border-top-right-radius:2;border-top-left-radius:2;border-bottom-color:#414345;color:#fff;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}QWidget{background-color:#414345;color:#d6d8dd}QWidget:disabled{color:#808080}QFrame{border:0;margin:0;padding:0}QToolTip,#helpToolTip{background-color:#fff;border:1 solid #000;color:#000;padding:1 1}#DockSeparator,QMainWindow::separator,QSplitter::handle{background-color:#141516;height:4;width:4}#TDockPlaceholder{background-color:#F77272}TPanel{background-color:#141516}#TopBar{background:#414345;border:0;border-bottom:1 solid #212223;height:21}#TopBar #EditToolLockButton{background:#414345;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:#414345;margin-bottom:1}#StackedMenuBar{border:0;margin:0;padding:0}QMenuBar{background-color:#414345;border:0}QMenuBar::item{background-color:#414345;border-left:1 solid #414345;margin:0;padding:3 5}QMenuBar::item:selected{background-color:rgba(255,255,255,0.15);color:#d6d8dd}QMenuBar::item:pressed{background-color:#5385a6;color:#fff}#TopBarTab{margin:0;padding:0}#TopBarTab::tab{background-color:#323435;border-top:1 solid #212223;border-right:1 solid #212223;color:#94969a;margin:0 0 0 0;padding:2 8 3 8}#TopBarTab::tab:hover{background-color:#414345;color:#94969a}#TopBarTab::tab:selected{background-color:#414345;color:#fff}#TopBarTab::tab:first{border-left:1 solid #212223}#TopBarTab::tab:last{border-right:1 solid #212223}QMenu{background-color:#414345;border:1 solid #212223;padding:2 0}QMenu::item{padding:3 28}QMenu::item:selected{background-color:#5385a6;color:#fff}QMenu::item:checked{color:#d6d8dd}QMenu::item:checked:selected{background-color:#5385a6;color:#fff}QMenu::item:disabled{background:none;color:#808080}QMenu::item:disabled:selected{border-color:transparent}QMenu::separator{border-top:1 solid #212223;height:0;margin:2 0}QMenu::icon{border-radius:2;margin:0 0 0 3;padding:1}QMenu::icon:checked{background-color:#5385a6}QMenu::indicator{margin-left:7}TPanelTitleBar{background-color:#323435;border-color:#212223;border-style:solid;border-width:0 0 1 0;height:20;min-height:20;qproperty-TitleColor:#8c9093;qproperty-ActiveTitleColor:#43AEE5;qproperty-BorderPixmap:url('none');qproperty-ActiveBorderPixmap:url('../Default/imgs/white/none');qproperty-FloatBorderPixmap:url('none');qproperty-FloatActiveBorderPixmap:url('../Default/imgs/white/none')}QAbstractScrollArea::corner{background-color:#2d2f30}QScrollBar{background-color:#2d2f30;border:0}QScrollBar:horizontal{height:16;margin:0}QScrollBar:vertical{margin:0;width:16}QScrollBar::handle{border:1 solid #4b4d50;border-radius:4}QScrollBar::handle:horizontal:hover,QScrollBar::handle:vertical:hover{background-color:#5f6265;border-color:#5f6265}QScrollBar::handle:horizontal:pressed,QScrollBar::handle:vertical:pressed{background-color:#72767a;border-color:#72767a}QScrollBar::handle:horizontal{background-color:#4b4d50;margin:3 16;min-width:20}QScrollBar::handle:vertical{background-color:#4b4d50;margin:16 3;min-height:20}QScrollBar::add-line{subcontrol-origin:margin;border:0}QScrollBar::add-line:horizontal{subcontrol-position:right;background-color:#2d2f30;margin:0;width:16}QScrollBar::add-line:vertical{subcontrol-position:bottom;background-color:#2d2f30;margin:0;height:16}QScrollBar::sub-line{border:0;subcontrol-origin:margin}QScrollBar::sub-line:horizontal{subcontrol-position:left;background-color:#2d2f30;margin:0;width:16}QScrollBar::sub-line:vertical{subcontrol-position:top;background-color:#2d2f30;margin:0;height:16}QScrollBar::up-arrow:vertical{image:url('../Default/imgs/white/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/white/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/white/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/white/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{padding:0}QToolBar::separator:horizontal{border-left:1 solid #212223;margin:0 1;width:0}QToolBar::separator:vertical{border-top:1 solid #212223;height:0;margin:1 0}QToolBar QLabel{margin-top:1}QToolBar QToolBar{border:0}QToolButton::menu-indicator{image:none}QToolButton::menu-button{border-image:none}.DvScrollWidget QPushButton,DvScrollWidget QPushButton,#ScrollLeftButton QPushButton,#ScrollRightButton QPushButton,#ScrollUpButton QPushButton,#ScrollDownButton QPushButton{background-color:#616467;border:0 solid red;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:#6e7174}.DvScrollWidget QPushButton:pressed,DvScrollWidget QPushButton:pressed,#ScrollLeftButton QPushButton:pressed,#ScrollRightButton QPushButton:pressed,#ScrollUpButton QPushButton:pressed,#ScrollDownButton QPushButton:pressed{background-color:#2b2c2d}#ScrollLeftButton,#ScrollRightButton,#ScrollUpButton,#ScrollDownButton{margin:0;min-width:16}#ScrollLeftButton{border-right:1 solid #212223;image:url('../Default/imgs/white/scroll-left.svg')}#ScrollRightButton{border-left:1 solid #212223;margin-left:3;image:url('../Default/imgs/white/scroll-right.svg')}#ScrollUpButton{image:url('../Default/imgs/white/scroll-up.svg')}#ScrollDownButton{image:url('../Default/imgs/white/scroll-down.svg')}#keyFrameNavigator{background:none;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')}#keyFrameNavigator #PreviousKey:disabled{image:url('../Default/imgs/white/prevkey_disabled.svg')}#keyFrameNavigator #NextKey{image:url('../Default/imgs/white/nextkey.svg')}#keyFrameNavigator #NextKey:hover{image:url('../Default/imgs/white/nextkey_over.svg')}#keyFrameNavigator #NextKey:disabled{image:url('../Default/imgs/white/nextkey_disabled.svg')}.treeview,QTreeWidget,QTreeView,#FunctionEditorTree{background-color:#2d2f30;alternate-background-color:#323435;border:0;margin:0;outline:0}.treeview::item:selected,QTreeWidget::item:selected,QTreeView::item:selected,#FunctionEditorTree::item:selected{background-color:#5385a6;color:#fff}.treeview::branch:adjoins-item,QTreeWidget::branch:adjoins-item,QTreeView::branch:adjoins-item,#FunctionEditorTree::branch:adjoins-item{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/white/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/white/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/white/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/white/treebranch-open.svg') no-repeat;background-position:center center;border-image:none;image:none}QListView{outline:0;background:#2d2f30;alternate-background-color:#323435}#TabBarContainer{background-color:#323435}.Button,QPushButton,.ComboBox,.ComboBox:checked,QComboBox,QComboBox:checked{background-color:#616467;border:1 solid #414345;border-radius:2;color:#e4e5e9;margin:0;padding:3 15}.Button:hover,QPushButton:hover,.ComboBox:hover,#ViewerFpsSlider::sub-line:horizontal:hover,#ViewerFpsSlider::add-line:horizontal:hover,QComboBox:hover{background-color:#6e7174;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;color:#e4e5e9}.Button:checked,QPushButton:checked{background-color:#2b2c2d;border-color:#262728;color:#e4e5e9}.Button:checked:hover,QPushButton:checked:hover{background-color:#303133}.Button:checked:hover:pressed,QPushButton:checked:hover:pressed{background:#2b2c2d}.Button:disabled,QPushButton:disabled,.ComboBox:disabled,#ViewerFpsSlider::sub-line:horizontal:disabled,#ViewerFpsSlider::add-line:horizontal:disabled,QComboBox:disabled{background-color:#4d5052;border-color:#414345;color:#808080}#PushButton_NoPadding{padding:3}.ComboBox,.ComboBox:checked,QComboBox,QComboBox:checked{padding:1 0 1 4;margin:1 0}.ComboBox::drop-down,QComboBox::drop-down{image:url('../Default/imgs/white/combo_downarrow.svg');image-position:center center;width:16}.ComboBox::drop-down:disabled,QComboBox::drop-down:disabled{image:url('../Default/imgs/white/combo_downarrow_disabled.svg')}.ComboBox QAbstractItemView,QComboBox QAbstractItemView{background-color:#414345;border:1 solid #212223;selection-background-color:#5385a6;selection-color:#fff}.LineEdit,QPlainTextEdit,QLineEdit,#TaskSheetItem,#tasksRemoveBox,#tasksAddBox{background-color:#28292b;border:1 solid #262728;border-radius:2;color:#d6d8dd;selection-background-color:#5385a6;selection-color:#fff;padding:0 0 0 1}.LineEdit:focus,QPlainTextEdit:focus,QLineEdit:focus,#TaskSheetItem:focus,#tasksRemoveBox:focus,#tasksAddBox:focus{background-color:#28292b;border-color:#5385a6;color:#d6d8dd}.LineEdit:disabled,QPlainTextEdit:disabled,QLineEdit:disabled,#TaskSheetItem:disabled,#tasksRemoveBox:disabled,#tasksAddBox:disabled{background-color:#353638;border-color:#333537;color:#808080}.CheckBox,QCheckBox{color:#d6d8dd}.CheckBox:hover,QCheckBox:hover,.RadioButton:hover,QRadioButton:hover{color:#fff}.CheckBox:disabled,QCheckBox:disabled{color:#808080}.CheckBox::indicator,QMenu::indicator,QCheckBox::indicator,.GroupBox::indicator,QGroupBox::indicator{background-color:#28292b;border:1 solid #262728;border-radius:2;height:9;padding:1;width:9}.CheckBox::indicator:hover,QMenu::indicator:hover,.CheckBox::indicator:checked:hover,QCheckBox::indicator:hover,.GroupBox::indicator:hover,QMenu::indicator:checked:hover,QCheckBox::indicator:checked:hover,.GroupBox::indicator:checked:hover,QGroupBox::indicator:hover,QGroupBox::indicator:checked:hover{background-color:#28292b;border-color:#5385a6}.CheckBox::indicator:checked,QMenu::indicator:checked,QCheckBox::indicator:checked,.GroupBox::indicator:checked,QGroupBox::indicator:checked{background-color:#28292b;border-color:#262728;image:url('../Default/imgs/white/checkmark.svg')}.CheckBox::indicator:checked:disabled,QMenu::indicator:checked:disabled,QCheckBox::indicator:checked:disabled,.GroupBox::indicator:checked:disabled,QGroupBox::indicator:checked:disabled{background-color:#353638;border-color:#353638;image:url('../Default/imgs/white/checkmark_disabled.svg')}.CheckBox::indicator:disabled,QMenu::indicator:disabled,QCheckBox::indicator:disabled,.GroupBox::indicator:disabled,QGroupBox::indicator:disabled{background-color:#353638;border-color:#353638}.RadioButton::indicator:unchecked,QRadioButton::indicator:unchecked,#CameraSettingsRadioButton_Small::indicator:unchecked{image:url('../Default/imgs/white/radiobutton_unchecked.svg');image-position:center center}.RadioButton::indicator:checked,QRadioButton::indicator:checked,#CameraSettingsRadioButton_Small::indicator:checked{image:url('../Default/imgs/white/radiobutton_checked.svg');image-position:center center}.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:#fff}.GroupBox::title:disabled,QGroupBox::title:disabled{color:#808080}.GroupBox::indicator,QGroupBox::indicator{subcontrol-origin:margin;margin-top:2}.GroupBox:disabled,QGroupBox:disabled{color:#808080}.Slider::groove:horizontal,QSlider::groove:horizontal{background-color:transparent;background-image:url('../Default/imgs/white/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/white/slider-groove_disabled.svg')}.Slider::handle:horizontal,QSlider::handle:horizontal{width:10;margin:-2 -1;image:url('../Default/imgs/white/slider-handle.svg')}.Slider::handle:horizontal:disabled,QSlider::handle:horizontal:disabled{image:url('../Default/imgs/white/slider-handle_disabled.svg')}#IntPairField,#DoublePairField{qproperty-LightLineColor:#262728;qproperty-LightLineEdgeColor:#262728;qproperty-DarkLineColor:#262728;qproperty-MiddleLineColor:#262728;qproperty-HandleLeftPixmap:url("../Default/imgs/white/slider-handle.svg");qproperty-HandleRightPixmap:url("../Default/imgs/white/slider-handle.svg");qproperty-HandleLeftGrayPixmap:url("../Default/imgs/white/slider-handle_disabled.svg");qproperty-HandleRightGrayPixmap:url("../Default/imgs/white/slider-handle_disabled.svg")}#DirTreeView{background-color:#2d2f30;alternate-background-color:#2d2f30;border:1 solid #212223;border-right:0}DvItemViewerPanel{qproperty-TextColor:#d6d8dd;qproperty-AlternateBackground:#3a3b3d;qproperty-SelectedTextColor:#fff;qproperty-FolderTextColor:#9fdaff;qproperty-SelectedItemBackground:#5385a6}#FileBrowser DvItemViewerPanel,#SceneCast DvItemViewerPanel{background-color:#414345}#FileBrowser #castFrame,#SceneCast #castFrame{border-top:1 solid #212223;border-right:1 solid #212223;border-bottom:1 solid #212223;margin:0}#FileBrowser QToolButton,#SceneCast QToolButton{padding:1}DvDirTreeView{qproperty-TextColor:#d6d8dd;qproperty-SelectedTextColor:#fff;qproperty-SelectedItemBackground:#5385a6;qproperty-FolderTextColor:#9fdaff;qproperty-SelectedFolderTextColor:#fff;alternate-background-color:#323435;background-color:#2d2f30;border:1 solid #212223}#FileDoesNotExistLabel{color:#f00}#SceneCast QToolBar{border-top:1 solid #212223}#SceneCast QToolButton{margin:3 1 2 1;padding:1}#CastBrowser{border:0;margin:0}#FilmStrip QComboBox{border-radius:0;border-width:0}#FilmStrip QComboBox QAbstractItemView{background-color:#414345}#CleanupSettings #CleanupSettingsFrame{margin-top:2;margin-bottom:4}#CleanupSettings QGroupBox{margin-bottom:3}ParamsPage{qproperty-TextColor:#d6d8dd}#CameraSettingsButton{padding:2}#CameraSettingsRadioButton:hover{background:none}#CameraSettingsRadioButton::indicator{border:1 solid rgba(255,255,255,0);height:18;padding:0;width:18}#CameraSettingsRadioButton::indicator:unchecked{image:url('../Default/imgs/white/lock_off.svg')}#CameraSettingsRadioButton::indicator:checked{background-color:#C34040;border-color:#C34040;image:url('../Default/imgs/white/lock_on.svg')}#CameraSettingsRadioButton::indicator:checked:hover{background-color:#d57a7a;border-color:#d57a7a}#CameraSettingsDPI{color:#9fdaff}#CameraSettingsRadioButton_Small{padding:0}#CameraSettingsRadioButton_Small::indicator{background-color:transparent;border:0;height:21;margin:0;width:11}#ForceSquaredPixelButton{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')}#OutputSettingsLabel{color:#9fdaff}PencilTestPopup{min-height:730px;min-width:512px}#MatchLineButton{background-color:#66696c}#MatchLineButton:checked{background-color:#8c9093;border:2 solid #5385a6;border-radius:2}#LargeSizedText{font-size:17px}#StartupLabel{padding:3}#StartupLabel:hover{background:#5a5d5f}QStatusBar{background-color:#c0c0c0}QStatusBar::item{border:0}QStatusBar QLabel{background-color:#c0c0c0}QStatusBar #StatusBarLabel{background-color:#fff;padding:1 3}#TitleTxtLabel{color:#9fdaff}#StyleEditor QPushButton{margin:2 1;padding:0}#StyleEditor #TabBarContainer{margin-left:-4}#StyleEditor #bottomWidget{border-top:1 solid #212223;padding:3 2 8 3}#StyleEditor #bottomWidget QPushButton{padding:3 5}#StyleEditorTabBar::tab::first{border-left:1 solid #212223}#HexagonalColorWheel{qproperty-BGColor:#414345}#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:18}#colorSliderAddButton{image:url('../Default/imgs/white/scroll-right.svg')}#colorSliderSubButton{image:url('../Default/imgs/white/scroll-left.svg')}#PlainColorPageParts{border-bottom:1 solid #212223}#PlainColorPageParts QLineEdit{max-width:35}PaletteViewer DvScrollWidget QPushButton{border-top:0;margin-bottom:1;max-width:15;min-width:15}PaletteViewer DvScrollWidget #ScrollLeftButton{border-radius:0;margin-bottom:1;max-width:16;min-width:16}PaletteViewer DvScrollWidget #ScrollRightButton{border-radius:0;margin-left:1;margin-bottom:1;max-width:16;min-width:16}PaletteViewer QToolBar{background:none;border-bottom:1 solid #212223;padding:0;margin:0}PaletteViewer QToolBar::separator:horizontal{margin:0}PaletteViewer QToolBar QToolButton{margin:0 0 1 0;padding:1 0 2 0}#PageViewer{qproperty-TextColor:#d6d8dd}#PaletteLockButton{border-radius:0;margin:0 0 1 1}#PaletteLockButton:checked{background-color:#C34040;border-color:#C34040}#PaletteLockButton:checked:hover{background-color:#d57a7a;border-color:#d57a7a}#WordButton{padding-right:0;padding-left:0}QDialog{background-color:#414345}QDialog #dialogButtonFrame{background-color:#37393a;border-top:1 solid #212223}QDialog #dialogButtonFrame QPushButton{border-color:#37393a;outline:0}QDialog #dialogButtonFrame QPushButton:focus{background-color:#5385a6;border-color:#37393a;color:#fff}QDialog #dialogButtonFrame QPushButton:focus:hover{background-color:#6c98b6}QDialog #dialogButtonFrame QPushButton:focus:pressed{background-color:#2b2c2d;border-color:#262728;color:#e4e5e9}#SceneSettings QLabel{color:#9fdaff}#PreferencesPopup QListWidget{background-color:#2d2f30;alternate-background-color:#2d2f30;border:1 solid #212223;font-size:13px}#PreferencesPopup QListWidget::item{border:0;padding:3}#PreferencesPopup QListWidget::item:hover{color:#d6d8dd;background-color:rgba(255,255,255,0.15)}#PreferencesPopup QListWidget::item:selected{background-color:#5385a6;color:#fff}#ShortcutTree{border:1 solid #212223}#ShortcutTree::item{padding:1 0}#ShortcutTree QScrollBar:vertical{width:16;margin-right:-1}ProjectPopup QLabel{color:#9fdaff}#GearButton{qproperty-icon:url('../Default/imgs/white/gear.svg')}#SubfolderButton{qproperty-icon:url('../Default/imgs/white/subfolder.svg');padding-left:6px;padding-right:6px}#SubcameraButton{qproperty-icon:url('../Default/imgs/white/subcamera.svg');padding-left:6px;padding-right:6px}SchematicViewer{qproperty-TextColor:#d6d8dd;qproperty-VerticalLineColor:#222;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-TableColor:#62628c;qproperty-ActiveCameraColor:#2d7dca;qproperty-OtherCameraColor:#6c797b;qproperty-GroupColor:#3b6e9c;qproperty-PegColor:#9f6e3c;qproperty-SplineColor:#6a9d1c;qproperty-ActiveOutputColor:#2d7dca;qproperty-OtherOutputColor:#6c797b;qproperty-XsheetColor:#62628c;qproperty-NormalFxColor:#6a7e96;qproperty-MacroFxColor:#815c79;qproperty-ImageAdjustFxColor:#656287;qproperty-LayerBlendingFxColor:#4f757d;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-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')}#SchematicBottomFrame{background-color:#414345;border:0;margin:0;padding:0}#SchematicBottomFrame QToolBar::separator:horizontal{margin:0}#SchematicBottomFrame QToolBar QToolButton{padding:0;margin:2}#SchematicSceneViewer{background-color:#353638;border-bottom:1 solid #212223}#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;padding:3 0}FxSettings QToolBar QToolBar{border:0}#FxSettingsLabel{color:#a0e680}#FxSettingsHelpButton{background-color:#80a0dc;color:#000;padding-top:0;padding-bottom:0}#FxSettingsHelpButton:hover{background-color:#a8bee7}#ScriptConsole{font-family:'Courier New',monospace;border:0;color:#000000;padding:3}#ScriptConsole QFrame{background-color:#dcdcdc}#ScriptConsole TPanelTitleBar{background-color:#323435}#TaskSheetItemLabel{color:#d6d8dd}#Tasks QToolBar{border-bottom:1 solid #212223;margin:0;padding:0}#Tasks QToolBar QToolButton{margin:2 2 3 2}#ToolBar QToolBar{padding-left:2}#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")}#EditToolLockButton{spacing:0}#EditToolLockButton:hover{background:none}#EditToolLockButton::indicator{border:1 solid rgba(255,255,255,0);height:18;padding:0;width:18}#EditToolLockButton::indicator:unchecked{image:url('../Default/imgs/white/lock_off.svg')}#EditToolLockButton::indicator:checked{background-color:#C34040;border-color:#C34040;image:url('../Default/imgs/white/lock_on.svg')}#EditToolLockButton::indicator:checked:hover{background-color:#d57a7a;border-color:#d57a7a}PopupButton::menu-indicator{border-left:0;height:17;image:url('../Default/imgs/white/combo_downarrow.svg');width:10}PopupButton::menu-indicator:hover{image:url('../Default/imgs/white/combo_downarrow.svg')}PopupButton::menu-indicator:disabled{image:url('../Default/imgs/white/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:3;padding-right:3}QToolBar#WidePaddingToolBar QToolButton{padding-left:6;padding-right:6}#CommandBar{margin:0;padding:0;border:0}#CommandBar::separator:horizontal{margin-right:3;margin-left:3}#expandButton:checked{background-color:transparent;border-color:transparent;color:#d6d8dd}#expandButton:checked:hover{background-color:#6e7174;border-color:#6e7174}#expandButton:checked:pressed{background-color:#2b2c2d;border-color:#262728}#ComboViewerPanel Toolbar{border-bottom:1 solid #212223}#ComboViewerPanel Toolbar::separator:horizontal{margin:0 0 0 2}#ComboViewerPanel Toolbar QToolButton{margin:2 0 3 2}#ComboViewerToolOptions{border-bottom:1 solid #212223}#ComboViewer #ToolBarContainer,#ViewerPanel #ToolBarContainer,FlipBook #ToolBarContainer{background-color:transparent;border-top:2 solid #212223;border-bottom:1 solid #212223;padding-right:-1}#flipCustomize{margin-left:3}#flipCustomize::menu-button{background-color:transparent;width:35}#flipCustomize::menu-arrow{image:none}QToolBar#FlipConsolePlayToolBar::separator:horizontal{margin:0 3}QToolBar#FlipConsolePlayToolBar QToolButton{margin-top:2;margin-bottom:2;height:16;padding-left:1;padding-right:1}#ViewerFpsSlider{background-color:transparent;background-image:url('../Default/imgs/white/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:#616467;border:1 solid #414345;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:#616467;border:1 solid #414345;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:#999c9f;border:1 solid #999c9f;border-radius:2;margin:2 0 3 0;min-width:9;width:9;max-width:9}FlipSlider{qproperty-PBHeight:15;qproperty-PBOverlay:url('../Default/imgs/white/flipslider.svg');qproperty-PBColorMarginLeft:1;qproperty-PBColorMarginTop:2;qproperty-PBColorMarginRight:1;qproperty-PBColorMarginBottom:2;qproperty-PBMarker:url('../Default/imgs/white/flipmarker.svg');qproperty-PBMarkerMarginLeft:3;qproperty-PBMarkerMarginRight:3;qproperty-notStartedColor:rgba(205,101,101,0.78);qproperty-startedColor:#1abc3f;qproperty-baseColor:#28292b;qproperty-finishedColor:#28292b}Ruler{qproperty-ParentBGColor:#414345;qproperty-ScaleColor:#d6d8dd}#RulerToolOptionValues{color:#000}#xsheetArea,#ScrollArea{background-color:#2d2f30;border:0}#xsheetScrollArea{border:0}#cornerWidget QToolButton{padding:0}#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}XsheetViewer{qproperty-TextColor:#d6d8dd;qproperty-BGColor:#353638;qproperty-LightLineColor:#262728;qproperty-MarkerLineColor:#1E96C4;qproperty-VerticalLineColor:#222;qproperty-VerticalLineHeadColor:#777b7f;qproperty-PreviewFrameTextColor:#9fdaff;qproperty-CurrentRowBgColor:#506082;qproperty-OnionSkinAreaBgColor:#303133;qproperty-EmptyColumnHeadColor:#5a5d60;qproperty-SelectedColumnTextColor:#E66464;qproperty-EmptyCellColor:#393b3d;qproperty-NotEmptyColumnColor:#414345;qproperty-SelectedEmptyCellColor:#64676a;qproperty-LevelColumnColor:#4C6E4C;qproperty-LevelColumnBorderColor:#8FB38F;qproperty-SelectedLevelColumnColor:#678667;qproperty-VectorColumnColor:#7B7B4C;qproperty-VectorColumnBorderColor:#BBBB9A;qproperty-SelectedVectorColumnColor:#949466;qproperty-ChildColumnColor:#6A526B;qproperty-ChildColumnBorderColor:#B1A3B3;qproperty-SelectedChildColumnColor:#816e82;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-SoundColumnHlColor:#34FE5E;qproperty-SoundColumnTrackColor:#B6C29D;qproperty-ColumnHeadPastelizer:#000;qproperty-SelectedColumnHead:#506082;qproperty-LightLightBGColor:#393b3d;qproperty-LightBGColor:#eaebec;qproperty-DarkBGColor:#dbdcdd;qproperty-DarkLineColor:#8e9194;qproperty-XsheetColumnNameBgColor:rgba(0,0,0,0);qproperty-XsheetDragBarHighlightColor:rgba(255,255,255,0.5);qproperty-XsheetPreviewButtonBgOnColor:#c8c864;qproperty-XsheetPreviewButtonOnImage:url('../Default/imgs/white/x_prev_eye_on.svg');qproperty-XsheetPreviewButtonBgOffColor:rgba(255,255,255,0);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-XsheetCamstandButtonOffImage:url('../Default/imgs/white/x_table_view_off.svg');qproperty-XsheetLockButtonBgOnColor:rgba(255,255,255,0.3);qproperty-XsheetLockButtonOnImage:url('../Default/imgs/white/x_lock_on.svg');qproperty-XsheetLockButtonBgOffColor:rgba(255,255,255,0);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-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')}#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}#FunctionEditor QToolBar{border-bottom:1 solid #212223}#FunctionEditor QToolBar QToolBar{border:0}#FunctionEditor QToolBar QLabel{margin-left:5}#FunctionEditor QToolBar QToolButton{height:18}#FunctionEditorTree{border-top:1 solid #212223}FunctionTreeView{qproperty-TextColor:#d6d8dd;qproperty-CurrentTextColor:#E66464}FunctionPanel{qproperty-BGColor:#343638;qproperty-ValueLineColor:#28292b;qproperty-FrameLineColor:#28292b;qproperty-OtherCurvesColor:#7f8386;qproperty-RulerBackground:#2d2e30;qproperty-TextColor:#d6d8dd;qproperty-SubColor:#000;qproperty-SelectedColor:#FFA500}SpreadsheetViewer{qproperty-LightLightBGColor:#393b3d;qproperty-CurrentRowBgColor:#506082;qproperty-LightLineColor:#262728;qproperty-MarkerLineColor:#1E96C4;qproperty-BGColor:#414345;qproperty-VerticalLineColor:#222;qproperty-KeyFrameColor:#995d1d;qproperty-KeyFrameBorderColor:#c9b04b;qproperty-SelectedKeyFrameColor:#be772b;qproperty-InBetweenColor:#666250;qproperty-InBetweenBorderColor:#cdcec8;qproperty-SelectedInBetweenColor:#7d7a6c;qproperty-SelectedEmptyColor:#64676a;qproperty-SelectedSceneRangeEmptyColor:#6d7073;qproperty-TextColor:#d6d8dd;qproperty-ColumnHeaderBorderColor:#777b7f;qproperty-SelectedColumnTextColor:#E66464}#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} \ No newline at end of file +.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,#CameraSettingsRadioButton::indicator,#ForceSquaredPixelButton,#SchematicBottomFrame QToolBar QToolButton,#EditToolLockButton::indicator,#flipCustomize{background-color:rgba(255,255,255,0);border:1 solid rgba(255,255,255,0);border-radius:2;color:#e4e5e9;margin:1;padding:0}.button-tool:hover,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;color:#e4e5e9}.button-tool:pressed,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;color:#e4e5e9}.button-tool:checked,QToolButton:checked,#CameraSettingsRadioButton::indicator:checked,#ForceSquaredPixelButton:checked,#SchematicBottomFrame QToolBar QToolButton:checked,#EditToolLockButton::indicator:checked,#flipCustomize:checked{background-color:#5385a6;border-color:#5385a6;color:#fff}.button-tool:checked:hover,QToolButton:checked:hover,#CameraSettingsRadioButton::indicator:checked:hover,#ForceSquaredPixelButton:checked:hover,#SchematicBottomFrame QToolBar QToolButton:checked:hover,#EditToolLockButton::indicator:checked:hover,#flipCustomize:checked:hover{background-color:#6c98b6;border-color:#6c98b6}.button-tool:disabled,QToolButton:disabled,#CameraSettingsRadioButton::indicator:disabled,#ForceSquaredPixelButton:disabled,#SchematicBottomFrame QToolBar QToolButton:disabled,#EditToolLockButton::indicator:disabled,#flipCustomize:disabled{color:#808080}.button-flat,PaletteViewer QToolBar QToolButton{background-color:none;border:0;border-radius:0;margin:0}.button-flat:hover,PaletteViewer QToolBar QToolButton:hover{background-color:#6e7174}.button-flat:pressed,PaletteViewer QToolBar QToolButton:pressed{background-color:#212223}.frame,.GroupBox,#LoadLevelFrame,#PsdSettingsGroupBox,#CleanupSettingsFrame,#OutputSettingsBox,#OutputSettingsCameraBox,#SolidLineFrame,#FunctionParametersPanel,QGroupBox{border:1 solid #212223;border-radius:2}.tab-container,#TabBarContainer{background-color:transparent;qproperty-BottomAboveLineColor:#323435;qproperty-BottomBelowLineColor:#212223}.tab-flat,#StyleEditorTabBar::tab,#PaletteTabBar::tab,#FxSettingsTabBar::tab{background-color:#323435;border-right:1 solid #212223;border-bottom:1 solid #212223;color:#94969a;padding:3 4 3 4}.tab-flat:hover,#StyleEditorTabBar::tab:hover,#PaletteTabBar::tab:hover,#FxSettingsTabBar::tab:hover{background-color:#414345;color:#94969a}.tab-flat:selected,#StyleEditorTabBar::tab:selected,#PaletteTabBar::tab:selected,#FxSettingsTabBar::tab:selected{background-color:#414345;color:#fff;border-bottom-color:#414345}.tab-flat:only-one,#StyleEditorTabBar::tab:only-one,#PaletteTabBar::tab:only-one,#FxSettingsTabBar::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;color:#94969a;margin:3 -1 0 0;padding:2 7 1 7}.tab-round:hover{background-color:#414345;color:#94969a}.tab-round:selected{background-color:#414345;border-top-right-radius:2;border-top-left-radius:2;border-bottom-color:#414345;color:#fff;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}QWidget{background-color:#414345;color:#d6d8dd}QWidget:disabled{color:#808080}QFrame{border:0;margin:0;padding:0}QToolTip,#helpToolTip{background-color:#fff;border:1 solid #000;color:#000;padding:1 1}#DockSeparator,QMainWindow::separator,QSplitter::handle{background-color:#141516;height:4;width:4}#TDockPlaceholder{background-color:#F77272}TPanel{background-color:#141516}#TopBar{background:#414345;border:0;border-bottom:1 solid #212223;height:21}#TopBar #EditToolLockButton{background:#414345;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:#414345;margin-bottom:1}#StackedMenuBar{border:0;margin:0;padding:0}QMenuBar{background-color:#414345;border:0}QMenuBar::item{background-color:#414345;border-left:1 solid #414345;margin:0;padding:3 5}QMenuBar::item:selected{background-color:rgba(255,255,255,0.15);color:#d6d8dd}QMenuBar::item:pressed{background-color:#5385a6;color:#fff}#TopBarTab{margin:0;padding:0}#TopBarTab::tab{background-color:#323435;border-top:1 solid #212223;border-right:1 solid #212223;color:#94969a;margin:0 0 0 0;padding:2 8 3 8}#TopBarTab::tab:hover{background-color:#414345;color:#94969a}#TopBarTab::tab:selected{background-color:#414345;color:#fff}#TopBarTab::tab:first{border-left:1 solid #212223}#TopBarTab::tab:last{border-right:1 solid #212223}QMenu{background-color:#414345;border:1 solid #212223;padding:2 0}QMenu::item{padding:3 28}QMenu::item:selected{background-color:#5385a6;color:#fff}QMenu::item:checked{color:#d6d8dd}QMenu::item:checked:selected{background-color:#5385a6;color:#fff}QMenu::item:disabled{background:none;color:#808080}QMenu::item:disabled:selected{border-color:transparent}QMenu::separator{border-top:1 solid #212223;height:0;margin:2 0}QMenu::icon{border-radius:2;margin:0 0 0 3;padding:1}QMenu::icon:checked{background-color:#5385a6}QMenu::indicator{margin-left:7}TPanelTitleBar{background-color:#323435;border-color:#212223;border-style:solid;border-width:0 0 1 0;height:20;min-height:20;qproperty-TitleColor:#8c9093;qproperty-ActiveTitleColor:#43AEE5;qproperty-BorderPixmap:url('none');qproperty-ActiveBorderPixmap:url('../Default/imgs/white/none');qproperty-FloatBorderPixmap:url('none');qproperty-FloatActiveBorderPixmap:url('../Default/imgs/white/none')}QAbstractScrollArea::corner{background-color:#2d2f30}QScrollBar{background-color:#2d2f30;border:0}QScrollBar:horizontal{height:16;margin:0}QScrollBar:vertical{margin:0;width:16}QScrollBar::handle{border:1 solid #4b4d50;border-radius:4}QScrollBar::handle:horizontal:hover,QScrollBar::handle:vertical:hover{background-color:#5f6265;border-color:#5f6265}QScrollBar::handle:horizontal:pressed,QScrollBar::handle:vertical:pressed{background-color:#72767a;border-color:#72767a}QScrollBar::handle:horizontal{background-color:#4b4d50;margin:3 16;min-width:20}QScrollBar::handle:vertical{background-color:#4b4d50;margin:16 3;min-height:20}QScrollBar::add-line{subcontrol-origin:margin;border:0}QScrollBar::add-line:horizontal{subcontrol-position:right;background-color:#2d2f30;margin:0;width:16}QScrollBar::add-line:vertical{subcontrol-position:bottom;background-color:#2d2f30;margin:0;height:16}QScrollBar::sub-line{border:0;subcontrol-origin:margin}QScrollBar::sub-line:horizontal{subcontrol-position:left;background-color:#2d2f30;margin:0;width:16}QScrollBar::sub-line:vertical{subcontrol-position:top;background-color:#2d2f30;margin:0;height:16}QScrollBar::up-arrow:vertical{image:url('../Default/imgs/white/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/white/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/white/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/white/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{padding:0}QToolBar::separator:horizontal{border-left:1 solid #212223;margin:0 1;width:0}QToolBar::separator:vertical{border-top:1 solid #212223;height:0;margin:1 0}QToolBar QLabel{margin-top:1}QToolBar QToolBar{border:0}QToolButton::menu-indicator{image:none}QToolButton::menu-button{border-image:none}.DvScrollWidget QPushButton,DvScrollWidget QPushButton,#ScrollLeftButton QPushButton,#ScrollRightButton QPushButton,#ScrollUpButton QPushButton,#ScrollDownButton QPushButton{background-color:#616467;border:0 solid red;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:#6e7174}.DvScrollWidget QPushButton:pressed,DvScrollWidget QPushButton:pressed,#ScrollLeftButton QPushButton:pressed,#ScrollRightButton QPushButton:pressed,#ScrollUpButton QPushButton:pressed,#ScrollDownButton QPushButton:pressed{background-color:#2b2c2d}#ScrollLeftButton,#ScrollRightButton,#ScrollUpButton,#ScrollDownButton{margin:0;min-width:16}#ScrollLeftButton{border-right:1 solid #212223;image:url('../Default/imgs/white/scroll-left.svg')}#ScrollRightButton{border-left:1 solid #212223;margin-left:3;image:url('../Default/imgs/white/scroll-right.svg')}#ScrollUpButton{image:url('../Default/imgs/white/scroll-up.svg')}#ScrollDownButton{image:url('../Default/imgs/white/scroll-down.svg')}#keyFrameNavigator{background:none;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')}#keyFrameNavigator #PreviousKey:disabled{image:url('../Default/imgs/white/prevkey_disabled.svg')}#keyFrameNavigator #NextKey{image:url('../Default/imgs/white/nextkey.svg')}#keyFrameNavigator #NextKey:hover{image:url('../Default/imgs/white/nextkey_over.svg')}#keyFrameNavigator #NextKey:disabled{image:url('../Default/imgs/white/nextkey_disabled.svg')}.treeview,QTreeWidget,QTreeView,#FunctionEditorTree{background-color:#2d2f30;alternate-background-color:#323435;border:0;margin:0;outline:0}.treeview::item:selected,QTreeWidget::item:selected,QTreeView::item:selected,#FunctionEditorTree::item:selected{background-color:#5385a6;color:#fff}.treeview::branch:adjoins-item,QTreeWidget::branch:adjoins-item,QTreeView::branch:adjoins-item,#FunctionEditorTree::branch:adjoins-item{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/white/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/white/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/white/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/white/treebranch-open.svg') no-repeat;background-position:center center;border-image:none;image:none}QListView{outline:0;background:#2d2f30;alternate-background-color:#323435}#TabBarContainer{background-color:#323435}.Button,QPushButton,.ComboBox,.ComboBox:checked,QComboBox,QComboBox:checked{background-color:#616467;border:1 solid #414345;border-radius:2;color:#e4e5e9;margin:0;padding:3 15}.Button:hover,QPushButton:hover,.ComboBox:hover,#ViewerFpsSlider::sub-line:horizontal:hover,#ViewerFpsSlider::add-line:horizontal:hover,QComboBox:hover{background-color:#6e7174;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;color:#e4e5e9}.Button:checked,QPushButton:checked{background-color:#2b2c2d;border-color:#262728;color:#e4e5e9}.Button:checked:hover,QPushButton:checked:hover{background-color:#303133}.Button:checked:hover:pressed,QPushButton:checked:hover:pressed{background:#2b2c2d}.Button:disabled,QPushButton:disabled,.ComboBox:disabled,#ViewerFpsSlider::sub-line:horizontal:disabled,#ViewerFpsSlider::add-line:horizontal:disabled,QComboBox:disabled{background-color:#4d5052;border-color:#414345;color:#808080}#PushButton_NoPadding{padding:3}.ComboBox,.ComboBox:checked,QComboBox,QComboBox:checked{padding:1 0 1 4;margin:1 0}.ComboBox::drop-down,QComboBox::drop-down{image:url('../Default/imgs/white/combo_downarrow.svg');image-position:center center;width:16}.ComboBox::drop-down:disabled,QComboBox::drop-down:disabled{image:url('../Default/imgs/white/combo_downarrow_disabled.svg')}.ComboBox QAbstractItemView,QComboBox QAbstractItemView{background-color:#414345;border:1 solid #212223;selection-background-color:#5385a6;selection-color:#fff}.LineEdit,QPlainTextEdit,QLineEdit,#TaskSheetItem,#tasksRemoveBox,#tasksAddBox{background-color:#28292b;border:1 solid #262728;border-radius:2;color:#d6d8dd;selection-background-color:#5385a6;selection-color:#fff;padding:0 0 0 1}.LineEdit:focus,QPlainTextEdit:focus,QLineEdit:focus,#TaskSheetItem:focus,#tasksRemoveBox:focus,#tasksAddBox:focus{background-color:#28292b;border-color:#5385a6;color:#d6d8dd}.LineEdit:disabled,QPlainTextEdit:disabled,QLineEdit:disabled,#TaskSheetItem:disabled,#tasksRemoveBox:disabled,#tasksAddBox:disabled{background-color:#353638;border-color:#333537;color:#808080}.CheckBox,QCheckBox{color:#d6d8dd}.CheckBox:hover,QCheckBox:hover,.RadioButton:hover,QRadioButton:hover{color:#fff}.CheckBox:disabled,QCheckBox:disabled{color:#808080}.CheckBox::indicator,QMenu::indicator,QCheckBox::indicator,.GroupBox::indicator,QGroupBox::indicator{background-color:#28292b;border:1 solid #262728;border-radius:2;height:9;padding:1;width:9}.CheckBox::indicator:hover,QMenu::indicator:hover,.CheckBox::indicator:checked:hover,QCheckBox::indicator:hover,.GroupBox::indicator:hover,QMenu::indicator:checked:hover,QCheckBox::indicator:checked:hover,.GroupBox::indicator:checked:hover,QGroupBox::indicator:hover,QGroupBox::indicator:checked:hover{background-color:#28292b;border-color:#5385a6}.CheckBox::indicator:checked,QMenu::indicator:checked,QCheckBox::indicator:checked,.GroupBox::indicator:checked,QGroupBox::indicator:checked{background-color:#28292b;border-color:#262728;image:url('../Default/imgs/white/checkmark.svg')}.CheckBox::indicator:checked:disabled,QMenu::indicator:checked:disabled,QCheckBox::indicator:checked:disabled,.GroupBox::indicator:checked:disabled,QGroupBox::indicator:checked:disabled{background-color:#353638;border-color:#353638;image:url('../Default/imgs/white/checkmark_disabled.svg')}.CheckBox::indicator:disabled,QMenu::indicator:disabled,QCheckBox::indicator:disabled,.GroupBox::indicator:disabled,QGroupBox::indicator:disabled{background-color:#353638;border-color:#353638}.RadioButton::indicator:unchecked,QRadioButton::indicator:unchecked,#CameraSettingsRadioButton_Small::indicator:unchecked{image:url('../Default/imgs/white/radiobutton_unchecked.svg');image-position:center center}.RadioButton::indicator:checked,QRadioButton::indicator:checked,#CameraSettingsRadioButton_Small::indicator:checked{image:url('../Default/imgs/white/radiobutton_checked.svg');image-position:center center}.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:#fff}.GroupBox::title:disabled,QGroupBox::title:disabled{color:#808080}.GroupBox::indicator,QGroupBox::indicator{subcontrol-origin:margin;margin-top:2}.GroupBox:disabled,QGroupBox:disabled{color:#808080}.Slider::groove:horizontal,QSlider::groove:horizontal{background-color:transparent;background-image:url('../Default/imgs/white/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/white/slider-groove_disabled.svg')}.Slider::handle:horizontal,QSlider::handle:horizontal{width:10;margin:-2 -1;image:url('../Default/imgs/white/slider-handle.svg')}.Slider::handle:horizontal:disabled,QSlider::handle:horizontal:disabled{image:url('../Default/imgs/white/slider-handle_disabled.svg')}#IntPairField,#DoublePairField{qproperty-LightLineColor:#262728;qproperty-LightLineEdgeColor:#262728;qproperty-DarkLineColor:#262728;qproperty-MiddleLineColor:#262728;qproperty-HandleLeftPixmap:url("../Default/imgs/white/slider-handle.svg");qproperty-HandleRightPixmap:url("../Default/imgs/white/slider-handle.svg");qproperty-HandleLeftGrayPixmap:url("../Default/imgs/white/slider-handle_disabled.svg");qproperty-HandleRightGrayPixmap:url("../Default/imgs/white/slider-handle_disabled.svg")}#DirTreeView{background-color:#2d2f30;alternate-background-color:#2d2f30;border:1 solid #212223;border-right:0}DvItemViewerPanel{qproperty-TextColor:#d6d8dd;qproperty-AlternateBackground:#3a3b3d;qproperty-SelectedTextColor:#fff;qproperty-FolderTextColor:#9fdaff;qproperty-SelectedItemBackground:#5385a6}#FileBrowser DvItemViewerPanel,#SceneCast DvItemViewerPanel{background-color:#414345}#FileBrowser #castFrame,#SceneCast #castFrame{border-top:1 solid #212223;border-right:1 solid #212223;border-bottom:1 solid #212223;margin:0}#FileBrowser QToolButton,#SceneCast QToolButton{padding:1}DvDirTreeView{qproperty-TextColor:#d6d8dd;qproperty-SelectedTextColor:#fff;qproperty-SelectedItemBackground:#5385a6;qproperty-FolderTextColor:#9fdaff;qproperty-SelectedFolderTextColor:#fff;alternate-background-color:#323435;background-color:#2d2f30;border:1 solid #212223}#FileDoesNotExistLabel{color:#f00}#SceneCast QToolBar{border-top:1 solid #212223}#SceneCast QToolButton{margin:3 1 2 1;padding:1}#CastBrowser{border:0;margin:0}#FilmStrip QComboBox{border-radius:0;border-width:0}#FilmStrip QComboBox QAbstractItemView{background-color:#414345}#CleanupSettings #CleanupSettingsFrame{margin-top:2;margin-bottom:4}#CleanupSettings QGroupBox{margin-bottom:3}ParamsPage{qproperty-TextColor:#d6d8dd}#CameraSettingsButton{padding:2}#CameraSettingsRadioButton:hover{background:none}#CameraSettingsRadioButton::indicator{border:1 solid rgba(255,255,255,0);height:18;padding:0;width:18}#CameraSettingsRadioButton::indicator:unchecked{image:url('../Default/imgs/white/lock_off.svg')}#CameraSettingsRadioButton::indicator:checked{background-color:#C34040;border-color:#C34040;image:url('../Default/imgs/white/lock_on.svg')}#CameraSettingsRadioButton::indicator:checked:hover{background-color:#d57a7a;border-color:#d57a7a}#CameraSettingsDPI{color:#9fdaff}#CameraSettingsRadioButton_Small{padding:0}#CameraSettingsRadioButton_Small::indicator{background-color:transparent;border:0;height:21;margin:0;width:11}#ForceSquaredPixelButton{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')}#OutputSettingsLabel{color:#9fdaff}PencilTestPopup{min-height:730px;min-width:512px}#MatchLineButton{background-color:#66696c}#MatchLineButton:checked{background-color:#8c9093;border:2 solid #5385a6;border-radius:2}#LargeSizedText{font-size:17px}#StartupLabel{padding:3}#StartupLabel:hover{background:#5a5d5f}QStatusBar{background-color:#c0c0c0}QStatusBar::item{border:0}QStatusBar QLabel{background-color:#c0c0c0}QStatusBar #StatusBarLabel{background-color:#fff;padding:1 3}#TitleTxtLabel{color:#9fdaff}#StyleEditor QPushButton{margin:2 1;padding:0}#StyleEditor #TabBarContainer{margin-left:-4}#StyleEditor #bottomWidget{border-top:1 solid #212223;padding:3 2 8 3}#StyleEditor #bottomWidget QPushButton{padding:3 5}#StyleEditorTabBar::tab::first{border-left:1 solid #212223}#HexagonalColorWheel{qproperty-BGColor:#414345}#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:18}#colorSliderAddButton{image:url('../Default/imgs/white/scroll-right.svg')}#colorSliderSubButton{image:url('../Default/imgs/white/scroll-left.svg')}#PlainColorPageParts{border-bottom:1 solid #212223}#PlainColorPageParts QLineEdit{max-width:35}PaletteViewer DvScrollWidget QPushButton{border-top:0;margin-bottom:1;max-width:15;min-width:15}PaletteViewer DvScrollWidget #ScrollLeftButton{border-radius:0;margin-bottom:1;max-width:16;min-width:16}PaletteViewer DvScrollWidget #ScrollRightButton{border-radius:0;margin-left:1;margin-bottom:1;max-width:16;min-width:16}PaletteViewer QToolBar{background:none;border-bottom:1 solid #212223;padding:0;margin:0}PaletteViewer QToolBar::separator:horizontal{margin:0}PaletteViewer QToolBar QToolButton{margin:0 0 1 0;padding:1 0 2 0}#PageViewer{qproperty-TextColor:#d6d8dd}#PaletteLockButton{border-radius:0;margin:0 0 1 1}#PaletteLockButton:checked{background-color:#C34040;border-color:#C34040}#PaletteLockButton:checked:hover{background-color:#d57a7a;border-color:#d57a7a}#WordButton{padding-right:0;padding-left:0}QDialog{background-color:#414345}QDialog #dialogButtonFrame{background-color:#37393a;border-top:1 solid #212223}QDialog #dialogButtonFrame QPushButton{border-color:#37393a;outline:0}QDialog #dialogButtonFrame QPushButton:focus{background-color:#5385a6;border-color:#37393a;color:#fff}QDialog #dialogButtonFrame QPushButton:focus:hover{background-color:#6c98b6}QDialog #dialogButtonFrame QPushButton:focus:pressed{background-color:#2b2c2d;border-color:#262728;color:#e4e5e9}#SceneSettings QLabel{color:#9fdaff}#PreferencesPopup QListWidget{background-color:#2d2f30;alternate-background-color:#2d2f30;border:1 solid #212223;font-size:13px}#PreferencesPopup QListWidget::item{border:0;padding:3}#PreferencesPopup QListWidget::item:hover{color:#d6d8dd;background-color:rgba(255,255,255,0.15)}#PreferencesPopup QListWidget::item:selected{background-color:#5385a6;color:#fff}#ShortcutTree{border:1 solid #212223}#ShortcutTree::item{padding:1 0}#ShortcutTree QScrollBar:vertical{width:16;margin-right:-1}ProjectPopup QLabel{color:#9fdaff}#GearButton{qproperty-icon:url('../Default/imgs/white/gear.svg')}#SubfolderButton{qproperty-icon:url('../Default/imgs/white/subfolder.svg');padding-left:6px;padding-right:6px}#SubcameraButton{qproperty-icon:url('../Default/imgs/white/subcamera.svg');padding-left:6px;padding-right:6px}SchematicViewer{qproperty-TextColor:#d6d8dd;qproperty-VerticalLineColor:#222;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-TableColor:#62628c;qproperty-ActiveCameraColor:#2d7dca;qproperty-OtherCameraColor:#6c797b;qproperty-GroupColor:#3b6e9c;qproperty-PegColor:#9f6e3c;qproperty-SplineColor:#6a9d1c;qproperty-ActiveOutputColor:#2d7dca;qproperty-OtherOutputColor:#6c797b;qproperty-XsheetColor:#62628c;qproperty-NormalFxColor:#6a7e96;qproperty-MacroFxColor:#815c79;qproperty-ImageAdjustFxColor:#656287;qproperty-LayerBlendingFxColor:#4f757d;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-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')}#SchematicBottomFrame{background-color:#414345;border:0;margin:0;padding:0}#SchematicBottomFrame QToolBar::separator:horizontal{margin:0}#SchematicBottomFrame QToolBar QToolButton{padding:0;margin:2}#SchematicSceneViewer{background-color:#353638;border-bottom:1 solid #212223}#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;padding:3 0}FxSettings QToolBar QToolBar{border:0}#FxSettingsLabel{color:#a0e680}#FxSettingsHelpButton{background-color:#80a0dc;color:#000;padding-top:0;padding-bottom:0}#FxSettingsHelpButton:hover{background-color:#a8bee7}#ScriptConsole{font-family:'Courier New',monospace;border:0;color:#000000;padding:3}#ScriptConsole QFrame{background-color:#dcdcdc}#ScriptConsole TPanelTitleBar{background-color:#323435}#TaskSheetItemLabel{color:#d6d8dd}#Tasks QToolBar{border-bottom:1 solid #212223;margin:0;padding:0}#Tasks QToolBar QToolButton{margin:2 2 3 2}#ToolBar QToolBar{padding-left:2}#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")}#EditToolLockButton{spacing:0}#EditToolLockButton:hover{background:none}#EditToolLockButton::indicator{border:1 solid rgba(255,255,255,0);height:18;padding:0;width:18}#EditToolLockButton::indicator:unchecked{image:url('../Default/imgs/white/lock_off.svg')}#EditToolLockButton::indicator:checked{background-color:#C34040;border-color:#C34040;image:url('../Default/imgs/white/lock_on.svg')}#EditToolLockButton::indicator:checked:hover{background-color:#d57a7a;border-color:#d57a7a}PopupButton::menu-indicator{border-left:0;height:17;image:url('../Default/imgs/white/combo_downarrow.svg');width:10}PopupButton::menu-indicator:hover{image:url('../Default/imgs/white/combo_downarrow.svg')}PopupButton::menu-indicator:disabled{image:url('../Default/imgs/white/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:3;padding-right:3}QToolBar#WidePaddingToolBar QToolButton{padding-left:6;padding-right:6}#CommandBar{margin:0;padding:0;border:0}#CommandBar::separator:horizontal{margin-right:3;margin-left:3}#expandButton:checked{background-color:transparent;border-color:transparent;color:#d6d8dd}#expandButton:checked:hover{background-color:#6e7174;border-color:#6e7174}#expandButton:checked:pressed{background-color:#2b2c2d;border-color:#262728}#ComboViewerPanel Toolbar{border-bottom:1 solid #212223}#ComboViewerPanel Toolbar::separator:horizontal{margin:0 0 0 2}#ComboViewerPanel Toolbar QToolButton{margin:2 0 3 2}#ComboViewerToolOptions{border-bottom:1 solid #212223}#ComboViewer #ToolBarContainer,#ViewerPanel #ToolBarContainer,FlipBook #ToolBarContainer{background-color:transparent;border-top:2 solid #212223;border-bottom:1 solid #212223;padding-right:-1}#flipCustomize{margin-left:3}#flipCustomize::menu-button{background-color:transparent;width:35}#flipCustomize::menu-arrow{image:none}QToolBar#FlipConsolePlayToolBar::separator:horizontal{margin:0 3}QToolBar#FlipConsolePlayToolBar QToolButton{margin-top:2;margin-bottom:2;height:16;padding-left:1;padding-right:1}#ViewerFpsSlider{background-color:transparent;background-image:url('../Default/imgs/white/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:#616467;border:1 solid #414345;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:#616467;border:1 solid #414345;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:#999c9f;border:1 solid #999c9f;border-radius:2;margin:2 0 3 0;min-width:9;width:9;max-width:9}FlipSlider{qproperty-PBHeight:15;qproperty-PBOverlay:url('../Default/imgs/white/flipslider.svg');qproperty-PBColorMarginLeft:1;qproperty-PBColorMarginTop:2;qproperty-PBColorMarginRight:1;qproperty-PBColorMarginBottom:2;qproperty-PBMarker:url('../Default/imgs/white/flipmarker.svg');qproperty-PBMarkerMarginLeft:3;qproperty-PBMarkerMarginRight:3;qproperty-notStartedColor:rgba(205,101,101,0.78);qproperty-startedColor:#1abc3f;qproperty-baseColor:#28292b;qproperty-finishedColor:#28292b}Ruler{qproperty-ParentBGColor:#414345;qproperty-ScaleColor:#d6d8dd}#RulerToolOptionValues{color:#000}#xsheetArea,#ScrollArea{background-color:#2d2f30;border:0}#xsheetScrollArea{border:0}#cornerWidget QToolButton{padding:0}#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}XsheetViewer{qproperty-TextColor:#d6d8dd;qproperty-BGColor:#353638;qproperty-LightLineColor:#262728;qproperty-MarkerLineColor:#1E96C4;qproperty-VerticalLineColor:#222;qproperty-VerticalLineHeadColor:#777b7f;qproperty-PreviewFrameTextColor:#9fdaff;qproperty-CurrentRowBgColor:#506082;qproperty-OnionSkinAreaBgColor:#303133;qproperty-EmptyColumnHeadColor:#5a5d60;qproperty-SelectedColumnTextColor:#E66464;qproperty-EmptyCellColor:#393b3d;qproperty-NotEmptyColumnColor:#414345;qproperty-SelectedEmptyCellColor:#64676a;qproperty-LevelColumnColor:#4C6E4C;qproperty-LevelColumnBorderColor:#8FB38F;qproperty-SelectedLevelColumnColor:#678667;qproperty-VectorColumnColor:#7B7B4C;qproperty-VectorColumnBorderColor:#BBBB9A;qproperty-SelectedVectorColumnColor:#949466;qproperty-ChildColumnColor:#6A526B;qproperty-ChildColumnBorderColor:#B1A3B3;qproperty-SelectedChildColumnColor:#816e82;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-SoundColumnHlColor:#34FE5E;qproperty-SoundColumnTrackColor:#B6C29D;qproperty-ColumnHeadPastelizer:#000;qproperty-SelectedColumnHead:#506082;qproperty-LightLightBGColor:#393b3d;qproperty-LightBGColor:#eaebec;qproperty-DarkBGColor:#dbdcdd;qproperty-DarkLineColor:#8e9194;qproperty-XsheetColumnNameBgColor:rgba(0,0,0,0);qproperty-XsheetDragBarHighlightColor:rgba(255,255,255,0.5);qproperty-XsheetPreviewButtonBgOnColor:#c8c864;qproperty-XsheetPreviewButtonOnImage:url('../Default/imgs/white/x_prev_eye_on.svg');qproperty-XsheetPreviewButtonBgOffColor:rgba(255,255,255,0);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-XsheetCamstandButtonOffImage:url('../Default/imgs/white/x_table_view_off.svg');qproperty-XsheetLockButtonBgOnColor:rgba(255,255,255,0.3);qproperty-XsheetLockButtonOnImage:url('../Default/imgs/white/x_lock_on.svg');qproperty-XsheetLockButtonBgOffColor:rgba(255,255,255,0);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-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}#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}#FunctionEditor QToolBar{border-bottom:1 solid #212223}#FunctionEditor QToolBar QToolBar{border:0}#FunctionEditor QToolBar QLabel{margin-left:5}#FunctionEditor QToolBar QToolButton{height:18}#FunctionEditorTree{border-top:1 solid #212223}FunctionTreeView{qproperty-TextColor:#d6d8dd;qproperty-CurrentTextColor:#E66464}FunctionPanel{qproperty-BGColor:#343638;qproperty-ValueLineColor:#28292b;qproperty-FrameLineColor:#28292b;qproperty-OtherCurvesColor:#7f8386;qproperty-RulerBackground:#2d2e30;qproperty-TextColor:#d6d8dd;qproperty-SubColor:#000;qproperty-SelectedColor:#FFA500}SpreadsheetViewer{qproperty-LightLightBGColor:#393b3d;qproperty-CurrentRowBgColor:#506082;qproperty-LightLineColor:#262728;qproperty-MarkerLineColor:#1E96C4;qproperty-BGColor:#414345;qproperty-VerticalLineColor:#222;qproperty-KeyFrameColor:#995d1d;qproperty-KeyFrameBorderColor:#c9b04b;qproperty-SelectedKeyFrameColor:#be772b;qproperty-InBetweenColor:#666250;qproperty-InBetweenBorderColor:#cdcec8;qproperty-SelectedInBetweenColor:#7d7a6c;qproperty-SelectedEmptyColor:#64676a;qproperty-SelectedSceneRangeEmptyColor:#6d7073;qproperty-TextColor:#d6d8dd;qproperty-ColumnHeaderBorderColor:#777b7f;qproperty-SelectedColumnTextColor:#E66464}#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} \ No newline at end of file diff --git a/stuff/config/qss/Dark/Dark.qss b/stuff/config/qss/Dark/Dark.qss index b42a3d6..b81005f 100644 --- a/stuff/config/qss/Dark/Dark.qss +++ b/stuff/config/qss/Dark/Dark.qss @@ -1 +1 @@ -.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:#191919;border-color:#141414;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:#191919;border-color:#141414}.button-show:checked:hover,#LoadLevelShowButton:checked:hover,#CleanupSettingsShowButton:checked:hover,#OutputSettingsShowButton:checked:hover,#FxSettingsPreviewShowButton:checked:hover{background-color:#1e1e1e}.button-tool,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);border-radius:2;color:#dbdbdb;margin:1;padding:0}.button-tool:hover,QToolButton:hover,#CameraSettingsRadioButton::indicator:hover,#ForceSquaredPixelButton:hover,#colorSliderAddButton:hover,#colorSliderSubButton:hover,#SchematicBottomFrame QToolBar QToolButton:hover,#EditToolLockButton::indicator:hover,#flipCustomize:hover{background-color:#5e5e5e;border-color:#5e5e5e;color:#dbdbdb}.button-tool:pressed,QToolButton:pressed,#CameraSettingsRadioButton::indicator:pressed,#ForceSquaredPixelButton:pressed,#colorSliderAddButton:pressed,#colorSliderSubButton:pressed,#SchematicBottomFrame QToolBar QToolButton:pressed,#EditToolLockButton::indicator:pressed,#flipCustomize:pressed{background-color:#191919;border-color:#141414;color:#dbdbdb}.button-tool:checked,QToolButton:checked,#CameraSettingsRadioButton::indicator:checked,#ForceSquaredPixelButton:checked,#SchematicBottomFrame QToolBar QToolButton:checked,#EditToolLockButton::indicator:checked,#flipCustomize:checked{background-color:#5385a6;border-color:#5385a6;color:#fff}.button-tool:checked:hover,QToolButton:checked:hover,#CameraSettingsRadioButton::indicator:checked:hover,#ForceSquaredPixelButton:checked:hover,#SchematicBottomFrame QToolBar QToolButton:checked:hover,#EditToolLockButton::indicator:checked:hover,#flipCustomize:checked:hover{background-color:#6c98b6;border-color:#6c98b6}.button-tool:disabled,QToolButton:disabled,#CameraSettingsRadioButton::indicator:disabled,#ForceSquaredPixelButton:disabled,#SchematicBottomFrame QToolBar QToolButton:disabled,#EditToolLockButton::indicator:disabled,#flipCustomize:disabled{color:#808080}.button-flat,PaletteViewer QToolBar QToolButton{background-color:none;border:0;border-radius:0;margin:0}.button-flat:hover,PaletteViewer QToolBar QToolButton:hover{background-color:#5e5e5e}.button-flat:pressed,PaletteViewer QToolBar QToolButton:pressed{background-color:#161616}.frame,.GroupBox,#LoadLevelFrame,#PsdSettingsGroupBox,#CleanupSettingsFrame,#OutputSettingsBox,#OutputSettingsCameraBox,#SolidLineFrame,#FunctionParametersPanel,QGroupBox{border:1 solid #161616;border-radius:2}.tab-container,#TabBarContainer{background-color:transparent;qproperty-BottomAboveLineColor:#262626;qproperty-BottomBelowLineColor:#161616}.tab-flat,#StyleEditorTabBar::tab,#PaletteTabBar::tab,#FxSettingsTabBar::tab{background-color:#262626;border-right:1 solid #161616;border-bottom:1 solid #161616;color:#8b8b8b;padding:3 4 3 4}.tab-flat:hover,#StyleEditorTabBar::tab:hover,#PaletteTabBar::tab:hover,#FxSettingsTabBar::tab:hover{background-color:#303030;color:#8b8b8b}.tab-flat:selected,#StyleEditorTabBar::tab:selected,#PaletteTabBar::tab:selected,#FxSettingsTabBar::tab:selected{background-color:#303030;color:#f4f4f4;border-bottom-color:#303030}.tab-flat:only-one,#StyleEditorTabBar::tab:only-one,#PaletteTabBar::tab:only-one,#FxSettingsTabBar::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:#8b8b8b;margin:3 -1 0 0;padding:2 7 1 7}.tab-round:hover{background-color:#303030;color:#8b8b8b}.tab-round:selected{background-color:#303030;border-top-right-radius:2;border-top-left-radius:2;border-bottom-color:#303030;color:#f4f4f4;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}QWidget{background-color:#303030;color:#cecece}QWidget:disabled{color:#808080}QFrame{border:0;margin:0;padding:0}QToolTip,#helpToolTip{background-color:#fff;border:1 solid #000;color:#000;padding:1 1}#DockSeparator,QMainWindow::separator,QSplitter::handle{background-color:#0c0c0c;height:4;width:4}#TDockPlaceholder{background-color:#F77272}TPanel{background-color:#0c0c0c}#TopBar{background:#303030;border:0;border-bottom:1 solid #161616;height:21}#TopBar #EditToolLockButton{background:#303030;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:#303030;margin-bottom:1}#StackedMenuBar{border:0;margin:0;padding:0}QMenuBar{background-color:#303030;border:0}QMenuBar::item{background-color:#303030;border-left:1 solid #303030;margin:0;padding:3 5}QMenuBar::item:selected{background-color:rgba(255,255,255,0.15);color:#cecece}QMenuBar::item:pressed{background-color:#5385a6;color:#fff}#TopBarTab{margin:0;padding:0}#TopBarTab::tab{background-color:#262626;border-top:1 solid #161616;border-right:1 solid #161616;color:#8b8b8b;margin:0 0 0 0;padding:2 8 3 8}#TopBarTab::tab:hover{background-color:#303030;color:#8b8b8b}#TopBarTab::tab:selected{background-color:#303030;color:#f4f4f4}#TopBarTab::tab:first{border-left:1 solid #161616}#TopBarTab::tab:last{border-right:1 solid #161616}QMenu{background-color:#303030;border:1 solid #161616;padding:2 0}QMenu::item{padding:3 28}QMenu::item:selected{background-color:#5385a6;color:#fff}QMenu::item:checked{color:#cecece}QMenu::item:checked:selected{background-color:#5385a6;color:#fff}QMenu::item:disabled{background:none;color:#808080}QMenu::item:disabled:selected{border-color:transparent}QMenu::separator{border-top:1 solid #161616;height:0;margin:2 0}QMenu::icon{border-radius:2;margin:0 0 0 3;padding:1}QMenu::icon:checked{background-color:#5385a6}QMenu::indicator{margin-left:7}TPanelTitleBar{background-color:#262626;border-color:#161616;border-style:solid;border-width:0 0 1 0;height:20;min-height:20;qproperty-TitleColor:#7d7d7d;qproperty-ActiveTitleColor:#fff;qproperty-BorderPixmap:url('none');qproperty-ActiveBorderPixmap:url('../Default/imgs/white/none');qproperty-FloatBorderPixmap:url('none');qproperty-FloatActiveBorderPixmap:url('../Default/imgs/white/none')}QAbstractScrollArea::corner{background-color:#262626}QScrollBar{background-color:#262626;border:0}QScrollBar:horizontal{height:16;margin:0}QScrollBar:vertical{margin:0;width:16}QScrollBar::handle{border:1 solid #3a3a3a;border-radius:4}QScrollBar::handle:horizontal:hover,QScrollBar::handle:vertical:hover{background-color:#4f4f4f;border-color:#4f4f4f}QScrollBar::handle:horizontal:pressed,QScrollBar::handle:vertical:pressed{background-color:#636363;border-color:#636363}QScrollBar::handle:horizontal{background-color:#3a3a3a;margin:3 16;min-width:20}QScrollBar::handle:vertical{background-color:#3a3a3a;margin:16 3;min-height:20}QScrollBar::add-line{subcontrol-origin:margin;border:0}QScrollBar::add-line:horizontal{subcontrol-position:right;background-color:#262626;margin:0;width:16}QScrollBar::add-line:vertical{subcontrol-position:bottom;background-color:#262626;margin:0;height:16}QScrollBar::sub-line{border:0;subcontrol-origin:margin}QScrollBar::sub-line:horizontal{subcontrol-position:left;background-color:#262626;margin:0;width:16}QScrollBar::sub-line:vertical{subcontrol-position:top;background-color:#262626;margin:0;height:16}QScrollBar::up-arrow:vertical{image:url('../Default/imgs/white/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/white/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/white/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/white/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{padding:0}QToolBar::separator:horizontal{border-left:1 solid #161616;margin:0 1;width:0}QToolBar::separator:vertical{border-top:1 solid #161616;height:0;margin:1 0}QToolBar QLabel{margin-top:1}QToolBar QToolBar{border:0}QToolButton::menu-indicator{image:none}QToolButton::menu-button{border-image:none}.DvScrollWidget QPushButton,DvScrollWidget QPushButton,#ScrollLeftButton QPushButton,#ScrollRightButton QPushButton,#ScrollUpButton QPushButton,#ScrollDownButton QPushButton{background-color:#515151;border:0 solid red;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:#5e5e5e}.DvScrollWidget QPushButton:pressed,DvScrollWidget QPushButton:pressed,#ScrollLeftButton QPushButton:pressed,#ScrollRightButton QPushButton:pressed,#ScrollUpButton QPushButton:pressed,#ScrollDownButton QPushButton:pressed{background-color:#191919}#ScrollLeftButton,#ScrollRightButton,#ScrollUpButton,#ScrollDownButton{margin:0;min-width:16}#ScrollLeftButton{border-right:1 solid #161616;image:url('../Default/imgs/white/scroll-left.svg')}#ScrollRightButton{border-left:1 solid #161616;margin-left:3;image:url('../Default/imgs/white/scroll-right.svg')}#ScrollUpButton{image:url('../Default/imgs/white/scroll-up.svg')}#ScrollDownButton{image:url('../Default/imgs/white/scroll-down.svg')}#keyFrameNavigator{background:none;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')}#keyFrameNavigator #PreviousKey:disabled{image:url('../Default/imgs/white/prevkey_disabled.svg')}#keyFrameNavigator #NextKey{image:url('../Default/imgs/white/nextkey.svg')}#keyFrameNavigator #NextKey:hover{image:url('../Default/imgs/white/nextkey_over.svg')}#keyFrameNavigator #NextKey:disabled{image:url('../Default/imgs/white/nextkey_disabled.svg')}.treeview,QTreeWidget,QTreeView,#FunctionEditorTree{background-color:#262626;alternate-background-color:#2b2b2b;border:0;margin:0;outline:0}.treeview::item:selected,QTreeWidget::item:selected,QTreeView::item:selected,#FunctionEditorTree::item:selected{background-color:#5385a6;color:#fff}.treeview::branch:adjoins-item,QTreeWidget::branch:adjoins-item,QTreeView::branch:adjoins-item,#FunctionEditorTree::branch:adjoins-item{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/white/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/white/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/white/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/white/treebranch-open.svg') no-repeat;background-position:center center;border-image:none;image:none}QListView{outline:0;background:#262626;alternate-background-color:#2b2b2b}#TabBarContainer{background-color:#262626}.Button,QPushButton,.ComboBox,.ComboBox:checked,QComboBox,QComboBox:checked{background-color:#515151;border:1 solid #303030;border-radius:2;color:#dbdbdb;margin:0;padding:3 15}.Button:hover,QPushButton:hover,.ComboBox:hover,#ViewerFpsSlider::sub-line:horizontal:hover,#ViewerFpsSlider::add-line:horizontal:hover,QComboBox:hover{background-color:#5e5e5e;border-color:#303030;color:#dbdbdb}.Button:pressed,QPushButton:pressed,#ViewerFpsSlider::sub-line:horizontal:pressed,#ViewerFpsSlider::add-line:horizontal:pressed{background-color:#191919;border-color:#141414;color:#dbdbdb}.Button:checked,QPushButton:checked{background-color:#191919;border-color:#141414;color:#dbdbdb}.Button:checked:hover,QPushButton:checked:hover{background-color:#1e1e1e}.Button:checked:hover:pressed,QPushButton:checked:hover:pressed{background:#191919}.Button:disabled,QPushButton:disabled,.ComboBox:disabled,#ViewerFpsSlider::sub-line:horizontal:disabled,#ViewerFpsSlider::add-line:horizontal:disabled,QComboBox:disabled{background-color:#3d3d3d;border-color:#303030;color:#808080}#PushButton_NoPadding{padding:3}.ComboBox,.ComboBox:checked,QComboBox,QComboBox:checked{padding:1 0 1 4;margin:1 0}.ComboBox::drop-down,QComboBox::drop-down{image:url('../Default/imgs/white/combo_downarrow.svg');image-position:center center;width:16}.ComboBox::drop-down:disabled,QComboBox::drop-down:disabled{image:url('../Default/imgs/white/combo_downarrow_disabled.svg')}.ComboBox QAbstractItemView,QComboBox QAbstractItemView{background-color:#303030;border:1 solid #161616;selection-background-color:#5385a6;selection-color:#fff}.LineEdit,QPlainTextEdit,QLineEdit,#TaskSheetItem,#tasksRemoveBox,#tasksAddBox{background-color:#1c1c1c;border:1 solid #3d3d3d;border-radius:2;color:#cecece;selection-background-color:#5385a6;selection-color:#fff;padding:0 0 0 1}.LineEdit:focus,QPlainTextEdit:focus,QLineEdit:focus,#TaskSheetItem:focus,#tasksRemoveBox:focus,#tasksAddBox:focus{background-color:#1c1c1c;border-color:#5385a6;color:#cecece}.LineEdit:disabled,QPlainTextEdit:disabled,QLineEdit:disabled,#TaskSheetItem:disabled,#tasksRemoveBox:disabled,#tasksAddBox:disabled{background-color:#262626;border-color:#363636;color:#808080}.CheckBox,QCheckBox{color:#cecece}.CheckBox:hover,QCheckBox:hover,.RadioButton:hover,QRadioButton:hover{color:#fff}.CheckBox:disabled,QCheckBox:disabled{color:#808080}.CheckBox::indicator,QMenu::indicator,QCheckBox::indicator,.GroupBox::indicator,QGroupBox::indicator{background-color:#1c1c1c;border:1 solid #3d3d3d;border-radius:2;height:9;padding:1;width:9}.CheckBox::indicator:hover,QMenu::indicator:hover,.CheckBox::indicator:checked:hover,QCheckBox::indicator:hover,.GroupBox::indicator:hover,QMenu::indicator:checked:hover,QCheckBox::indicator:checked:hover,.GroupBox::indicator:checked:hover,QGroupBox::indicator:hover,QGroupBox::indicator:checked:hover{background-color:#1c1c1c;border-color:#5385a6}.CheckBox::indicator:checked,QMenu::indicator:checked,QCheckBox::indicator:checked,.GroupBox::indicator:checked,QGroupBox::indicator:checked{background-color:#1c1c1c;border-color:#3d3d3d;image:url('../Default/imgs/white/checkmark.svg')}.CheckBox::indicator:checked:disabled,QMenu::indicator:checked:disabled,QCheckBox::indicator:checked:disabled,.GroupBox::indicator:checked:disabled,QGroupBox::indicator:checked:disabled{background-color:#262626;border-color:#191919;image:url('../Default/imgs/white/checkmark_disabled.svg')}.CheckBox::indicator:disabled,QMenu::indicator:disabled,QCheckBox::indicator:disabled,.GroupBox::indicator:disabled,QGroupBox::indicator:disabled{background-color:#262626;border-color:#191919}.RadioButton::indicator:unchecked,QRadioButton::indicator:unchecked,#CameraSettingsRadioButton_Small::indicator:unchecked{image:url('../Default/imgs/white/radiobutton_unchecked.svg');image-position:center center}.RadioButton::indicator:checked,QRadioButton::indicator:checked,#CameraSettingsRadioButton_Small::indicator:checked{image:url('../Default/imgs/white/radiobutton_checked.svg');image-position:center center}.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:#fff}.GroupBox::title:disabled,QGroupBox::title:disabled{color:#808080}.GroupBox::indicator,QGroupBox::indicator{subcontrol-origin:margin;margin-top:2}.GroupBox:disabled,QGroupBox:disabled{color:#808080}.Slider::groove:horizontal,QSlider::groove:horizontal{background-color:transparent;background-image:url('../Default/imgs/white/slider-groove_dark.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/white/slider-groove_disabled_dark.svg')}.Slider::handle:horizontal,QSlider::handle:horizontal{width:10;margin:-2 -1;image:url('../Default/imgs/white/slider-handle.svg')}.Slider::handle:horizontal:disabled,QSlider::handle:horizontal:disabled{image:url('../Default/imgs/white/slider-handle_disabled.svg')}#IntPairField,#DoublePairField{qproperty-LightLineColor:#191919;qproperty-LightLineEdgeColor:#191919;qproperty-DarkLineColor:#191919;qproperty-MiddleLineColor:#191919;qproperty-HandleLeftPixmap:url("../Default/imgs/white/slider-handle.svg");qproperty-HandleRightPixmap:url("../Default/imgs/white/slider-handle.svg");qproperty-HandleLeftGrayPixmap:url("../Default/imgs/white/slider-handle_disabled.svg");qproperty-HandleRightGrayPixmap:url("../Default/imgs/white/slider-handle_disabled.svg")}#DirTreeView{background-color:#262626;alternate-background-color:#262626;border:1 solid #161616;border-right:0}DvItemViewerPanel{qproperty-TextColor:#cecece;qproperty-AlternateBackground:#282828;qproperty-SelectedTextColor:#fff;qproperty-FolderTextColor:#9fdaff;qproperty-SelectedItemBackground:#5385a6}#FileBrowser DvItemViewerPanel,#SceneCast DvItemViewerPanel{background-color:#303030}#FileBrowser #castFrame,#SceneCast #castFrame{border-top:1 solid #161616;border-right:1 solid #161616;border-bottom:1 solid #161616;margin:0}#FileBrowser QToolButton,#SceneCast QToolButton{padding:1}DvDirTreeView{qproperty-TextColor:#cecece;qproperty-SelectedTextColor:#fff;qproperty-SelectedItemBackground:#5385a6;qproperty-FolderTextColor:#9fdaff;qproperty-SelectedFolderTextColor:#fff;alternate-background-color:#2b2b2b;background-color:#262626;border:1 solid #161616}#FileDoesNotExistLabel{color:#f00}#SceneCast QToolBar{border-top:1 solid #161616}#SceneCast QToolButton{margin:3 1 2 1;padding:1}#CastBrowser{border:0;margin:0}#FilmStrip QComboBox{border-radius:0;border-width:0}#FilmStrip QComboBox QAbstractItemView{background-color:#303030}#CleanupSettings #CleanupSettingsFrame{margin-top:2;margin-bottom:4}#CleanupSettings QGroupBox{margin-bottom:3}ParamsPage{qproperty-TextColor:#cecece}#CameraSettingsButton{padding:2}#CameraSettingsRadioButton:hover{background:none}#CameraSettingsRadioButton::indicator{border:1 solid rgba(255,255,255,0);height:18;padding:0;width:18}#CameraSettingsRadioButton::indicator:unchecked{image:url('../Default/imgs/white/lock_off.svg')}#CameraSettingsRadioButton::indicator:checked{background-color:#C34040;border-color:#C34040;image:url('../Default/imgs/white/lock_on.svg')}#CameraSettingsRadioButton::indicator:checked:hover{background-color:#d57a7a;border-color:#d57a7a}#CameraSettingsDPI{color:#9fdaff}#CameraSettingsRadioButton_Small{padding:0}#CameraSettingsRadioButton_Small::indicator{background-color:transparent;border:0;height:21;margin:0;width:11}#ForceSquaredPixelButton{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')}#OutputSettingsLabel{color:#9fdaff}PencilTestPopup{min-height:730px;min-width:512px}#MatchLineButton{background-color:#565656}#MatchLineButton:checked{background-color:#7d7d7d;border:2 solid #5385a6;border-radius:2}#LargeSizedText{font-size:17px}#StartupLabel{padding:3}#StartupLabel:hover{background:#4a4a4a}QStatusBar{background-color:#c0c0c0}QStatusBar::item{border:0}QStatusBar QLabel{background-color:#c0c0c0}QStatusBar #StatusBarLabel{background-color:#fff;padding:1 3}#TitleTxtLabel{color:#9fdaff}#StyleEditor QPushButton{margin:2 1;padding:0}#StyleEditor #TabBarContainer{margin-left:-4}#StyleEditor #bottomWidget{border-top:1 solid #161616;padding:3 2 8 3}#StyleEditor #bottomWidget QPushButton{padding:3 5}#StyleEditorTabBar::tab::first{border-left:1 solid #161616}#HexagonalColorWheel{qproperty-BGColor:#303030}#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:18}#colorSliderAddButton{image:url('../Default/imgs/white/scroll-right.svg')}#colorSliderSubButton{image:url('../Default/imgs/white/scroll-left.svg')}#PlainColorPageParts{border-bottom:1 solid #161616}#PlainColorPageParts QLineEdit{max-width:35}PaletteViewer DvScrollWidget QPushButton{border-top:0;margin-bottom:1;max-width:15;min-width:15}PaletteViewer DvScrollWidget #ScrollLeftButton{border-radius:0;margin-bottom:1;max-width:16;min-width:16}PaletteViewer DvScrollWidget #ScrollRightButton{border-radius:0;margin-left:1;margin-bottom:1;max-width:16;min-width:16}PaletteViewer QToolBar{background:none;border-bottom:1 solid #161616;padding:0;margin:0}PaletteViewer QToolBar::separator:horizontal{margin:0}PaletteViewer QToolBar QToolButton{margin:0 0 1 0;padding:1 0 2 0}#PageViewer{qproperty-TextColor:#cecece}#PaletteLockButton{border-radius:0;margin:0 0 1 1}#PaletteLockButton:checked{background-color:#C34040;border-color:#C34040}#PaletteLockButton:checked:hover{background-color:#d57a7a;border-color:#d57a7a}#WordButton{padding-right:0;padding-left:0}QDialog{background-color:#303030}QDialog #dialogButtonFrame{background-color:#282828;border-top:1 solid #161616}QDialog #dialogButtonFrame QPushButton{border-color:#282828;outline:0}QDialog #dialogButtonFrame QPushButton:focus{background-color:#5385a6;border-color:#282828;color:#f4f4f4}QDialog #dialogButtonFrame QPushButton:focus:hover{background-color:#6c98b6}QDialog #dialogButtonFrame QPushButton:focus:pressed{background-color:#191919;border-color:#141414;color:#dbdbdb}#SceneSettings QLabel{color:#9fdaff}#PreferencesPopup QListWidget{background-color:#262626;alternate-background-color:#262626;border:1 solid #161616;font-size:13px}#PreferencesPopup QListWidget::item{border:0;padding:3}#PreferencesPopup QListWidget::item:hover{color:#cecece;background-color:rgba(255,255,255,0.15)}#PreferencesPopup QListWidget::item:selected{background-color:#5385a6;color:#fff}#ShortcutTree{border:1 solid #161616}#ShortcutTree::item{padding:1 0}#ShortcutTree QScrollBar:vertical{width:16;margin-right:-1}ProjectPopup QLabel{color:#9fdaff}#GearButton{qproperty-icon:url('../Default/imgs/white/gear.svg')}#SubfolderButton{qproperty-icon:url('../Default/imgs/white/subfolder.svg');padding-left:6px;padding-right:6px}#SubcameraButton{qproperty-icon:url('../Default/imgs/white/subcamera.svg');padding-left:6px;padding-right:6px}SchematicViewer{qproperty-TextColor:#cecece;qproperty-VerticalLineColor:#090909;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-TableColor:#62628c;qproperty-ActiveCameraColor:#2d7dca;qproperty-OtherCameraColor:#6c797b;qproperty-GroupColor:#3b6e9c;qproperty-PegColor:#9f6e3c;qproperty-SplineColor:#6a9d1c;qproperty-ActiveOutputColor:#2d7dca;qproperty-OtherOutputColor:#6c797b;qproperty-XsheetColor:#62628c;qproperty-NormalFxColor:#6a7e96;qproperty-MacroFxColor:#815c79;qproperty-ImageAdjustFxColor:#656287;qproperty-LayerBlendingFxColor:#4f757d;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-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')}#SchematicBottomFrame{background-color:#303030;border:0;margin:0;padding:0}#SchematicBottomFrame QToolBar::separator:horizontal{margin:0}#SchematicBottomFrame QToolBar QToolButton{padding:0;margin:2}#SchematicSceneViewer{background-color:#232323;border-bottom:1 solid #161616}#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;padding:3 0}FxSettings QToolBar QToolBar{border:0}#FxSettingsLabel{color:#a0e680}#FxSettingsHelpButton{background-color:#80a0dc;color:#000;padding-top:0;padding-bottom:0}#FxSettingsHelpButton:hover{background-color:#a8bee7}#ScriptConsole{font-family:'Courier New',monospace;border:0;color:#000000;padding:3}#ScriptConsole QFrame{background-color:#dcdcdc}#ScriptConsole TPanelTitleBar{background-color:#262626}#TaskSheetItemLabel{color:#cecece}#Tasks QToolBar{border-bottom:1 solid #161616;margin:0;padding:0}#Tasks QToolBar QToolButton{margin:2 2 3 2}#ToolBar QToolBar{padding-left:2}#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")}#EditToolLockButton{spacing:0}#EditToolLockButton:hover{background:none}#EditToolLockButton::indicator{border:1 solid rgba(255,255,255,0);height:18;padding:0;width:18}#EditToolLockButton::indicator:unchecked{image:url('../Default/imgs/white/lock_off.svg')}#EditToolLockButton::indicator:checked{background-color:#C34040;border-color:#C34040;image:url('../Default/imgs/white/lock_on.svg')}#EditToolLockButton::indicator:checked:hover{background-color:#d57a7a;border-color:#d57a7a}PopupButton::menu-indicator{border-left:0;height:17;image:url('../Default/imgs/white/combo_downarrow.svg');width:10}PopupButton::menu-indicator:hover{image:url('../Default/imgs/white/combo_downarrow.svg')}PopupButton::menu-indicator:disabled{image:url('../Default/imgs/white/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:3;padding-right:3}QToolBar#WidePaddingToolBar QToolButton{padding-left:6;padding-right:6}#CommandBar{margin:0;padding:0;border:0}#CommandBar::separator:horizontal{margin-right:3;margin-left:3}#expandButton:checked{background-color:transparent;border-color:transparent;color:#cecece}#expandButton:checked:hover{background-color:#5e5e5e;border-color:#5e5e5e}#expandButton:checked:pressed{background-color:#191919;border-color:#141414}#ComboViewerPanel Toolbar{border-bottom:1 solid #161616}#ComboViewerPanel Toolbar::separator:horizontal{margin:0 0 0 2}#ComboViewerPanel Toolbar QToolButton{margin:2 0 3 2}#ComboViewerToolOptions{border-bottom:1 solid #161616}#ComboViewer #ToolBarContainer,#ViewerPanel #ToolBarContainer,FlipBook #ToolBarContainer{background-color:transparent;border-top:2 solid #161616;border-bottom:1 solid #161616;padding-right:-1}#flipCustomize{margin-left:3}#flipCustomize::menu-button{background-color:transparent;width:35}#flipCustomize::menu-arrow{image:none}QToolBar#FlipConsolePlayToolBar::separator:horizontal{margin:0 3}QToolBar#FlipConsolePlayToolBar QToolButton{margin-top:2;margin-bottom:2;height:16;padding-left:1;padding-right:1}#ViewerFpsSlider{background-color:transparent;background-image:url('../Default/imgs/white/slider-groove_dark.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:#515151;border:1 solid #303030;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:#515151;border:1 solid #303030;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:#898989;border:1 solid #898989;border-radius:2;margin:2 0 3 0;min-width:9;width:9;max-width:9}FlipSlider{qproperty-PBHeight:15;qproperty-PBOverlay:url('../Default/imgs/white/flipslider_dark.svg');qproperty-PBColorMarginLeft:1;qproperty-PBColorMarginTop:2;qproperty-PBColorMarginRight:1;qproperty-PBColorMarginBottom:2;qproperty-PBMarker:url('../Default/imgs/white/flipmarker_dark.svg');qproperty-PBMarkerMarginLeft:3;qproperty-PBMarkerMarginRight:3;qproperty-notStartedColor:rgba(205,101,101,0.78);qproperty-startedColor:#1abc3f;qproperty-baseColor:#1c1c1c;qproperty-finishedColor:#1c1c1c}Ruler{qproperty-ParentBGColor:#303030;qproperty-ScaleColor:#cecece}#RulerToolOptionValues{color:#000}#xsheetArea,#ScrollArea{background-color:#1c1c1c;border:0}#xsheetScrollArea{border:0}#cornerWidget QToolButton{padding:0}#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}XsheetViewer{qproperty-TextColor:#cecece;qproperty-BGColor:#282828;qproperty-LightLineColor:#1f1f1f;qproperty-MarkerLineColor:#1E96C4;qproperty-VerticalLineColor:#090909;qproperty-VerticalLineHeadColor:#686868;qproperty-PreviewFrameTextColor:#9fdaff;qproperty-CurrentRowBgColor:#506082;qproperty-OnionSkinAreaBgColor:#1e1e1e;qproperty-EmptyColumnHeadColor:#444;qproperty-SelectedColumnTextColor:#E66464;qproperty-EmptyCellColor:#303030;qproperty-NotEmptyColumnColor:#383838;qproperty-SelectedEmptyCellColor:#545454;qproperty-LevelColumnColor:#4C6E4C;qproperty-LevelColumnBorderColor:#8FB38F;qproperty-SelectedLevelColumnColor:#678667;qproperty-VectorColumnColor:#7B7B4C;qproperty-VectorColumnBorderColor:#BBBB9A;qproperty-SelectedVectorColumnColor:#949466;qproperty-ChildColumnColor:#6A526B;qproperty-ChildColumnBorderColor:#B1A3B3;qproperty-SelectedChildColumnColor:#816e82;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-SoundColumnHlColor:#34FE5E;qproperty-SoundColumnTrackColor:#B6C29D;qproperty-ColumnHeadPastelizer:#000;qproperty-SelectedColumnHead:#506082;qproperty-LightLightBGColor:#303030;qproperty-LightBGColor:#d8d8d8;qproperty-DarkBGColor:#c9c9c9;qproperty-DarkLineColor:#7e7e7e;qproperty-XsheetColumnNameBgColor:rgba(0,0,0,0);qproperty-XsheetDragBarHighlightColor:rgba(255,255,255,0.5);qproperty-XsheetPreviewButtonBgOnColor:#c8c864;qproperty-XsheetPreviewButtonOnImage:url('../Default/imgs/white/x_prev_eye_on.svg');qproperty-XsheetPreviewButtonBgOffColor:rgba(255,255,255,0);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-XsheetCamstandButtonOffImage:url('../Default/imgs/white/x_table_view_off.svg');qproperty-XsheetLockButtonBgOnColor:rgba(255,255,255,0.3);qproperty-XsheetLockButtonOnImage:url('../Default/imgs/white/x_lock_on.svg');qproperty-XsheetLockButtonBgOffColor:rgba(255,255,255,0);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-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')}#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}#FunctionEditor QToolBar{border-bottom:1 solid #161616}#FunctionEditor QToolBar QToolBar{border:0}#FunctionEditor QToolBar QLabel{margin-left:5}#FunctionEditor QToolBar QToolButton{height:18}#FunctionEditorTree{border-top:1 solid #161616}FunctionTreeView{qproperty-TextColor:#cecece;qproperty-CurrentTextColor:#E66464}FunctionPanel{qproperty-BGColor:#232323;qproperty-ValueLineColor:#161616;qproperty-FrameLineColor:#161616;qproperty-OtherCurvesColor:#707070;qproperty-RulerBackground:#1b1b1b;qproperty-TextColor:#cecece;qproperty-SubColor:#000;qproperty-SelectedColor:#FFA500}SpreadsheetViewer{qproperty-LightLightBGColor:#303030;qproperty-CurrentRowBgColor:#506082;qproperty-LightLineColor:#1f1f1f;qproperty-MarkerLineColor:#1E96C4;qproperty-BGColor:#383838;qproperty-VerticalLineColor:#090909;qproperty-KeyFrameColor:#995d1d;qproperty-KeyFrameBorderColor:#c9b04b;qproperty-SelectedKeyFrameColor:#be772b;qproperty-InBetweenColor:#666250;qproperty-InBetweenBorderColor:#cdcec8;qproperty-SelectedInBetweenColor:#7d7a6c;qproperty-SelectedEmptyColor:#545454;qproperty-SelectedSceneRangeEmptyColor:#5d5d5d;qproperty-TextColor:#cecece;qproperty-ColumnHeaderBorderColor:#686868;qproperty-SelectedColumnTextColor:#E66464}#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} \ No newline at end of file +.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:#191919;border-color:#141414;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:#191919;border-color:#141414}.button-show:checked:hover,#LoadLevelShowButton:checked:hover,#CleanupSettingsShowButton:checked:hover,#OutputSettingsShowButton:checked:hover,#FxSettingsPreviewShowButton:checked:hover{background-color:#1e1e1e}.button-tool,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);border-radius:2;color:#dbdbdb;margin:1;padding:0}.button-tool:hover,QToolButton:hover,#CameraSettingsRadioButton::indicator:hover,#ForceSquaredPixelButton:hover,#colorSliderAddButton:hover,#colorSliderSubButton:hover,#SchematicBottomFrame QToolBar QToolButton:hover,#EditToolLockButton::indicator:hover,#flipCustomize:hover{background-color:#5e5e5e;border-color:#5e5e5e;color:#dbdbdb}.button-tool:pressed,QToolButton:pressed,#CameraSettingsRadioButton::indicator:pressed,#ForceSquaredPixelButton:pressed,#colorSliderAddButton:pressed,#colorSliderSubButton:pressed,#SchematicBottomFrame QToolBar QToolButton:pressed,#EditToolLockButton::indicator:pressed,#flipCustomize:pressed{background-color:#191919;border-color:#141414;color:#dbdbdb}.button-tool:checked,QToolButton:checked,#CameraSettingsRadioButton::indicator:checked,#ForceSquaredPixelButton:checked,#SchematicBottomFrame QToolBar QToolButton:checked,#EditToolLockButton::indicator:checked,#flipCustomize:checked{background-color:#5385a6;border-color:#5385a6;color:#fff}.button-tool:checked:hover,QToolButton:checked:hover,#CameraSettingsRadioButton::indicator:checked:hover,#ForceSquaredPixelButton:checked:hover,#SchematicBottomFrame QToolBar QToolButton:checked:hover,#EditToolLockButton::indicator:checked:hover,#flipCustomize:checked:hover{background-color:#6c98b6;border-color:#6c98b6}.button-tool:disabled,QToolButton:disabled,#CameraSettingsRadioButton::indicator:disabled,#ForceSquaredPixelButton:disabled,#SchematicBottomFrame QToolBar QToolButton:disabled,#EditToolLockButton::indicator:disabled,#flipCustomize:disabled{color:#808080}.button-flat,PaletteViewer QToolBar QToolButton{background-color:none;border:0;border-radius:0;margin:0}.button-flat:hover,PaletteViewer QToolBar QToolButton:hover{background-color:#5e5e5e}.button-flat:pressed,PaletteViewer QToolBar QToolButton:pressed{background-color:#161616}.frame,.GroupBox,#LoadLevelFrame,#PsdSettingsGroupBox,#CleanupSettingsFrame,#OutputSettingsBox,#OutputSettingsCameraBox,#SolidLineFrame,#FunctionParametersPanel,QGroupBox{border:1 solid #161616;border-radius:2}.tab-container,#TabBarContainer{background-color:transparent;qproperty-BottomAboveLineColor:#262626;qproperty-BottomBelowLineColor:#161616}.tab-flat,#StyleEditorTabBar::tab,#PaletteTabBar::tab,#FxSettingsTabBar::tab{background-color:#262626;border-right:1 solid #161616;border-bottom:1 solid #161616;color:#8b8b8b;padding:3 4 3 4}.tab-flat:hover,#StyleEditorTabBar::tab:hover,#PaletteTabBar::tab:hover,#FxSettingsTabBar::tab:hover{background-color:#303030;color:#8b8b8b}.tab-flat:selected,#StyleEditorTabBar::tab:selected,#PaletteTabBar::tab:selected,#FxSettingsTabBar::tab:selected{background-color:#303030;color:#f4f4f4;border-bottom-color:#303030}.tab-flat:only-one,#StyleEditorTabBar::tab:only-one,#PaletteTabBar::tab:only-one,#FxSettingsTabBar::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:#8b8b8b;margin:3 -1 0 0;padding:2 7 1 7}.tab-round:hover{background-color:#303030;color:#8b8b8b}.tab-round:selected{background-color:#303030;border-top-right-radius:2;border-top-left-radius:2;border-bottom-color:#303030;color:#f4f4f4;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}QWidget{background-color:#303030;color:#cecece}QWidget:disabled{color:#808080}QFrame{border:0;margin:0;padding:0}QToolTip,#helpToolTip{background-color:#fff;border:1 solid #000;color:#000;padding:1 1}#DockSeparator,QMainWindow::separator,QSplitter::handle{background-color:#0c0c0c;height:4;width:4}#TDockPlaceholder{background-color:#F77272}TPanel{background-color:#0c0c0c}#TopBar{background:#303030;border:0;border-bottom:1 solid #161616;height:21}#TopBar #EditToolLockButton{background:#303030;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:#303030;margin-bottom:1}#StackedMenuBar{border:0;margin:0;padding:0}QMenuBar{background-color:#303030;border:0}QMenuBar::item{background-color:#303030;border-left:1 solid #303030;margin:0;padding:3 5}QMenuBar::item:selected{background-color:rgba(255,255,255,0.15);color:#cecece}QMenuBar::item:pressed{background-color:#5385a6;color:#fff}#TopBarTab{margin:0;padding:0}#TopBarTab::tab{background-color:#262626;border-top:1 solid #161616;border-right:1 solid #161616;color:#8b8b8b;margin:0 0 0 0;padding:2 8 3 8}#TopBarTab::tab:hover{background-color:#303030;color:#8b8b8b}#TopBarTab::tab:selected{background-color:#303030;color:#f4f4f4}#TopBarTab::tab:first{border-left:1 solid #161616}#TopBarTab::tab:last{border-right:1 solid #161616}QMenu{background-color:#303030;border:1 solid #161616;padding:2 0}QMenu::item{padding:3 28}QMenu::item:selected{background-color:#5385a6;color:#fff}QMenu::item:checked{color:#cecece}QMenu::item:checked:selected{background-color:#5385a6;color:#fff}QMenu::item:disabled{background:none;color:#808080}QMenu::item:disabled:selected{border-color:transparent}QMenu::separator{border-top:1 solid #161616;height:0;margin:2 0}QMenu::icon{border-radius:2;margin:0 0 0 3;padding:1}QMenu::icon:checked{background-color:#5385a6}QMenu::indicator{margin-left:7}TPanelTitleBar{background-color:#262626;border-color:#161616;border-style:solid;border-width:0 0 1 0;height:20;min-height:20;qproperty-TitleColor:#7d7d7d;qproperty-ActiveTitleColor:#fff;qproperty-BorderPixmap:url('none');qproperty-ActiveBorderPixmap:url('../Default/imgs/white/none');qproperty-FloatBorderPixmap:url('none');qproperty-FloatActiveBorderPixmap:url('../Default/imgs/white/none')}QAbstractScrollArea::corner{background-color:#262626}QScrollBar{background-color:#262626;border:0}QScrollBar:horizontal{height:16;margin:0}QScrollBar:vertical{margin:0;width:16}QScrollBar::handle{border:1 solid #3a3a3a;border-radius:4}QScrollBar::handle:horizontal:hover,QScrollBar::handle:vertical:hover{background-color:#4f4f4f;border-color:#4f4f4f}QScrollBar::handle:horizontal:pressed,QScrollBar::handle:vertical:pressed{background-color:#636363;border-color:#636363}QScrollBar::handle:horizontal{background-color:#3a3a3a;margin:3 16;min-width:20}QScrollBar::handle:vertical{background-color:#3a3a3a;margin:16 3;min-height:20}QScrollBar::add-line{subcontrol-origin:margin;border:0}QScrollBar::add-line:horizontal{subcontrol-position:right;background-color:#262626;margin:0;width:16}QScrollBar::add-line:vertical{subcontrol-position:bottom;background-color:#262626;margin:0;height:16}QScrollBar::sub-line{border:0;subcontrol-origin:margin}QScrollBar::sub-line:horizontal{subcontrol-position:left;background-color:#262626;margin:0;width:16}QScrollBar::sub-line:vertical{subcontrol-position:top;background-color:#262626;margin:0;height:16}QScrollBar::up-arrow:vertical{image:url('../Default/imgs/white/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/white/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/white/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/white/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{padding:0}QToolBar::separator:horizontal{border-left:1 solid #161616;margin:0 1;width:0}QToolBar::separator:vertical{border-top:1 solid #161616;height:0;margin:1 0}QToolBar QLabel{margin-top:1}QToolBar QToolBar{border:0}QToolButton::menu-indicator{image:none}QToolButton::menu-button{border-image:none}.DvScrollWidget QPushButton,DvScrollWidget QPushButton,#ScrollLeftButton QPushButton,#ScrollRightButton QPushButton,#ScrollUpButton QPushButton,#ScrollDownButton QPushButton{background-color:#515151;border:0 solid red;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:#5e5e5e}.DvScrollWidget QPushButton:pressed,DvScrollWidget QPushButton:pressed,#ScrollLeftButton QPushButton:pressed,#ScrollRightButton QPushButton:pressed,#ScrollUpButton QPushButton:pressed,#ScrollDownButton QPushButton:pressed{background-color:#191919}#ScrollLeftButton,#ScrollRightButton,#ScrollUpButton,#ScrollDownButton{margin:0;min-width:16}#ScrollLeftButton{border-right:1 solid #161616;image:url('../Default/imgs/white/scroll-left.svg')}#ScrollRightButton{border-left:1 solid #161616;margin-left:3;image:url('../Default/imgs/white/scroll-right.svg')}#ScrollUpButton{image:url('../Default/imgs/white/scroll-up.svg')}#ScrollDownButton{image:url('../Default/imgs/white/scroll-down.svg')}#keyFrameNavigator{background:none;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')}#keyFrameNavigator #PreviousKey:disabled{image:url('../Default/imgs/white/prevkey_disabled.svg')}#keyFrameNavigator #NextKey{image:url('../Default/imgs/white/nextkey.svg')}#keyFrameNavigator #NextKey:hover{image:url('../Default/imgs/white/nextkey_over.svg')}#keyFrameNavigator #NextKey:disabled{image:url('../Default/imgs/white/nextkey_disabled.svg')}.treeview,QTreeWidget,QTreeView,#FunctionEditorTree{background-color:#262626;alternate-background-color:#2b2b2b;border:0;margin:0;outline:0}.treeview::item:selected,QTreeWidget::item:selected,QTreeView::item:selected,#FunctionEditorTree::item:selected{background-color:#5385a6;color:#fff}.treeview::branch:adjoins-item,QTreeWidget::branch:adjoins-item,QTreeView::branch:adjoins-item,#FunctionEditorTree::branch:adjoins-item{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/white/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/white/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/white/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/white/treebranch-open.svg') no-repeat;background-position:center center;border-image:none;image:none}QListView{outline:0;background:#262626;alternate-background-color:#2b2b2b}#TabBarContainer{background-color:#262626}.Button,QPushButton,.ComboBox,.ComboBox:checked,QComboBox,QComboBox:checked{background-color:#515151;border:1 solid #303030;border-radius:2;color:#dbdbdb;margin:0;padding:3 15}.Button:hover,QPushButton:hover,.ComboBox:hover,#ViewerFpsSlider::sub-line:horizontal:hover,#ViewerFpsSlider::add-line:horizontal:hover,QComboBox:hover{background-color:#5e5e5e;border-color:#303030;color:#dbdbdb}.Button:pressed,QPushButton:pressed,#ViewerFpsSlider::sub-line:horizontal:pressed,#ViewerFpsSlider::add-line:horizontal:pressed{background-color:#191919;border-color:#141414;color:#dbdbdb}.Button:checked,QPushButton:checked{background-color:#191919;border-color:#141414;color:#dbdbdb}.Button:checked:hover,QPushButton:checked:hover{background-color:#1e1e1e}.Button:checked:hover:pressed,QPushButton:checked:hover:pressed{background:#191919}.Button:disabled,QPushButton:disabled,.ComboBox:disabled,#ViewerFpsSlider::sub-line:horizontal:disabled,#ViewerFpsSlider::add-line:horizontal:disabled,QComboBox:disabled{background-color:#3d3d3d;border-color:#303030;color:#808080}#PushButton_NoPadding{padding:3}.ComboBox,.ComboBox:checked,QComboBox,QComboBox:checked{padding:1 0 1 4;margin:1 0}.ComboBox::drop-down,QComboBox::drop-down{image:url('../Default/imgs/white/combo_downarrow.svg');image-position:center center;width:16}.ComboBox::drop-down:disabled,QComboBox::drop-down:disabled{image:url('../Default/imgs/white/combo_downarrow_disabled.svg')}.ComboBox QAbstractItemView,QComboBox QAbstractItemView{background-color:#303030;border:1 solid #161616;selection-background-color:#5385a6;selection-color:#fff}.LineEdit,QPlainTextEdit,QLineEdit,#TaskSheetItem,#tasksRemoveBox,#tasksAddBox{background-color:#1c1c1c;border:1 solid #3d3d3d;border-radius:2;color:#cecece;selection-background-color:#5385a6;selection-color:#fff;padding:0 0 0 1}.LineEdit:focus,QPlainTextEdit:focus,QLineEdit:focus,#TaskSheetItem:focus,#tasksRemoveBox:focus,#tasksAddBox:focus{background-color:#1c1c1c;border-color:#5385a6;color:#cecece}.LineEdit:disabled,QPlainTextEdit:disabled,QLineEdit:disabled,#TaskSheetItem:disabled,#tasksRemoveBox:disabled,#tasksAddBox:disabled{background-color:#262626;border-color:#363636;color:#808080}.CheckBox,QCheckBox{color:#cecece}.CheckBox:hover,QCheckBox:hover,.RadioButton:hover,QRadioButton:hover{color:#fff}.CheckBox:disabled,QCheckBox:disabled{color:#808080}.CheckBox::indicator,QMenu::indicator,QCheckBox::indicator,.GroupBox::indicator,QGroupBox::indicator{background-color:#1c1c1c;border:1 solid #3d3d3d;border-radius:2;height:9;padding:1;width:9}.CheckBox::indicator:hover,QMenu::indicator:hover,.CheckBox::indicator:checked:hover,QCheckBox::indicator:hover,.GroupBox::indicator:hover,QMenu::indicator:checked:hover,QCheckBox::indicator:checked:hover,.GroupBox::indicator:checked:hover,QGroupBox::indicator:hover,QGroupBox::indicator:checked:hover{background-color:#1c1c1c;border-color:#5385a6}.CheckBox::indicator:checked,QMenu::indicator:checked,QCheckBox::indicator:checked,.GroupBox::indicator:checked,QGroupBox::indicator:checked{background-color:#1c1c1c;border-color:#3d3d3d;image:url('../Default/imgs/white/checkmark.svg')}.CheckBox::indicator:checked:disabled,QMenu::indicator:checked:disabled,QCheckBox::indicator:checked:disabled,.GroupBox::indicator:checked:disabled,QGroupBox::indicator:checked:disabled{background-color:#262626;border-color:#191919;image:url('../Default/imgs/white/checkmark_disabled.svg')}.CheckBox::indicator:disabled,QMenu::indicator:disabled,QCheckBox::indicator:disabled,.GroupBox::indicator:disabled,QGroupBox::indicator:disabled{background-color:#262626;border-color:#191919}.RadioButton::indicator:unchecked,QRadioButton::indicator:unchecked,#CameraSettingsRadioButton_Small::indicator:unchecked{image:url('../Default/imgs/white/radiobutton_unchecked.svg');image-position:center center}.RadioButton::indicator:checked,QRadioButton::indicator:checked,#CameraSettingsRadioButton_Small::indicator:checked{image:url('../Default/imgs/white/radiobutton_checked.svg');image-position:center center}.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:#fff}.GroupBox::title:disabled,QGroupBox::title:disabled{color:#808080}.GroupBox::indicator,QGroupBox::indicator{subcontrol-origin:margin;margin-top:2}.GroupBox:disabled,QGroupBox:disabled{color:#808080}.Slider::groove:horizontal,QSlider::groove:horizontal{background-color:transparent;background-image:url('../Default/imgs/white/slider-groove_dark.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/white/slider-groove_disabled_dark.svg')}.Slider::handle:horizontal,QSlider::handle:horizontal{width:10;margin:-2 -1;image:url('../Default/imgs/white/slider-handle.svg')}.Slider::handle:horizontal:disabled,QSlider::handle:horizontal:disabled{image:url('../Default/imgs/white/slider-handle_disabled.svg')}#IntPairField,#DoublePairField{qproperty-LightLineColor:#191919;qproperty-LightLineEdgeColor:#191919;qproperty-DarkLineColor:#191919;qproperty-MiddleLineColor:#191919;qproperty-HandleLeftPixmap:url("../Default/imgs/white/slider-handle.svg");qproperty-HandleRightPixmap:url("../Default/imgs/white/slider-handle.svg");qproperty-HandleLeftGrayPixmap:url("../Default/imgs/white/slider-handle_disabled.svg");qproperty-HandleRightGrayPixmap:url("../Default/imgs/white/slider-handle_disabled.svg")}#DirTreeView{background-color:#262626;alternate-background-color:#262626;border:1 solid #161616;border-right:0}DvItemViewerPanel{qproperty-TextColor:#cecece;qproperty-AlternateBackground:#282828;qproperty-SelectedTextColor:#fff;qproperty-FolderTextColor:#9fdaff;qproperty-SelectedItemBackground:#5385a6}#FileBrowser DvItemViewerPanel,#SceneCast DvItemViewerPanel{background-color:#303030}#FileBrowser #castFrame,#SceneCast #castFrame{border-top:1 solid #161616;border-right:1 solid #161616;border-bottom:1 solid #161616;margin:0}#FileBrowser QToolButton,#SceneCast QToolButton{padding:1}DvDirTreeView{qproperty-TextColor:#cecece;qproperty-SelectedTextColor:#fff;qproperty-SelectedItemBackground:#5385a6;qproperty-FolderTextColor:#9fdaff;qproperty-SelectedFolderTextColor:#fff;alternate-background-color:#2b2b2b;background-color:#262626;border:1 solid #161616}#FileDoesNotExistLabel{color:#f00}#SceneCast QToolBar{border-top:1 solid #161616}#SceneCast QToolButton{margin:3 1 2 1;padding:1}#CastBrowser{border:0;margin:0}#FilmStrip QComboBox{border-radius:0;border-width:0}#FilmStrip QComboBox QAbstractItemView{background-color:#303030}#CleanupSettings #CleanupSettingsFrame{margin-top:2;margin-bottom:4}#CleanupSettings QGroupBox{margin-bottom:3}ParamsPage{qproperty-TextColor:#cecece}#CameraSettingsButton{padding:2}#CameraSettingsRadioButton:hover{background:none}#CameraSettingsRadioButton::indicator{border:1 solid rgba(255,255,255,0);height:18;padding:0;width:18}#CameraSettingsRadioButton::indicator:unchecked{image:url('../Default/imgs/white/lock_off.svg')}#CameraSettingsRadioButton::indicator:checked{background-color:#C34040;border-color:#C34040;image:url('../Default/imgs/white/lock_on.svg')}#CameraSettingsRadioButton::indicator:checked:hover{background-color:#d57a7a;border-color:#d57a7a}#CameraSettingsDPI{color:#9fdaff}#CameraSettingsRadioButton_Small{padding:0}#CameraSettingsRadioButton_Small::indicator{background-color:transparent;border:0;height:21;margin:0;width:11}#ForceSquaredPixelButton{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')}#OutputSettingsLabel{color:#9fdaff}PencilTestPopup{min-height:730px;min-width:512px}#MatchLineButton{background-color:#565656}#MatchLineButton:checked{background-color:#7d7d7d;border:2 solid #5385a6;border-radius:2}#LargeSizedText{font-size:17px}#StartupLabel{padding:3}#StartupLabel:hover{background:#4a4a4a}QStatusBar{background-color:#c0c0c0}QStatusBar::item{border:0}QStatusBar QLabel{background-color:#c0c0c0}QStatusBar #StatusBarLabel{background-color:#fff;padding:1 3}#TitleTxtLabel{color:#9fdaff}#StyleEditor QPushButton{margin:2 1;padding:0}#StyleEditor #TabBarContainer{margin-left:-4}#StyleEditor #bottomWidget{border-top:1 solid #161616;padding:3 2 8 3}#StyleEditor #bottomWidget QPushButton{padding:3 5}#StyleEditorTabBar::tab::first{border-left:1 solid #161616}#HexagonalColorWheel{qproperty-BGColor:#303030}#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:18}#colorSliderAddButton{image:url('../Default/imgs/white/scroll-right.svg')}#colorSliderSubButton{image:url('../Default/imgs/white/scroll-left.svg')}#PlainColorPageParts{border-bottom:1 solid #161616}#PlainColorPageParts QLineEdit{max-width:35}PaletteViewer DvScrollWidget QPushButton{border-top:0;margin-bottom:1;max-width:15;min-width:15}PaletteViewer DvScrollWidget #ScrollLeftButton{border-radius:0;margin-bottom:1;max-width:16;min-width:16}PaletteViewer DvScrollWidget #ScrollRightButton{border-radius:0;margin-left:1;margin-bottom:1;max-width:16;min-width:16}PaletteViewer QToolBar{background:none;border-bottom:1 solid #161616;padding:0;margin:0}PaletteViewer QToolBar::separator:horizontal{margin:0}PaletteViewer QToolBar QToolButton{margin:0 0 1 0;padding:1 0 2 0}#PageViewer{qproperty-TextColor:#cecece}#PaletteLockButton{border-radius:0;margin:0 0 1 1}#PaletteLockButton:checked{background-color:#C34040;border-color:#C34040}#PaletteLockButton:checked:hover{background-color:#d57a7a;border-color:#d57a7a}#WordButton{padding-right:0;padding-left:0}QDialog{background-color:#303030}QDialog #dialogButtonFrame{background-color:#282828;border-top:1 solid #161616}QDialog #dialogButtonFrame QPushButton{border-color:#282828;outline:0}QDialog #dialogButtonFrame QPushButton:focus{background-color:#5385a6;border-color:#282828;color:#f4f4f4}QDialog #dialogButtonFrame QPushButton:focus:hover{background-color:#6c98b6}QDialog #dialogButtonFrame QPushButton:focus:pressed{background-color:#191919;border-color:#141414;color:#dbdbdb}#SceneSettings QLabel{color:#9fdaff}#PreferencesPopup QListWidget{background-color:#262626;alternate-background-color:#262626;border:1 solid #161616;font-size:13px}#PreferencesPopup QListWidget::item{border:0;padding:3}#PreferencesPopup QListWidget::item:hover{color:#cecece;background-color:rgba(255,255,255,0.15)}#PreferencesPopup QListWidget::item:selected{background-color:#5385a6;color:#fff}#ShortcutTree{border:1 solid #161616}#ShortcutTree::item{padding:1 0}#ShortcutTree QScrollBar:vertical{width:16;margin-right:-1}ProjectPopup QLabel{color:#9fdaff}#GearButton{qproperty-icon:url('../Default/imgs/white/gear.svg')}#SubfolderButton{qproperty-icon:url('../Default/imgs/white/subfolder.svg');padding-left:6px;padding-right:6px}#SubcameraButton{qproperty-icon:url('../Default/imgs/white/subcamera.svg');padding-left:6px;padding-right:6px}SchematicViewer{qproperty-TextColor:#cecece;qproperty-VerticalLineColor:#090909;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-TableColor:#62628c;qproperty-ActiveCameraColor:#2d7dca;qproperty-OtherCameraColor:#6c797b;qproperty-GroupColor:#3b6e9c;qproperty-PegColor:#9f6e3c;qproperty-SplineColor:#6a9d1c;qproperty-ActiveOutputColor:#2d7dca;qproperty-OtherOutputColor:#6c797b;qproperty-XsheetColor:#62628c;qproperty-NormalFxColor:#6a7e96;qproperty-MacroFxColor:#815c79;qproperty-ImageAdjustFxColor:#656287;qproperty-LayerBlendingFxColor:#4f757d;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-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')}#SchematicBottomFrame{background-color:#303030;border:0;margin:0;padding:0}#SchematicBottomFrame QToolBar::separator:horizontal{margin:0}#SchematicBottomFrame QToolBar QToolButton{padding:0;margin:2}#SchematicSceneViewer{background-color:#232323;border-bottom:1 solid #161616}#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;padding:3 0}FxSettings QToolBar QToolBar{border:0}#FxSettingsLabel{color:#a0e680}#FxSettingsHelpButton{background-color:#80a0dc;color:#000;padding-top:0;padding-bottom:0}#FxSettingsHelpButton:hover{background-color:#a8bee7}#ScriptConsole{font-family:'Courier New',monospace;border:0;color:#000000;padding:3}#ScriptConsole QFrame{background-color:#dcdcdc}#ScriptConsole TPanelTitleBar{background-color:#262626}#TaskSheetItemLabel{color:#cecece}#Tasks QToolBar{border-bottom:1 solid #161616;margin:0;padding:0}#Tasks QToolBar QToolButton{margin:2 2 3 2}#ToolBar QToolBar{padding-left:2}#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")}#EditToolLockButton{spacing:0}#EditToolLockButton:hover{background:none}#EditToolLockButton::indicator{border:1 solid rgba(255,255,255,0);height:18;padding:0;width:18}#EditToolLockButton::indicator:unchecked{image:url('../Default/imgs/white/lock_off.svg')}#EditToolLockButton::indicator:checked{background-color:#C34040;border-color:#C34040;image:url('../Default/imgs/white/lock_on.svg')}#EditToolLockButton::indicator:checked:hover{background-color:#d57a7a;border-color:#d57a7a}PopupButton::menu-indicator{border-left:0;height:17;image:url('../Default/imgs/white/combo_downarrow.svg');width:10}PopupButton::menu-indicator:hover{image:url('../Default/imgs/white/combo_downarrow.svg')}PopupButton::menu-indicator:disabled{image:url('../Default/imgs/white/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:3;padding-right:3}QToolBar#WidePaddingToolBar QToolButton{padding-left:6;padding-right:6}#CommandBar{margin:0;padding:0;border:0}#CommandBar::separator:horizontal{margin-right:3;margin-left:3}#expandButton:checked{background-color:transparent;border-color:transparent;color:#cecece}#expandButton:checked:hover{background-color:#5e5e5e;border-color:#5e5e5e}#expandButton:checked:pressed{background-color:#191919;border-color:#141414}#ComboViewerPanel Toolbar{border-bottom:1 solid #161616}#ComboViewerPanel Toolbar::separator:horizontal{margin:0 0 0 2}#ComboViewerPanel Toolbar QToolButton{margin:2 0 3 2}#ComboViewerToolOptions{border-bottom:1 solid #161616}#ComboViewer #ToolBarContainer,#ViewerPanel #ToolBarContainer,FlipBook #ToolBarContainer{background-color:transparent;border-top:2 solid #161616;border-bottom:1 solid #161616;padding-right:-1}#flipCustomize{margin-left:3}#flipCustomize::menu-button{background-color:transparent;width:35}#flipCustomize::menu-arrow{image:none}QToolBar#FlipConsolePlayToolBar::separator:horizontal{margin:0 3}QToolBar#FlipConsolePlayToolBar QToolButton{margin-top:2;margin-bottom:2;height:16;padding-left:1;padding-right:1}#ViewerFpsSlider{background-color:transparent;background-image:url('../Default/imgs/white/slider-groove_dark.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:#515151;border:1 solid #303030;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:#515151;border:1 solid #303030;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:#898989;border:1 solid #898989;border-radius:2;margin:2 0 3 0;min-width:9;width:9;max-width:9}FlipSlider{qproperty-PBHeight:15;qproperty-PBOverlay:url('../Default/imgs/white/flipslider_dark.svg');qproperty-PBColorMarginLeft:1;qproperty-PBColorMarginTop:2;qproperty-PBColorMarginRight:1;qproperty-PBColorMarginBottom:2;qproperty-PBMarker:url('../Default/imgs/white/flipmarker_dark.svg');qproperty-PBMarkerMarginLeft:3;qproperty-PBMarkerMarginRight:3;qproperty-notStartedColor:rgba(205,101,101,0.78);qproperty-startedColor:#1abc3f;qproperty-baseColor:#1c1c1c;qproperty-finishedColor:#1c1c1c}Ruler{qproperty-ParentBGColor:#303030;qproperty-ScaleColor:#cecece}#RulerToolOptionValues{color:#000}#xsheetArea,#ScrollArea{background-color:#1c1c1c;border:0}#xsheetScrollArea{border:0}#cornerWidget QToolButton{padding:0}#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}XsheetViewer{qproperty-TextColor:#cecece;qproperty-BGColor:#282828;qproperty-LightLineColor:#1f1f1f;qproperty-MarkerLineColor:#1E96C4;qproperty-VerticalLineColor:#090909;qproperty-VerticalLineHeadColor:#686868;qproperty-PreviewFrameTextColor:#9fdaff;qproperty-CurrentRowBgColor:#506082;qproperty-OnionSkinAreaBgColor:#1e1e1e;qproperty-EmptyColumnHeadColor:#444;qproperty-SelectedColumnTextColor:#E66464;qproperty-EmptyCellColor:#303030;qproperty-NotEmptyColumnColor:#383838;qproperty-SelectedEmptyCellColor:#545454;qproperty-LevelColumnColor:#4C6E4C;qproperty-LevelColumnBorderColor:#8FB38F;qproperty-SelectedLevelColumnColor:#678667;qproperty-VectorColumnColor:#7B7B4C;qproperty-VectorColumnBorderColor:#BBBB9A;qproperty-SelectedVectorColumnColor:#949466;qproperty-ChildColumnColor:#6A526B;qproperty-ChildColumnBorderColor:#B1A3B3;qproperty-SelectedChildColumnColor:#816e82;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-SoundColumnHlColor:#34FE5E;qproperty-SoundColumnTrackColor:#B6C29D;qproperty-ColumnHeadPastelizer:#000;qproperty-SelectedColumnHead:#506082;qproperty-LightLightBGColor:#303030;qproperty-LightBGColor:#d8d8d8;qproperty-DarkBGColor:#c9c9c9;qproperty-DarkLineColor:#7e7e7e;qproperty-XsheetColumnNameBgColor:rgba(0,0,0,0);qproperty-XsheetDragBarHighlightColor:rgba(255,255,255,0.5);qproperty-XsheetPreviewButtonBgOnColor:#c8c864;qproperty-XsheetPreviewButtonOnImage:url('../Default/imgs/white/x_prev_eye_on.svg');qproperty-XsheetPreviewButtonBgOffColor:rgba(255,255,255,0);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-XsheetCamstandButtonOffImage:url('../Default/imgs/white/x_table_view_off.svg');qproperty-XsheetLockButtonBgOnColor:rgba(255,255,255,0.3);qproperty-XsheetLockButtonOnImage:url('../Default/imgs/white/x_lock_on.svg');qproperty-XsheetLockButtonBgOffColor:rgba(255,255,255,0);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-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}#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}#FunctionEditor QToolBar{border-bottom:1 solid #161616}#FunctionEditor QToolBar QToolBar{border:0}#FunctionEditor QToolBar QLabel{margin-left:5}#FunctionEditor QToolBar QToolButton{height:18}#FunctionEditorTree{border-top:1 solid #161616}FunctionTreeView{qproperty-TextColor:#cecece;qproperty-CurrentTextColor:#E66464}FunctionPanel{qproperty-BGColor:#232323;qproperty-ValueLineColor:#161616;qproperty-FrameLineColor:#161616;qproperty-OtherCurvesColor:#707070;qproperty-RulerBackground:#1b1b1b;qproperty-TextColor:#cecece;qproperty-SubColor:#000;qproperty-SelectedColor:#FFA500}SpreadsheetViewer{qproperty-LightLightBGColor:#303030;qproperty-CurrentRowBgColor:#506082;qproperty-LightLineColor:#1f1f1f;qproperty-MarkerLineColor:#1E96C4;qproperty-BGColor:#383838;qproperty-VerticalLineColor:#090909;qproperty-KeyFrameColor:#995d1d;qproperty-KeyFrameBorderColor:#c9b04b;qproperty-SelectedKeyFrameColor:#be772b;qproperty-InBetweenColor:#666250;qproperty-InBetweenBorderColor:#cdcec8;qproperty-SelectedInBetweenColor:#7d7a6c;qproperty-SelectedEmptyColor:#545454;qproperty-SelectedSceneRangeEmptyColor:#5d5d5d;qproperty-TextColor:#cecece;qproperty-ColumnHeaderBorderColor:#686868;qproperty-SelectedColumnTextColor:#E66464}#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} \ No newline at end of file diff --git a/stuff/config/qss/Default/Default.qss b/stuff/config/qss/Default/Default.qss index 52c1ba8..35fa151 100644 --- a/stuff/config/qss/Default/Default.qss +++ b/stuff/config/qss/Default/Default.qss @@ -1 +1 @@ -.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,#CameraSettingsRadioButton::indicator,#ForceSquaredPixelButton,#SchematicBottomFrame QToolBar QToolButton,#EditToolLockButton::indicator,#flipCustomize{background-color:rgba(255,255,255,0);border:1 solid rgba(255,255,255,0);border-radius:2;color:#f3f3f3;margin:1;padding:0}.button-tool:hover,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;color:#f3f3f3}.button-tool:pressed,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;color:#f3f3f3}.button-tool:checked,QToolButton:checked,#CameraSettingsRadioButton::indicator:checked,#ForceSquaredPixelButton:checked,#SchematicBottomFrame QToolBar QToolButton:checked,#EditToolLockButton::indicator:checked,#flipCustomize:checked{background-color:#5385a6;border-color:#5385a6;color:#fff}.button-tool:checked:hover,QToolButton:checked:hover,#CameraSettingsRadioButton::indicator:checked:hover,#ForceSquaredPixelButton:checked:hover,#SchematicBottomFrame QToolBar QToolButton:checked:hover,#EditToolLockButton::indicator:checked:hover,#flipCustomize:checked:hover{background-color:#6c98b6;border-color:#6c98b6}.button-tool:disabled,QToolButton:disabled,#CameraSettingsRadioButton::indicator:disabled,#ForceSquaredPixelButton:disabled,#SchematicBottomFrame QToolBar QToolButton:disabled,#EditToolLockButton::indicator:disabled,#flipCustomize:disabled{color:#808080}.button-flat,PaletteViewer QToolBar QToolButton{background-color:none;border:0;border-radius:0;margin:0}.button-flat:hover,PaletteViewer QToolBar QToolButton:hover{background-color:#767676}.button-flat:pressed,PaletteViewer QToolBar QToolButton:pressed{background-color:#272727}.frame,.GroupBox,#LoadLevelFrame,#PsdSettingsGroupBox,#CleanupSettingsFrame,#OutputSettingsBox,#OutputSettingsCameraBox,#SolidLineFrame,#FunctionParametersPanel,QGroupBox{border:1 solid #272727;border-radius:2}.tab-container,#TabBarContainer{background-color:transparent;qproperty-BottomAboveLineColor:#393939;qproperty-BottomBelowLineColor:#272727}.tab-flat,#StyleEditorTabBar::tab,#PaletteTabBar::tab,#FxSettingsTabBar::tab{background-color:#393939;border-right:1 solid #272727;border-bottom:1 solid #272727;color:#a1a1a1;padding:3 4 3 4}.tab-flat:hover,#StyleEditorTabBar::tab:hover,#PaletteTabBar::tab:hover,#FxSettingsTabBar::tab:hover{background-color:#484848;color:#a1a1a1}.tab-flat:selected,#StyleEditorTabBar::tab:selected,#PaletteTabBar::tab:selected,#FxSettingsTabBar::tab:selected{background-color:#484848;color:#fff;border-bottom-color:#484848}.tab-flat:only-one,#StyleEditorTabBar::tab:only-one,#PaletteTabBar::tab:only-one,#FxSettingsTabBar::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;color:#a1a1a1;margin:3 -1 0 0;padding:2 7 1 7}.tab-round:hover{background-color:#484848;color:#a1a1a1}.tab-round:selected{background-color:#484848;border-top-right-radius:2;border-top-left-radius:2;border-bottom-color:#484848;color:#fff;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}QWidget{background-color:#484848;color:#e6e6e6}QWidget:disabled{color:#808080}QFrame{border:0;margin:0;padding:0}QToolTip,#helpToolTip{background-color:#fff;border:1 solid #000;color:#000;padding:1 1}#DockSeparator,QMainWindow::separator,QSplitter::handle{background-color:#1a1a1a;height:4;width:4}#TDockPlaceholder{background-color:#F77272}TPanel{background-color:#1a1a1a}#TopBar{background:#484848;border:0;border-bottom:1 solid #272727;height:21}#TopBar #EditToolLockButton{background:#484848;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:#484848;margin-bottom:1}#StackedMenuBar{border:0;margin:0;padding:0}QMenuBar{background-color:#484848;border:0}QMenuBar::item{background-color:#484848;border-left:1 solid #484848;margin:0;padding:3 5}QMenuBar::item:selected{background-color:rgba(255,255,255,0.15);color:#e6e6e6}QMenuBar::item:pressed{background-color:#5385a6;color:#fff}#TopBarTab{margin:0;padding:0}#TopBarTab::tab{background-color:#393939;border-top:1 solid #272727;border-right:1 solid #272727;color:#a1a1a1;margin:0 0 0 0;padding:2 8 3 8}#TopBarTab::tab:hover{background-color:#484848;color:#a1a1a1}#TopBarTab::tab:selected{background-color:#484848;color:#fff}#TopBarTab::tab:first{border-left:1 solid #272727}#TopBarTab::tab:last{border-right:1 solid #272727}QMenu{background-color:#484848;border:1 solid #272727;padding:2 0}QMenu::item{padding:3 28}QMenu::item:selected{background-color:#5385a6;color:#fff}QMenu::item:checked{color:#e6e6e6}QMenu::item:checked:selected{background-color:#5385a6;color:#fff}QMenu::item:disabled{background:none;color:#808080}QMenu::item:disabled:selected{border-color:transparent}QMenu::separator{border-top:1 solid #272727;height:0;margin:2 0}QMenu::icon{border-radius:2;margin:0 0 0 3;padding:1}QMenu::icon:checked{background-color:#5385a6}QMenu::indicator{margin-left:7}TPanelTitleBar{background-color:#393939;border-color:#272727;border-style:solid;border-width:0 0 1 0;height:20;min-height:20;qproperty-TitleColor:#949494;qproperty-ActiveTitleColor:#fff;qproperty-BorderPixmap:url('none');qproperty-ActiveBorderPixmap:url('imgs/white/none');qproperty-FloatBorderPixmap:url('none');qproperty-FloatActiveBorderPixmap:url('imgs/white/none')}QAbstractScrollArea::corner{background-color:#343434}QScrollBar{background-color:#343434;border:0}QScrollBar:horizontal{height:16;margin:0}QScrollBar:vertical{margin:0;width:16}QScrollBar::handle{border:1 solid #525252;border-radius:4}QScrollBar::handle:horizontal:hover,QScrollBar::handle:vertical:hover{background-color:#676767;border-color:#676767}QScrollBar::handle:horizontal:pressed,QScrollBar::handle:vertical:pressed{background-color:#7b7b7b;border-color:#7b7b7b}QScrollBar::handle:horizontal{background-color:#525252;margin:3 16;min-width:20}QScrollBar::handle:vertical{background-color:#525252;margin:16 3;min-height:20}QScrollBar::add-line{subcontrol-origin:margin;border:0}QScrollBar::add-line:horizontal{subcontrol-position:right;background-color:#343434;margin:0;width:16}QScrollBar::add-line:vertical{subcontrol-position:bottom;background-color:#343434;margin:0;height:16}QScrollBar::sub-line{border:0;subcontrol-origin:margin}QScrollBar::sub-line:horizontal{subcontrol-position:left;background-color:#343434;margin:0;width:16}QScrollBar::sub-line:vertical{subcontrol-position:top;background-color:#343434;margin:0;height:16}QScrollBar::up-arrow:vertical{image:url('imgs/white/scroll-up.svg');image-position:center center}QScrollBar::up-arrow:vertical:pressed{margin:1 0 0 0}QScrollBar::down-arrow:vertical{image:url('imgs/white/scroll-down.svg');image-position:center center}QScrollBar::down-arrow:vertical:pressed{margin:1 0 0 0}QScrollBar::left-arrow:horizontal{image:url('imgs/white/scroll-left.svg');image-position:center center}QScrollBar::left-arrow:horizontal:pressed{margin:1 0 0 0}QScrollBar::right-arrow:horizontal{image:url('imgs/white/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{padding:0}QToolBar::separator:horizontal{border-left:1 solid #272727;margin:0 1;width:0}QToolBar::separator:vertical{border-top:1 solid #272727;height:0;margin:1 0}QToolBar QLabel{margin-top:1}QToolBar QToolBar{border:0}QToolButton::menu-indicator{image:none}QToolButton::menu-button{border-image:none}.DvScrollWidget QPushButton,DvScrollWidget QPushButton,#ScrollLeftButton QPushButton,#ScrollRightButton QPushButton,#ScrollUpButton QPushButton,#ScrollDownButton QPushButton{background-color:#696969;border:0 solid red;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:#767676}.DvScrollWidget QPushButton:pressed,DvScrollWidget QPushButton:pressed,#ScrollLeftButton QPushButton:pressed,#ScrollRightButton QPushButton:pressed,#ScrollUpButton QPushButton:pressed,#ScrollDownButton QPushButton:pressed{background-color:#313131}#ScrollLeftButton,#ScrollRightButton,#ScrollUpButton,#ScrollDownButton{margin:0;min-width:16}#ScrollLeftButton{border-right:1 solid #272727;image:url('imgs/white/scroll-left.svg')}#ScrollRightButton{border-left:1 solid #272727;margin-left:3;image:url('imgs/white/scroll-right.svg')}#ScrollUpButton{image:url('imgs/white/scroll-up.svg')}#ScrollDownButton{image:url('imgs/white/scroll-down.svg')}#keyFrameNavigator{background:none;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')}#keyFrameNavigator #PreviousKey:disabled{image:url('imgs/white/prevkey_disabled.svg')}#keyFrameNavigator #NextKey{image:url('imgs/white/nextkey.svg')}#keyFrameNavigator #NextKey:hover{image:url('imgs/white/nextkey_over.svg')}#keyFrameNavigator #NextKey:disabled{image:url('imgs/white/nextkey_disabled.svg')}.treeview,QTreeWidget,QTreeView,#FunctionEditorTree{background-color:#343434;alternate-background-color:#393939;border:0;margin:0;outline:0}.treeview::item:selected,QTreeWidget::item:selected,QTreeView::item:selected,#FunctionEditorTree::item:selected{background-color:#5385a6;color:#fff}.treeview::branch:adjoins-item,QTreeWidget::branch:adjoins-item,QTreeView::branch:adjoins-item,#FunctionEditorTree::branch:adjoins-item{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('imgs/white/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('imgs/white/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('imgs/white/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('imgs/white/treebranch-open.svg') no-repeat;background-position:center center;border-image:none;image:none}QListView{outline:0;background:#343434;alternate-background-color:#393939}#TabBarContainer{background-color:#393939}.Button,QPushButton,.ComboBox,.ComboBox:checked,QComboBox,QComboBox:checked{background-color:#696969;border:1 solid #484848;border-radius:2;color:#f3f3f3;margin:0;padding:3 15}.Button:hover,QPushButton:hover,.ComboBox:hover,#ViewerFpsSlider::sub-line:horizontal:hover,#ViewerFpsSlider::add-line:horizontal:hover,QComboBox:hover{background-color:#767676;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;color:#f3f3f3}.Button:checked,QPushButton:checked{background-color:#313131;border-color:#2c2c2c;color:#f3f3f3}.Button:checked:hover,QPushButton:checked:hover{background-color:#363636}.Button:checked:hover:pressed,QPushButton:checked:hover:pressed{background:#313131}.Button:disabled,QPushButton:disabled,.ComboBox:disabled,#ViewerFpsSlider::sub-line:horizontal:disabled,#ViewerFpsSlider::add-line:horizontal:disabled,QComboBox:disabled{background-color:#555;border-color:#484848;color:#808080}#PushButton_NoPadding{padding:3}.ComboBox,.ComboBox:checked,QComboBox,QComboBox:checked{padding:1 0 1 4;margin:1 0}.ComboBox::drop-down,QComboBox::drop-down{image:url('imgs/white/combo_downarrow.svg');image-position:center center;width:16}.ComboBox::drop-down:disabled,QComboBox::drop-down:disabled{image:url('imgs/white/combo_downarrow_disabled.svg')}.ComboBox QAbstractItemView,QComboBox QAbstractItemView{background-color:#484848;border:1 solid #272727;selection-background-color:#5385a6;selection-color:#fff}.LineEdit,QPlainTextEdit,QLineEdit,#TaskSheetItem,#tasksRemoveBox,#tasksAddBox{background-color:#2f2f2f;border:1 solid #2c2c2c;border-radius:2;color:#e6e6e6;selection-background-color:#5385a6;selection-color:#fff;padding:0 0 0 1}.LineEdit:focus,QPlainTextEdit:focus,QLineEdit:focus,#TaskSheetItem:focus,#tasksRemoveBox:focus,#tasksAddBox:focus{background-color:#2f2f2f;border-color:#5385a6;color:#e6e6e6}.LineEdit:disabled,QPlainTextEdit:disabled,QLineEdit:disabled,#TaskSheetItem:disabled,#tasksRemoveBox:disabled,#tasksAddBox:disabled{background-color:#3b3b3b;border-color:#3a3a3a;color:#808080}.CheckBox,QCheckBox{color:#e6e6e6}.CheckBox:hover,QCheckBox:hover,.RadioButton:hover,QRadioButton:hover{color:#fff}.CheckBox:disabled,QCheckBox:disabled{color:#808080}.CheckBox::indicator,QMenu::indicator,QCheckBox::indicator,.GroupBox::indicator,QGroupBox::indicator{background-color:#2f2f2f;border:1 solid #2c2c2c;border-radius:2;height:9;padding:1;width:9}.CheckBox::indicator:hover,QMenu::indicator:hover,.CheckBox::indicator:checked:hover,QCheckBox::indicator:hover,.GroupBox::indicator:hover,QMenu::indicator:checked:hover,QCheckBox::indicator:checked:hover,.GroupBox::indicator:checked:hover,QGroupBox::indicator:hover,QGroupBox::indicator:checked:hover{background-color:#2f2f2f;border-color:#5385a6}.CheckBox::indicator:checked,QMenu::indicator:checked,QCheckBox::indicator:checked,.GroupBox::indicator:checked,QGroupBox::indicator:checked{background-color:#2f2f2f;border-color:#2c2c2c;image:url('imgs/white/checkmark.svg')}.CheckBox::indicator:checked:disabled,QMenu::indicator:checked:disabled,QCheckBox::indicator:checked:disabled,.GroupBox::indicator:checked:disabled,QGroupBox::indicator:checked:disabled{background-color:#3b3b3b;border-color:#3b3b3b;image:url('imgs/white/checkmark_disabled.svg')}.CheckBox::indicator:disabled,QMenu::indicator:disabled,QCheckBox::indicator:disabled,.GroupBox::indicator:disabled,QGroupBox::indicator:disabled{background-color:#3b3b3b;border-color:#3b3b3b}.RadioButton::indicator:unchecked,QRadioButton::indicator:unchecked,#CameraSettingsRadioButton_Small::indicator:unchecked{image:url('imgs/white/radiobutton_unchecked.svg');image-position:center center}.RadioButton::indicator:checked,QRadioButton::indicator:checked,#CameraSettingsRadioButton_Small::indicator:checked{image:url('imgs/white/radiobutton_checked.svg');image-position:center center}.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:#fff}.GroupBox::title:disabled,QGroupBox::title:disabled{color:#808080}.GroupBox::indicator,QGroupBox::indicator{subcontrol-origin:margin;margin-top:2}.GroupBox:disabled,QGroupBox:disabled{color:#808080}.Slider::groove:horizontal,QSlider::groove:horizontal{background-color:transparent;background-image:url('imgs/white/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('imgs/white/slider-groove_disabled.svg')}.Slider::handle:horizontal,QSlider::handle:horizontal{width:10;margin:-2 -1;image:url('imgs/white/slider-handle.svg')}.Slider::handle:horizontal:disabled,QSlider::handle:horizontal:disabled{image:url('imgs/white/slider-handle_disabled.svg')}#IntPairField,#DoublePairField{qproperty-LightLineColor:#2c2c2c;qproperty-LightLineEdgeColor:#2c2c2c;qproperty-DarkLineColor:#2c2c2c;qproperty-MiddleLineColor:#2c2c2c;qproperty-HandleLeftPixmap:url("imgs/white/slider-handle.svg");qproperty-HandleRightPixmap:url("imgs/white/slider-handle.svg");qproperty-HandleLeftGrayPixmap:url("imgs/white/slider-handle_disabled.svg");qproperty-HandleRightGrayPixmap:url("imgs/white/slider-handle_disabled.svg")}#DirTreeView{background-color:#343434;alternate-background-color:#343434;border:1 solid #272727;border-right:0}DvItemViewerPanel{qproperty-TextColor:#e6e6e6;qproperty-AlternateBackground:#404040;qproperty-SelectedTextColor:#fff;qproperty-FolderTextColor:#9fdaff;qproperty-SelectedItemBackground:#5385a6}#FileBrowser DvItemViewerPanel,#SceneCast DvItemViewerPanel{background-color:#484848}#FileBrowser #castFrame,#SceneCast #castFrame{border-top:1 solid #272727;border-right:1 solid #272727;border-bottom:1 solid #272727;margin:0}#FileBrowser QToolButton,#SceneCast QToolButton{padding:1}DvDirTreeView{qproperty-TextColor:#e6e6e6;qproperty-SelectedTextColor:#fff;qproperty-SelectedItemBackground:#5385a6;qproperty-FolderTextColor:#9fdaff;qproperty-SelectedFolderTextColor:#fff;alternate-background-color:#393939;background-color:#343434;border:1 solid #272727}#FileDoesNotExistLabel{color:#f00}#SceneCast QToolBar{border-top:1 solid #272727}#SceneCast QToolButton{margin:3 1 2 1;padding:1}#CastBrowser{border:0;margin:0}#FilmStrip QComboBox{border-radius:0;border-width:0}#FilmStrip QComboBox QAbstractItemView{background-color:#484848}#CleanupSettings #CleanupSettingsFrame{margin-top:2;margin-bottom:4}#CleanupSettings QGroupBox{margin-bottom:3}ParamsPage{qproperty-TextColor:#e6e6e6}#CameraSettingsButton{padding:2}#CameraSettingsRadioButton:hover{background:none}#CameraSettingsRadioButton::indicator{border:1 solid rgba(255,255,255,0);height:18;padding:0;width:18}#CameraSettingsRadioButton::indicator:unchecked{image:url('imgs/white/lock_off.svg')}#CameraSettingsRadioButton::indicator:checked{background-color:#C34040;border-color:#C34040;image:url('imgs/white/lock_on.svg')}#CameraSettingsRadioButton::indicator:checked:hover{background-color:#d57a7a;border-color:#d57a7a}#CameraSettingsDPI{color:#9fdaff}#CameraSettingsRadioButton_Small{padding:0}#CameraSettingsRadioButton_Small::indicator{background-color:transparent;border:0;height:21;margin:0;width:11}#ForceSquaredPixelButton{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')}#OutputSettingsLabel{color:#9fdaff}PencilTestPopup{min-height:730px;min-width:512px}#MatchLineButton{background-color:#6e6e6e}#MatchLineButton:checked{background-color:#949494;border:2 solid #5385a6;border-radius:2}#LargeSizedText{font-size:17px}#StartupLabel{padding:3}#StartupLabel:hover{background:#626262}QStatusBar{background-color:#c0c0c0}QStatusBar::item{border:0}QStatusBar QLabel{background-color:#c0c0c0}QStatusBar #StatusBarLabel{background-color:#fff;padding:1 3}#TitleTxtLabel{color:#9fdaff}#StyleEditor QPushButton{margin:2 1;padding:0}#StyleEditor #TabBarContainer{margin-left:-4}#StyleEditor #bottomWidget{border-top:1 solid #272727;padding:3 2 8 3}#StyleEditor #bottomWidget QPushButton{padding:3 5}#StyleEditorTabBar::tab::first{border-left:1 solid #272727}#HexagonalColorWheel{qproperty-BGColor:#484848}#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:18}#colorSliderAddButton{image:url('imgs/white/scroll-right.svg')}#colorSliderSubButton{image:url('imgs/white/scroll-left.svg')}#PlainColorPageParts{border-bottom:1 solid #272727}#PlainColorPageParts QLineEdit{max-width:35}PaletteViewer DvScrollWidget QPushButton{border-top:0;margin-bottom:1;max-width:15;min-width:15}PaletteViewer DvScrollWidget #ScrollLeftButton{border-radius:0;margin-bottom:1;max-width:16;min-width:16}PaletteViewer DvScrollWidget #ScrollRightButton{border-radius:0;margin-left:1;margin-bottom:1;max-width:16;min-width:16}PaletteViewer QToolBar{background:none;border-bottom:1 solid #272727;padding:0;margin:0}PaletteViewer QToolBar::separator:horizontal{margin:0}PaletteViewer QToolBar QToolButton{margin:0 0 1 0;padding:1 0 2 0}#PageViewer{qproperty-TextColor:#e6e6e6}#PaletteLockButton{border-radius:0;margin:0 0 1 1}#PaletteLockButton:checked{background-color:#C34040;border-color:#C34040}#PaletteLockButton:checked:hover{background-color:#d57a7a;border-color:#d57a7a}#WordButton{padding-right:0;padding-left:0}QDialog{background-color:#484848}QDialog #dialogButtonFrame{background-color:#3e3e3e;border-top:1 solid #272727}QDialog #dialogButtonFrame QPushButton{border-color:#3e3e3e;outline:0}QDialog #dialogButtonFrame QPushButton:focus{background-color:#5385a6;border-color:#3e3e3e;color:#fff}QDialog #dialogButtonFrame QPushButton:focus:hover{background-color:#6c98b6}QDialog #dialogButtonFrame QPushButton:focus:pressed{background-color:#313131;border-color:#2c2c2c;color:#f3f3f3}#SceneSettings QLabel{color:#9fdaff}#PreferencesPopup QListWidget{background-color:#343434;alternate-background-color:#343434;border:1 solid #272727;font-size:13px}#PreferencesPopup QListWidget::item{border:0;padding:3}#PreferencesPopup QListWidget::item:hover{color:#e6e6e6;background-color:rgba(255,255,255,0.15)}#PreferencesPopup QListWidget::item:selected{background-color:#5385a6;color:#fff}#ShortcutTree{border:1 solid #272727}#ShortcutTree::item{padding:1 0}#ShortcutTree QScrollBar:vertical{width:16;margin-right:-1}ProjectPopup QLabel{color:#9fdaff}#GearButton{qproperty-icon:url('imgs/white/gear.svg')}#SubfolderButton{qproperty-icon:url('imgs/white/subfolder.svg');padding-left:6px;padding-right:6px}#SubcameraButton{qproperty-icon:url('imgs/white/subcamera.svg');padding-left:6px;padding-right:6px}SchematicViewer{qproperty-TextColor:#e6e6e6;qproperty-VerticalLineColor:#222;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-TableColor:#62628c;qproperty-ActiveCameraColor:#2d7dca;qproperty-OtherCameraColor:#6c797b;qproperty-GroupColor:#3b6e9c;qproperty-PegColor:#9f6e3c;qproperty-SplineColor:#6a9d1c;qproperty-ActiveOutputColor:#2d7dca;qproperty-OtherOutputColor:#6c797b;qproperty-XsheetColor:#62628c;qproperty-NormalFxColor:#6a7e96;qproperty-MacroFxColor:#815c79;qproperty-ImageAdjustFxColor:#656287;qproperty-LayerBlendingFxColor:#4f757d;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-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')}#SchematicBottomFrame{background-color:#484848;border:0;margin:0;padding:0}#SchematicBottomFrame QToolBar::separator:horizontal{margin:0}#SchematicBottomFrame QToolBar QToolButton{padding:0;margin:2}#SchematicSceneViewer{background-color:#3b3b3b;border-bottom:1 solid #272727}#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;padding:3 0}FxSettings QToolBar QToolBar{border:0}#FxSettingsLabel{color:#a0e680}#FxSettingsHelpButton{background-color:#80a0dc;color:#000;padding-top:0;padding-bottom:0}#FxSettingsHelpButton:hover{background-color:#a8bee7}#ScriptConsole{font-family:'Courier New',monospace;border:0;color:#000000;padding:3}#ScriptConsole QFrame{background-color:#dcdcdc}#ScriptConsole TPanelTitleBar{background-color:#393939}#TaskSheetItemLabel{color:#e6e6e6}#Tasks QToolBar{border-bottom:1 solid #272727;margin:0;padding:0}#Tasks QToolBar QToolButton{margin:2 2 3 2}#ToolBar QToolBar{padding-left:2}#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")}#EditToolLockButton{spacing:0}#EditToolLockButton:hover{background:none}#EditToolLockButton::indicator{border:1 solid rgba(255,255,255,0);height:18;padding:0;width:18}#EditToolLockButton::indicator:unchecked{image:url('imgs/white/lock_off.svg')}#EditToolLockButton::indicator:checked{background-color:#C34040;border-color:#C34040;image:url('imgs/white/lock_on.svg')}#EditToolLockButton::indicator:checked:hover{background-color:#d57a7a;border-color:#d57a7a}PopupButton::menu-indicator{border-left:0;height:17;image:url('imgs/white/combo_downarrow.svg');width:10}PopupButton::menu-indicator:hover{image:url('imgs/white/combo_downarrow.svg')}PopupButton::menu-indicator:disabled{image:url('imgs/white/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:3;padding-right:3}QToolBar#WidePaddingToolBar QToolButton{padding-left:6;padding-right:6}#CommandBar{margin:0;padding:0;border:0}#CommandBar::separator:horizontal{margin-right:3;margin-left:3}#expandButton:checked{background-color:transparent;border-color:transparent;color:#e6e6e6}#expandButton:checked:hover{background-color:#767676;border-color:#767676}#expandButton:checked:pressed{background-color:#313131;border-color:#2c2c2c}#ComboViewerPanel Toolbar{border-bottom:1 solid #272727}#ComboViewerPanel Toolbar::separator:horizontal{margin:0 0 0 2}#ComboViewerPanel Toolbar QToolButton{margin:2 0 3 2}#ComboViewerToolOptions{border-bottom:1 solid #272727}#ComboViewer #ToolBarContainer,#ViewerPanel #ToolBarContainer,FlipBook #ToolBarContainer{background-color:transparent;border-top:2 solid #272727;border-bottom:1 solid #272727;padding-right:-1}#flipCustomize{margin-left:3}#flipCustomize::menu-button{background-color:transparent;width:35}#flipCustomize::menu-arrow{image:none}QToolBar#FlipConsolePlayToolBar::separator:horizontal{margin:0 3}QToolBar#FlipConsolePlayToolBar QToolButton{margin-top:2;margin-bottom:2;height:16;padding-left:1;padding-right:1}#ViewerFpsSlider{background-color:transparent;background-image:url('imgs/white/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:#696969;border:1 solid #484848;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:#696969;border:1 solid #484848;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:#a1a1a1;border:1 solid #a1a1a1;border-radius:2;margin:2 0 3 0;min-width:9;width:9;max-width:9}FlipSlider{qproperty-PBHeight:15;qproperty-PBOverlay:url('imgs/white/flipslider.svg');qproperty-PBColorMarginLeft:1;qproperty-PBColorMarginTop:2;qproperty-PBColorMarginRight:1;qproperty-PBColorMarginBottom:2;qproperty-PBMarker:url('imgs/white/flipmarker.svg');qproperty-PBMarkerMarginLeft:3;qproperty-PBMarkerMarginRight:3;qproperty-notStartedColor:rgba(205,101,101,0.78);qproperty-startedColor:#1abc3f;qproperty-baseColor:#2f2f2f;qproperty-finishedColor:#2f2f2f}Ruler{qproperty-ParentBGColor:#484848;qproperty-ScaleColor:#e6e6e6}#RulerToolOptionValues{color:#000}#xsheetArea,#ScrollArea{background-color:#343434;border:0}#xsheetScrollArea{border:0}#cornerWidget QToolButton{padding:0}#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}XsheetViewer{qproperty-TextColor:#e6e6e6;qproperty-BGColor:#3b3b3b;qproperty-LightLineColor:#2c2c2c;qproperty-MarkerLineColor:#1E96C4;qproperty-VerticalLineColor:#222;qproperty-VerticalLineHeadColor:#808080;qproperty-PreviewFrameTextColor:#9fdaff;qproperty-CurrentRowBgColor:#506082;qproperty-OnionSkinAreaBgColor:#363636;qproperty-EmptyColumnHeadColor:#626262;qproperty-SelectedColumnTextColor:#E66464;qproperty-EmptyCellColor:#404040;qproperty-NotEmptyColumnColor:#484848;qproperty-SelectedEmptyCellColor:#6c6c6c;qproperty-LevelColumnColor:#4C6E4C;qproperty-LevelColumnBorderColor:#8FB38F;qproperty-SelectedLevelColumnColor:#678667;qproperty-VectorColumnColor:#7B7B4C;qproperty-VectorColumnBorderColor:#BBBB9A;qproperty-SelectedVectorColumnColor:#949466;qproperty-ChildColumnColor:#6A526B;qproperty-ChildColumnBorderColor:#B1A3B3;qproperty-SelectedChildColumnColor:#816e82;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-SoundColumnHlColor:#34FE5E;qproperty-SoundColumnTrackColor:#B6C29D;qproperty-ColumnHeadPastelizer:#000;qproperty-SelectedColumnHead:#506082;qproperty-LightLightBGColor:#404040;qproperty-LightBGColor:#f0f0f0;qproperty-DarkBGColor:#e1e1e1;qproperty-DarkLineColor:#969696;qproperty-XsheetColumnNameBgColor:rgba(0,0,0,0);qproperty-XsheetDragBarHighlightColor:rgba(255,255,255,0.5);qproperty-XsheetPreviewButtonBgOnColor:#c8c864;qproperty-XsheetPreviewButtonOnImage:url('imgs/white/x_prev_eye_on.svg');qproperty-XsheetPreviewButtonBgOffColor:rgba(255,255,255,0);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-XsheetCamstandButtonOffImage:url('imgs/white/x_table_view_off.svg');qproperty-XsheetLockButtonBgOnColor:rgba(255,255,255,0.3);qproperty-XsheetLockButtonOnImage:url('imgs/white/x_lock_on.svg');qproperty-XsheetLockButtonBgOffColor:rgba(255,255,255,0);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-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')}#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}#FunctionEditor QToolBar{border-bottom:1 solid #272727}#FunctionEditor QToolBar QToolBar{border:0}#FunctionEditor QToolBar QLabel{margin-left:5}#FunctionEditor QToolBar QToolButton{height:18}#FunctionEditorTree{border-top:1 solid #272727}FunctionTreeView{qproperty-TextColor:#e6e6e6;qproperty-CurrentTextColor:#E66464}FunctionPanel{qproperty-BGColor:#3b3b3b;qproperty-ValueLineColor:#2f2f2f;qproperty-FrameLineColor:#2f2f2f;qproperty-OtherCurvesColor:#888;qproperty-RulerBackground:#333;qproperty-TextColor:#e6e6e6;qproperty-SubColor:#000;qproperty-SelectedColor:#FFA500}SpreadsheetViewer{qproperty-LightLightBGColor:#404040;qproperty-CurrentRowBgColor:#506082;qproperty-LightLineColor:#2c2c2c;qproperty-MarkerLineColor:#1E96C4;qproperty-BGColor:#484848;qproperty-VerticalLineColor:#222;qproperty-KeyFrameColor:#995d1d;qproperty-KeyFrameBorderColor:#c9b04b;qproperty-SelectedKeyFrameColor:#be772b;qproperty-InBetweenColor:#666250;qproperty-InBetweenBorderColor:#cdcec8;qproperty-SelectedInBetweenColor:#7d7a6c;qproperty-SelectedEmptyColor:#6c6c6c;qproperty-SelectedSceneRangeEmptyColor:#757575;qproperty-TextColor:#e6e6e6;qproperty-ColumnHeaderBorderColor:#808080;qproperty-SelectedColumnTextColor:#E66464}#ExpressionField{background-color:#e6e6e6;border:1 solid #333;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} \ No newline at end of file +.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,#CameraSettingsRadioButton::indicator,#ForceSquaredPixelButton,#SchematicBottomFrame QToolBar QToolButton,#EditToolLockButton::indicator,#flipCustomize{background-color:rgba(255,255,255,0);border:1 solid rgba(255,255,255,0);border-radius:2;color:#f3f3f3;margin:1;padding:0}.button-tool:hover,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;color:#f3f3f3}.button-tool:pressed,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;color:#f3f3f3}.button-tool:checked,QToolButton:checked,#CameraSettingsRadioButton::indicator:checked,#ForceSquaredPixelButton:checked,#SchematicBottomFrame QToolBar QToolButton:checked,#EditToolLockButton::indicator:checked,#flipCustomize:checked{background-color:#5385a6;border-color:#5385a6;color:#fff}.button-tool:checked:hover,QToolButton:checked:hover,#CameraSettingsRadioButton::indicator:checked:hover,#ForceSquaredPixelButton:checked:hover,#SchematicBottomFrame QToolBar QToolButton:checked:hover,#EditToolLockButton::indicator:checked:hover,#flipCustomize:checked:hover{background-color:#6c98b6;border-color:#6c98b6}.button-tool:disabled,QToolButton:disabled,#CameraSettingsRadioButton::indicator:disabled,#ForceSquaredPixelButton:disabled,#SchematicBottomFrame QToolBar QToolButton:disabled,#EditToolLockButton::indicator:disabled,#flipCustomize:disabled{color:#808080}.button-flat,PaletteViewer QToolBar QToolButton{background-color:none;border:0;border-radius:0;margin:0}.button-flat:hover,PaletteViewer QToolBar QToolButton:hover{background-color:#767676}.button-flat:pressed,PaletteViewer QToolBar QToolButton:pressed{background-color:#272727}.frame,.GroupBox,#LoadLevelFrame,#PsdSettingsGroupBox,#CleanupSettingsFrame,#OutputSettingsBox,#OutputSettingsCameraBox,#SolidLineFrame,#FunctionParametersPanel,QGroupBox{border:1 solid #272727;border-radius:2}.tab-container,#TabBarContainer{background-color:transparent;qproperty-BottomAboveLineColor:#393939;qproperty-BottomBelowLineColor:#272727}.tab-flat,#StyleEditorTabBar::tab,#PaletteTabBar::tab,#FxSettingsTabBar::tab{background-color:#393939;border-right:1 solid #272727;border-bottom:1 solid #272727;color:#a1a1a1;padding:3 4 3 4}.tab-flat:hover,#StyleEditorTabBar::tab:hover,#PaletteTabBar::tab:hover,#FxSettingsTabBar::tab:hover{background-color:#484848;color:#a1a1a1}.tab-flat:selected,#StyleEditorTabBar::tab:selected,#PaletteTabBar::tab:selected,#FxSettingsTabBar::tab:selected{background-color:#484848;color:#fff;border-bottom-color:#484848}.tab-flat:only-one,#StyleEditorTabBar::tab:only-one,#PaletteTabBar::tab:only-one,#FxSettingsTabBar::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;color:#a1a1a1;margin:3 -1 0 0;padding:2 7 1 7}.tab-round:hover{background-color:#484848;color:#a1a1a1}.tab-round:selected{background-color:#484848;border-top-right-radius:2;border-top-left-radius:2;border-bottom-color:#484848;color:#fff;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}QWidget{background-color:#484848;color:#e6e6e6}QWidget:disabled{color:#808080}QFrame{border:0;margin:0;padding:0}QToolTip,#helpToolTip{background-color:#fff;border:1 solid #000;color:#000;padding:1 1}#DockSeparator,QMainWindow::separator,QSplitter::handle{background-color:#1a1a1a;height:4;width:4}#TDockPlaceholder{background-color:#F77272}TPanel{background-color:#1a1a1a}#TopBar{background:#484848;border:0;border-bottom:1 solid #272727;height:21}#TopBar #EditToolLockButton{background:#484848;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:#484848;margin-bottom:1}#StackedMenuBar{border:0;margin:0;padding:0}QMenuBar{background-color:#484848;border:0}QMenuBar::item{background-color:#484848;border-left:1 solid #484848;margin:0;padding:3 5}QMenuBar::item:selected{background-color:rgba(255,255,255,0.15);color:#e6e6e6}QMenuBar::item:pressed{background-color:#5385a6;color:#fff}#TopBarTab{margin:0;padding:0}#TopBarTab::tab{background-color:#393939;border-top:1 solid #272727;border-right:1 solid #272727;color:#a1a1a1;margin:0 0 0 0;padding:2 8 3 8}#TopBarTab::tab:hover{background-color:#484848;color:#a1a1a1}#TopBarTab::tab:selected{background-color:#484848;color:#fff}#TopBarTab::tab:first{border-left:1 solid #272727}#TopBarTab::tab:last{border-right:1 solid #272727}QMenu{background-color:#484848;border:1 solid #272727;padding:2 0}QMenu::item{padding:3 28}QMenu::item:selected{background-color:#5385a6;color:#fff}QMenu::item:checked{color:#e6e6e6}QMenu::item:checked:selected{background-color:#5385a6;color:#fff}QMenu::item:disabled{background:none;color:#808080}QMenu::item:disabled:selected{border-color:transparent}QMenu::separator{border-top:1 solid #272727;height:0;margin:2 0}QMenu::icon{border-radius:2;margin:0 0 0 3;padding:1}QMenu::icon:checked{background-color:#5385a6}QMenu::indicator{margin-left:7}TPanelTitleBar{background-color:#393939;border-color:#272727;border-style:solid;border-width:0 0 1 0;height:20;min-height:20;qproperty-TitleColor:#949494;qproperty-ActiveTitleColor:#fff;qproperty-BorderPixmap:url('none');qproperty-ActiveBorderPixmap:url('imgs/white/none');qproperty-FloatBorderPixmap:url('none');qproperty-FloatActiveBorderPixmap:url('imgs/white/none')}QAbstractScrollArea::corner{background-color:#343434}QScrollBar{background-color:#343434;border:0}QScrollBar:horizontal{height:16;margin:0}QScrollBar:vertical{margin:0;width:16}QScrollBar::handle{border:1 solid #525252;border-radius:4}QScrollBar::handle:horizontal:hover,QScrollBar::handle:vertical:hover{background-color:#676767;border-color:#676767}QScrollBar::handle:horizontal:pressed,QScrollBar::handle:vertical:pressed{background-color:#7b7b7b;border-color:#7b7b7b}QScrollBar::handle:horizontal{background-color:#525252;margin:3 16;min-width:20}QScrollBar::handle:vertical{background-color:#525252;margin:16 3;min-height:20}QScrollBar::add-line{subcontrol-origin:margin;border:0}QScrollBar::add-line:horizontal{subcontrol-position:right;background-color:#343434;margin:0;width:16}QScrollBar::add-line:vertical{subcontrol-position:bottom;background-color:#343434;margin:0;height:16}QScrollBar::sub-line{border:0;subcontrol-origin:margin}QScrollBar::sub-line:horizontal{subcontrol-position:left;background-color:#343434;margin:0;width:16}QScrollBar::sub-line:vertical{subcontrol-position:top;background-color:#343434;margin:0;height:16}QScrollBar::up-arrow:vertical{image:url('imgs/white/scroll-up.svg');image-position:center center}QScrollBar::up-arrow:vertical:pressed{margin:1 0 0 0}QScrollBar::down-arrow:vertical{image:url('imgs/white/scroll-down.svg');image-position:center center}QScrollBar::down-arrow:vertical:pressed{margin:1 0 0 0}QScrollBar::left-arrow:horizontal{image:url('imgs/white/scroll-left.svg');image-position:center center}QScrollBar::left-arrow:horizontal:pressed{margin:1 0 0 0}QScrollBar::right-arrow:horizontal{image:url('imgs/white/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{padding:0}QToolBar::separator:horizontal{border-left:1 solid #272727;margin:0 1;width:0}QToolBar::separator:vertical{border-top:1 solid #272727;height:0;margin:1 0}QToolBar QLabel{margin-top:1}QToolBar QToolBar{border:0}QToolButton::menu-indicator{image:none}QToolButton::menu-button{border-image:none}.DvScrollWidget QPushButton,DvScrollWidget QPushButton,#ScrollLeftButton QPushButton,#ScrollRightButton QPushButton,#ScrollUpButton QPushButton,#ScrollDownButton QPushButton{background-color:#696969;border:0 solid red;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:#767676}.DvScrollWidget QPushButton:pressed,DvScrollWidget QPushButton:pressed,#ScrollLeftButton QPushButton:pressed,#ScrollRightButton QPushButton:pressed,#ScrollUpButton QPushButton:pressed,#ScrollDownButton QPushButton:pressed{background-color:#313131}#ScrollLeftButton,#ScrollRightButton,#ScrollUpButton,#ScrollDownButton{margin:0;min-width:16}#ScrollLeftButton{border-right:1 solid #272727;image:url('imgs/white/scroll-left.svg')}#ScrollRightButton{border-left:1 solid #272727;margin-left:3;image:url('imgs/white/scroll-right.svg')}#ScrollUpButton{image:url('imgs/white/scroll-up.svg')}#ScrollDownButton{image:url('imgs/white/scroll-down.svg')}#keyFrameNavigator{background:none;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')}#keyFrameNavigator #PreviousKey:disabled{image:url('imgs/white/prevkey_disabled.svg')}#keyFrameNavigator #NextKey{image:url('imgs/white/nextkey.svg')}#keyFrameNavigator #NextKey:hover{image:url('imgs/white/nextkey_over.svg')}#keyFrameNavigator #NextKey:disabled{image:url('imgs/white/nextkey_disabled.svg')}.treeview,QTreeWidget,QTreeView,#FunctionEditorTree{background-color:#343434;alternate-background-color:#393939;border:0;margin:0;outline:0}.treeview::item:selected,QTreeWidget::item:selected,QTreeView::item:selected,#FunctionEditorTree::item:selected{background-color:#5385a6;color:#fff}.treeview::branch:adjoins-item,QTreeWidget::branch:adjoins-item,QTreeView::branch:adjoins-item,#FunctionEditorTree::branch:adjoins-item{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('imgs/white/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('imgs/white/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('imgs/white/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('imgs/white/treebranch-open.svg') no-repeat;background-position:center center;border-image:none;image:none}QListView{outline:0;background:#343434;alternate-background-color:#393939}#TabBarContainer{background-color:#393939}.Button,QPushButton,.ComboBox,.ComboBox:checked,QComboBox,QComboBox:checked{background-color:#696969;border:1 solid #484848;border-radius:2;color:#f3f3f3;margin:0;padding:3 15}.Button:hover,QPushButton:hover,.ComboBox:hover,#ViewerFpsSlider::sub-line:horizontal:hover,#ViewerFpsSlider::add-line:horizontal:hover,QComboBox:hover{background-color:#767676;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;color:#f3f3f3}.Button:checked,QPushButton:checked{background-color:#313131;border-color:#2c2c2c;color:#f3f3f3}.Button:checked:hover,QPushButton:checked:hover{background-color:#363636}.Button:checked:hover:pressed,QPushButton:checked:hover:pressed{background:#313131}.Button:disabled,QPushButton:disabled,.ComboBox:disabled,#ViewerFpsSlider::sub-line:horizontal:disabled,#ViewerFpsSlider::add-line:horizontal:disabled,QComboBox:disabled{background-color:#555;border-color:#484848;color:#808080}#PushButton_NoPadding{padding:3}.ComboBox,.ComboBox:checked,QComboBox,QComboBox:checked{padding:1 0 1 4;margin:1 0}.ComboBox::drop-down,QComboBox::drop-down{image:url('imgs/white/combo_downarrow.svg');image-position:center center;width:16}.ComboBox::drop-down:disabled,QComboBox::drop-down:disabled{image:url('imgs/white/combo_downarrow_disabled.svg')}.ComboBox QAbstractItemView,QComboBox QAbstractItemView{background-color:#484848;border:1 solid #272727;selection-background-color:#5385a6;selection-color:#fff}.LineEdit,QPlainTextEdit,QLineEdit,#TaskSheetItem,#tasksRemoveBox,#tasksAddBox{background-color:#2f2f2f;border:1 solid #2c2c2c;border-radius:2;color:#e6e6e6;selection-background-color:#5385a6;selection-color:#fff;padding:0 0 0 1}.LineEdit:focus,QPlainTextEdit:focus,QLineEdit:focus,#TaskSheetItem:focus,#tasksRemoveBox:focus,#tasksAddBox:focus{background-color:#2f2f2f;border-color:#5385a6;color:#e6e6e6}.LineEdit:disabled,QPlainTextEdit:disabled,QLineEdit:disabled,#TaskSheetItem:disabled,#tasksRemoveBox:disabled,#tasksAddBox:disabled{background-color:#3b3b3b;border-color:#3a3a3a;color:#808080}.CheckBox,QCheckBox{color:#e6e6e6}.CheckBox:hover,QCheckBox:hover,.RadioButton:hover,QRadioButton:hover{color:#fff}.CheckBox:disabled,QCheckBox:disabled{color:#808080}.CheckBox::indicator,QMenu::indicator,QCheckBox::indicator,.GroupBox::indicator,QGroupBox::indicator{background-color:#2f2f2f;border:1 solid #2c2c2c;border-radius:2;height:9;padding:1;width:9}.CheckBox::indicator:hover,QMenu::indicator:hover,.CheckBox::indicator:checked:hover,QCheckBox::indicator:hover,.GroupBox::indicator:hover,QMenu::indicator:checked:hover,QCheckBox::indicator:checked:hover,.GroupBox::indicator:checked:hover,QGroupBox::indicator:hover,QGroupBox::indicator:checked:hover{background-color:#2f2f2f;border-color:#5385a6}.CheckBox::indicator:checked,QMenu::indicator:checked,QCheckBox::indicator:checked,.GroupBox::indicator:checked,QGroupBox::indicator:checked{background-color:#2f2f2f;border-color:#2c2c2c;image:url('imgs/white/checkmark.svg')}.CheckBox::indicator:checked:disabled,QMenu::indicator:checked:disabled,QCheckBox::indicator:checked:disabled,.GroupBox::indicator:checked:disabled,QGroupBox::indicator:checked:disabled{background-color:#3b3b3b;border-color:#3b3b3b;image:url('imgs/white/checkmark_disabled.svg')}.CheckBox::indicator:disabled,QMenu::indicator:disabled,QCheckBox::indicator:disabled,.GroupBox::indicator:disabled,QGroupBox::indicator:disabled{background-color:#3b3b3b;border-color:#3b3b3b}.RadioButton::indicator:unchecked,QRadioButton::indicator:unchecked,#CameraSettingsRadioButton_Small::indicator:unchecked{image:url('imgs/white/radiobutton_unchecked.svg');image-position:center center}.RadioButton::indicator:checked,QRadioButton::indicator:checked,#CameraSettingsRadioButton_Small::indicator:checked{image:url('imgs/white/radiobutton_checked.svg');image-position:center center}.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:#fff}.GroupBox::title:disabled,QGroupBox::title:disabled{color:#808080}.GroupBox::indicator,QGroupBox::indicator{subcontrol-origin:margin;margin-top:2}.GroupBox:disabled,QGroupBox:disabled{color:#808080}.Slider::groove:horizontal,QSlider::groove:horizontal{background-color:transparent;background-image:url('imgs/white/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('imgs/white/slider-groove_disabled.svg')}.Slider::handle:horizontal,QSlider::handle:horizontal{width:10;margin:-2 -1;image:url('imgs/white/slider-handle.svg')}.Slider::handle:horizontal:disabled,QSlider::handle:horizontal:disabled{image:url('imgs/white/slider-handle_disabled.svg')}#IntPairField,#DoublePairField{qproperty-LightLineColor:#2c2c2c;qproperty-LightLineEdgeColor:#2c2c2c;qproperty-DarkLineColor:#2c2c2c;qproperty-MiddleLineColor:#2c2c2c;qproperty-HandleLeftPixmap:url("imgs/white/slider-handle.svg");qproperty-HandleRightPixmap:url("imgs/white/slider-handle.svg");qproperty-HandleLeftGrayPixmap:url("imgs/white/slider-handle_disabled.svg");qproperty-HandleRightGrayPixmap:url("imgs/white/slider-handle_disabled.svg")}#DirTreeView{background-color:#343434;alternate-background-color:#343434;border:1 solid #272727;border-right:0}DvItemViewerPanel{qproperty-TextColor:#e6e6e6;qproperty-AlternateBackground:#404040;qproperty-SelectedTextColor:#fff;qproperty-FolderTextColor:#9fdaff;qproperty-SelectedItemBackground:#5385a6}#FileBrowser DvItemViewerPanel,#SceneCast DvItemViewerPanel{background-color:#484848}#FileBrowser #castFrame,#SceneCast #castFrame{border-top:1 solid #272727;border-right:1 solid #272727;border-bottom:1 solid #272727;margin:0}#FileBrowser QToolButton,#SceneCast QToolButton{padding:1}DvDirTreeView{qproperty-TextColor:#e6e6e6;qproperty-SelectedTextColor:#fff;qproperty-SelectedItemBackground:#5385a6;qproperty-FolderTextColor:#9fdaff;qproperty-SelectedFolderTextColor:#fff;alternate-background-color:#393939;background-color:#343434;border:1 solid #272727}#FileDoesNotExistLabel{color:#f00}#SceneCast QToolBar{border-top:1 solid #272727}#SceneCast QToolButton{margin:3 1 2 1;padding:1}#CastBrowser{border:0;margin:0}#FilmStrip QComboBox{border-radius:0;border-width:0}#FilmStrip QComboBox QAbstractItemView{background-color:#484848}#CleanupSettings #CleanupSettingsFrame{margin-top:2;margin-bottom:4}#CleanupSettings QGroupBox{margin-bottom:3}ParamsPage{qproperty-TextColor:#e6e6e6}#CameraSettingsButton{padding:2}#CameraSettingsRadioButton:hover{background:none}#CameraSettingsRadioButton::indicator{border:1 solid rgba(255,255,255,0);height:18;padding:0;width:18}#CameraSettingsRadioButton::indicator:unchecked{image:url('imgs/white/lock_off.svg')}#CameraSettingsRadioButton::indicator:checked{background-color:#C34040;border-color:#C34040;image:url('imgs/white/lock_on.svg')}#CameraSettingsRadioButton::indicator:checked:hover{background-color:#d57a7a;border-color:#d57a7a}#CameraSettingsDPI{color:#9fdaff}#CameraSettingsRadioButton_Small{padding:0}#CameraSettingsRadioButton_Small::indicator{background-color:transparent;border:0;height:21;margin:0;width:11}#ForceSquaredPixelButton{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')}#OutputSettingsLabel{color:#9fdaff}PencilTestPopup{min-height:730px;min-width:512px}#MatchLineButton{background-color:#6e6e6e}#MatchLineButton:checked{background-color:#949494;border:2 solid #5385a6;border-radius:2}#LargeSizedText{font-size:17px}#StartupLabel{padding:3}#StartupLabel:hover{background:#626262}QStatusBar{background-color:#c0c0c0}QStatusBar::item{border:0}QStatusBar QLabel{background-color:#c0c0c0}QStatusBar #StatusBarLabel{background-color:#fff;padding:1 3}#TitleTxtLabel{color:#9fdaff}#StyleEditor QPushButton{margin:2 1;padding:0}#StyleEditor #TabBarContainer{margin-left:-4}#StyleEditor #bottomWidget{border-top:1 solid #272727;padding:3 2 8 3}#StyleEditor #bottomWidget QPushButton{padding:3 5}#StyleEditorTabBar::tab::first{border-left:1 solid #272727}#HexagonalColorWheel{qproperty-BGColor:#484848}#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:18}#colorSliderAddButton{image:url('imgs/white/scroll-right.svg')}#colorSliderSubButton{image:url('imgs/white/scroll-left.svg')}#PlainColorPageParts{border-bottom:1 solid #272727}#PlainColorPageParts QLineEdit{max-width:35}PaletteViewer DvScrollWidget QPushButton{border-top:0;margin-bottom:1;max-width:15;min-width:15}PaletteViewer DvScrollWidget #ScrollLeftButton{border-radius:0;margin-bottom:1;max-width:16;min-width:16}PaletteViewer DvScrollWidget #ScrollRightButton{border-radius:0;margin-left:1;margin-bottom:1;max-width:16;min-width:16}PaletteViewer QToolBar{background:none;border-bottom:1 solid #272727;padding:0;margin:0}PaletteViewer QToolBar::separator:horizontal{margin:0}PaletteViewer QToolBar QToolButton{margin:0 0 1 0;padding:1 0 2 0}#PageViewer{qproperty-TextColor:#e6e6e6}#PaletteLockButton{border-radius:0;margin:0 0 1 1}#PaletteLockButton:checked{background-color:#C34040;border-color:#C34040}#PaletteLockButton:checked:hover{background-color:#d57a7a;border-color:#d57a7a}#WordButton{padding-right:0;padding-left:0}QDialog{background-color:#484848}QDialog #dialogButtonFrame{background-color:#3e3e3e;border-top:1 solid #272727}QDialog #dialogButtonFrame QPushButton{border-color:#3e3e3e;outline:0}QDialog #dialogButtonFrame QPushButton:focus{background-color:#5385a6;border-color:#3e3e3e;color:#fff}QDialog #dialogButtonFrame QPushButton:focus:hover{background-color:#6c98b6}QDialog #dialogButtonFrame QPushButton:focus:pressed{background-color:#313131;border-color:#2c2c2c;color:#f3f3f3}#SceneSettings QLabel{color:#9fdaff}#PreferencesPopup QListWidget{background-color:#343434;alternate-background-color:#343434;border:1 solid #272727;font-size:13px}#PreferencesPopup QListWidget::item{border:0;padding:3}#PreferencesPopup QListWidget::item:hover{color:#e6e6e6;background-color:rgba(255,255,255,0.15)}#PreferencesPopup QListWidget::item:selected{background-color:#5385a6;color:#fff}#ShortcutTree{border:1 solid #272727}#ShortcutTree::item{padding:1 0}#ShortcutTree QScrollBar:vertical{width:16;margin-right:-1}ProjectPopup QLabel{color:#9fdaff}#GearButton{qproperty-icon:url('imgs/white/gear.svg')}#SubfolderButton{qproperty-icon:url('imgs/white/subfolder.svg');padding-left:6px;padding-right:6px}#SubcameraButton{qproperty-icon:url('imgs/white/subcamera.svg');padding-left:6px;padding-right:6px}SchematicViewer{qproperty-TextColor:#e6e6e6;qproperty-VerticalLineColor:#222;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-TableColor:#62628c;qproperty-ActiveCameraColor:#2d7dca;qproperty-OtherCameraColor:#6c797b;qproperty-GroupColor:#3b6e9c;qproperty-PegColor:#9f6e3c;qproperty-SplineColor:#6a9d1c;qproperty-ActiveOutputColor:#2d7dca;qproperty-OtherOutputColor:#6c797b;qproperty-XsheetColor:#62628c;qproperty-NormalFxColor:#6a7e96;qproperty-MacroFxColor:#815c79;qproperty-ImageAdjustFxColor:#656287;qproperty-LayerBlendingFxColor:#4f757d;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-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')}#SchematicBottomFrame{background-color:#484848;border:0;margin:0;padding:0}#SchematicBottomFrame QToolBar::separator:horizontal{margin:0}#SchematicBottomFrame QToolBar QToolButton{padding:0;margin:2}#SchematicSceneViewer{background-color:#3b3b3b;border-bottom:1 solid #272727}#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;padding:3 0}FxSettings QToolBar QToolBar{border:0}#FxSettingsLabel{color:#a0e680}#FxSettingsHelpButton{background-color:#80a0dc;color:#000;padding-top:0;padding-bottom:0}#FxSettingsHelpButton:hover{background-color:#a8bee7}#ScriptConsole{font-family:'Courier New',monospace;border:0;color:#000000;padding:3}#ScriptConsole QFrame{background-color:#dcdcdc}#ScriptConsole TPanelTitleBar{background-color:#393939}#TaskSheetItemLabel{color:#e6e6e6}#Tasks QToolBar{border-bottom:1 solid #272727;margin:0;padding:0}#Tasks QToolBar QToolButton{margin:2 2 3 2}#ToolBar QToolBar{padding-left:2}#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")}#EditToolLockButton{spacing:0}#EditToolLockButton:hover{background:none}#EditToolLockButton::indicator{border:1 solid rgba(255,255,255,0);height:18;padding:0;width:18}#EditToolLockButton::indicator:unchecked{image:url('imgs/white/lock_off.svg')}#EditToolLockButton::indicator:checked{background-color:#C34040;border-color:#C34040;image:url('imgs/white/lock_on.svg')}#EditToolLockButton::indicator:checked:hover{background-color:#d57a7a;border-color:#d57a7a}PopupButton::menu-indicator{border-left:0;height:17;image:url('imgs/white/combo_downarrow.svg');width:10}PopupButton::menu-indicator:hover{image:url('imgs/white/combo_downarrow.svg')}PopupButton::menu-indicator:disabled{image:url('imgs/white/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:3;padding-right:3}QToolBar#WidePaddingToolBar QToolButton{padding-left:6;padding-right:6}#CommandBar{margin:0;padding:0;border:0}#CommandBar::separator:horizontal{margin-right:3;margin-left:3}#expandButton:checked{background-color:transparent;border-color:transparent;color:#e6e6e6}#expandButton:checked:hover{background-color:#767676;border-color:#767676}#expandButton:checked:pressed{background-color:#313131;border-color:#2c2c2c}#ComboViewerPanel Toolbar{border-bottom:1 solid #272727}#ComboViewerPanel Toolbar::separator:horizontal{margin:0 0 0 2}#ComboViewerPanel Toolbar QToolButton{margin:2 0 3 2}#ComboViewerToolOptions{border-bottom:1 solid #272727}#ComboViewer #ToolBarContainer,#ViewerPanel #ToolBarContainer,FlipBook #ToolBarContainer{background-color:transparent;border-top:2 solid #272727;border-bottom:1 solid #272727;padding-right:-1}#flipCustomize{margin-left:3}#flipCustomize::menu-button{background-color:transparent;width:35}#flipCustomize::menu-arrow{image:none}QToolBar#FlipConsolePlayToolBar::separator:horizontal{margin:0 3}QToolBar#FlipConsolePlayToolBar QToolButton{margin-top:2;margin-bottom:2;height:16;padding-left:1;padding-right:1}#ViewerFpsSlider{background-color:transparent;background-image:url('imgs/white/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:#696969;border:1 solid #484848;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:#696969;border:1 solid #484848;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:#a1a1a1;border:1 solid #a1a1a1;border-radius:2;margin:2 0 3 0;min-width:9;width:9;max-width:9}FlipSlider{qproperty-PBHeight:15;qproperty-PBOverlay:url('imgs/white/flipslider.svg');qproperty-PBColorMarginLeft:1;qproperty-PBColorMarginTop:2;qproperty-PBColorMarginRight:1;qproperty-PBColorMarginBottom:2;qproperty-PBMarker:url('imgs/white/flipmarker.svg');qproperty-PBMarkerMarginLeft:3;qproperty-PBMarkerMarginRight:3;qproperty-notStartedColor:rgba(205,101,101,0.78);qproperty-startedColor:#1abc3f;qproperty-baseColor:#2f2f2f;qproperty-finishedColor:#2f2f2f}Ruler{qproperty-ParentBGColor:#484848;qproperty-ScaleColor:#e6e6e6}#RulerToolOptionValues{color:#000}#xsheetArea,#ScrollArea{background-color:#343434;border:0}#xsheetScrollArea{border:0}#cornerWidget QToolButton{padding:0}#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}XsheetViewer{qproperty-TextColor:#e6e6e6;qproperty-BGColor:#3b3b3b;qproperty-LightLineColor:#2c2c2c;qproperty-MarkerLineColor:#1E96C4;qproperty-VerticalLineColor:#222;qproperty-VerticalLineHeadColor:#808080;qproperty-PreviewFrameTextColor:#9fdaff;qproperty-CurrentRowBgColor:#506082;qproperty-OnionSkinAreaBgColor:#363636;qproperty-EmptyColumnHeadColor:#626262;qproperty-SelectedColumnTextColor:#E66464;qproperty-EmptyCellColor:#404040;qproperty-NotEmptyColumnColor:#484848;qproperty-SelectedEmptyCellColor:#6c6c6c;qproperty-LevelColumnColor:#4C6E4C;qproperty-LevelColumnBorderColor:#8FB38F;qproperty-SelectedLevelColumnColor:#678667;qproperty-VectorColumnColor:#7B7B4C;qproperty-VectorColumnBorderColor:#BBBB9A;qproperty-SelectedVectorColumnColor:#949466;qproperty-ChildColumnColor:#6A526B;qproperty-ChildColumnBorderColor:#B1A3B3;qproperty-SelectedChildColumnColor:#816e82;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-SoundColumnHlColor:#34FE5E;qproperty-SoundColumnTrackColor:#B6C29D;qproperty-ColumnHeadPastelizer:#000;qproperty-SelectedColumnHead:#506082;qproperty-LightLightBGColor:#404040;qproperty-LightBGColor:#f0f0f0;qproperty-DarkBGColor:#e1e1e1;qproperty-DarkLineColor:#969696;qproperty-XsheetColumnNameBgColor:rgba(0,0,0,0);qproperty-XsheetDragBarHighlightColor:rgba(255,255,255,0.5);qproperty-XsheetPreviewButtonBgOnColor:#c8c864;qproperty-XsheetPreviewButtonOnImage:url('imgs/white/x_prev_eye_on.svg');qproperty-XsheetPreviewButtonBgOffColor:rgba(255,255,255,0);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-XsheetCamstandButtonOffImage:url('imgs/white/x_table_view_off.svg');qproperty-XsheetLockButtonBgOnColor:rgba(255,255,255,0.3);qproperty-XsheetLockButtonOnImage:url('imgs/white/x_lock_on.svg');qproperty-XsheetLockButtonBgOffColor:rgba(255,255,255,0);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-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}#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}#FunctionEditor QToolBar{border-bottom:1 solid #272727}#FunctionEditor QToolBar QToolBar{border:0}#FunctionEditor QToolBar QLabel{margin-left:5}#FunctionEditor QToolBar QToolButton{height:18}#FunctionEditorTree{border-top:1 solid #272727}FunctionTreeView{qproperty-TextColor:#e6e6e6;qproperty-CurrentTextColor:#E66464}FunctionPanel{qproperty-BGColor:#3b3b3b;qproperty-ValueLineColor:#2f2f2f;qproperty-FrameLineColor:#2f2f2f;qproperty-OtherCurvesColor:#888;qproperty-RulerBackground:#333;qproperty-TextColor:#e6e6e6;qproperty-SubColor:#000;qproperty-SelectedColor:#FFA500}SpreadsheetViewer{qproperty-LightLightBGColor:#404040;qproperty-CurrentRowBgColor:#506082;qproperty-LightLineColor:#2c2c2c;qproperty-MarkerLineColor:#1E96C4;qproperty-BGColor:#484848;qproperty-VerticalLineColor:#222;qproperty-KeyFrameColor:#995d1d;qproperty-KeyFrameBorderColor:#c9b04b;qproperty-SelectedKeyFrameColor:#be772b;qproperty-InBetweenColor:#666250;qproperty-InBetweenBorderColor:#cdcec8;qproperty-SelectedInBetweenColor:#7d7a6c;qproperty-SelectedEmptyColor:#6c6c6c;qproperty-SelectedSceneRangeEmptyColor:#757575;qproperty-TextColor:#e6e6e6;qproperty-ColumnHeaderBorderColor:#808080;qproperty-SelectedColumnTextColor:#E66464}#ExpressionField{background-color:#e6e6e6;border:1 solid #333;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} \ No newline at end of file diff --git a/stuff/config/qss/Default/less/Default.less b/stuff/config/qss/Default/less/Default.less index 2c6179a..9fbd0b1 100644 --- a/stuff/config/qss/Default/less/Default.less +++ b/stuff/config/qss/Default/less/Default.less @@ -369,6 +369,12 @@ @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-ColumnNameBg-color: rgba(0, 0, 0, 0); diff --git a/stuff/config/qss/Default/less/layouts/xsheet.less b/stuff/config/qss/Default/less/layouts/xsheet.less index 1e3c46b..b918202 100644 --- a/stuff/config/qss/Default/less/layouts/xsheet.less +++ b/stuff/config/qss/Default/less/layouts/xsheet.less @@ -164,6 +164,12 @@ XsheetViewer { 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 diff --git a/stuff/config/qss/Default/less/themes/Light.less b/stuff/config/qss/Default/less/themes/Light.less index 17697c8..663bf20 100644 --- a/stuff/config/qss/Default/less/themes/Light.less +++ b/stuff/config/qss/Default/less/themes/Light.less @@ -290,6 +290,12 @@ @xsheet-DarkBG-color: rgb(225,225,225); @xsheet-DarkLine-color: rgb(150,150,150); +@xsheet-ActiveCamera-color: rgb(107, 165, 222); +@xsheet-SelectedActiveCamera-color: lighten(desaturate(@xsheet-ActiveCamera-color, 5), 10); + +@xsheet-OtherCamera-color: rgb(143, 156, 158); +@xsheet-SelectedOtherCamera-color: lighten(desaturate(@xsheet-OtherCamera-color, 5), 10); + // ----------------------------------------------------------------------------- // Function Editor // ----------------------------------------------------------------------------- diff --git a/stuff/config/qss/Light/Light.qss b/stuff/config/qss/Light/Light.qss index 2db62bb..6b3bc5c 100644 --- a/stuff/config/qss/Light/Light.qss +++ b/stuff/config/qss/Light/Light.qss @@ -1 +1 @@ -.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,#CameraSettingsRadioButton::indicator,#ForceSquaredPixelButton,#SchematicBottomFrame QToolBar QToolButton,#EditToolLockButton::indicator,#flipCustomize{background-color:rgba(255,255,255,0);border:1 solid rgba(255,255,255,0);border-radius:2;color:#000;margin:1;padding:0}.button-tool:hover,QToolButton:hover,#CameraSettingsRadioButton::indicator:hover,#ForceSquaredPixelButton:hover,#colorSliderAddButton:hover,#colorSliderSubButton:hover,#SchematicBottomFrame QToolBar QToolButton:hover,#EditToolLockButton::indicator:hover,#flipCustomize:hover{background-color:#bbb;border-color:#525252;color:#000}.button-tool:pressed,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:#000}.button-tool:checked,QToolButton:checked,#CameraSettingsRadioButton::indicator:checked,#ForceSquaredPixelButton:checked,#SchematicBottomFrame QToolBar QToolButton:checked,#EditToolLockButton::indicator:checked,#flipCustomize:checked{background-color:#5a5a5a;border-color:#454545;color:#c0c0c0}.button-tool:checked:hover,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}.button-tool:disabled,QToolButton:disabled,#CameraSettingsRadioButton::indicator:disabled,#ForceSquaredPixelButton:disabled,#SchematicBottomFrame QToolBar QToolButton:disabled,#EditToolLockButton::indicator:disabled,#flipCustomize:disabled{color:rgba(0,0,0,0.466)}.button-flat,PaletteViewer QToolBar QToolButton{background-color:none;border:0;border-radius:0;margin:0}.button-flat:hover,PaletteViewer QToolBar QToolButton:hover{background-color:#bbb}.button-flat:pressed,PaletteViewer QToolBar QToolButton:pressed{background-color:#404040}.frame,.GroupBox,#LoadLevelFrame,#PsdSettingsGroupBox,#CleanupSettingsFrame,#OutputSettingsBox,#OutputSettingsCameraBox,#SolidLineFrame,#FunctionParametersPanel,QGroupBox{border:1 solid #404040;border-radius:2}.tab-container,#TabBarContainer{background-color:transparent;qproperty-BottomAboveLineColor:#6c6c6c;qproperty-BottomBelowLineColor:#404040}.tab-flat,#StyleEditorTabBar::tab,#PaletteTabBar::tab,#FxSettingsTabBar::tab{background-color:#5a5a5a;border-right:1 solid #404040;border-bottom:1 solid #404040;color:#c0c0c0;padding:3 4 3 4}.tab-flat:hover,#StyleEditorTabBar::tab:hover,#PaletteTabBar::tab:hover,#FxSettingsTabBar::tab:hover{background-color:#6e6e6e;color:#fff}.tab-flat:selected,#StyleEditorTabBar::tab:selected,#PaletteTabBar::tab:selected,#FxSettingsTabBar::tab:selected{background-color:#808080;color:#000;border-bottom-color:#808080}.tab-flat:only-one,#StyleEditorTabBar::tab:only-one,#PaletteTabBar::tab:only-one,#FxSettingsTabBar::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;margin:3 -1 0 0;padding:2 7 1 7}.tab-round:hover{background-color:#6e6e6e;color:#fff}.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}QWidget{background-color:#808080;color:#000}QWidget:disabled{color:rgba(0,0,0,0.466)}QFrame{border:0;margin:0;padding:0}QToolTip,#helpToolTip{background-color:#fff;border:1 solid #000;color:#000;padding:1 1}#DockSeparator,QMainWindow::separator,QSplitter::handle{background-color:#272727;height:4;width:4}#TDockPlaceholder{background-color:#F77272}TPanel{background-color:#272727}#TopBar{background:#808080;border:0;border-bottom:1 solid #404040;height:21}#TopBar #EditToolLockButton{background:#808080;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;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}QMenuBar::item:selected{background-color:#9f9f9f;color:#000}QMenuBar::item:pressed{background-color:#225baf;color:#FFFFFF}#TopBarTab{margin:0;padding:0}#TopBarTab::tab{background-color:#5a5a5a;border-top:1 solid #404040;border-right:1 solid #404040;color:#afafaf;margin:0 0 0 0;padding:2 8 3 8}#TopBarTab::tab:hover{background-color:#6e6e6e;color:#fff}#TopBarTab::tab:selected{background-color:#9a9a9a;color:#000}#TopBarTab::tab:first{border-left:1 solid #404040}#TopBarTab::tab:last{border-right:1 solid #404040}QMenu{background-color:#949494;border:1 solid #404040;padding:2 0}QMenu::item{padding:3 28}QMenu::item:selected{background-color:#225baf;color:#FFFFFF}QMenu::item:checked{color:#000}QMenu::item:checked:selected{background-color:#225baf;color:#FFFFFF}QMenu::item:disabled{background:none;color:rgba(0,0,0,0.466)}QMenu::item:disabled:selected{border-color:transparent}QMenu::separator{border-top:1 solid #6e6e6e;height:0;margin:2 0}QMenu::icon{border-radius:2;margin:0 0 0 3;padding:1}QMenu::icon:checked{background-color:#225baf}QMenu::indicator{margin-left:7}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;qproperty-BorderPixmap:url('none');qproperty-ActiveBorderPixmap:url('../Default/imgs/black/none');qproperty-FloatBorderPixmap:url('none');qproperty-FloatActiveBorderPixmap:url('../Default/imgs/black/none')}QAbstractScrollArea::corner{background-color:#6e6e6e}QScrollBar{background-color:#6e6e6e;border:0}QScrollBar:horizontal{height:16;margin:0}QScrollBar:vertical{margin:0;width:16}QScrollBar::handle{border:1 solid #555;border-radius:2}QScrollBar::handle:horizontal:hover,QScrollBar::handle:vertical:hover{background-color:#b3b3b3;border-color:#404040}QScrollBar::handle:horizontal:pressed,QScrollBar::handle:vertical:pressed{background-color:#c7c7c7;border-color:#404040}QScrollBar::handle:horizontal{background-color:#9f9f9f;margin:2 16;min-width:20}QScrollBar::handle:vertical{background-color:#9f9f9f;margin:16 2;min-height:20}QScrollBar::add-line{subcontrol-origin:margin;border:0}QScrollBar::add-line:horizontal{subcontrol-position:right;background-color:#6e6e6e;margin:0;width:16}QScrollBar::add-line:vertical{subcontrol-position:bottom;background-color:#6e6e6e;margin:0;height:16}QScrollBar::sub-line{border:0;subcontrol-origin:margin}QScrollBar::sub-line:horizontal{subcontrol-position:left;background-color:#6e6e6e;margin:0;width:16}QScrollBar::sub-line:vertical{subcontrol-position:top;background-color:#6e6e6e;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{padding:0}QToolBar::separator:horizontal{border-left:1 solid #404040;margin:0 1;width:0}QToolBar::separator:vertical{border-top:1 solid #404040;height:0;margin:1 0}QToolBar QLabel{margin-top:1}QToolBar QToolBar{border:0}QToolButton::menu-indicator{image:none}QToolButton::menu-button{border-image:none}.DvScrollWidget QPushButton,DvScrollWidget QPushButton,#ScrollLeftButton QPushButton,#ScrollRightButton QPushButton,#ScrollUpButton QPushButton,#ScrollDownButton QPushButton{background-color:#a6a6a6;border:0 solid red;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:#bbb}.DvScrollWidget QPushButton:pressed,DvScrollWidget QPushButton:pressed,#ScrollLeftButton QPushButton:pressed,#ScrollRightButton QPushButton:pressed,#ScrollUpButton QPushButton:pressed,#ScrollDownButton QPushButton:pressed{background-color:#e1e1e1}#ScrollLeftButton,#ScrollRightButton,#ScrollUpButton,#ScrollDownButton{margin:0;min-width:16}#ScrollLeftButton{border-right:1 solid #404040;image:url('../Default/imgs/black/scroll-left.svg')}#ScrollRightButton{border-left:1 solid #404040;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')}#keyFrameNavigator{background:none;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')}#keyFrameNavigator #PreviousKey:disabled{image:url('../Default/imgs/black/prevkey_disabled.svg')}#keyFrameNavigator #NextKey{image:url('../Default/imgs/black/nextkey.svg')}#keyFrameNavigator #NextKey:hover{image:url('../Default/imgs/black/nextkey_over.svg')}#keyFrameNavigator #NextKey:disabled{image:url('../Default/imgs/black/nextkey_disabled.svg')}.treeview,QTreeWidget,QTreeView,#FunctionEditorTree{background-color:#949494;alternate-background-color:#8a8a8a;border:0;margin:0;outline:0}.treeview::item:selected,QTreeWidget::item:selected,QTreeView::item:selected,#FunctionEditorTree::item:selected{background-color:#225baf;color:#FFFFFF}.treeview::branch:adjoins-item,QTreeWidget::branch:adjoins-item,QTreeView::branch:adjoins-item,#FunctionEditorTree::branch:adjoins-item{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:#949494;alternate-background-color:#8a8a8a}#TabBarContainer{background-color:#6c6c6c}.Button,QPushButton,.ComboBox,.ComboBox:checked,QComboBox,QComboBox:checked{background-color:#a6a6a6;border:1 solid #525252;border-radius:2;color:#000;margin:0;padding:3 15}.Button:hover,QPushButton:hover,.ComboBox:hover,#ViewerFpsSlider::sub-line:horizontal:hover,#ViewerFpsSlider::add-line:horizontal:hover,QComboBox:hover{background-color:#bbb;border-color:#525252;color:#000}.Button:pressed,QPushButton:pressed,#ViewerFpsSlider::sub-line:horizontal:pressed,#ViewerFpsSlider::add-line:horizontal:pressed{background-color:#e1e1e1;border-color:#525252;color:#000}.Button:checked,QPushButton:checked{background-color:#5a5a5a;border-color:#454545;color:#c0c0c0}.Button:checked:hover,QPushButton:checked:hover{background-color:#5f5f5f}.Button:checked:hover:pressed,QPushButton:checked:hover:pressed{background:#5a5a5a}.Button:disabled,QPushButton:disabled,.ComboBox:disabled,#ViewerFpsSlider::sub-line:horizontal:disabled,#ViewerFpsSlider::add-line:horizontal:disabled,QComboBox:disabled{background-color:#8d8d8d;border-color:#737373;color:rgba(0,0,0,0.466)}#PushButton_NoPadding{padding:3}.ComboBox,.ComboBox:checked,QComboBox,QComboBox:checked{padding:1 0 1 4;margin:1 0}.ComboBox::drop-down,QComboBox::drop-down{image:url('../Default/imgs/black/combo_downarrow.svg');image-position:center center;width:16}.ComboBox::drop-down:disabled,QComboBox::drop-down:disabled{image:url('../Default/imgs/black/combo_downarrow_disabled.svg')}.ComboBox QAbstractItemView,QComboBox QAbstractItemView{background-color:#949494;border:1 solid #404040;selection-background-color:#225baf;selection-color:#FFFFFF}.LineEdit,QPlainTextEdit,QLineEdit,#TaskSheetItem,#tasksRemoveBox,#tasksAddBox{background-color:#e6e6e6;border:1 solid #525252;border-radius:2;color:#000;selection-background-color:#225baf;selection-color:#FFFFFF;padding:0 0 0 1}.LineEdit:focus,QPlainTextEdit:focus,QLineEdit:focus,#TaskSheetItem:focus,#tasksRemoveBox:focus,#tasksAddBox:focus{background-color:#e6e6e6;border-color:#525252;color:#000}.LineEdit:disabled,QPlainTextEdit:disabled,QLineEdit:disabled,#TaskSheetItem:disabled,#tasksRemoveBox:disabled,#tasksAddBox:disabled{background-color:#9a9a9a;border-color:#696969;color:rgba(0,0,0,0.466)}.CheckBox,QCheckBox{color:#000}.CheckBox:hover,QCheckBox:hover,.RadioButton:hover,QRadioButton:hover{color:#fff}.CheckBox:disabled,QCheckBox:disabled{color:rgba(0,0,0,0.466)}.CheckBox::indicator,QMenu::indicator,QCheckBox::indicator,.GroupBox::indicator,QGroupBox::indicator{background-color:#cdcdcd;border:1 solid #525252;border-radius:2;height:9;padding:1;width:9}.CheckBox::indicator:hover,QMenu::indicator:hover,.CheckBox::indicator:checked:hover,QCheckBox::indicator:hover,.GroupBox::indicator:hover,QMenu::indicator:checked:hover,QCheckBox::indicator:checked:hover,.GroupBox::indicator:checked:hover,QGroupBox::indicator:hover,QGroupBox::indicator:checked:hover{background-color:#e6e6e6;border-color:#525252}.CheckBox::indicator:checked,QMenu::indicator:checked,QCheckBox::indicator:checked,.GroupBox::indicator:checked,QGroupBox::indicator:checked{background-color:#cdcdcd;border-color:#525252;image:url('../Default/imgs/black/checkmark.svg')}.CheckBox::indicator:checked:disabled,QMenu::indicator:checked:disabled,QCheckBox::indicator:checked:disabled,.GroupBox::indicator:checked:disabled,QGroupBox::indicator:checked:disabled{background-color:#8d8d8d;border-color:#737373;image:url('../Default/imgs/black/checkmark_disabled.svg')}.CheckBox::indicator:disabled,QMenu::indicator:disabled,QCheckBox::indicator:disabled,.GroupBox::indicator:disabled,QGroupBox::indicator:disabled{background-color:#8d8d8d;border-color:#737373}.RadioButton::indicator:unchecked,QRadioButton::indicator:unchecked,#CameraSettingsRadioButton_Small::indicator:unchecked{image:url('../Default/imgs/black/radiobutton_unchecked.svg');image-position:center center}.RadioButton::indicator:checked,QRadioButton::indicator:checked,#CameraSettingsRadioButton_Small::indicator:checked{image:url('../Default/imgs/black/radiobutton_checked.svg');image-position:center center}.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:#fff}.GroupBox::title:disabled,QGroupBox::title:disabled{color:rgba(0,0,0,0.466)}.GroupBox::indicator,QGroupBox::indicator{subcontrol-origin:margin;margin-top:2}.GroupBox:disabled,QGroupBox:disabled{color:rgba(0,0,0,0.466)}.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')}#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")}#DirTreeView{background-color:#949494;alternate-background-color:#949494;border:1 solid #404040;border-right:0}DvItemViewerPanel{qproperty-TextColor:#000;qproperty-AlternateBackground:#8a8a8a;qproperty-SelectedTextColor:#FFFFFF;qproperty-FolderTextColor:#071b9b;qproperty-SelectedItemBackground:#225baf}#FileBrowser DvItemViewerPanel,#SceneCast DvItemViewerPanel{background-color:#949494}#FileBrowser #castFrame,#SceneCast #castFrame{border-top:1 solid #404040;border-right:1 solid #404040;border-bottom:1 solid #404040;margin:0}#FileBrowser QToolButton,#SceneCast QToolButton{padding:1}DvDirTreeView{qproperty-TextColor:#000;qproperty-SelectedTextColor:#FFFFFF;qproperty-SelectedItemBackground:#225baf;qproperty-FolderTextColor:#071b9b;qproperty-SelectedFolderTextColor:#FFFFFF;alternate-background-color:#8a8a8a;background-color:#949494;border:1 solid #404040}#FileDoesNotExistLabel{color:#f00}#SceneCast QToolBar{border-top:1 solid #404040}#SceneCast QToolButton{margin:3 1 2 1;padding:1}#CastBrowser{border:0;margin:0}#FilmStrip QComboBox{border-radius:0;border-width:0}#FilmStrip QComboBox QAbstractItemView{background-color:#949494}#CleanupSettings #CleanupSettingsFrame{margin-top:2;margin-bottom:4}#CleanupSettings QGroupBox{margin-bottom:3}ParamsPage{qproperty-TextColor:#000}#CameraSettingsButton{padding:2}#CameraSettingsRadioButton:hover{background:none}#CameraSettingsRadioButton::indicator{border:1 solid rgba(255,255,255,0);height:18;padding:0;width:18}#CameraSettingsRadioButton::indicator:unchecked{image:url('../Default/imgs/black/lock_off.svg')}#CameraSettingsRadioButton::indicator:checked{background-color:#C34040;border-color:#772626;image:url('../Default/imgs/black/lock_on.svg')}#CameraSettingsRadioButton::indicator:checked:hover{background-color:#d57a7a;border-color:#772626}#CameraSettingsDPI{color:#000}#CameraSettingsRadioButton_Small{padding:0}#CameraSettingsRadioButton_Small::indicator{background-color:transparent;border:0;height:21;margin:0;width:11}#ForceSquaredPixelButton{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')}#OutputSettingsLabel{color:#000}PencilTestPopup{min-height:730px;min-width:512px}#MatchLineButton{background-color:#a6a6a6}#MatchLineButton:checked{background-color:#cdcdcd;border:2 solid #225baf;border-radius:2}#LargeSizedText{font-size:17px}#StartupLabel{padding:3}#StartupLabel:hover{background:#9a9a9a}QStatusBar{background-color:#c0c0c0}QStatusBar::item{border:0}QStatusBar QLabel{background-color:#c0c0c0}QStatusBar #StatusBarLabel{background-color:#fff;padding:1 3}#TitleTxtLabel{color:#000}#StyleEditor QPushButton{margin:2 1;padding:0}#StyleEditor #TabBarContainer{margin-left:-4}#StyleEditor #bottomWidget{border-top:1 solid #404040;padding:3 2 8 3}#StyleEditor #bottomWidget QPushButton{padding:3 5}#StyleEditorTabBar::tab::first{border-left:1 solid #404040}#HexagonalColorWheel{qproperty-BGColor:#808080}#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:18}#colorSliderAddButton{image:url('../Default/imgs/black/scroll-right.svg')}#colorSliderSubButton{image:url('../Default/imgs/black/scroll-left.svg')}#PlainColorPageParts{border-bottom:1 solid #404040}#PlainColorPageParts QLineEdit{max-width:35}PaletteViewer DvScrollWidget QPushButton{border-top:0;margin-bottom:1;max-width:15;min-width:15}PaletteViewer DvScrollWidget #ScrollLeftButton{border-radius:0;margin-bottom:1;max-width:16;min-width:16}PaletteViewer DvScrollWidget #ScrollRightButton{border-radius:0;margin-left:1;margin-bottom:1;max-width:16;min-width:16}PaletteViewer QToolBar{background:none;border-bottom:1 solid #404040;padding:0;margin:0}PaletteViewer QToolBar::separator:horizontal{margin:0}PaletteViewer QToolBar QToolButton{margin:0 0 1 0;padding:1 0 2 0}#PageViewer{qproperty-TextColor:#000}#PaletteLockButton{border-radius:0;margin:0 0 1 1}#PaletteLockButton:checked{background-color:#C34040;border-color:#772626}#PaletteLockButton:checked:hover{background-color:#d57a7a;border-color:#772626}#WordButton{padding-right:0;padding-left:0}QDialog{background-color:#808080}QDialog #dialogButtonFrame{background-color:#767676;border-top:1 solid #404040}QDialog #dialogButtonFrame QPushButton{border-color:#525252;outline:0}QDialog #dialogButtonFrame QPushButton:focus{background-color:#B5C0D0;border-color:#485971;color:#000}QDialog #dialogButtonFrame QPushButton:focus:hover{background-color:#ced5e0}QDialog #dialogButtonFrame QPushButton:focus:pressed{background-color:#e1e1e1;border-color:#525252;color:#000}#SceneSettings QLabel{color:#000}#PreferencesPopup QListWidget{background-color:#949494;alternate-background-color:#949494;border:1 solid #404040;font-size:13px}#PreferencesPopup QListWidget::item{border:0;padding:3}#PreferencesPopup QListWidget::item:hover{background-color:#9f9f9f;color:#000;background-color:#a9a9a9}#PreferencesPopup QListWidget::item:selected{background-color:#225baf;color:#FFFFFF}#ShortcutTree{border:1 solid #404040}#ShortcutTree::item{padding:1 0}#ShortcutTree QScrollBar:vertical{width:16;margin-right:-1}ProjectPopup QLabel{color:#000}#GearButton{qproperty-icon:url('../Default/imgs/black/gear.svg')}#SubfolderButton{qproperty-icon:url('../Default/imgs/black/subfolder.svg');padding-left:6px;padding-right:6px}#SubcameraButton{qproperty-icon:url('../Default/imgs/black/subcamera.svg');padding-left:6px;padding-right:6px}SchematicViewer{qproperty-TextColor:#000;qproperty-VerticalLineColor:#646464;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')}#SchematicBottomFrame{background-color:#808080;border:0;margin:0;padding:0}#SchematicBottomFrame QToolBar::separator:horizontal{margin:0}#SchematicBottomFrame QToolBar QToolButton{padding:0;margin:2}#SchematicSceneViewer{background-color:#737373;border-bottom:1 solid #404040}#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;padding:3 0}FxSettings QToolBar QToolBar{border:0}#FxSettingsLabel{color:#000}#FxSettingsHelpButton{background-color:#80a0dc;color:#000;padding-top:0;padding-bottom:0}#FxSettingsHelpButton:hover{background-color:#a8bee7}#ScriptConsole{font-family:'Courier New',monospace;border:0;color:#000000;padding:3}#ScriptConsole QFrame{background-color:#dcdcdc}#ScriptConsole TPanelTitleBar{background-color:#5a5a5a}#TaskSheetItemLabel{color:#000}#Tasks QToolBar{border-bottom:1 solid #404040;margin:0;padding:0}#Tasks QToolBar QToolButton{margin:2 2 3 2}#ToolBar QToolBar{padding-left:2}#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")}#EditToolLockButton{spacing:0}#EditToolLockButton:hover{background:none}#EditToolLockButton::indicator{border:1 solid rgba(255,255,255,0);height:18;padding:0;width:18}#EditToolLockButton::indicator:unchecked{image:url('../Default/imgs/black/lock_off.svg')}#EditToolLockButton::indicator:checked{background-color:#C34040;border-color:#772626;image:url('../Default/imgs/black/lock_on.svg')}#EditToolLockButton::indicator:checked:hover{background-color:#d57a7a;border-color:#772626}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:3;padding-right:3}QToolBar#WidePaddingToolBar QToolButton{padding-left:6;padding-right:6}#CommandBar{margin:0;padding:0;border:0}#CommandBar::separator:horizontal{margin-right:3;margin-left:3}#expandButton:checked{background-color:transparent;border-color:transparent;color:#000}#expandButton:checked:hover{background-color:#bbb;border-color:#525252}#expandButton:checked:pressed{background-color:#e1e1e1;border-color:#525252}#ComboViewerPanel Toolbar{border-bottom:1 solid #404040}#ComboViewerPanel Toolbar::separator:horizontal{margin:0 0 0 2}#ComboViewerPanel Toolbar QToolButton{margin:2 0 3 2}#ComboViewerToolOptions{border-bottom:1 solid #404040}#ComboViewer #ToolBarContainer,#ViewerPanel #ToolBarContainer,FlipBook #ToolBarContainer{background-color:transparent;border-top:2 solid #404040;border-bottom:1 solid #404040;padding-right:-1}#flipCustomize{margin-left:3}#flipCustomize::menu-button{background-color:transparent;width:35}#flipCustomize::menu-arrow{image:none}QToolBar#FlipConsolePlayToolBar::separator:horizontal{margin:0 3}QToolBar#FlipConsolePlayToolBar QToolButton{margin-top:2;margin-bottom:2;height:16;padding-left:1;padding-right:1}#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:#a6a6a6;border:1 solid #525252;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:#a6a6a6;border:1 solid #525252;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 #404040;border-radius:2;margin:2 0 3 0;min-width:9;width:9;max-width:9}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:#8b2525;qproperty-startedColor:#00a808;qproperty-baseColor:#676767;qproperty-finishedColor:#676767}Ruler{qproperty-ParentBGColor:#c0c0c0;qproperty-ScaleColor:#000}#RulerToolOptionValues{color:#000}#xsheetArea,#ScrollArea{background-color:#6c6c6c;border:0}#xsheetScrollArea{border:0}#cornerWidget QToolButton{padding:0}#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}XsheetViewer{qproperty-TextColor:#000;qproperty-BGColor:#929292;qproperty-LightLineColor:#616161;qproperty-MarkerLineColor:#000;qproperty-VerticalLineColor:#646464;qproperty-VerticalLineHeadColor:#393939;qproperty-PreviewFrameTextColor:#000eb6;qproperty-CurrentRowBgColor:#B5C0D0;qproperty-OnionSkinAreaBgColor:#858585;qproperty-EmptyColumnHeadColor:#808080;qproperty-SelectedColumnTextColor:#9e0000;qproperty-EmptyCellColor:#7c7c7c;qproperty-NotEmptyColumnColor:#8a8a8a;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-SoundColumnHlColor:#f5ffe6;qproperty-SoundColumnTrackColor:#5a642d;qproperty-ColumnHeadPastelizer:#fff;qproperty-SelectedColumnHead:#bed2f0;qproperty-LightLightBGColor:#808080;qproperty-LightBGColor:#f0f0f0;qproperty-DarkBGColor:#e1e1e1;qproperty-DarkLineColor:#969696;qproperty-XsheetColumnNameBgColor:rgba(0,0,0,0);qproperty-XsheetDragBarHighlightColor:rgba(255,255,255,0.5);qproperty-XsheetPreviewButtonBgOnColor:#c8c864;qproperty-XsheetPreviewButtonOnImage:url('../Default/imgs/black/x_prev_eye_on.svg');qproperty-XsheetPreviewButtonBgOffColor:rgba(255,255,255,0);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:rgba(255,255,255,0);qproperty-XsheetCamstandButtonOffImage:url('../Default/imgs/black/x_table_view_off.svg');qproperty-XsheetLockButtonBgOnColor:rgba(255,255,255,0.3);qproperty-XsheetLockButtonOnImage:url('../Default/imgs/black/x_lock_on.svg');qproperty-XsheetLockButtonBgOffColor:rgba(255,255,255,0);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-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')}#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}#FunctionEditor QToolBar{border-bottom:1 solid #404040}#FunctionEditor QToolBar QToolBar{border:0}#FunctionEditor QToolBar QLabel{margin-left:5}#FunctionEditor QToolBar QToolButton{height:18}#FunctionEditorTree{border-top:1 solid #404040}FunctionTreeView{qproperty-TextColor:#000;qproperty-CurrentTextColor:#a70000}FunctionPanel{qproperty-BGColor:#5a5a5a;qproperty-ValueLineColor:#4d4d4d;qproperty-FrameLineColor:#4d4d4d;qproperty-OtherCurvesColor:#c5c5c5;qproperty-RulerBackground:#676767;qproperty-TextColor:#000;qproperty-SubColor:#fff;qproperty-SelectedColor:#fcae06}SpreadsheetViewer{qproperty-LightLightBGColor:#808080;qproperty-CurrentRowBgColor:#B5C0D0;qproperty-LightLineColor:#616161;qproperty-MarkerLineColor:#000;qproperty-BGColor:#8a8a8a;qproperty-VerticalLineColor:#646464;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-TextColor:#000;qproperty-ColumnHeaderBorderColor:#393939;qproperty-SelectedColumnTextColor:#9e0000}#ExpressionField{background-color:#fff;border:1 solid #6b6b6b;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} \ No newline at end of file +.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,#CameraSettingsRadioButton::indicator,#ForceSquaredPixelButton,#SchematicBottomFrame QToolBar QToolButton,#EditToolLockButton::indicator,#flipCustomize{background-color:rgba(255,255,255,0);border:1 solid rgba(255,255,255,0);border-radius:2;color:#000;margin:1;padding:0}.button-tool:hover,QToolButton:hover,#CameraSettingsRadioButton::indicator:hover,#ForceSquaredPixelButton:hover,#colorSliderAddButton:hover,#colorSliderSubButton:hover,#SchematicBottomFrame QToolBar QToolButton:hover,#EditToolLockButton::indicator:hover,#flipCustomize:hover{background-color:#bbb;border-color:#525252;color:#000}.button-tool:pressed,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:#000}.button-tool:checked,QToolButton:checked,#CameraSettingsRadioButton::indicator:checked,#ForceSquaredPixelButton:checked,#SchematicBottomFrame QToolBar QToolButton:checked,#EditToolLockButton::indicator:checked,#flipCustomize:checked{background-color:#5a5a5a;border-color:#454545;color:#c0c0c0}.button-tool:checked:hover,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}.button-tool:disabled,QToolButton:disabled,#CameraSettingsRadioButton::indicator:disabled,#ForceSquaredPixelButton:disabled,#SchematicBottomFrame QToolBar QToolButton:disabled,#EditToolLockButton::indicator:disabled,#flipCustomize:disabled{color:rgba(0,0,0,0.466)}.button-flat,PaletteViewer QToolBar QToolButton{background-color:none;border:0;border-radius:0;margin:0}.button-flat:hover,PaletteViewer QToolBar QToolButton:hover{background-color:#bbb}.button-flat:pressed,PaletteViewer QToolBar QToolButton:pressed{background-color:#404040}.frame,.GroupBox,#LoadLevelFrame,#PsdSettingsGroupBox,#CleanupSettingsFrame,#OutputSettingsBox,#OutputSettingsCameraBox,#SolidLineFrame,#FunctionParametersPanel,QGroupBox{border:1 solid #404040;border-radius:2}.tab-container,#TabBarContainer{background-color:transparent;qproperty-BottomAboveLineColor:#6c6c6c;qproperty-BottomBelowLineColor:#404040}.tab-flat,#StyleEditorTabBar::tab,#PaletteTabBar::tab,#FxSettingsTabBar::tab{background-color:#5a5a5a;border-right:1 solid #404040;border-bottom:1 solid #404040;color:#c0c0c0;padding:3 4 3 4}.tab-flat:hover,#StyleEditorTabBar::tab:hover,#PaletteTabBar::tab:hover,#FxSettingsTabBar::tab:hover{background-color:#6e6e6e;color:#fff}.tab-flat:selected,#StyleEditorTabBar::tab:selected,#PaletteTabBar::tab:selected,#FxSettingsTabBar::tab:selected{background-color:#808080;color:#000;border-bottom-color:#808080}.tab-flat:only-one,#StyleEditorTabBar::tab:only-one,#PaletteTabBar::tab:only-one,#FxSettingsTabBar::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;margin:3 -1 0 0;padding:2 7 1 7}.tab-round:hover{background-color:#6e6e6e;color:#fff}.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}QWidget{background-color:#808080;color:#000}QWidget:disabled{color:rgba(0,0,0,0.466)}QFrame{border:0;margin:0;padding:0}QToolTip,#helpToolTip{background-color:#fff;border:1 solid #000;color:#000;padding:1 1}#DockSeparator,QMainWindow::separator,QSplitter::handle{background-color:#272727;height:4;width:4}#TDockPlaceholder{background-color:#F77272}TPanel{background-color:#272727}#TopBar{background:#808080;border:0;border-bottom:1 solid #404040;height:21}#TopBar #EditToolLockButton{background:#808080;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;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}QMenuBar::item:selected{background-color:#9f9f9f;color:#000}QMenuBar::item:pressed{background-color:#225baf;color:#FFFFFF}#TopBarTab{margin:0;padding:0}#TopBarTab::tab{background-color:#5a5a5a;border-top:1 solid #404040;border-right:1 solid #404040;color:#afafaf;margin:0 0 0 0;padding:2 8 3 8}#TopBarTab::tab:hover{background-color:#6e6e6e;color:#fff}#TopBarTab::tab:selected{background-color:#9a9a9a;color:#000}#TopBarTab::tab:first{border-left:1 solid #404040}#TopBarTab::tab:last{border-right:1 solid #404040}QMenu{background-color:#949494;border:1 solid #404040;padding:2 0}QMenu::item{padding:3 28}QMenu::item:selected{background-color:#225baf;color:#FFFFFF}QMenu::item:checked{color:#000}QMenu::item:checked:selected{background-color:#225baf;color:#FFFFFF}QMenu::item:disabled{background:none;color:rgba(0,0,0,0.466)}QMenu::item:disabled:selected{border-color:transparent}QMenu::separator{border-top:1 solid #6e6e6e;height:0;margin:2 0}QMenu::icon{border-radius:2;margin:0 0 0 3;padding:1}QMenu::icon:checked{background-color:#225baf}QMenu::indicator{margin-left:7}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;qproperty-BorderPixmap:url('none');qproperty-ActiveBorderPixmap:url('../Default/imgs/black/none');qproperty-FloatBorderPixmap:url('none');qproperty-FloatActiveBorderPixmap:url('../Default/imgs/black/none')}QAbstractScrollArea::corner{background-color:#6e6e6e}QScrollBar{background-color:#6e6e6e;border:0}QScrollBar:horizontal{height:16;margin:0}QScrollBar:vertical{margin:0;width:16}QScrollBar::handle{border:1 solid #555;border-radius:2}QScrollBar::handle:horizontal:hover,QScrollBar::handle:vertical:hover{background-color:#b3b3b3;border-color:#404040}QScrollBar::handle:horizontal:pressed,QScrollBar::handle:vertical:pressed{background-color:#c7c7c7;border-color:#404040}QScrollBar::handle:horizontal{background-color:#9f9f9f;margin:2 16;min-width:20}QScrollBar::handle:vertical{background-color:#9f9f9f;margin:16 2;min-height:20}QScrollBar::add-line{subcontrol-origin:margin;border:0}QScrollBar::add-line:horizontal{subcontrol-position:right;background-color:#6e6e6e;margin:0;width:16}QScrollBar::add-line:vertical{subcontrol-position:bottom;background-color:#6e6e6e;margin:0;height:16}QScrollBar::sub-line{border:0;subcontrol-origin:margin}QScrollBar::sub-line:horizontal{subcontrol-position:left;background-color:#6e6e6e;margin:0;width:16}QScrollBar::sub-line:vertical{subcontrol-position:top;background-color:#6e6e6e;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{padding:0}QToolBar::separator:horizontal{border-left:1 solid #404040;margin:0 1;width:0}QToolBar::separator:vertical{border-top:1 solid #404040;height:0;margin:1 0}QToolBar QLabel{margin-top:1}QToolBar QToolBar{border:0}QToolButton::menu-indicator{image:none}QToolButton::menu-button{border-image:none}.DvScrollWidget QPushButton,DvScrollWidget QPushButton,#ScrollLeftButton QPushButton,#ScrollRightButton QPushButton,#ScrollUpButton QPushButton,#ScrollDownButton QPushButton{background-color:#a6a6a6;border:0 solid red;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:#bbb}.DvScrollWidget QPushButton:pressed,DvScrollWidget QPushButton:pressed,#ScrollLeftButton QPushButton:pressed,#ScrollRightButton QPushButton:pressed,#ScrollUpButton QPushButton:pressed,#ScrollDownButton QPushButton:pressed{background-color:#e1e1e1}#ScrollLeftButton,#ScrollRightButton,#ScrollUpButton,#ScrollDownButton{margin:0;min-width:16}#ScrollLeftButton{border-right:1 solid #404040;image:url('../Default/imgs/black/scroll-left.svg')}#ScrollRightButton{border-left:1 solid #404040;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')}#keyFrameNavigator{background:none;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')}#keyFrameNavigator #PreviousKey:disabled{image:url('../Default/imgs/black/prevkey_disabled.svg')}#keyFrameNavigator #NextKey{image:url('../Default/imgs/black/nextkey.svg')}#keyFrameNavigator #NextKey:hover{image:url('../Default/imgs/black/nextkey_over.svg')}#keyFrameNavigator #NextKey:disabled{image:url('../Default/imgs/black/nextkey_disabled.svg')}.treeview,QTreeWidget,QTreeView,#FunctionEditorTree{background-color:#949494;alternate-background-color:#8a8a8a;border:0;margin:0;outline:0}.treeview::item:selected,QTreeWidget::item:selected,QTreeView::item:selected,#FunctionEditorTree::item:selected{background-color:#225baf;color:#FFFFFF}.treeview::branch:adjoins-item,QTreeWidget::branch:adjoins-item,QTreeView::branch:adjoins-item,#FunctionEditorTree::branch:adjoins-item{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:#949494;alternate-background-color:#8a8a8a}#TabBarContainer{background-color:#6c6c6c}.Button,QPushButton,.ComboBox,.ComboBox:checked,QComboBox,QComboBox:checked{background-color:#a6a6a6;border:1 solid #525252;border-radius:2;color:#000;margin:0;padding:3 15}.Button:hover,QPushButton:hover,.ComboBox:hover,#ViewerFpsSlider::sub-line:horizontal:hover,#ViewerFpsSlider::add-line:horizontal:hover,QComboBox:hover{background-color:#bbb;border-color:#525252;color:#000}.Button:pressed,QPushButton:pressed,#ViewerFpsSlider::sub-line:horizontal:pressed,#ViewerFpsSlider::add-line:horizontal:pressed{background-color:#e1e1e1;border-color:#525252;color:#000}.Button:checked,QPushButton:checked{background-color:#5a5a5a;border-color:#454545;color:#c0c0c0}.Button:checked:hover,QPushButton:checked:hover{background-color:#5f5f5f}.Button:checked:hover:pressed,QPushButton:checked:hover:pressed{background:#5a5a5a}.Button:disabled,QPushButton:disabled,.ComboBox:disabled,#ViewerFpsSlider::sub-line:horizontal:disabled,#ViewerFpsSlider::add-line:horizontal:disabled,QComboBox:disabled{background-color:#8d8d8d;border-color:#737373;color:rgba(0,0,0,0.466)}#PushButton_NoPadding{padding:3}.ComboBox,.ComboBox:checked,QComboBox,QComboBox:checked{padding:1 0 1 4;margin:1 0}.ComboBox::drop-down,QComboBox::drop-down{image:url('../Default/imgs/black/combo_downarrow.svg');image-position:center center;width:16}.ComboBox::drop-down:disabled,QComboBox::drop-down:disabled{image:url('../Default/imgs/black/combo_downarrow_disabled.svg')}.ComboBox QAbstractItemView,QComboBox QAbstractItemView{background-color:#949494;border:1 solid #404040;selection-background-color:#225baf;selection-color:#FFFFFF}.LineEdit,QPlainTextEdit,QLineEdit,#TaskSheetItem,#tasksRemoveBox,#tasksAddBox{background-color:#e6e6e6;border:1 solid #525252;border-radius:2;color:#000;selection-background-color:#225baf;selection-color:#FFFFFF;padding:0 0 0 1}.LineEdit:focus,QPlainTextEdit:focus,QLineEdit:focus,#TaskSheetItem:focus,#tasksRemoveBox:focus,#tasksAddBox:focus{background-color:#e6e6e6;border-color:#525252;color:#000}.LineEdit:disabled,QPlainTextEdit:disabled,QLineEdit:disabled,#TaskSheetItem:disabled,#tasksRemoveBox:disabled,#tasksAddBox:disabled{background-color:#9a9a9a;border-color:#696969;color:rgba(0,0,0,0.466)}.CheckBox,QCheckBox{color:#000}.CheckBox:hover,QCheckBox:hover,.RadioButton:hover,QRadioButton:hover{color:#fff}.CheckBox:disabled,QCheckBox:disabled{color:rgba(0,0,0,0.466)}.CheckBox::indicator,QMenu::indicator,QCheckBox::indicator,.GroupBox::indicator,QGroupBox::indicator{background-color:#cdcdcd;border:1 solid #525252;border-radius:2;height:9;padding:1;width:9}.CheckBox::indicator:hover,QMenu::indicator:hover,.CheckBox::indicator:checked:hover,QCheckBox::indicator:hover,.GroupBox::indicator:hover,QMenu::indicator:checked:hover,QCheckBox::indicator:checked:hover,.GroupBox::indicator:checked:hover,QGroupBox::indicator:hover,QGroupBox::indicator:checked:hover{background-color:#e6e6e6;border-color:#525252}.CheckBox::indicator:checked,QMenu::indicator:checked,QCheckBox::indicator:checked,.GroupBox::indicator:checked,QGroupBox::indicator:checked{background-color:#cdcdcd;border-color:#525252;image:url('../Default/imgs/black/checkmark.svg')}.CheckBox::indicator:checked:disabled,QMenu::indicator:checked:disabled,QCheckBox::indicator:checked:disabled,.GroupBox::indicator:checked:disabled,QGroupBox::indicator:checked:disabled{background-color:#8d8d8d;border-color:#737373;image:url('../Default/imgs/black/checkmark_disabled.svg')}.CheckBox::indicator:disabled,QMenu::indicator:disabled,QCheckBox::indicator:disabled,.GroupBox::indicator:disabled,QGroupBox::indicator:disabled{background-color:#8d8d8d;border-color:#737373}.RadioButton::indicator:unchecked,QRadioButton::indicator:unchecked,#CameraSettingsRadioButton_Small::indicator:unchecked{image:url('../Default/imgs/black/radiobutton_unchecked.svg');image-position:center center}.RadioButton::indicator:checked,QRadioButton::indicator:checked,#CameraSettingsRadioButton_Small::indicator:checked{image:url('../Default/imgs/black/radiobutton_checked.svg');image-position:center center}.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:#fff}.GroupBox::title:disabled,QGroupBox::title:disabled{color:rgba(0,0,0,0.466)}.GroupBox::indicator,QGroupBox::indicator{subcontrol-origin:margin;margin-top:2}.GroupBox:disabled,QGroupBox:disabled{color:rgba(0,0,0,0.466)}.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')}#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")}#DirTreeView{background-color:#949494;alternate-background-color:#949494;border:1 solid #404040;border-right:0}DvItemViewerPanel{qproperty-TextColor:#000;qproperty-AlternateBackground:#8a8a8a;qproperty-SelectedTextColor:#FFFFFF;qproperty-FolderTextColor:#071b9b;qproperty-SelectedItemBackground:#225baf}#FileBrowser DvItemViewerPanel,#SceneCast DvItemViewerPanel{background-color:#949494}#FileBrowser #castFrame,#SceneCast #castFrame{border-top:1 solid #404040;border-right:1 solid #404040;border-bottom:1 solid #404040;margin:0}#FileBrowser QToolButton,#SceneCast QToolButton{padding:1}DvDirTreeView{qproperty-TextColor:#000;qproperty-SelectedTextColor:#FFFFFF;qproperty-SelectedItemBackground:#225baf;qproperty-FolderTextColor:#071b9b;qproperty-SelectedFolderTextColor:#FFFFFF;alternate-background-color:#8a8a8a;background-color:#949494;border:1 solid #404040}#FileDoesNotExistLabel{color:#f00}#SceneCast QToolBar{border-top:1 solid #404040}#SceneCast QToolButton{margin:3 1 2 1;padding:1}#CastBrowser{border:0;margin:0}#FilmStrip QComboBox{border-radius:0;border-width:0}#FilmStrip QComboBox QAbstractItemView{background-color:#949494}#CleanupSettings #CleanupSettingsFrame{margin-top:2;margin-bottom:4}#CleanupSettings QGroupBox{margin-bottom:3}ParamsPage{qproperty-TextColor:#000}#CameraSettingsButton{padding:2}#CameraSettingsRadioButton:hover{background:none}#CameraSettingsRadioButton::indicator{border:1 solid rgba(255,255,255,0);height:18;padding:0;width:18}#CameraSettingsRadioButton::indicator:unchecked{image:url('../Default/imgs/black/lock_off.svg')}#CameraSettingsRadioButton::indicator:checked{background-color:#C34040;border-color:#772626;image:url('../Default/imgs/black/lock_on.svg')}#CameraSettingsRadioButton::indicator:checked:hover{background-color:#d57a7a;border-color:#772626}#CameraSettingsDPI{color:#000}#CameraSettingsRadioButton_Small{padding:0}#CameraSettingsRadioButton_Small::indicator{background-color:transparent;border:0;height:21;margin:0;width:11}#ForceSquaredPixelButton{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')}#OutputSettingsLabel{color:#000}PencilTestPopup{min-height:730px;min-width:512px}#MatchLineButton{background-color:#a6a6a6}#MatchLineButton:checked{background-color:#cdcdcd;border:2 solid #225baf;border-radius:2}#LargeSizedText{font-size:17px}#StartupLabel{padding:3}#StartupLabel:hover{background:#9a9a9a}QStatusBar{background-color:#c0c0c0}QStatusBar::item{border:0}QStatusBar QLabel{background-color:#c0c0c0}QStatusBar #StatusBarLabel{background-color:#fff;padding:1 3}#TitleTxtLabel{color:#000}#StyleEditor QPushButton{margin:2 1;padding:0}#StyleEditor #TabBarContainer{margin-left:-4}#StyleEditor #bottomWidget{border-top:1 solid #404040;padding:3 2 8 3}#StyleEditor #bottomWidget QPushButton{padding:3 5}#StyleEditorTabBar::tab::first{border-left:1 solid #404040}#HexagonalColorWheel{qproperty-BGColor:#808080}#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:18}#colorSliderAddButton{image:url('../Default/imgs/black/scroll-right.svg')}#colorSliderSubButton{image:url('../Default/imgs/black/scroll-left.svg')}#PlainColorPageParts{border-bottom:1 solid #404040}#PlainColorPageParts QLineEdit{max-width:35}PaletteViewer DvScrollWidget QPushButton{border-top:0;margin-bottom:1;max-width:15;min-width:15}PaletteViewer DvScrollWidget #ScrollLeftButton{border-radius:0;margin-bottom:1;max-width:16;min-width:16}PaletteViewer DvScrollWidget #ScrollRightButton{border-radius:0;margin-left:1;margin-bottom:1;max-width:16;min-width:16}PaletteViewer QToolBar{background:none;border-bottom:1 solid #404040;padding:0;margin:0}PaletteViewer QToolBar::separator:horizontal{margin:0}PaletteViewer QToolBar QToolButton{margin:0 0 1 0;padding:1 0 2 0}#PageViewer{qproperty-TextColor:#000}#PaletteLockButton{border-radius:0;margin:0 0 1 1}#PaletteLockButton:checked{background-color:#C34040;border-color:#772626}#PaletteLockButton:checked:hover{background-color:#d57a7a;border-color:#772626}#WordButton{padding-right:0;padding-left:0}QDialog{background-color:#808080}QDialog #dialogButtonFrame{background-color:#767676;border-top:1 solid #404040}QDialog #dialogButtonFrame QPushButton{border-color:#525252;outline:0}QDialog #dialogButtonFrame QPushButton:focus{background-color:#B5C0D0;border-color:#485971;color:#000}QDialog #dialogButtonFrame QPushButton:focus:hover{background-color:#ced5e0}QDialog #dialogButtonFrame QPushButton:focus:pressed{background-color:#e1e1e1;border-color:#525252;color:#000}#SceneSettings QLabel{color:#000}#PreferencesPopup QListWidget{background-color:#949494;alternate-background-color:#949494;border:1 solid #404040;font-size:13px}#PreferencesPopup QListWidget::item{border:0;padding:3}#PreferencesPopup QListWidget::item:hover{background-color:#9f9f9f;color:#000;background-color:#a9a9a9}#PreferencesPopup QListWidget::item:selected{background-color:#225baf;color:#FFFFFF}#ShortcutTree{border:1 solid #404040}#ShortcutTree::item{padding:1 0}#ShortcutTree QScrollBar:vertical{width:16;margin-right:-1}ProjectPopup QLabel{color:#000}#GearButton{qproperty-icon:url('../Default/imgs/black/gear.svg')}#SubfolderButton{qproperty-icon:url('../Default/imgs/black/subfolder.svg');padding-left:6px;padding-right:6px}#SubcameraButton{qproperty-icon:url('../Default/imgs/black/subcamera.svg');padding-left:6px;padding-right:6px}SchematicViewer{qproperty-TextColor:#000;qproperty-VerticalLineColor:#646464;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')}#SchematicBottomFrame{background-color:#808080;border:0;margin:0;padding:0}#SchematicBottomFrame QToolBar::separator:horizontal{margin:0}#SchematicBottomFrame QToolBar QToolButton{padding:0;margin:2}#SchematicSceneViewer{background-color:#737373;border-bottom:1 solid #404040}#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;padding:3 0}FxSettings QToolBar QToolBar{border:0}#FxSettingsLabel{color:#000}#FxSettingsHelpButton{background-color:#80a0dc;color:#000;padding-top:0;padding-bottom:0}#FxSettingsHelpButton:hover{background-color:#a8bee7}#ScriptConsole{font-family:'Courier New',monospace;border:0;color:#000000;padding:3}#ScriptConsole QFrame{background-color:#dcdcdc}#ScriptConsole TPanelTitleBar{background-color:#5a5a5a}#TaskSheetItemLabel{color:#000}#Tasks QToolBar{border-bottom:1 solid #404040;margin:0;padding:0}#Tasks QToolBar QToolButton{margin:2 2 3 2}#ToolBar QToolBar{padding-left:2}#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")}#EditToolLockButton{spacing:0}#EditToolLockButton:hover{background:none}#EditToolLockButton::indicator{border:1 solid rgba(255,255,255,0);height:18;padding:0;width:18}#EditToolLockButton::indicator:unchecked{image:url('../Default/imgs/black/lock_off.svg')}#EditToolLockButton::indicator:checked{background-color:#C34040;border-color:#772626;image:url('../Default/imgs/black/lock_on.svg')}#EditToolLockButton::indicator:checked:hover{background-color:#d57a7a;border-color:#772626}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:3;padding-right:3}QToolBar#WidePaddingToolBar QToolButton{padding-left:6;padding-right:6}#CommandBar{margin:0;padding:0;border:0}#CommandBar::separator:horizontal{margin-right:3;margin-left:3}#expandButton:checked{background-color:transparent;border-color:transparent;color:#000}#expandButton:checked:hover{background-color:#bbb;border-color:#525252}#expandButton:checked:pressed{background-color:#e1e1e1;border-color:#525252}#ComboViewerPanel Toolbar{border-bottom:1 solid #404040}#ComboViewerPanel Toolbar::separator:horizontal{margin:0 0 0 2}#ComboViewerPanel Toolbar QToolButton{margin:2 0 3 2}#ComboViewerToolOptions{border-bottom:1 solid #404040}#ComboViewer #ToolBarContainer,#ViewerPanel #ToolBarContainer,FlipBook #ToolBarContainer{background-color:transparent;border-top:2 solid #404040;border-bottom:1 solid #404040;padding-right:-1}#flipCustomize{margin-left:3}#flipCustomize::menu-button{background-color:transparent;width:35}#flipCustomize::menu-arrow{image:none}QToolBar#FlipConsolePlayToolBar::separator:horizontal{margin:0 3}QToolBar#FlipConsolePlayToolBar QToolButton{margin-top:2;margin-bottom:2;height:16;padding-left:1;padding-right:1}#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:#a6a6a6;border:1 solid #525252;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:#a6a6a6;border:1 solid #525252;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 #404040;border-radius:2;margin:2 0 3 0;min-width:9;width:9;max-width:9}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:#8b2525;qproperty-startedColor:#00a808;qproperty-baseColor:#676767;qproperty-finishedColor:#676767}Ruler{qproperty-ParentBGColor:#c0c0c0;qproperty-ScaleColor:#000}#RulerToolOptionValues{color:#000}#xsheetArea,#ScrollArea{background-color:#6c6c6c;border:0}#xsheetScrollArea{border:0}#cornerWidget QToolButton{padding:0}#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}XsheetViewer{qproperty-TextColor:#000;qproperty-BGColor:#929292;qproperty-LightLineColor:#616161;qproperty-MarkerLineColor:#000;qproperty-VerticalLineColor:#646464;qproperty-VerticalLineHeadColor:#393939;qproperty-PreviewFrameTextColor:#000eb6;qproperty-CurrentRowBgColor:#B5C0D0;qproperty-OnionSkinAreaBgColor:#858585;qproperty-EmptyColumnHeadColor:#808080;qproperty-SelectedColumnTextColor:#9e0000;qproperty-EmptyCellColor:#7c7c7c;qproperty-NotEmptyColumnColor:#8a8a8a;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-SoundColumnHlColor:#f5ffe6;qproperty-SoundColumnTrackColor:#5a642d;qproperty-ColumnHeadPastelizer:#fff;qproperty-SelectedColumnHead:#bed2f0;qproperty-LightLightBGColor:#808080;qproperty-LightBGColor:#f0f0f0;qproperty-DarkBGColor:#e1e1e1;qproperty-DarkLineColor:#969696;qproperty-XsheetColumnNameBgColor:rgba(0,0,0,0);qproperty-XsheetDragBarHighlightColor:rgba(255,255,255,0.5);qproperty-XsheetPreviewButtonBgOnColor:#c8c864;qproperty-XsheetPreviewButtonOnImage:url('../Default/imgs/black/x_prev_eye_on.svg');qproperty-XsheetPreviewButtonBgOffColor:rgba(255,255,255,0);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:rgba(255,255,255,0);qproperty-XsheetCamstandButtonOffImage:url('../Default/imgs/black/x_table_view_off.svg');qproperty-XsheetLockButtonBgOnColor:rgba(255,255,255,0.3);qproperty-XsheetLockButtonOnImage:url('../Default/imgs/black/x_lock_on.svg');qproperty-XsheetLockButtonBgOffColor:rgba(255,255,255,0);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-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}#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}#FunctionEditor QToolBar{border-bottom:1 solid #404040}#FunctionEditor QToolBar QToolBar{border:0}#FunctionEditor QToolBar QLabel{margin-left:5}#FunctionEditor QToolBar QToolButton{height:18}#FunctionEditorTree{border-top:1 solid #404040}FunctionTreeView{qproperty-TextColor:#000;qproperty-CurrentTextColor:#a70000}FunctionPanel{qproperty-BGColor:#5a5a5a;qproperty-ValueLineColor:#4d4d4d;qproperty-FrameLineColor:#4d4d4d;qproperty-OtherCurvesColor:#c5c5c5;qproperty-RulerBackground:#676767;qproperty-TextColor:#000;qproperty-SubColor:#fff;qproperty-SelectedColor:#fcae06}SpreadsheetViewer{qproperty-LightLightBGColor:#808080;qproperty-CurrentRowBgColor:#B5C0D0;qproperty-LightLineColor:#616161;qproperty-MarkerLineColor:#000;qproperty-BGColor:#8a8a8a;qproperty-VerticalLineColor:#646464;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-TextColor:#000;qproperty-ColumnHeaderBorderColor:#393939;qproperty-SelectedColumnTextColor:#9e0000}#ExpressionField{background-color:#fff;border:1 solid #6b6b6b;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} \ No newline at end of file diff --git a/stuff/profiles/layouts/rooms/Default/layouts.txt b/stuff/profiles/layouts/rooms/Default/layouts.txt index 473b7c8..c303627 100644 --- a/stuff/profiles/layouts/rooms/Default/layouts.txt +++ b/stuff/profiles/layouts/rooms/Default/layouts.txt @@ -1,9 +1,9 @@ room1.ini room2.ini room3.ini -room9.ini room4.ini room5.ini room6.ini room7.ini room8.ini +room9.ini diff --git a/stuff/profiles/layouts/rooms/Default/menubar_template.xml b/stuff/profiles/layouts/rooms/Default/menubar_template.xml index 1898a36..8218e71 100644 --- a/stuff/profiles/layouts/rooms/Default/menubar_template.xml +++ b/stuff/profiles/layouts/rooms/Default/menubar_template.xml @@ -40,6 +40,8 @@ MI_Preferences MI_ShortcutPopup + MI_ClearCacheFolder + MI_Quit @@ -313,6 +315,6 @@ MI_OpenOnlineManual - MI_About + MI_About diff --git a/stuff/profiles/layouts/rooms/Default/room1.ini b/stuff/profiles/layouts/rooms/Default/room1.ini index aec7553..ac7209e 100644 --- a/stuff/profiles/layouts/rooms/Default/room1.ini +++ b/stuff/profiles/layouts/rooms/Default/room1.ini @@ -1,20 +1,26 @@ [room] pane_0\name=Xsheet -pane_0\geometry=@Rect(1518 34 402 962) +pane_0\geometry=@Rect(1121 30 159 668) +pane_0\orientation=TopToBottom +pane_0\frameZoomFactor=100 pane_1\name=FilmStrip -pane_1\geometry=@Rect(1168 34 342 514) +pane_1\geometry=@Rect(921 30 196 369) pane_2\name=LevelPalette -pane_2\geometry=@Rect(421 706 739 290) +pane_2\geometry=@Rect(296 553 621 145) pane_2\viewtype=2 pane_3\name=StyleEditor -pane_3\geometry=@Rect(1168 556 342 440) +pane_3\geometry=@Rect(921 403 196 295) +pane_3\isVertical=true +pane_3\visibleParts=15 +pane_3\splitterState=@ByteArray(\0\0\0\xff\0\0\0\x1\0\0\0\x2\0\0\0\xf0\0\0\0\xf0\x1\xff\xff\xff\xff\x1\0\0\0\x2\0) pane_4\name=SceneViewer -pane_4\geometry=@Rect(43 34 1117 664) +pane_4\geometry=@Rect(39 30 878 519) pane_5\name=ToolBar -pane_5\geometry=@Rect(0 34 35 962) +pane_5\geometry=@Rect(0 30 35 668) pane_6\name=ToolOptions -pane_6\geometry=@Rect(0 0 1920 26) +pane_6\geometry=@Rect(0 0 1280 26) pane_7\name=StudioPalette -pane_7\geometry=@Rect(43 706 370 290) +pane_7\geometry=@Rect(39 553 253 145) +pane_7\viewtype=1 hierarchy="-1 1 [ 6 [ 5 [ 4 [ 7 2 ] ] [ 1 3 ] 0 ] ] " name=Basics diff --git a/stuff/profiles/layouts/rooms/Default/room2.ini b/stuff/profiles/layouts/rooms/Default/room2.ini index f70a529..b183308 100644 --- a/stuff/profiles/layouts/rooms/Default/room2.ini +++ b/stuff/profiles/layouts/rooms/Default/room2.ini @@ -1,13 +1,15 @@ [room] pane_0\name=CleanupSettings -pane_0\geometry=@Rect(1278 34 642 962) +pane_0\geometry=@Rect(956 30 324 668) pane_1\name=ToolOptions -pane_1\geometry=@Rect(0 0 1920 26) +pane_1\geometry=@Rect(0 0 1280 26) pane_2\name=SceneViewer -pane_2\geometry=@Rect(43 34 1227 567) +pane_2\geometry=@Rect(39 30 913 422) pane_3\name=ToolBar -pane_3\geometry=@Rect(0 34 35 962) +pane_3\geometry=@Rect(0 30 35 668) pane_4\name=Xsheet -pane_4\geometry=@Rect(43 609 1227 387) +pane_4\geometry=@Rect(39 456 913 242) +pane_4\orientation=TopToBottom +pane_4\frameZoomFactor=100 hierarchy="-1 1 [ 1 [ 3 [ 2 4 ] 0 ] ] " name=Cleanup diff --git a/stuff/profiles/layouts/rooms/Default/room3.ini b/stuff/profiles/layouts/rooms/Default/room3.ini index 7d56a5a..7848c00 100644 --- a/stuff/profiles/layouts/rooms/Default/room3.ini +++ b/stuff/profiles/layouts/rooms/Default/room3.ini @@ -1,16 +1,19 @@ [room] pane_0\name=SceneViewer -pane_0\geometry=@Rect(43 34 1080 962) +pane_0\geometry=@Rect(39 30 928 668) pane_1\name=ToolBar -pane_1\geometry=@Rect(0 34 35 962) +pane_1\geometry=@Rect(0 30 35 668) pane_2\name=FilmStrip -pane_2\geometry=@Rect(1537 34 383 962) +pane_2\geometry=@Rect(1169 30 111 668) pane_3\name=ToolOptions -pane_3\geometry=@Rect(0 0 1920 26) +pane_3\geometry=@Rect(0 0 1280 26) pane_4\name=LevelPalette -pane_4\geometry=@Rect(1131 34 398 217) +pane_4\geometry=@Rect(971 30 194 72) pane_4\viewtype=2 pane_5\name=StyleEditor -pane_5\geometry=@Rect(1131 259 398 737) +pane_5\geometry=@Rect(971 106 194 592) +pane_5\isVertical=true +pane_5\visibleParts=15 +pane_5\splitterState=@ByteArray(\0\0\0\xff\0\0\0\x1\0\0\0\x2\0\0\0\xf0\0\0\0\xf0\x1\xff\xff\xff\xff\x1\0\0\0\x2\0) hierarchy="-1 1 [ 3 [ 1 0 [ 4 5 ] 2 ] ] " name=Drawing diff --git a/stuff/profiles/layouts/rooms/Default/room4.ini b/stuff/profiles/layouts/rooms/Default/room4.ini index 3e3603b..ebdadaf 100644 --- a/stuff/profiles/layouts/rooms/Default/room4.ini +++ b/stuff/profiles/layouts/rooms/Default/room4.ini @@ -1,18 +1,23 @@ [room] -pane_0\name=SceneViewer -pane_0\geometry=@Rect(43 34 1095 557) -pane_1\name=ToolBar -pane_1\geometry=@Rect(0 34 35 962) -pane_2\name=ToolOptions -pane_2\geometry=@Rect(0 0 1920 26) -pane_3\name=Xsheet -pane_3\geometry=@Rect(1146 34 480 578) -pane_4\name=FunctionEditor -pane_4\geometry=@Rect(43 599 1095 397) -pane_5\name=Schematic -pane_5\geometry=@Rect(1146 620 774 376) -pane_5\viewtype=1 -pane_6\name=FilmStrip -pane_6\geometry=@Rect(1634 34 286 578) -hierarchy="-1 1 [ 2 [ 1 [ 0 4 ] [ [ 3 6 ] 5 ] ] ] " -name=Animation +pane_0\name=StyleEditor +pane_0\geometry=@Rect(0 30 191 405) +pane_0\isVertical=true +pane_0\visibleParts=15 +pane_0\splitterState=@ByteArray(\0\0\0\xff\0\0\0\x1\0\0\0\x2\0\0\0\xa4\0\0\0\xd6\x1\xff\xff\xff\xff\x1\0\0\0\x2\0) +pane_1\name=FilmStrip +pane_1\geometry=@Rect(1169 30 111 517) +pane_2\name=Timeline +pane_2\geometry=@Rect(0 551 1280 147) +pane_2\orientation=LeftToRight +pane_2\frameZoomFactor=100 +pane_3\name=SceneViewer +pane_3\geometry=@Rect(234 30 931 517) +pane_4\name=ToolBar +pane_4\geometry=@Rect(195 30 35 517) +pane_5\name=ToolOptions +pane_5\geometry=@Rect(0 0 1280 26) +pane_6\name=LevelPalette +pane_6\geometry=@Rect(0 439 191 108) +pane_6\viewtype=2 +hierarchy="-1 1 [ 5 [ [ 0 6 ] 4 3 1 ] 2 ] " +name=Timeline diff --git a/stuff/profiles/layouts/rooms/Default/room5.ini b/stuff/profiles/layouts/rooms/Default/room5.ini index d21f88d..4b72e28 100644 --- a/stuff/profiles/layouts/rooms/Default/room5.ini +++ b/stuff/profiles/layouts/rooms/Default/room5.ini @@ -1,20 +1,21 @@ [room] pane_0\name=SceneViewer -pane_0\geometry=@Rect(43 34 1181 604) +pane_0\geometry=@Rect(39 30 779 412) pane_1\name=ToolBar -pane_1\geometry=@Rect(0 34 35 962) +pane_1\geometry=@Rect(0 30 35 668) pane_2\name=ToolOptions -pane_2\geometry=@Rect(0 0 1920 26) -pane_3\name=ColorModel -pane_3\geometry=@Rect(1232 34 341 278) -pane_4\name=Xsheet -pane_4\geometry=@Rect(43 646 1181 350) -pane_5\name=LevelPalette -pane_5\geometry=@Rect(1232 320 688 130) -pane_5\viewtype=2 -pane_6\name=StyleEditor -pane_6\geometry=@Rect(1232 458 688 538) -pane_7\name=StudioPalette -pane_7\geometry=@Rect(1581 34 339 278) -hierarchy="-1 1 [ 2 [ 1 [ 0 4 ] [ [ 3 7 ] 5 6 ] ] ] " -name=Palette +pane_2\geometry=@Rect(0 0 1280 26) +pane_3\name=Xsheet +pane_3\geometry=@Rect(822 30 343 435) +pane_3\orientation=TopToBottom +pane_3\frameZoomFactor=100 +pane_4\name=FunctionEditor +pane_4\geometry=@Rect(39 446 779 252) +pane_4\toggleStatus=0 +pane_5\name=Schematic +pane_5\geometry=@Rect(822 469 458 229) +pane_5\viewtype=1 +pane_6\name=FilmStrip +pane_6\geometry=@Rect(1169 30 111 435) +hierarchy="-1 1 [ 2 [ 1 [ 0 4 ] [ [ 3 6 ] 5 ] ] ] " +name=Animation diff --git a/stuff/profiles/layouts/rooms/Default/room6.ini b/stuff/profiles/layouts/rooms/Default/room6.ini index 140070d..83ac701 100644 --- a/stuff/profiles/layouts/rooms/Default/room6.ini +++ b/stuff/profiles/layouts/rooms/Default/room6.ini @@ -1,9 +1,26 @@ [room] -pane_0\name=Xsheet -pane_0\geometry=@Rect(0 0 1104 996) -pane_1\name=FunctionEditor -pane_1\geometry=@Rect(1112 487 808 509) -pane_2\name=SceneViewer -pane_2\geometry=@Rect(1112 0 808 479) -hierarchy="-1 0 [ 0 [ 2 1 ] ] " -name=Xsheet +pane_0\name=SceneViewer +pane_0\geometry=@Rect(39 30 865 459) +pane_1\name=ToolBar +pane_1\geometry=@Rect(0 30 35 668) +pane_2\name=ToolOptions +pane_2\geometry=@Rect(0 0 1280 26) +pane_3\name=ColorModel +pane_3\geometry=@Rect(908 30 185 181) +pane_4\name=Xsheet +pane_4\geometry=@Rect(39 493 865 205) +pane_4\orientation=TopToBottom +pane_4\frameZoomFactor=100 +pane_5\name=LevelPalette +pane_5\geometry=@Rect(908 215 372 40) +pane_5\viewtype=2 +pane_6\name=StyleEditor +pane_6\geometry=@Rect(908 259 372 439) +pane_6\isVertical=true +pane_6\visibleParts=15 +pane_6\splitterState=@ByteArray(\0\0\0\xff\0\0\0\x1\0\0\0\x2\0\0\0\xf0\0\0\0\xf0\x1\xff\xff\xff\xff\x1\0\0\0\x2\0) +pane_7\name=StudioPalette +pane_7\geometry=@Rect(1097 30 183 181) +pane_7\viewtype=1 +hierarchy="-1 1 [ 2 [ 1 [ 0 4 ] [ [ 3 7 ] 5 6 ] ] ] " +name=Palette diff --git a/stuff/profiles/layouts/rooms/Default/room7.ini b/stuff/profiles/layouts/rooms/Default/room7.ini index b2759ed..f861a2a 100644 --- a/stuff/profiles/layouts/rooms/Default/room7.ini +++ b/stuff/profiles/layouts/rooms/Default/room7.ini @@ -1,7 +1,12 @@ [room] -pane_0\name=Browser -pane_0\geometry=@Rect(0 0 1920 495) -pane_1\name=SceneCast -pane_1\geometry=@Rect(0 503 1920 493) -hierarchy="-1 1 [ 0 1 ] " -name=Browser +pane_0\name=Xsheet +pane_0\geometry=@Rect(0 0 786 698) +pane_0\orientation=TopToBottom +pane_0\frameZoomFactor=100 +pane_1\name=FunctionEditor +pane_1\geometry=@Rect(790 336 490 362) +pane_1\toggleStatus=0 +pane_2\name=SceneViewer +pane_2\geometry=@Rect(790 0 490 332) +hierarchy="-1 0 [ 0 [ 2 1 ] ] " +name=Xsheet diff --git a/stuff/profiles/layouts/rooms/Default/room8.ini b/stuff/profiles/layouts/rooms/Default/room8.ini index b3c7f6c..076fcc4 100644 --- a/stuff/profiles/layouts/rooms/Default/room8.ini +++ b/stuff/profiles/layouts/rooms/Default/room8.ini @@ -1,7 +1,7 @@ [room] -pane_0\name=Tasks -pane_0\geometry=@Rect(0 0 956 996) -pane_1\name=BatchServers -pane_1\geometry=@Rect(964 0 956 996) -hierarchy="-1 0 [ 0 1 ] " -name=Farm +pane_0\name=Browser +pane_0\geometry=@Rect(0 0 1280 348) +pane_1\name=SceneCast +pane_1\geometry=@Rect(0 352 1280 346) +hierarchy="-1 1 [ 0 1 ] " +name=Browser diff --git a/stuff/profiles/layouts/rooms/Default/room9.ini b/stuff/profiles/layouts/rooms/Default/room9.ini index a1bf55f..497c208 100644 --- a/stuff/profiles/layouts/rooms/Default/room9.ini +++ b/stuff/profiles/layouts/rooms/Default/room9.ini @@ -1,23 +1,7 @@ [room] -hierarchy="-1 1 [ 5 [ [ 0 6 ] 4 3 1 ] 2 ] " -pane_0\name=StyleEditor -name=Timeline -pane_0\geometry=@Rect(0 30 238 487) -pane_0\isVertical=true -pane_0\visibleParts=15 -pane_0\splitterState=@ByteArray(\0\0\0\xff\0\0\0\x1\0\0\0\x2\0\0\0\xa4\0\0\0\xd6\x1\xff\xff\xff\xff\x1\0\0\0\x2\0) -pane_1\name=FilmStrip -pane_1\geometry=@Rect(1660 30 260 681) -pane_2\name=Timeline -pane_2\geometry=@Rect(0 715 1920 278) -pane_2\orientation=LeftToRight -pane_2\frameZoomFactor=100 -pane_3\name=SceneViewer -pane_3\geometry=@Rect(281 30 1375 681) -pane_4\name=ToolBar -pane_4\geometry=@Rect(242 30 35 681) -pane_5\name=ToolOptions -pane_5\geometry=@Rect(0 0 1920 26) -pane_6\name=LevelPalette -pane_6\geometry=@Rect(0 521 238 190) -pane_6\viewtype=2 +pane_0\name=Tasks +pane_0\geometry=@Rect(0 0 638 698) +pane_1\name=BatchServers +pane_1\geometry=@Rect(642 0 638 698) +hierarchy="-1 0 [ 0 1 ] " +name=Farm diff --git a/stuff/profiles/layouts/rooms/StudioGhibli/room6_menubar.xml b/stuff/profiles/layouts/rooms/StudioGhibli/room6_menubar.xml index 46eab24..ae745ae 100644 --- a/stuff/profiles/layouts/rooms/StudioGhibli/room6_menubar.xml +++ b/stuff/profiles/layouts/rooms/StudioGhibli/room6_menubar.xml @@ -15,6 +15,8 @@ "MI_RunScript" "MI_OpenScriptConsole" "MI_ReloadStyle" + + "MI_ClearCacheFolder" MI_About diff --git a/stuff/profiles/layouts/shortcuts/defopentoonz.ini b/stuff/profiles/layouts/shortcuts/defopentoonz.ini index 786fa9b..369d2bc 100644 --- a/stuff/profiles/layouts/shortcuts/defopentoonz.ini +++ b/stuff/profiles/layouts/shortcuts/defopentoonz.ini @@ -30,6 +30,7 @@ A_ToolOption_GlobalKey= A_ToolOption_IK= A_ToolOption_Invert= A_ToolOption_JoinVectors= +A_ToolOption_LockAlpha= A_ToolOption_Manual= A_ToolOption_Meshify= A_ToolOption_Mode:Areas= @@ -42,6 +43,7 @@ A_ToolOption_PencilMode= A_ToolOption_PickScreen= A_ToolOption_PreserveThickness= A_ToolOption_PressureSensitivity=Shift+P +A_ToolOption_RasterEraser= A_ToolOption_SegmentInk=F8 A_ToolOption_Selective=F7 A_ToolOption_ShowOnlyActiveSkeleton= @@ -150,7 +152,7 @@ MI_FillEmptyCell= MI_FillLines= MI_FirstFrame="Alt+," MI_FoldColumns= -MI_FrezzePreview= +MI_FreezePreview= MI_FullScreenWindow=Ctrl+` MI_FxParamEditor=Ctrl+K MI_GCheck= @@ -167,7 +169,7 @@ MI_Increment= MI_Ink1Check= MI_Insert=Ins MI_InsertAbove=Shift+Ins -MI_InsertFx= +MI_InsertFx=Ctrl+F MI_InsertGlobalKeyframe= MI_InsertSceneFrame= MI_InvertKeyframeSelection= @@ -195,7 +197,7 @@ MI_MergeColumns= MI_MergeFrames= MI_NewLevel=Alt+N MI_NewNoteLevel= -MI_NewOutputFx=Ctrl+F +MI_NewOutputFx=Alt+O MI_NewProject= MI_NewRasterLevel= MI_NewScene=Ctrl+N @@ -220,6 +222,7 @@ MI_OpenFilmStrip= MI_OpenFunctionEditor= MI_OpenHistoryPanel=Ctrl+H MI_OpenLevelView= +MI_OpenOnlineManual=F1 MI_OpenPalette= MI_OpenPltGizmo= MI_OpenRecentLevel= @@ -273,7 +276,6 @@ MI_ReframeWithEmptyInbetweens= MI_RefreshTree= MI_RegenerateFramePr= MI_RegeneratePreview= -MI_ReloadStyle= MI_RemoveEmptyColumns= MI_RemoveEndpoints= MI_RemoveGlobalKeyframe= @@ -325,6 +327,7 @@ MI_SelectPreviousKeysInRow= MI_SelectRowKeyframes= MI_SendBack=Ctrl+[ MI_SendBackward=[ +MI_SeparateColors= MI_SetAcceleration= MI_SetConstantSpeed= MI_SetDeceleration= @@ -354,6 +357,14 @@ MI_Undo=Ctrl+Z MI_Ungroup=Ctrl+Shift+G MI_UnlockAllColumns=Ctrl+Alt+Shift+U MI_UnlockSelectedColumns=Ctrl+Shift+U +MI_UseConstantInterpolation= +MI_UseEaseInOutInterpolation= +MI_UseEaseInOutPctInterpolation= +MI_UseExponentialInterpolation= +MI_UseExpressionInterpolation= +MI_UseFileInterpolation= +MI_UseLinearInterpolation= +MI_UseSpeedInOutInterpolation= MI_ViewBBox= MI_ViewCamera= MI_ViewColorcard= @@ -381,9 +392,11 @@ T_Magnet= T_PaintBrush= T_Pinch=M T_Plastic=X +T_PositionReset= T_Pump= T_RGBPicker=R T_Rotate=Ctrl+Space +T_RotateReset= T_Ruler= T_Selection=S T_ShowHideFullScreen=Alt+F @@ -392,8 +405,9 @@ T_StylePicker=K T_Tape=T T_Tracker= T_Type=Y +T_ViewReset=Alt+0 T_Zoom=Shift+Space T_ZoomFit=Alt+9 T_Zoomin=+ T_Zoomout=- -T_ZoomReset=Alt+0 +T_ZoomReset= diff --git a/stuff/profiles/layouts/shortcuts/otadobe.ini b/stuff/profiles/layouts/shortcuts/otadobe.ini index 7a1b172..6996d92 100644 --- a/stuff/profiles/layouts/shortcuts/otadobe.ini +++ b/stuff/profiles/layouts/shortcuts/otadobe.ini @@ -1,61 +1,4 @@ [shortcuts] -MI_LoadRecentImage= -A_ToolOption_FrameRange= -A_ToolOption_SegmentInk= -A_ToolOption_Selective= -A_ToolOption_Type%3ARectangular= -MI_BringForward=Ctrl+Up -MI_BringToFront=Ctrl+Shift+Up -MI_Clear=Delete -MI_Copy=Ctrl+C -MI_Cut=Ctrl+X -MI_DrawingSubBackward=[ -MI_DrawingSubForward=] -MI_DrawingSubGroupBackward=Ctrl+[ -MI_DrawingSubGroupForward=Ctrl+] -MI_Duplicate= -MI_FullScreenWindow=Ctrl+F -MI_FxParamEditor= -MI_Group=Ctrl+G -MI_Insert=Ins -MI_InsertFx= -MI_LoadScene=Ctrl+O -MI_MaximizePanel= -MI_NewScene=Ctrl+N -MI_NextDrawing=G -MI_NextFrame=. -MI_OpacityCheck= -MI_Paste=Ctrl+V -MI_PrevDrawing=F -MI_PrevFrame="," -MI_Preview=Alt+P -MI_Quit=Ctrl+Q -MI_Redo=Ctrl+Y -MI_SaveScene=Ctrl+Shift+S -MI_SaveSceneAs=Ctrl+Alt+Shift+S -MI_SelectAll=Shift+A -MI_SendBack=Ctrl+Shift+Down -MI_SendBackward=Ctrl+Down -MI_Undo=Ctrl+Z -MI_ZeroThick=D -T_ActualPixelSize= -T_Brush=Alt+B -T_ControlPointEditor=Alt+A -T_Edit=Alt+Q -T_Eraser=Alt+E -T_Fill=Alt+K -T_Geometric=Atl+R -T_Hand= -T_Pinch= -T_Rotate= -T_Selection=Alt+V -T_StylePicker=Alt+I -T_Tape=Alt+C -T_Type= -T_Zoom=Alt+Z -T_ZoomReset=Shift+Z -T_Zoomin=Ctrl+= -T_Zoomout=Ctrl+- A_DecreaseBrushHardness= A_DecreaseMaxBrushThickness= A_DecreaseMinBrushThickness= @@ -63,53 +6,63 @@ A_FxSchematicToggle= A_IncreaseBrushHardness= A_IncreaseMaxBrushThickness= A_IncreaseMinBrushThickness= +A_ToolOption_Autofill= A_ToolOption_AutoGroup= -A_ToolOption_AutoSelect%3AColumn= -A_ToolOption_AutoSelect%3ANone= -A_ToolOption_AutoSelect%3APegbar= +A_ToolOption_AutopaintLines= +A_ToolOption_AutoSelect:Column= +A_ToolOption_AutoSelect:None= +A_ToolOption_AutoSelect:Pegbar= A_ToolOption_AutoSelectDrawing= -A_ToolOption_Autofill= A_ToolOption_BreakSharpAngles= A_ToolOption_BrushPreset= +A_ToolOption_DrawOrder= +A_ToolOption_EditToolActiveAxis:All= +A_ToolOption_EditToolActiveAxis:Center= +A_ToolOption_EditToolActiveAxis:Position= +A_ToolOption_EditToolActiveAxis:Rotation= +A_ToolOption_EditToolActiveAxis:Scale= +A_ToolOption_EditToolActiveAxis:Shear= A_ToolOption_EditToolActiveAxis= -A_ToolOption_EditToolActiveAxis%3ACenter= -A_ToolOption_EditToolActiveAxis%3APosition= -A_ToolOption_EditToolActiveAxis%3ARotation= -A_ToolOption_EditToolActiveAxis%3AScale= -A_ToolOption_EditToolActiveAxis%3AShear= +A_ToolOption_FrameRange= A_ToolOption_GeometricEdge= A_ToolOption_GeometricShape= A_ToolOption_GlobalKey= A_ToolOption_IK=Alt+8 A_ToolOption_Invert= A_ToolOption_JoinVectors= +A_ToolOption_LockAlpha= A_ToolOption_Manual= A_ToolOption_Meshify= +A_ToolOption_Mode:Areas= +A_ToolOption_Mode:Lines & Areas= +A_ToolOption_Mode:Lines= A_ToolOption_Mode= -A_ToolOption_Mode%3AAreas= -A_ToolOption_Mode%3ALines= -A_ToolOption_Mode%3ALines%20%26%20Areas= A_ToolOption_OnionSkin= A_ToolOption_Orientation= A_ToolOption_PencilMode= A_ToolOption_PickScreen= A_ToolOption_PreserveThickness= A_ToolOption_PressureSensitivity= +A_ToolOption_RasterEraser= +A_ToolOption_SegmentInk= +A_ToolOption_Selective= A_ToolOption_ShowOnlyActiveSkeleton= -A_ToolOption_SkeletonMode%3AAnimate= -A_ToolOption_SkeletonMode%3ABuild%20Skeleton= -A_ToolOption_SkeletonMode%3AInverse%20Kinematics= +A_ToolOption_SkeletonMode:Animate= +A_ToolOption_SkeletonMode:Build Skeleton= +A_ToolOption_SkeletonMode:Inverse Kinematics= A_ToolOption_Smooth= A_ToolOption_Snap= +A_ToolOption_SnapSensitivity= +A_ToolOption_Type:Freehand= +A_ToolOption_Type:Normal= +A_ToolOption_Type:Polyline= +A_ToolOption_Type:Rectangular= A_ToolOption_Type= -A_ToolOption_Type%3AFreehand= -A_ToolOption_Type%3ANormal= -A_ToolOption_Type%3APolyline= A_ToolOption_TypeFont= A_ToolOption_TypeSize= A_ToolOption_TypeStyle= -MI_ACheck= MI_About= +MI_ACheck= MI_ActivateAllColumns= MI_ActivateSelectedColumns= MI_ActivateThisColumnOnly= @@ -120,8 +73,10 @@ MI_AdjustLevels= MI_AdjustThickness= MI_Antialias= MI_ApplyMatchLines= -MI_AutoFillToggle= +MI_AudioRecording= MI_Autocenter= +MI_AutoFillToggle= +MI_AutoInputCellNumber= MI_Autorenumber= MI_BCheck= MI_Binarize= @@ -129,6 +84,8 @@ MI_BlendColors= MI_BlueChannel= MI_BlueChannelGreyscale= MI_BrightnessAndContrast= +MI_BringForward=Ctrl+Up +MI_BringToFront=Ctrl+Shift+Up MI_CameraSettings= MI_CameraStage= MI_CameraTest= @@ -136,6 +93,7 @@ MI_CanvasSize= MI_Cleanup= MI_CleanupPreview= MI_CleanupSettings= +MI_Clear=Delete MI_ClearRecentImage= MI_ClearRecentLevel= MI_ClearRecentScene= @@ -146,9 +104,14 @@ MI_CloseChild= MI_Collapse= MI_CollectAssets= MI_CompareToSnapshot= -MI_ConvertFileWithInput= MI_ConvertFiles= +MI_ConvertFileWithInput= +MI_ConvertToToonzRaster= MI_ConvertToVectors= +MI_ConvertVectorToVector= +MI_Copy=Ctrl+C +MI_CursorOutline= +MI_Cut=Ctrl+X MI_DeactivateAllColumns= MI_DeactivateSelectedColumns=Alt+H MI_DeactivateUpperColumns= @@ -159,7 +122,12 @@ MI_DeleteMatchLines= MI_DisableAllColumns= MI_DisableSelectedColumns= MI_DockingCheck= +MI_DrawingSubBackward=[ +MI_DrawingSubForward=] +MI_DrawingSubGroupBackward=Ctrl+[ +MI_DrawingSubGroupForward=Ctrl+] MI_Dup= +MI_Duplicate= MI_DuplicateFile= MI_Each2= MI_Each3= @@ -176,56 +144,77 @@ MI_ExplodeChild=Ctrl+B MI_ExportLevel= MI_ExportScenes= MI_ExposeResource= +MI_FastRender= MI_FieldGuide="Ctrl+'" MI_FileInfo= MI_FillAreas= +MI_FillEmptyCell= MI_FillLines= MI_FirstFrame=Home MI_FoldColumns= -MI_FrezzePreview= +MI_FreezePreview= +MI_FullScreenWindow=Ctrl+F +MI_FxParamEditor= MI_GCheck= MI_GetColorFromStudioPalette= MI_GreenChannel= MI_GreenChannelGreyscale= +MI_Group=Ctrl+G MI_Histogram= MI_ICheck= -MI_IOnly= MI_ImportMagpieFile= MI_ImportScenes= MI_IncreaseStep="+" MI_Increment= MI_Ink1Check= +MI_Insert=Ins +MI_InsertAbove= +MI_InsertFx= MI_InsertGlobalKeyframe= MI_InsertSceneFrame= MI_InvertKeyframeSelection= MI_InvertSelection= +MI_IOnly= MI_LastFrame=End MI_LevelSettings= MI_LinesFade= MI_Link= +MI_LipSyncPopup= MI_LoadColorModel= MI_LoadFolder= MI_LoadLevel= +MI_LoadRecentImage= +MI_LoadScene=Ctrl+O MI_LoadSubSceneFile= MI_LockAllColumns= MI_LockSelectedColumns= MI_LockThisColumnOnly= MI_Loop= MI_MatteChannel= +MI_MaximizePanel= MI_MergeCmapped= MI_MergeColumns= MI_MergeFrames= MI_NewLevel= +MI_NewNoteLevel= MI_NewOutputFx= MI_NewProject= +MI_NewRasterLevel= +MI_NewScene=Ctrl+N +MI_NewToonzRasterLevel= +MI_NewVectorLevel= +MI_NextDrawing=G +MI_NextFrame=. MI_NextStep= MI_NoShift= MI_OnionSkin=Ctrl+Alt+O +MI_OpacityCheck= MI_OpenBatchServers= MI_OpenChild= MI_OpenCleanupSettings= MI_OpenColorModel= MI_OpenComboViewer= +MI_OpenCommandToolbar= MI_OpenFileBrowser= MI_OpenFileBrowser2= MI_OpenFileViewer= @@ -233,52 +222,65 @@ MI_OpenFilmStrip= MI_OpenFunctionEditor=Alt+F MI_OpenHistoryPanel= MI_OpenLevelView= +MI_OpenOnlineManual= MI_OpenPalette= MI_OpenPltGizmo= +MI_OpenRecentLevel= MI_OpenRecentScene= MI_OpenSchematic= MI_OpenScriptConsole= MI_OpenStudioPalette= MI_OpenStyleControl= -MI_OpenTMessage= MI_OpenTasks= -MI_OpenToolOptionBar= +MI_OpenTimelineView= +MI_OpenTMessage= MI_OpenToolbar= +MI_OpenToolOptionBar= MI_OpenXshView= MI_OutputSettings= MI_OverwritePalette= -MI_PCheck= +MI_Paste=Ctrl+V +MI_PasteAbove= MI_PasteColors= MI_PasteInto= MI_PasteNames= +MI_PasteNumbers= MI_PasteValues= MI_Pause= +MI_PCheck= MI_PencilTest= MI_PickStyleAreas= MI_PickStyleLines= MI_Play=Return MI_Preferences=Ctrl+U -MI_PrevStep= +MI_PrevDrawing=F +MI_PrevFrame="," +MI_Preview=Alt+P MI_PreviewFx= MI_PreviewSettings= +MI_PrevStep= MI_Print= MI_PrintXsheet= MI_ProjectSettings= +MI_Quit=Ctrl+Q MI_Random= MI_RasterizePli= MI_RedChannel= MI_RedChannelGreyscale= +MI_Redo=Ctrl+Y MI_Reframe1= MI_Reframe2= MI_Reframe3= MI_Reframe4= +MI_ReframeWithEmptyInbetweens= MI_RefreshTree= MI_RegenerateFramePr= MI_RegeneratePreview= -MI_ReloadStyle= +MI_RemoveEmptyColumns= MI_RemoveEndpoints= MI_RemoveGlobalKeyframe= MI_RemoveLevel= +MI_RemoveReferenceToStudioPalette= MI_RemoveSceneFrame= MI_RemoveUnused= MI_Render=Ctrl+Alt+Shift+S @@ -300,16 +302,20 @@ MI_Rollup= MI_RunScript= MI_SafeArea= MI_SaveAll=Ctrl+S +MI_SaveAllLevels= MI_SaveDefaultSettings= MI_SaveLevel= MI_SaveLevelAs= MI_SavePaletteAs= MI_SavePreset= MI_SavePreviewedFrames= +MI_SaveScene=Ctrl+Shift+S +MI_SaveSceneAs=Ctrl+Alt+Shift+S MI_SaveSubxsheetAs= MI_Scan= MI_ScanSettings= MI_SceneSettings=Ctrl+F3 +MI_SelectAll=Shift+A MI_SelectAllKeyframes= MI_SelectAllKeyframesNotAfter= MI_SelectAllKeyframesNotBefore= @@ -319,6 +325,9 @@ MI_SelectFollowingKeysInRow= MI_SelectPreviousKeysInColumn= MI_SelectPreviousKeysInRow= MI_SelectRowKeyframes= +MI_SendBack=Ctrl+Shift+Down +MI_SendBackward=Ctrl+Down +MI_SeparateColors= MI_SetAcceleration= MI_SetConstantSpeed= MI_SetDeceleration= @@ -327,6 +336,8 @@ MI_SetScanCropbox= MI_ShiftTrace= MI_ShortcutPopup= MI_ShowFolderContents= +MI_SoundTrack= +MI_StartupPopup= MI_Step2= MI_Step3= MI_Step4= @@ -336,11 +347,24 @@ MI_TCheck= MI_TimeStretch= MI_ToggleColumnLocks= MI_ToggleColumnsActivation= +MI_ToggleCurrentTimeIndicator= MI_ToggleEditInPlace= +MI_ToggleLinkToStudioPalette= +MI_ToggleXSheetToolbar= +MI_TouchGestureControl= MI_Tracking= +MI_Undo=Ctrl+Z MI_Ungroup=Ctrl+Shift+G MI_UnlockAllColumns=Ctrl+Alt+Shift+L MI_UnlockSelectedColumns=Ctrl+Shift+K +MI_UseConstantInterpolation= +MI_UseEaseInOutInterpolation= +MI_UseEaseInOutPctInterpolation= +MI_UseExponentialInterpolation= +MI_UseExpressionInterpolation= +MI_UseFileInterpolation= +MI_UseLinearInterpolation= +MI_UseSpeedInOutInterpolation= MI_ViewBBox= MI_ViewCamera= MI_ViewColorcard= @@ -348,19 +372,42 @@ MI_ViewFile= MI_ViewGuide= MI_ViewRuler=Ctrl+Alt+Shift+R MI_ViewTable= +MI_ZeroThick=D +T_ActualPixelSize= T_Bender= +T_Brush=Alt+B +T_ControlPointEditor=Alt+A T_Cutter=Alt+T +T_Edit=Alt+Q +T_Eraser=Alt+E +T_Fill=Alt+K T_Finger= +T_FlipX= +T_FlipY= +T_Geometric=Atl+R +T_Hand= T_Hook= T_Iron= T_Magnet= T_PaintBrush= +T_Pinch= T_Plastic= +T_PositionReset= T_Pump= T_RGBPicker= +T_Rotate= +T_RotateReset= T_Ruler= +T_Selection=Alt+V T_ShowHideFullScreen=F4 T_Skeleton= +T_StylePicker=Alt+I +T_Tape=Alt+C T_Tracker= +T_Type= +T_ViewReset= +T_Zoom=Alt+Z T_ZoomFit= -MI_OpenRecentLevel= +T_Zoomin=Ctrl+= +T_Zoomout=Ctrl+- +T_ZoomReset=Shift+Z diff --git a/stuff/profiles/layouts/shortcuts/otharmony.ini b/stuff/profiles/layouts/shortcuts/otharmony.ini index 3675e6d..1d2ca72 100644 --- a/stuff/profiles/layouts/shortcuts/otharmony.ini +++ b/stuff/profiles/layouts/shortcuts/otharmony.ini @@ -1,61 +1,4 @@ [shortcuts] -MI_LoadRecentImage= -A_ToolOption_FrameRange= -A_ToolOption_SegmentInk= -A_ToolOption_Selective= -A_ToolOption_Type%3ARectangular= -MI_BringForward=Ctrl+PgUp -MI_BringToFront=Ctrl+Shift+PgUp -MI_Clear=Delete -MI_Copy=Ctrl+C -MI_Cut=Ctrl+X -MI_DrawingSubBackward=[ -MI_DrawingSubForward=] -MI_DrawingSubGroupBackward=Ctrl+[ -MI_DrawingSubGroupForward=Ctrl+] -MI_Duplicate= -MI_FullScreenWindow=Ctrl+F -MI_FxParamEditor= -MI_Group=Ctrl+G -MI_Insert=Ins -MI_InsertFx= -MI_LoadScene=Ctrl+O -MI_MaximizePanel=` -MI_NewScene=Ctrl+N -MI_NextDrawing=G -MI_NextFrame=. -MI_OpacityCheck= -MI_Paste=Ctrl+V -MI_PrevDrawing=F -MI_PrevFrame="," -MI_Preview= -MI_Quit=Ctrl+Q -MI_Redo=Ctrl+Shift+Z -MI_SaveScene=Ctrl+Shift+S -MI_SaveSceneAs=Ctrl+Shift+Alt+S -MI_SelectAll=Ctrl+A -MI_SendBack=Ctrl+PgDown -MI_SendBackward=Ctrl+Shift+PgDown -MI_Undo=Ctrl+Z -MI_ZeroThick= -T_ActualPixelSize= -T_Brush=Alt+B -T_ControlPointEditor=Alt+Q -T_Edit=Shift+T -T_Eraser=Alt+E -T_Fill=Alt+I -T_Geometric=Alt+7 -T_Hand= -T_Pinch= -T_Rotate= -T_Selection=Alt+S -T_StylePicker=Alt+D -T_Tape=Alt+C -T_Type=Alt+9 -T_Zoom=Alt+Z -T_ZoomReset= -T_Zoomin=Alt+2 -T_Zoomout=Alt+1 A_DecreaseBrushHardness= A_DecreaseMaxBrushThickness= A_DecreaseMinBrushThickness= @@ -63,53 +6,63 @@ A_FxSchematicToggle= A_IncreaseBrushHardness= A_IncreaseMaxBrushThickness= A_IncreaseMinBrushThickness= +A_ToolOption_Autofill= A_ToolOption_AutoGroup= -A_ToolOption_AutoSelect%3AColumn= -A_ToolOption_AutoSelect%3ANone= -A_ToolOption_AutoSelect%3APegbar= +A_ToolOption_AutopaintLines= +A_ToolOption_AutoSelect:Column= +A_ToolOption_AutoSelect:None= +A_ToolOption_AutoSelect:Pegbar= A_ToolOption_AutoSelectDrawing= -A_ToolOption_Autofill= A_ToolOption_BreakSharpAngles= A_ToolOption_BrushPreset= +A_ToolOption_DrawOrder= +A_ToolOption_EditToolActiveAxis:All= +A_ToolOption_EditToolActiveAxis:Center= +A_ToolOption_EditToolActiveAxis:Position=Alt+2 +A_ToolOption_EditToolActiveAxis:Rotation=Alt+3 +A_ToolOption_EditToolActiveAxis:Scale=Alt+4 +A_ToolOption_EditToolActiveAxis:Shear=Alt+5 A_ToolOption_EditToolActiveAxis= -A_ToolOption_EditToolActiveAxis%3ACenter= -A_ToolOption_EditToolActiveAxis%3APosition=Alt+2 -A_ToolOption_EditToolActiveAxis%3ARotation=Alt+3 -A_ToolOption_EditToolActiveAxis%3AScale=Alt+4 -A_ToolOption_EditToolActiveAxis%3AShear=Alt+5 +A_ToolOption_FrameRange= A_ToolOption_GeometricEdge= A_ToolOption_GeometricShape= A_ToolOption_GlobalKey= A_ToolOption_IK= A_ToolOption_Invert= A_ToolOption_JoinVectors= +A_ToolOption_LockAlpha= A_ToolOption_Manual= A_ToolOption_Meshify= +A_ToolOption_Mode:Areas= +A_ToolOption_Mode:Lines & Areas= +A_ToolOption_Mode:Lines= A_ToolOption_Mode= -A_ToolOption_Mode%3AAreas= -A_ToolOption_Mode%3ALines= -A_ToolOption_Mode%3ALines%20%26%20Areas= A_ToolOption_OnionSkin= A_ToolOption_Orientation= A_ToolOption_PencilMode= A_ToolOption_PickScreen= A_ToolOption_PreserveThickness= A_ToolOption_PressureSensitivity= +A_ToolOption_RasterEraser= +A_ToolOption_SegmentInk= +A_ToolOption_Selective= A_ToolOption_ShowOnlyActiveSkeleton= -A_ToolOption_SkeletonMode%3AAnimate= -A_ToolOption_SkeletonMode%3ABuild%20Skeleton= -A_ToolOption_SkeletonMode%3AInverse%20Kinematics= +A_ToolOption_SkeletonMode:Animate= +A_ToolOption_SkeletonMode:Build Skeleton= +A_ToolOption_SkeletonMode:Inverse Kinematics= A_ToolOption_Smooth= A_ToolOption_Snap= +A_ToolOption_SnapSensitivity= +A_ToolOption_Type:Freehand= +A_ToolOption_Type:Normal= +A_ToolOption_Type:Polyline= +A_ToolOption_Type:Rectangular= A_ToolOption_Type= -A_ToolOption_Type%3AFreehand= -A_ToolOption_Type%3ANormal= -A_ToolOption_Type%3APolyline= A_ToolOption_TypeFont= A_ToolOption_TypeSize= A_ToolOption_TypeStyle= -MI_ACheck= MI_About= +MI_ACheck= MI_ActivateAllColumns= MI_ActivateSelectedColumns= MI_ActivateThisColumnOnly= @@ -120,8 +73,10 @@ MI_AdjustLevels= MI_AdjustThickness= MI_Antialias= MI_ApplyMatchLines= -MI_AutoFillToggle= +MI_AudioRecording= MI_Autocenter= +MI_AutoFillToggle= +MI_AutoInputCellNumber= MI_Autorenumber= MI_BCheck= MI_Binarize= @@ -129,6 +84,8 @@ MI_BlendColors= MI_BlueChannel= MI_BlueChannelGreyscale= MI_BrightnessAndContrast= +MI_BringForward=Ctrl+PgUp +MI_BringToFront=Ctrl+Shift+PgUp MI_CameraSettings= MI_CameraStage= MI_CameraTest= @@ -136,6 +93,7 @@ MI_CanvasSize= MI_Cleanup= MI_CleanupPreview= MI_CleanupSettings= +MI_Clear=Delete MI_ClearRecentImage= MI_ClearRecentLevel= MI_ClearRecentScene= @@ -146,9 +104,14 @@ MI_CloseChild= MI_Collapse=Alt+0 MI_CollectAssets= MI_CompareToSnapshot= -MI_ConvertFileWithInput= MI_ConvertFiles= +MI_ConvertFileWithInput= +MI_ConvertToToonzRaster= MI_ConvertToVectors= +MI_ConvertVectorToVector= +MI_Copy=Ctrl+C +MI_CursorOutline= +MI_Cut=Ctrl+X MI_DeactivateAllColumns= MI_DeactivateSelectedColumns= MI_DeactivateUpperColumns= @@ -159,7 +122,12 @@ MI_DeleteMatchLines= MI_DisableAllColumns= MI_DisableSelectedColumns=Alt+H MI_DockingCheck= +MI_DrawingSubBackward=[ +MI_DrawingSubForward=] +MI_DrawingSubGroupBackward=Ctrl+[ +MI_DrawingSubGroupForward=Ctrl+] MI_Dup= +MI_Duplicate= MI_DuplicateFile= MI_Each2= MI_Each3= @@ -176,56 +144,77 @@ MI_ExplodeChild=Ctrl+B MI_ExportLevel= MI_ExportScenes= MI_ExposeResource= +MI_FastRender= MI_FieldGuide="Ctrl+'" MI_FileInfo= MI_FillAreas= +MI_FillEmptyCell= MI_FillLines= MI_FirstFrame="Shift+<" MI_FoldColumns= -MI_FrezzePreview= +MI_FreezePreview= +MI_FullScreenWindow=Ctrl+F +MI_FxParamEditor= MI_GCheck= MI_GetColorFromStudioPalette= MI_GreenChannel= MI_GreenChannelGreyscale= +MI_Group=Ctrl+G MI_Histogram= MI_ICheck= -MI_IOnly= MI_ImportMagpieFile= MI_ImportScenes= MI_IncreaseStep="+" MI_Increment= MI_Ink1Check= +MI_Insert=Ins +MI_InsertAbove= +MI_InsertFx= MI_InsertGlobalKeyframe= MI_InsertSceneFrame= MI_InvertKeyframeSelection= MI_InvertSelection= +MI_IOnly= MI_LastFrame="Shift+>" MI_LevelSettings= MI_LinesFade= MI_Link= +MI_LipSyncPopup= MI_LoadColorModel= MI_LoadFolder= MI_LoadLevel= +MI_LoadRecentImage= +MI_LoadScene=Ctrl+O MI_LoadSubSceneFile= MI_LockAllColumns=Ctrl+Shift+L MI_LockSelectedColumns=Ctrl+Alt+L MI_LockThisColumnOnly= MI_Loop= MI_MatteChannel= +MI_MaximizePanel=` MI_MergeCmapped= MI_MergeColumns= MI_MergeFrames= MI_NewLevel= +MI_NewNoteLevel= MI_NewOutputFx= MI_NewProject= +MI_NewRasterLevel= +MI_NewScene=Ctrl+N +MI_NewToonzRasterLevel= +MI_NewVectorLevel= +MI_NextDrawing=G +MI_NextFrame=. MI_NextStep= MI_NoShift= MI_OnionSkin=Alt+O +MI_OpacityCheck= MI_OpenBatchServers= MI_OpenChild= MI_OpenCleanupSettings= MI_OpenColorModel= MI_OpenComboViewer= +MI_OpenCommandToolbar= MI_OpenFileBrowser= MI_OpenFileBrowser2= MI_OpenFileViewer= @@ -233,52 +222,65 @@ MI_OpenFilmStrip= MI_OpenFunctionEditor=Alt+F MI_OpenHistoryPanel= MI_OpenLevelView= +MI_OpenOnlineManual= MI_OpenPalette= MI_OpenPltGizmo= +MI_OpenRecentLevel= MI_OpenRecentScene= MI_OpenSchematic= MI_OpenScriptConsole= MI_OpenStudioPalette= MI_OpenStyleControl= -MI_OpenTMessage= MI_OpenTasks= -MI_OpenToolOptionBar= +MI_OpenTimelineView= +MI_OpenTMessage= MI_OpenToolbar= +MI_OpenToolOptionBar= MI_OpenXshView= MI_OutputSettings= MI_OverwritePalette= -MI_PCheck= +MI_Paste=Ctrl+V +MI_PasteAbove= MI_PasteColors= MI_PasteInto= MI_PasteNames= +MI_PasteNumbers= MI_PasteValues= MI_Pause= +MI_PCheck= MI_PencilTest= MI_PickStyleAreas= MI_PickStyleLines= MI_Play=Ctrl+Return MI_Preferences=Ctrl+U -MI_PrevStep= +MI_PrevDrawing=F +MI_PrevFrame="," +MI_Preview= MI_PreviewFx= MI_PreviewSettings= +MI_PrevStep= MI_Print= MI_PrintXsheet= MI_ProjectSettings= +MI_Quit=Ctrl+Q MI_Random= MI_RasterizePli= MI_RedChannel= MI_RedChannelGreyscale= +MI_Redo=Ctrl+Shift+Z MI_Reframe1= MI_Reframe2= MI_Reframe3= MI_Reframe4= +MI_ReframeWithEmptyInbetweens= MI_RefreshTree= MI_RegenerateFramePr= MI_RegeneratePreview= -MI_ReloadStyle= +MI_RemoveEmptyColumns= MI_RemoveEndpoints= MI_RemoveGlobalKeyframe= MI_RemoveLevel= +MI_RemoveReferenceToStudioPalette= MI_RemoveSceneFrame= MI_RemoveUnused= MI_Render= @@ -300,16 +302,20 @@ MI_Rollup= MI_RunScript= MI_SafeArea= MI_SaveAll=Ctrl+S +MI_SaveAllLevels= MI_SaveDefaultSettings= MI_SaveLevel= MI_SaveLevelAs= MI_SavePaletteAs= MI_SavePreset= MI_SavePreviewedFrames= +MI_SaveScene=Ctrl+Shift+S +MI_SaveSceneAs=Ctrl+Shift+Alt+S MI_SaveSubxsheetAs= MI_Scan=Ctrl+Shift+S MI_ScanSettings= MI_SceneSettings= +MI_SelectAll=Ctrl+A MI_SelectAllKeyframes= MI_SelectAllKeyframesNotAfter= MI_SelectAllKeyframesNotBefore= @@ -319,6 +325,9 @@ MI_SelectFollowingKeysInRow= MI_SelectPreviousKeysInColumn= MI_SelectPreviousKeysInRow= MI_SelectRowKeyframes= +MI_SendBack=Ctrl+PgDown +MI_SendBackward=Ctrl+Shift+PgDown +MI_SeparateColors= MI_SetAcceleration= MI_SetConstantSpeed= MI_SetDeceleration= @@ -327,6 +336,8 @@ MI_SetScanCropbox= MI_ShiftTrace= MI_ShortcutPopup= MI_ShowFolderContents= +MI_SoundTrack= +MI_StartupPopup= MI_Step2= MI_Step3= MI_Step4= @@ -336,11 +347,24 @@ MI_TCheck= MI_TimeStretch= MI_ToggleColumnLocks= MI_ToggleColumnsActivation= +MI_ToggleCurrentTimeIndicator= MI_ToggleEditInPlace= +MI_ToggleLinkToStudioPalette= +MI_ToggleXSheetToolbar= +MI_TouchGestureControl= MI_Tracking= +MI_Undo=Ctrl+Z MI_Ungroup=Ctrl+Shift+G MI_UnlockAllColumns=Ctrl+Alt+Shift+K MI_UnlockSelectedColumns=Ctrl+Shift+K +MI_UseConstantInterpolation= +MI_UseEaseInOutInterpolation= +MI_UseEaseInOutPctInterpolation= +MI_UseExponentialInterpolation= +MI_UseExpressionInterpolation= +MI_UseFileInterpolation= +MI_UseLinearInterpolation= +MI_UseSpeedInOutInterpolation= MI_ViewBBox= MI_ViewCamera= MI_ViewColorcard= @@ -348,19 +372,42 @@ MI_ViewFile= MI_ViewGuide="Ctrl+'" MI_ViewRuler= MI_ViewTable= +MI_ZeroThick= +T_ActualPixelSize= T_Bender= +T_Brush=Alt+B +T_ControlPointEditor=Alt+Q T_Cutter=Alt+T +T_Edit=Shift+T +T_Eraser=Alt+E +T_Fill=Alt+I T_Finger= +T_FlipX= +T_FlipY= +T_Geometric=Alt+7 +T_Hand= T_Hook= T_Iron= T_Magnet= T_PaintBrush= +T_Pinch= T_Plastic= +T_PositionReset= T_Pump= T_RGBPicker= +T_Rotate= +T_RotateReset= T_Ruler= +T_Selection=Alt+S T_ShowHideFullScreen= T_Skeleton= +T_StylePicker=Alt+D +T_Tape=Alt+C T_Tracker= +T_Type=Alt+9 +T_ViewReset= +T_Zoom=Alt+Z T_ZoomFit= -MI_OpenRecentLevel= +T_Zoomin=Alt+2 +T_Zoomout=Alt+1 +T_ZoomReset= diff --git a/stuff/profiles/layouts/shortcuts/otretas.ini b/stuff/profiles/layouts/shortcuts/otretas.ini index 7a1b172..6996d92 100644 --- a/stuff/profiles/layouts/shortcuts/otretas.ini +++ b/stuff/profiles/layouts/shortcuts/otretas.ini @@ -1,61 +1,4 @@ [shortcuts] -MI_LoadRecentImage= -A_ToolOption_FrameRange= -A_ToolOption_SegmentInk= -A_ToolOption_Selective= -A_ToolOption_Type%3ARectangular= -MI_BringForward=Ctrl+Up -MI_BringToFront=Ctrl+Shift+Up -MI_Clear=Delete -MI_Copy=Ctrl+C -MI_Cut=Ctrl+X -MI_DrawingSubBackward=[ -MI_DrawingSubForward=] -MI_DrawingSubGroupBackward=Ctrl+[ -MI_DrawingSubGroupForward=Ctrl+] -MI_Duplicate= -MI_FullScreenWindow=Ctrl+F -MI_FxParamEditor= -MI_Group=Ctrl+G -MI_Insert=Ins -MI_InsertFx= -MI_LoadScene=Ctrl+O -MI_MaximizePanel= -MI_NewScene=Ctrl+N -MI_NextDrawing=G -MI_NextFrame=. -MI_OpacityCheck= -MI_Paste=Ctrl+V -MI_PrevDrawing=F -MI_PrevFrame="," -MI_Preview=Alt+P -MI_Quit=Ctrl+Q -MI_Redo=Ctrl+Y -MI_SaveScene=Ctrl+Shift+S -MI_SaveSceneAs=Ctrl+Alt+Shift+S -MI_SelectAll=Shift+A -MI_SendBack=Ctrl+Shift+Down -MI_SendBackward=Ctrl+Down -MI_Undo=Ctrl+Z -MI_ZeroThick=D -T_ActualPixelSize= -T_Brush=Alt+B -T_ControlPointEditor=Alt+A -T_Edit=Alt+Q -T_Eraser=Alt+E -T_Fill=Alt+K -T_Geometric=Atl+R -T_Hand= -T_Pinch= -T_Rotate= -T_Selection=Alt+V -T_StylePicker=Alt+I -T_Tape=Alt+C -T_Type= -T_Zoom=Alt+Z -T_ZoomReset=Shift+Z -T_Zoomin=Ctrl+= -T_Zoomout=Ctrl+- A_DecreaseBrushHardness= A_DecreaseMaxBrushThickness= A_DecreaseMinBrushThickness= @@ -63,53 +6,63 @@ A_FxSchematicToggle= A_IncreaseBrushHardness= A_IncreaseMaxBrushThickness= A_IncreaseMinBrushThickness= +A_ToolOption_Autofill= A_ToolOption_AutoGroup= -A_ToolOption_AutoSelect%3AColumn= -A_ToolOption_AutoSelect%3ANone= -A_ToolOption_AutoSelect%3APegbar= +A_ToolOption_AutopaintLines= +A_ToolOption_AutoSelect:Column= +A_ToolOption_AutoSelect:None= +A_ToolOption_AutoSelect:Pegbar= A_ToolOption_AutoSelectDrawing= -A_ToolOption_Autofill= A_ToolOption_BreakSharpAngles= A_ToolOption_BrushPreset= +A_ToolOption_DrawOrder= +A_ToolOption_EditToolActiveAxis:All= +A_ToolOption_EditToolActiveAxis:Center= +A_ToolOption_EditToolActiveAxis:Position= +A_ToolOption_EditToolActiveAxis:Rotation= +A_ToolOption_EditToolActiveAxis:Scale= +A_ToolOption_EditToolActiveAxis:Shear= A_ToolOption_EditToolActiveAxis= -A_ToolOption_EditToolActiveAxis%3ACenter= -A_ToolOption_EditToolActiveAxis%3APosition= -A_ToolOption_EditToolActiveAxis%3ARotation= -A_ToolOption_EditToolActiveAxis%3AScale= -A_ToolOption_EditToolActiveAxis%3AShear= +A_ToolOption_FrameRange= A_ToolOption_GeometricEdge= A_ToolOption_GeometricShape= A_ToolOption_GlobalKey= A_ToolOption_IK=Alt+8 A_ToolOption_Invert= A_ToolOption_JoinVectors= +A_ToolOption_LockAlpha= A_ToolOption_Manual= A_ToolOption_Meshify= +A_ToolOption_Mode:Areas= +A_ToolOption_Mode:Lines & Areas= +A_ToolOption_Mode:Lines= A_ToolOption_Mode= -A_ToolOption_Mode%3AAreas= -A_ToolOption_Mode%3ALines= -A_ToolOption_Mode%3ALines%20%26%20Areas= A_ToolOption_OnionSkin= A_ToolOption_Orientation= A_ToolOption_PencilMode= A_ToolOption_PickScreen= A_ToolOption_PreserveThickness= A_ToolOption_PressureSensitivity= +A_ToolOption_RasterEraser= +A_ToolOption_SegmentInk= +A_ToolOption_Selective= A_ToolOption_ShowOnlyActiveSkeleton= -A_ToolOption_SkeletonMode%3AAnimate= -A_ToolOption_SkeletonMode%3ABuild%20Skeleton= -A_ToolOption_SkeletonMode%3AInverse%20Kinematics= +A_ToolOption_SkeletonMode:Animate= +A_ToolOption_SkeletonMode:Build Skeleton= +A_ToolOption_SkeletonMode:Inverse Kinematics= A_ToolOption_Smooth= A_ToolOption_Snap= +A_ToolOption_SnapSensitivity= +A_ToolOption_Type:Freehand= +A_ToolOption_Type:Normal= +A_ToolOption_Type:Polyline= +A_ToolOption_Type:Rectangular= A_ToolOption_Type= -A_ToolOption_Type%3AFreehand= -A_ToolOption_Type%3ANormal= -A_ToolOption_Type%3APolyline= A_ToolOption_TypeFont= A_ToolOption_TypeSize= A_ToolOption_TypeStyle= -MI_ACheck= MI_About= +MI_ACheck= MI_ActivateAllColumns= MI_ActivateSelectedColumns= MI_ActivateThisColumnOnly= @@ -120,8 +73,10 @@ MI_AdjustLevels= MI_AdjustThickness= MI_Antialias= MI_ApplyMatchLines= -MI_AutoFillToggle= +MI_AudioRecording= MI_Autocenter= +MI_AutoFillToggle= +MI_AutoInputCellNumber= MI_Autorenumber= MI_BCheck= MI_Binarize= @@ -129,6 +84,8 @@ MI_BlendColors= MI_BlueChannel= MI_BlueChannelGreyscale= MI_BrightnessAndContrast= +MI_BringForward=Ctrl+Up +MI_BringToFront=Ctrl+Shift+Up MI_CameraSettings= MI_CameraStage= MI_CameraTest= @@ -136,6 +93,7 @@ MI_CanvasSize= MI_Cleanup= MI_CleanupPreview= MI_CleanupSettings= +MI_Clear=Delete MI_ClearRecentImage= MI_ClearRecentLevel= MI_ClearRecentScene= @@ -146,9 +104,14 @@ MI_CloseChild= MI_Collapse= MI_CollectAssets= MI_CompareToSnapshot= -MI_ConvertFileWithInput= MI_ConvertFiles= +MI_ConvertFileWithInput= +MI_ConvertToToonzRaster= MI_ConvertToVectors= +MI_ConvertVectorToVector= +MI_Copy=Ctrl+C +MI_CursorOutline= +MI_Cut=Ctrl+X MI_DeactivateAllColumns= MI_DeactivateSelectedColumns=Alt+H MI_DeactivateUpperColumns= @@ -159,7 +122,12 @@ MI_DeleteMatchLines= MI_DisableAllColumns= MI_DisableSelectedColumns= MI_DockingCheck= +MI_DrawingSubBackward=[ +MI_DrawingSubForward=] +MI_DrawingSubGroupBackward=Ctrl+[ +MI_DrawingSubGroupForward=Ctrl+] MI_Dup= +MI_Duplicate= MI_DuplicateFile= MI_Each2= MI_Each3= @@ -176,56 +144,77 @@ MI_ExplodeChild=Ctrl+B MI_ExportLevel= MI_ExportScenes= MI_ExposeResource= +MI_FastRender= MI_FieldGuide="Ctrl+'" MI_FileInfo= MI_FillAreas= +MI_FillEmptyCell= MI_FillLines= MI_FirstFrame=Home MI_FoldColumns= -MI_FrezzePreview= +MI_FreezePreview= +MI_FullScreenWindow=Ctrl+F +MI_FxParamEditor= MI_GCheck= MI_GetColorFromStudioPalette= MI_GreenChannel= MI_GreenChannelGreyscale= +MI_Group=Ctrl+G MI_Histogram= MI_ICheck= -MI_IOnly= MI_ImportMagpieFile= MI_ImportScenes= MI_IncreaseStep="+" MI_Increment= MI_Ink1Check= +MI_Insert=Ins +MI_InsertAbove= +MI_InsertFx= MI_InsertGlobalKeyframe= MI_InsertSceneFrame= MI_InvertKeyframeSelection= MI_InvertSelection= +MI_IOnly= MI_LastFrame=End MI_LevelSettings= MI_LinesFade= MI_Link= +MI_LipSyncPopup= MI_LoadColorModel= MI_LoadFolder= MI_LoadLevel= +MI_LoadRecentImage= +MI_LoadScene=Ctrl+O MI_LoadSubSceneFile= MI_LockAllColumns= MI_LockSelectedColumns= MI_LockThisColumnOnly= MI_Loop= MI_MatteChannel= +MI_MaximizePanel= MI_MergeCmapped= MI_MergeColumns= MI_MergeFrames= MI_NewLevel= +MI_NewNoteLevel= MI_NewOutputFx= MI_NewProject= +MI_NewRasterLevel= +MI_NewScene=Ctrl+N +MI_NewToonzRasterLevel= +MI_NewVectorLevel= +MI_NextDrawing=G +MI_NextFrame=. MI_NextStep= MI_NoShift= MI_OnionSkin=Ctrl+Alt+O +MI_OpacityCheck= MI_OpenBatchServers= MI_OpenChild= MI_OpenCleanupSettings= MI_OpenColorModel= MI_OpenComboViewer= +MI_OpenCommandToolbar= MI_OpenFileBrowser= MI_OpenFileBrowser2= MI_OpenFileViewer= @@ -233,52 +222,65 @@ MI_OpenFilmStrip= MI_OpenFunctionEditor=Alt+F MI_OpenHistoryPanel= MI_OpenLevelView= +MI_OpenOnlineManual= MI_OpenPalette= MI_OpenPltGizmo= +MI_OpenRecentLevel= MI_OpenRecentScene= MI_OpenSchematic= MI_OpenScriptConsole= MI_OpenStudioPalette= MI_OpenStyleControl= -MI_OpenTMessage= MI_OpenTasks= -MI_OpenToolOptionBar= +MI_OpenTimelineView= +MI_OpenTMessage= MI_OpenToolbar= +MI_OpenToolOptionBar= MI_OpenXshView= MI_OutputSettings= MI_OverwritePalette= -MI_PCheck= +MI_Paste=Ctrl+V +MI_PasteAbove= MI_PasteColors= MI_PasteInto= MI_PasteNames= +MI_PasteNumbers= MI_PasteValues= MI_Pause= +MI_PCheck= MI_PencilTest= MI_PickStyleAreas= MI_PickStyleLines= MI_Play=Return MI_Preferences=Ctrl+U -MI_PrevStep= +MI_PrevDrawing=F +MI_PrevFrame="," +MI_Preview=Alt+P MI_PreviewFx= MI_PreviewSettings= +MI_PrevStep= MI_Print= MI_PrintXsheet= MI_ProjectSettings= +MI_Quit=Ctrl+Q MI_Random= MI_RasterizePli= MI_RedChannel= MI_RedChannelGreyscale= +MI_Redo=Ctrl+Y MI_Reframe1= MI_Reframe2= MI_Reframe3= MI_Reframe4= +MI_ReframeWithEmptyInbetweens= MI_RefreshTree= MI_RegenerateFramePr= MI_RegeneratePreview= -MI_ReloadStyle= +MI_RemoveEmptyColumns= MI_RemoveEndpoints= MI_RemoveGlobalKeyframe= MI_RemoveLevel= +MI_RemoveReferenceToStudioPalette= MI_RemoveSceneFrame= MI_RemoveUnused= MI_Render=Ctrl+Alt+Shift+S @@ -300,16 +302,20 @@ MI_Rollup= MI_RunScript= MI_SafeArea= MI_SaveAll=Ctrl+S +MI_SaveAllLevels= MI_SaveDefaultSettings= MI_SaveLevel= MI_SaveLevelAs= MI_SavePaletteAs= MI_SavePreset= MI_SavePreviewedFrames= +MI_SaveScene=Ctrl+Shift+S +MI_SaveSceneAs=Ctrl+Alt+Shift+S MI_SaveSubxsheetAs= MI_Scan= MI_ScanSettings= MI_SceneSettings=Ctrl+F3 +MI_SelectAll=Shift+A MI_SelectAllKeyframes= MI_SelectAllKeyframesNotAfter= MI_SelectAllKeyframesNotBefore= @@ -319,6 +325,9 @@ MI_SelectFollowingKeysInRow= MI_SelectPreviousKeysInColumn= MI_SelectPreviousKeysInRow= MI_SelectRowKeyframes= +MI_SendBack=Ctrl+Shift+Down +MI_SendBackward=Ctrl+Down +MI_SeparateColors= MI_SetAcceleration= MI_SetConstantSpeed= MI_SetDeceleration= @@ -327,6 +336,8 @@ MI_SetScanCropbox= MI_ShiftTrace= MI_ShortcutPopup= MI_ShowFolderContents= +MI_SoundTrack= +MI_StartupPopup= MI_Step2= MI_Step3= MI_Step4= @@ -336,11 +347,24 @@ MI_TCheck= MI_TimeStretch= MI_ToggleColumnLocks= MI_ToggleColumnsActivation= +MI_ToggleCurrentTimeIndicator= MI_ToggleEditInPlace= +MI_ToggleLinkToStudioPalette= +MI_ToggleXSheetToolbar= +MI_TouchGestureControl= MI_Tracking= +MI_Undo=Ctrl+Z MI_Ungroup=Ctrl+Shift+G MI_UnlockAllColumns=Ctrl+Alt+Shift+L MI_UnlockSelectedColumns=Ctrl+Shift+K +MI_UseConstantInterpolation= +MI_UseEaseInOutInterpolation= +MI_UseEaseInOutPctInterpolation= +MI_UseExponentialInterpolation= +MI_UseExpressionInterpolation= +MI_UseFileInterpolation= +MI_UseLinearInterpolation= +MI_UseSpeedInOutInterpolation= MI_ViewBBox= MI_ViewCamera= MI_ViewColorcard= @@ -348,19 +372,42 @@ MI_ViewFile= MI_ViewGuide= MI_ViewRuler=Ctrl+Alt+Shift+R MI_ViewTable= +MI_ZeroThick=D +T_ActualPixelSize= T_Bender= +T_Brush=Alt+B +T_ControlPointEditor=Alt+A T_Cutter=Alt+T +T_Edit=Alt+Q +T_Eraser=Alt+E +T_Fill=Alt+K T_Finger= +T_FlipX= +T_FlipY= +T_Geometric=Atl+R +T_Hand= T_Hook= T_Iron= T_Magnet= T_PaintBrush= +T_Pinch= T_Plastic= +T_PositionReset= T_Pump= T_RGBPicker= +T_Rotate= +T_RotateReset= T_Ruler= +T_Selection=Alt+V T_ShowHideFullScreen=F4 T_Skeleton= +T_StylePicker=Alt+I +T_Tape=Alt+C T_Tracker= +T_Type= +T_ViewReset= +T_Zoom=Alt+Z T_ZoomFit= -MI_OpenRecentLevel= +T_Zoomin=Ctrl+= +T_Zoomout=Ctrl+- +T_ZoomReset=Shift+Z diff --git a/thirdparty/libmypaint/README b/thirdparty/libmypaint/README index 4b0866d..d5fb270 100644 --- a/thirdparty/libmypaint/README +++ b/thirdparty/libmypaint/README @@ -1,4 +1,4 @@ -Scripts for cross-build libmypaint for Windows (MinGW) under Debian 8 Jessie +Scripts for cross-build libmypaint for Windows (MinGW) under Debian 8 Jessie and Debian 9 Stretch 1. install mingw toolchain (via apt-get for ex) diff --git a/thirdparty/libmypaint/dist/32/include/libmypaint/mypaint-brush-settings-gen.h b/thirdparty/libmypaint/dist/32/include/libmypaint/mypaint-brush-settings-gen.h index 77e0932..b35812b 100644 --- a/thirdparty/libmypaint/dist/32/include/libmypaint/mypaint-brush-settings-gen.h +++ b/thirdparty/libmypaint/dist/32/include/libmypaint/mypaint-brush-settings-gen.h @@ -7,8 +7,13 @@ typedef enum { MYPAINT_BRUSH_INPUT_RANDOM, MYPAINT_BRUSH_INPUT_STROKE, MYPAINT_BRUSH_INPUT_DIRECTION, + MYPAINT_BRUSH_INPUT_DIRECTION_ANGLE, + MYPAINT_BRUSH_INPUT_ATTACK_ANGLE, MYPAINT_BRUSH_INPUT_TILT_DECLINATION, MYPAINT_BRUSH_INPUT_TILT_ASCENSION, + MYPAINT_BRUSH_INPUT_GRIDMAP_X, + MYPAINT_BRUSH_INPUT_GRIDMAP_Y, + MYPAINT_BRUSH_INPUT_BRUSH_RADIUS, MYPAINT_BRUSH_INPUT_CUSTOM, MYPAINT_BRUSH_INPUTS_COUNT } MyPaintBrushInput; @@ -23,12 +28,23 @@ typedef enum { MYPAINT_BRUSH_SETTING_DABS_PER_BASIC_RADIUS, MYPAINT_BRUSH_SETTING_DABS_PER_ACTUAL_RADIUS, MYPAINT_BRUSH_SETTING_DABS_PER_SECOND, + MYPAINT_BRUSH_SETTING_GRIDMAP_SCALE, + MYPAINT_BRUSH_SETTING_GRIDMAP_SCALE_X, + MYPAINT_BRUSH_SETTING_GRIDMAP_SCALE_Y, MYPAINT_BRUSH_SETTING_RADIUS_BY_RANDOM, MYPAINT_BRUSH_SETTING_SPEED1_SLOWNESS, MYPAINT_BRUSH_SETTING_SPEED2_SLOWNESS, MYPAINT_BRUSH_SETTING_SPEED1_GAMMA, MYPAINT_BRUSH_SETTING_SPEED2_GAMMA, MYPAINT_BRUSH_SETTING_OFFSET_BY_RANDOM, + MYPAINT_BRUSH_SETTING_OFFSET_Y, + MYPAINT_BRUSH_SETTING_OFFSET_X, + MYPAINT_BRUSH_SETTING_OFFSET_ANGLE, + MYPAINT_BRUSH_SETTING_OFFSET_ANGLE_ASC, + MYPAINT_BRUSH_SETTING_OFFSET_ANGLE_2, + MYPAINT_BRUSH_SETTING_OFFSET_ANGLE_2_ASC, + MYPAINT_BRUSH_SETTING_OFFSET_ANGLE_ADJ, + MYPAINT_BRUSH_SETTING_OFFSET_MULTIPLIER, MYPAINT_BRUSH_SETTING_OFFSET_BY_SPEED, MYPAINT_BRUSH_SETTING_OFFSET_BY_SPEED_SLOWNESS, MYPAINT_BRUSH_SETTING_SLOW_TRACKING, @@ -93,6 +109,12 @@ typedef enum { MYPAINT_BRUSH_STATE_DIRECTION_DY, MYPAINT_BRUSH_STATE_DECLINATION, MYPAINT_BRUSH_STATE_ASCENSION, + MYPAINT_BRUSH_STATE_DIRECTION_ANGLE_DX, + MYPAINT_BRUSH_STATE_DIRECTION_ANGLE_DY, + MYPAINT_BRUSH_STATE_ATTACK_ANGLE, + MYPAINT_BRUSH_STATE_FLIP, + MYPAINT_BRUSH_STATE_GRIDMAP_X, + MYPAINT_BRUSH_STATE_GRIDMAP_Y, MYPAINT_BRUSH_STATES_COUNT } MyPaintBrushState; diff --git a/thirdparty/libmypaint/dist/32/include/libmypaint/mypaint-tiled-surface.h b/thirdparty/libmypaint/dist/32/include/libmypaint/mypaint-tiled-surface.h index b225f7b..db01e4a 100644 --- a/thirdparty/libmypaint/dist/32/include/libmypaint/mypaint-tiled-surface.h +++ b/thirdparty/libmypaint/dist/32/include/libmypaint/mypaint-tiled-surface.h @@ -5,15 +5,6 @@ #include #include -typedef enum { - MYPAINT_SYMMETRY_TYPE_VERTICAL, - MYPAINT_SYMMETRY_TYPE_HORIZONTAL, - MYPAINT_SYMMETRY_TYPE_VERTHORZ, - MYPAINT_SYMMETRY_TYPE_ROTATIONAL, - MYPAINT_SYMMETRY_TYPE_SNOWFLAKE, - MYPAINT_SYMMETRY_TYPES_COUNT -} MyPaintSymmetryType; - G_BEGIN_DECLS typedef struct MyPaintTiledSurface MyPaintTiledSurface; @@ -49,10 +40,7 @@ struct MyPaintTiledSurface { MyPaintTileRequestStartFunction tile_request_start; MyPaintTileRequestEndFunction tile_request_end; gboolean surface_do_symmetry; - MyPaintSymmetryType symmetry_type; float surface_center_x; - float surface_center_y; - int rot_symmetry_lines; struct OperationQueue *operation_queue; MyPaintRectangle dirty_bbox; gboolean threadsafe_tile_requests; @@ -68,10 +56,7 @@ void mypaint_tiled_surface_destroy(MyPaintTiledSurface *self); void -mypaint_tiled_surface_set_symmetry_state(MyPaintTiledSurface *self, gboolean active, - float center_x, float center_y, - MyPaintSymmetryType symmetry_type, - int rot_symmetry_lines); +mypaint_tiled_surface_set_symmetry_state(MyPaintTiledSurface *self, gboolean active, float center_x); float mypaint_tiled_surface_get_alpha (MyPaintTiledSurface *self, float x, float y, float radius); diff --git a/thirdparty/libmypaint/dist/32/libiconv-2.dll b/thirdparty/libmypaint/dist/32/libiconv-2.dll index 9f62fac..588763a 100755 --- a/thirdparty/libmypaint/dist/32/libiconv-2.dll +++ b/thirdparty/libmypaint/dist/32/libiconv-2.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3078c54ef5c185ca5fe25d9dddc15a258bf46357b1951132b042ef661b2bc936 -size 1101423 +oid sha256:78ce0b0eebff5c7f704ae64523409cf86a2469611ca7b0c55ab3310ef6cae73c +size 1309935 diff --git a/thirdparty/libmypaint/dist/32/libintl-8.dll b/thirdparty/libmypaint/dist/32/libintl-8.dll index 59fbc5a..ddec722 100755 --- a/thirdparty/libmypaint/dist/32/libintl-8.dll +++ b/thirdparty/libmypaint/dist/32/libintl-8.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fb73cf22089da6390c1def079b58e7b73cb27ce7902e48883f5becae20df97b2 -size 333677 +oid sha256:3e1e9a9bac8527f5db77898b2f72c44c3a61f1918e37434cd47c192d726e3219 +size 603361 diff --git a/thirdparty/libmypaint/dist/32/libjson-c-2.dll b/thirdparty/libmypaint/dist/32/libjson-c-2.dll index 87f1866..b562fcb 100755 --- a/thirdparty/libmypaint/dist/32/libjson-c-2.dll +++ b/thirdparty/libmypaint/dist/32/libjson-c-2.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:03e90abbbc0c72b3832b7cb1fb62df3bc41d9fc170caf1eec777a69857dffd29 -size 216247 +oid sha256:abd13e4ed73e2fc3939e3517b3f9805c02a1fb9bb54189d8f89a1358aa2fd984 +size 428011 diff --git a/thirdparty/libmypaint/dist/32/libmypaint-1-4-0.dll b/thirdparty/libmypaint/dist/32/libmypaint-1-4-0.dll index c6fc3f6..00730de 100755 --- a/thirdparty/libmypaint/dist/32/libmypaint-1-4-0.dll +++ b/thirdparty/libmypaint/dist/32/libmypaint-1-4-0.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:426748f0de42310541d59537396caf7f6e8c194b1c4481e29f5522407c4e0d32 -size 306114 +oid sha256:5b3daa24ead0959d6e9131abface32560b27d58031cc472b5183cc45fa5eaea3 +size 637598 diff --git a/thirdparty/libmypaint/dist/32/libmypaint.lib b/thirdparty/libmypaint/dist/32/libmypaint.lib index 7537481..cc70a53 100755 --- a/thirdparty/libmypaint/dist/32/libmypaint.lib +++ b/thirdparty/libmypaint/dist/32/libmypaint.lib @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7c2ce3325bab78ac76de865e39276ccc35b16b053224d5d651e007a8672c59de +oid sha256:8109a31daae0d3a55d9c64ebaa9170792f29bc7823cea6d8f9d3db130180fd60 size 86606 diff --git a/thirdparty/libmypaint/dist/64/include/libmypaint/mypaint-brush-settings-gen.h b/thirdparty/libmypaint/dist/64/include/libmypaint/mypaint-brush-settings-gen.h index 77e0932..b35812b 100644 --- a/thirdparty/libmypaint/dist/64/include/libmypaint/mypaint-brush-settings-gen.h +++ b/thirdparty/libmypaint/dist/64/include/libmypaint/mypaint-brush-settings-gen.h @@ -7,8 +7,13 @@ typedef enum { MYPAINT_BRUSH_INPUT_RANDOM, MYPAINT_BRUSH_INPUT_STROKE, MYPAINT_BRUSH_INPUT_DIRECTION, + MYPAINT_BRUSH_INPUT_DIRECTION_ANGLE, + MYPAINT_BRUSH_INPUT_ATTACK_ANGLE, MYPAINT_BRUSH_INPUT_TILT_DECLINATION, MYPAINT_BRUSH_INPUT_TILT_ASCENSION, + MYPAINT_BRUSH_INPUT_GRIDMAP_X, + MYPAINT_BRUSH_INPUT_GRIDMAP_Y, + MYPAINT_BRUSH_INPUT_BRUSH_RADIUS, MYPAINT_BRUSH_INPUT_CUSTOM, MYPAINT_BRUSH_INPUTS_COUNT } MyPaintBrushInput; @@ -23,12 +28,23 @@ typedef enum { MYPAINT_BRUSH_SETTING_DABS_PER_BASIC_RADIUS, MYPAINT_BRUSH_SETTING_DABS_PER_ACTUAL_RADIUS, MYPAINT_BRUSH_SETTING_DABS_PER_SECOND, + MYPAINT_BRUSH_SETTING_GRIDMAP_SCALE, + MYPAINT_BRUSH_SETTING_GRIDMAP_SCALE_X, + MYPAINT_BRUSH_SETTING_GRIDMAP_SCALE_Y, MYPAINT_BRUSH_SETTING_RADIUS_BY_RANDOM, MYPAINT_BRUSH_SETTING_SPEED1_SLOWNESS, MYPAINT_BRUSH_SETTING_SPEED2_SLOWNESS, MYPAINT_BRUSH_SETTING_SPEED1_GAMMA, MYPAINT_BRUSH_SETTING_SPEED2_GAMMA, MYPAINT_BRUSH_SETTING_OFFSET_BY_RANDOM, + MYPAINT_BRUSH_SETTING_OFFSET_Y, + MYPAINT_BRUSH_SETTING_OFFSET_X, + MYPAINT_BRUSH_SETTING_OFFSET_ANGLE, + MYPAINT_BRUSH_SETTING_OFFSET_ANGLE_ASC, + MYPAINT_BRUSH_SETTING_OFFSET_ANGLE_2, + MYPAINT_BRUSH_SETTING_OFFSET_ANGLE_2_ASC, + MYPAINT_BRUSH_SETTING_OFFSET_ANGLE_ADJ, + MYPAINT_BRUSH_SETTING_OFFSET_MULTIPLIER, MYPAINT_BRUSH_SETTING_OFFSET_BY_SPEED, MYPAINT_BRUSH_SETTING_OFFSET_BY_SPEED_SLOWNESS, MYPAINT_BRUSH_SETTING_SLOW_TRACKING, @@ -93,6 +109,12 @@ typedef enum { MYPAINT_BRUSH_STATE_DIRECTION_DY, MYPAINT_BRUSH_STATE_DECLINATION, MYPAINT_BRUSH_STATE_ASCENSION, + MYPAINT_BRUSH_STATE_DIRECTION_ANGLE_DX, + MYPAINT_BRUSH_STATE_DIRECTION_ANGLE_DY, + MYPAINT_BRUSH_STATE_ATTACK_ANGLE, + MYPAINT_BRUSH_STATE_FLIP, + MYPAINT_BRUSH_STATE_GRIDMAP_X, + MYPAINT_BRUSH_STATE_GRIDMAP_Y, MYPAINT_BRUSH_STATES_COUNT } MyPaintBrushState; diff --git a/thirdparty/libmypaint/dist/64/include/libmypaint/mypaint-tiled-surface.h b/thirdparty/libmypaint/dist/64/include/libmypaint/mypaint-tiled-surface.h index b225f7b..db01e4a 100644 --- a/thirdparty/libmypaint/dist/64/include/libmypaint/mypaint-tiled-surface.h +++ b/thirdparty/libmypaint/dist/64/include/libmypaint/mypaint-tiled-surface.h @@ -5,15 +5,6 @@ #include #include -typedef enum { - MYPAINT_SYMMETRY_TYPE_VERTICAL, - MYPAINT_SYMMETRY_TYPE_HORIZONTAL, - MYPAINT_SYMMETRY_TYPE_VERTHORZ, - MYPAINT_SYMMETRY_TYPE_ROTATIONAL, - MYPAINT_SYMMETRY_TYPE_SNOWFLAKE, - MYPAINT_SYMMETRY_TYPES_COUNT -} MyPaintSymmetryType; - G_BEGIN_DECLS typedef struct MyPaintTiledSurface MyPaintTiledSurface; @@ -49,10 +40,7 @@ struct MyPaintTiledSurface { MyPaintTileRequestStartFunction tile_request_start; MyPaintTileRequestEndFunction tile_request_end; gboolean surface_do_symmetry; - MyPaintSymmetryType symmetry_type; float surface_center_x; - float surface_center_y; - int rot_symmetry_lines; struct OperationQueue *operation_queue; MyPaintRectangle dirty_bbox; gboolean threadsafe_tile_requests; @@ -68,10 +56,7 @@ void mypaint_tiled_surface_destroy(MyPaintTiledSurface *self); void -mypaint_tiled_surface_set_symmetry_state(MyPaintTiledSurface *self, gboolean active, - float center_x, float center_y, - MyPaintSymmetryType symmetry_type, - int rot_symmetry_lines); +mypaint_tiled_surface_set_symmetry_state(MyPaintTiledSurface *self, gboolean active, float center_x); float mypaint_tiled_surface_get_alpha (MyPaintTiledSurface *self, float x, float y, float radius); diff --git a/thirdparty/libmypaint/dist/64/libiconv-2.dll b/thirdparty/libmypaint/dist/64/libiconv-2.dll index 9585920..5be1886 100755 --- a/thirdparty/libmypaint/dist/64/libiconv-2.dll +++ b/thirdparty/libmypaint/dist/64/libiconv-2.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4093b53b91565729564d539403aca91737ee094f902be60b6e261d78a67f0fae -size 1157325 +oid sha256:3b94187cac17bd48b4f144d9bba611755998d9bdfcd1078a823c0010e3c8560a +size 1362892 diff --git a/thirdparty/libmypaint/dist/64/libintl-8.dll b/thirdparty/libmypaint/dist/64/libintl-8.dll index 3f7f8d6..60500d5 100755 --- a/thirdparty/libmypaint/dist/64/libintl-8.dll +++ b/thirdparty/libmypaint/dist/64/libintl-8.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8eb37af030cff310ff94a43b68a16e0336af0828b62d1bd35e9e26bb2d2aad69 -size 404063 +oid sha256:2a45496ef731b54d588ec162359e5e15d408e3b1a6cd1615178c83b0baf126d2 +size 671955 diff --git a/thirdparty/libmypaint/dist/64/libjson-c-2.dll b/thirdparty/libmypaint/dist/64/libjson-c-2.dll index 7af6fa0..0f9342d 100755 --- a/thirdparty/libmypaint/dist/64/libjson-c-2.dll +++ b/thirdparty/libmypaint/dist/64/libjson-c-2.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1d8e9efd3f204804c88f362d20b182e3c222a025b28a811b8dc3abf627f6fd36 -size 276980 +oid sha256:01d84e22de39f5422aa41aa4e3d68b4474cfd47954209cb4bd004a55b180c57c +size 505255 diff --git a/thirdparty/libmypaint/dist/64/libmypaint-1-4-0.dll b/thirdparty/libmypaint/dist/64/libmypaint-1-4-0.dll index 9420a1a..cdc1fd6 100755 --- a/thirdparty/libmypaint/dist/64/libmypaint-1-4-0.dll +++ b/thirdparty/libmypaint/dist/64/libmypaint-1-4-0.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2747ff3cd4d107bcc7ddbd73099aac91b2b5bbcd69f1839f4d79418356d667b1 -size 392455 +oid sha256:b5573a9acc5735e33ee458d575bc8d37a1e441eaeeae0d73553d6d39d854a2ae +size 728685 diff --git a/thirdparty/libmypaint/dist/64/libmypaint.lib b/thirdparty/libmypaint/dist/64/libmypaint.lib index fac0dfa..be146c5 100755 --- a/thirdparty/libmypaint/dist/64/libmypaint.lib +++ b/thirdparty/libmypaint/dist/64/libmypaint.lib @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:704fc5310b5a3f0b7b77ce530f39a04b0d1c07d0cdfe26dad79159cf01f4a2a6 +oid sha256:e037b8df494cdac7850aef76632d0fe91ec2583233ca25a2394433c99ec9db98 size 84848 diff --git a/thirdparty/libmypaint/download-all.sh b/thirdparty/libmypaint/download-all.sh index fa95a15..8f2ff05 100755 --- a/thirdparty/libmypaint/download-all.sh +++ b/thirdparty/libmypaint/download-all.sh @@ -31,11 +31,11 @@ echo "" echo "checkout libmypaint" echo "" -BRANCH="testing" +BRANCH="libmypaint-v1" if [ -d "libmypaint/.git" ]; then cd libmypaint && git fetch && git reset --hard "origin/$BRANCH" && cd .. else - git clone https://github.com/blackwarthog/libmypaint.git --branch $BRANCH + git clone https://github.com/mypaint/libmypaint.git --branch $BRANCH fi cd .. diff --git a/thirdparty/libmypaint/mingw-vars.sh b/thirdparty/libmypaint/mingw-vars.sh index 2903331..2b9da26 100644 --- a/thirdparty/libmypaint/mingw-vars.sh +++ b/thirdparty/libmypaint/mingw-vars.sh @@ -64,7 +64,8 @@ export LDFLAGS="-L$PREFIX/lib $LDFLAGS" export CFLAGS="-I$PREFIX/include $CFLAGS" export CPPFLAGS="-I$PREFIX/include $CPPFLAGS" export CXXFLAGS="-I$PREFIX/include $CXXFLAGS" -export PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig:$PREFIX/share/pkgconfig:$PKG_CONFIG_PATH" +export PKG_CONFIG="/usr/bin/pkg-config" +export PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig:$PREFIX/share/pkgconfig" export PKG_CONFIG_LIBDIR="$PREFIX/lib:$PKG_CONFIG_LIBDIR" export PKG_CONFIG_SYSROOT_DIR="/" export XDG_DATA_DIRS="$PREFIX/share:$XDG_DATA_DIRS" diff --git a/toonz/sources/CMakeLists.txt b/toonz/sources/CMakeLists.txt index d9b0c34..32a5828 100644 --- a/toonz/sources/CMakeLists.txt +++ b/toonz/sources/CMakeLists.txt @@ -203,7 +203,10 @@ elseif(BUILD_ENV_UNIXLIKE) find_package(Qt5Widgets) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lstdc++ -std=c++11") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") + if (NOT (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lstdc++") + endif() endif() add_definitions( @@ -277,7 +280,7 @@ macro(_find_toonz_library OUT_LIB_LIST IN_LIB_LIST) unset(COREPATH CACHE) # find しても cmake が走るときにはできていないので完全なパス名を生成して返すだけ if(BUILD_ENV_APPLE) - set(LIBPATH ${CMAKE_CURRENT_BINARY_DIR}/../${arg}/lib${arg}${CMAKE_SHARED_LIBRARY_SUFFIX}) + set(LIBPATH "\$") else() set(LIBPATH ${arg}) endif() diff --git a/toonz/sources/common/tapptools/tenv.cpp b/toonz/sources/common/tapptools/tenv.cpp index 8b69f16..fce9708 100644 --- a/toonz/sources/common/tapptools/tenv.cpp +++ b/toonz/sources/common/tapptools/tenv.cpp @@ -33,10 +33,9 @@ using namespace TVER; namespace { const std::map systemPathMap{ - {"LIBRARY", "library"}, {"STUDIOPALETTE", "studiopalette"}, - {"FXPRESETS", "fxs"}, {"CACHEROOT", "cache"}, - {"PROFILES", "profiles"}, {"CONFIG", "config"}, - {"PROJECTS", "projects"}}; + {"LIBRARY", "library"}, {"STUDIOPALETTE", "studiopalette"}, + {"FXPRESETS", "fxs"}, {"PROFILES", "profiles"}, + {"CONFIG", "config"}, {"PROJECTS", "projects"}}; class EnvGlobals { // singleton @@ -171,6 +170,9 @@ public: } m_applicationFullName = m_version.getAppName() + " " + m_applicationVersion; + if (m_version.hasAppNote()) + m_applicationFullName += " " + m_version.getAppNote(); + m_moduleName = m_version.getAppName(); m_rootVarName = toUpper(m_version.getAppName()) + "ROOT"; #ifdef _WIN32 @@ -467,7 +469,7 @@ Variable::Variable(std::string name) Variable::Variable(std::string name, std::string defaultValue) : m_imp(VariableSet::instance()->getImp(name)) { // assert(!m_imp->m_defaultDefined); - m_imp->m_defaultDefined = true; + m_imp->m_defaultDefined = true; if (!m_imp->m_loaded) m_imp->m_value = defaultValue; } @@ -564,11 +566,11 @@ TFilePathSet TEnv::getSystemVarPathSetValue(std::string varName) { TFilePathSet lst; EnvGlobals *eg = EnvGlobals::instance(); // if the path is registered by command line argument, then use it - std::string value = eg->getArgPathValue(varName); + std::string value = eg->getArgPathValue(varName); if (value == "") value = eg->getSystemVarValue(varName); - int len = (int)value.size(); - int i = 0; - int j = value.find(';'); + int len = (int)value.size(); + int i = 0; + int j = value.find(';'); while (j != std::string::npos) { std::string s = value.substr(i, j - i); lst.push_back(TFilePath(s)); diff --git a/toonz/sources/include/cellposition.h b/toonz/sources/include/cellposition.h index e510d10..3a39eae 100644 --- a/toonz/sources/include/cellposition.h +++ b/toonz/sources/include/cellposition.h @@ -34,8 +34,8 @@ public: return CellPosition(_frame * mult._frame, _layer * mult._layer); } void ensureValid() { - if (_frame < 0) _frame = 0; - if (_layer < 0) _layer = 0; + if (_frame < 0) _frame = 0; + if (_layer < -1) _layer = -1; } }; diff --git a/toonz/sources/include/toonz/columnfan.h b/toonz/sources/include/toonz/columnfan.h index 062510e..a892725 100644 --- a/toonz/sources/include/toonz/columnfan.h +++ b/toonz/sources/include/toonz/columnfan.h @@ -42,10 +42,10 @@ class DVAPI ColumnFan { std::map m_table; int m_firstFreePos; int m_unfolded, m_folded; - + bool m_cameraActive; /*! -Called by activate() and deactivate() to update columns coordinates. -*/ + Called by activate() and deactivate() to update columns coordinates. + */ void update(); public: diff --git a/toonz/sources/include/toonz/preferences.h b/toonz/sources/include/toonz/preferences.h index 850ba1f..55c7555 100644 --- a/toonz/sources/include/toonz/preferences.h +++ b/toonz/sources/include/toonz/preferences.h @@ -474,6 +474,15 @@ public: currentColumnColor = m_currentColumnColor; } + void enableXsheetCameraColumn(bool on); + bool isXsheetCameraColumnEnabled() const { + return m_showXsheetCameraColumn; + } + + bool isXsheetCameraColumnVisible() const { + return m_showXsheetCameraColumn && m_showKeyframesOnXsheetCellArea; + } + // Animation tab void setKeyframeType(int s); @@ -731,6 +740,8 @@ private: int m_backupKeepCount; + bool m_showXsheetCameraColumn = true; + int m_levelBasedToolsDisplay; private: diff --git a/toonz/sources/include/toonz/tcolumnhandle.h b/toonz/sources/include/toonz/tcolumnhandle.h index 277c1d5..3cd2154 100644 --- a/toonz/sources/include/toonz/tcolumnhandle.h +++ b/toonz/sources/include/toonz/tcolumnhandle.h @@ -39,6 +39,7 @@ public: int getColumnIndex() const { return m_columnIndex; } void setColumnIndex(int index); + void notifyColumnIndexSwitched() { emit columnIndexSwitched(); } signals: void columnIndexSwitched(); diff --git a/toonz/sources/include/toonz/tstageobjecttree.h b/toonz/sources/include/toonz/tstageobjecttree.h index 03d6f00..44d94cc 100644 --- a/toonz/sources/include/toonz/tstageobjecttree.h +++ b/toonz/sources/include/toonz/tstageobjecttree.h @@ -6,6 +6,7 @@ #include #include "toonz/tstageobject.h" +#include "toonz/txsheet.h" #undef DVAPI #undef DVVAR @@ -141,14 +142,15 @@ TStageObjectId \b \e id. Retrieves object's data from a tagged data stream \b \e is. \sa saveData() */ - void loadData(TIStream &is) override; - /*! - Saves object's data (name, center coords, etc ) to a tagged data - stream \b \e os saved on a file. - This method call iteratively all stage objects in the tree and save - their data. - */ - void saveData(TOStream &os, int occupiedColumnCount); + void loadData(TIStream &is, TXsheet *xsh); + void loadData(TIStream &is) override{}; // not used + /*! + Saves object's data (name, center coords, etc ) to a tagged data + stream \b \e os saved on a file. + This method call iteratively all stage objects in the tree and save + their data. + */ + void saveData(TOStream &os, int occupiedColumnCount, TXsheet *xsh); void saveData(TOStream &os) override{}; // not used /*! Returns the numbers of the objects in the tree. diff --git a/toonz/sources/include/toonz/txsheet.h b/toonz/sources/include/toonz/txsheet.h index b7ee655..6dbced4 100644 --- a/toonz/sources/include/toonz/txsheet.h +++ b/toonz/sources/include/toonz/txsheet.h @@ -156,6 +156,9 @@ private: TXshNoteSet *m_notes; SoundProperties *m_soundProperties; + int m_cameraColumnIndex; + TXshColumn *m_cameraColumn; + DECLARE_CLASS_CODE public: @@ -557,6 +560,12 @@ in TXsheetImp. std::vector columnIndices, std::vector levels, int rowsCount); + void setCameraColumnIndex(int index) { m_cameraColumnIndex = index; } + int getCameraColumnIndex() { return m_cameraColumnIndex; } + + void setCameraColumnLocked(bool locked) { m_cameraColumn->lock(locked); } + bool isCameraColumnLocked() { return m_cameraColumn->isLocked(); } + protected: bool checkCircularReferences(TXsheet *childCandidate); diff --git a/toonz/sources/include/toonz/txsheethandle.h b/toonz/sources/include/toonz/txsheethandle.h index 12e5723..d851017 100644 --- a/toonz/sources/include/toonz/txsheethandle.h +++ b/toonz/sources/include/toonz/txsheethandle.h @@ -38,11 +38,13 @@ public: void notifyXsheetChanged() { emit xsheetChanged(); } void notifyXsheetSwitched() { emit xsheetSwitched(); } void notifyXsheetSoundChanged() { emit xsheetSoundChanged(); } + void changeXsheetCamera(int index) { emit xsheetCameraChange(index); } signals: void xsheetSwitched(); void xsheetChanged(); void xsheetSoundChanged(); + void xsheetCameraChange(int); }; #endif // TXSHEETHANDLE_H diff --git a/toonz/sources/include/toonzqt/colorfield.h b/toonz/sources/include/toonzqt/colorfield.h index 9aa5683..9d10a03 100644 --- a/toonz/sources/include/toonzqt/colorfield.h +++ b/toonz/sources/include/toonzqt/colorfield.h @@ -110,6 +110,7 @@ protected slots: void onSliderChanged(int value); void onSliderReleased(); void onEditChanged(const QString &str); + void onEditFinished(); }; //============================================================================= diff --git a/toonz/sources/include/toonzqt/paramfield.h b/toonz/sources/include/toonzqt/paramfield.h index dbf3880..7c9ea44 100644 --- a/toonz/sources/include/toonzqt/paramfield.h +++ b/toonz/sources/include/toonzqt/paramfield.h @@ -53,7 +53,7 @@ class ColorField; class SpectrumField; class ToneCurveField; class CheckBox; -} +} // namespace DVGui //============================================================================= /*! \brief ParamField. @@ -385,16 +385,17 @@ protected slots: // RGB Link Button //----------------------------------------------------------------------------- -class DVAPI RgbLinkButton final : public QPushButton { +class DVAPI RgbLinkButtons final : public QWidget { Q_OBJECT PixelParamField *m_field1, *m_field2; public: - RgbLinkButton(QString str, QWidget *parent, PixelParamField *field1, - PixelParamField *field2); + RgbLinkButtons(QString str1, QString str2, QWidget *parent, + PixelParamField *field1, PixelParamField *field2); protected slots: - void onButtonClicked(); + void onCopyButtonClicked(); + void onSwapButtonClicked(); }; //============================================================================= @@ -517,7 +518,7 @@ protected: signals: void edited(); }; -}; +}; // namespace component class DVAPI StringParamField final : public ParamField { Q_OBJECT @@ -659,7 +660,7 @@ public: protected slots: void update_value(double); }; -} +} // namespace component namespace component { class DVAPI LineEdit_int final : public ParamField { diff --git a/toonz/sources/include/tversion.h b/toonz/sources/include/tversion.h index 82e17cf..4ce2162 100644 --- a/toonz/sources/include/tversion.h +++ b/toonz/sources/include/tversion.h @@ -10,6 +10,8 @@ public: std::string getAppName(void); float getAppVersion(void); float getAppRevision(void); + std::string getAppNote(void); + bool hasAppNote(void); std::string getAppVersionString(void); std::string getAppRevisionString(void); std::string getAppVersionInfo(std::string msg); @@ -18,6 +20,7 @@ private: const char *applicationName = "OpenToonz"; const float applicationVersion = 1.3; const float applicationRevision = 0; + const char *applicationNote = ""; }; std::string ToonzVersion::getAppName(void) { @@ -32,6 +35,13 @@ float ToonzVersion::getAppRevision(void) { float apprev = applicationRevision; return apprev; } +std::string ToonzVersion::getAppNote(void) { + std::string appnote = applicationNote; + return appnote; +} +bool ToonzVersion::hasAppNote(void) { + return *applicationNote != 0; +} std::string ToonzVersion::getAppVersionString(void) { char buffer[50]; sprintf(buffer, "%.1f", applicationVersion); @@ -49,6 +59,8 @@ std::string ToonzVersion::getAppVersionInfo(std::string msg) { appinfo += " " + msg + " v"; appinfo += getAppVersionString(); appinfo += "." + getAppRevisionString(); + if (hasAppNote()) + appinfo += " " + std::string(applicationNote); return appinfo; } diff --git a/toonz/sources/tcleanupper/tcleanupper.cpp b/toonz/sources/tcleanupper/tcleanupper.cpp index 852163e..05746b4 100644 --- a/toonz/sources/tcleanupper/tcleanupper.cpp +++ b/toonz/sources/tcleanupper/tcleanupper.cpp @@ -224,7 +224,7 @@ int FarmControllerPort; TFarmController *FarmController = 0; string TaskId; -} +} // namespace //======================================================================== // // searchLevelsToCleanup @@ -491,6 +491,12 @@ int main(int argc, char *argv[]) { // questo definisce la registry root e inizializza TEnv TEnv::setRootVarName(rootVarName); TEnv::setSystemVarPrefix(systemVarPrefix); + + QCoreApplication::setOrganizationName("OpenToonz"); + QCoreApplication::setOrganizationDomain(""); + QCoreApplication::setApplicationName( + QString::fromStdString(TEnv::getApplicationName())); + TSystem::hasMainLoop(false); int i; for (i = 0; i < argc; i++) // tmsg must be set as soon as it's possible @@ -527,7 +533,7 @@ int main(int argc, char *argv[]) { TVectorImagePatternStrokeStyle::setRootDir(libraryFolder); TPalette::setRootDir(libraryFolder); TImageStyle::setLibraryDir(libraryFolder); - TFilePath cacheRoot = ToonzFolder::getCacheRootFolder(); + TFilePath cacheRoot = ToonzFolder::getCacheRootFolder(); if (cacheRoot.isEmpty()) cacheRoot = TEnv::getStuffDir() + "cache"; TImageCache::instance()->setRootDir(cacheRoot); diff --git a/toonz/sources/tcomposer/tcomposer.cpp b/toonz/sources/tcomposer/tcomposer.cpp index 3eea750..e3b1d39 100644 --- a/toonz/sources/tcomposer/tcomposer.cpp +++ b/toonz/sources/tcomposer/tcomposer.cpp @@ -658,6 +658,11 @@ int main(int argc, char *argv[]) { TEnv::setRootVarName(rootVarName); TEnv::setSystemVarPrefix(systemVarPrefix); + QCoreApplication::setOrganizationName("OpenToonz"); + QCoreApplication::setOrganizationDomain(""); + QCoreApplication::setApplicationName( + QString::fromStdString(TEnv::getApplicationName())); + QHash::const_iterator argItr = argumentPathValues.constBegin(); while (argItr != argumentPathValues.constEnd()) { diff --git a/toonz/sources/tnzbase/CMakeLists.txt b/toonz/sources/tnzbase/CMakeLists.txt index 3df02f3..f7cbc45 100644 --- a/toonz/sources/tnzbase/CMakeLists.txt +++ b/toonz/sources/tnzbase/CMakeLists.txt @@ -200,7 +200,7 @@ elseif(BUILD_ENV_APPLE) find_library(COCOA_LIB Cocoa) set(EXTRA_LIBS - ${CMAKE_CURRENT_BINARY_DIR}/../tnzcore/libtnzcore.dylib + "$" ${USB_LIB} ${TWAIN_LIB} ${IOKIT_LIB} diff --git a/toonz/sources/tnzext/CMakeLists.txt b/toonz/sources/tnzext/CMakeLists.txt index f44761d..f4c8f13 100644 --- a/toonz/sources/tnzext/CMakeLists.txt +++ b/toonz/sources/tnzext/CMakeLists.txt @@ -117,8 +117,8 @@ if(BUILD_ENV_MSVC) ) elseif(BUILD_ENV_APPLE) set(EXTRA_LIBS - ${CMAKE_CURRENT_BINARY_DIR}/../tnzcore/libtnzcore.dylib - ${CMAKE_CURRENT_BINARY_DIR}/../tnzbase/libtnzbase.dylib + "$" + "$" ) target_link_libraries(tnzext diff --git a/toonz/sources/tnztools/controlpointeditortool.cpp b/toonz/sources/tnztools/controlpointeditortool.cpp index 3b20917..2f6131b 100644 --- a/toonz/sources/tnztools/controlpointeditortool.cpp +++ b/toonz/sources/tnztools/controlpointeditortool.cpp @@ -429,7 +429,8 @@ void ControlPointEditorTool::mouseMove(const TPointD &pos, void ControlPointEditorTool::leftButtonDown(const TPointD &pos, const TMouseEvent &e) { m_pos = pos; - double maxDist = 5 * getPixelSize(); + double pix = getPixelSize() * 2.0f; + double maxDist = 5 * pix; double maxDist2 = maxDist * maxDist; double dist2 = 0; int pointIndex; diff --git a/toonz/sources/tnztools/edittool.cpp b/toonz/sources/tnztools/edittool.cpp index 7319066..1e62f3d 100644 --- a/toonz/sources/tnztools/edittool.cpp +++ b/toonz/sources/tnztools/edittool.cpp @@ -1417,7 +1417,7 @@ void EditTool::draw() { tglColor(normalColor); glPushMatrix(); TStageObjectId currentCamId = - xsh->getStageObjectTree()->getCurrentCameraId(); + TStageObjectId::CameraId(xsh->getCameraColumnIndex()); TAffine camParentAff = xsh->getParentPlacement(currentCamId, frame); TAffine camAff = xsh->getPlacement(currentCamId, frame); tglMultMatrix(camParentAff.inv() * @@ -1553,9 +1553,12 @@ m_foo.setFxHandle(getApplication()->getCurrentFx()); TStageObjectId objId = getObjectId(); if (objId == TStageObjectId::NoneId) { - int index = getColumnIndex(); - if (index == -1) objId = TStageObjectId::CameraId(0); - objId = TStageObjectId::ColumnId(index); + int index = getColumnIndex(); + TXsheet *xsh = TTool::getApplication()->getCurrentXsheet()->getXsheet(); + if (index == -1) + objId = TStageObjectId::CameraId(xsh->getCameraColumnIndex()); + else + objId = TStageObjectId::ColumnId(index); } TTool::getApplication()->getCurrentObject()->setObjectId(objId); } diff --git a/toonz/sources/tnztools/edittoolgadgets.cpp b/toonz/sources/tnztools/edittoolgadgets.cpp index 8dc24e5..3fb6f5d 100644 --- a/toonz/sources/tnztools/edittoolgadgets.cpp +++ b/toonz/sources/tnztools/edittoolgadgets.cpp @@ -1128,7 +1128,8 @@ void FxGadgetController::onFxSwitched() { if (referenceColumnIndex == -1) { TObjectHandle *oh = m_tool->getApplication()->getCurrentObject(); if (!oh->getObjectId().isCamera()) { - oh->setObjectId(TStageObjectId::CameraId(0)); + TXsheet *xsh = m_tool->getXsheet(); + oh->setObjectId(TStageObjectId::CameraId(xsh->getCameraColumnIndex())); } enabled = true; } else if (referenceColumnIndex == m_tool->getColumnIndex()) diff --git a/toonz/sources/tnztools/fullcolorbrushtool.cpp b/toonz/sources/tnztools/fullcolorbrushtool.cpp index 1f421a5..95a4e57 100644 --- a/toonz/sources/tnztools/fullcolorbrushtool.cpp +++ b/toonz/sources/tnztools/fullcolorbrushtool.cpp @@ -54,6 +54,7 @@ TEnv::DoubleVar FullcolorModifierSize("FullcolorModifierSize", 0); TEnv::DoubleVar FullcolorModifierOpacity("FullcolorModifierOpacity", 100); TEnv::IntVar FullcolorModifierEraser("FullcolorModifierEraser", 0); TEnv::IntVar FullcolorModifierLockAlpha("FullcolorModifierLockAlpha", 0); +TEnv::StringVar FullcolorBrushPreset("FullcolorBrushPreset", ""); //---------------------------------------------------------------------------------- @@ -195,16 +196,15 @@ void FullColorBrushTool::onActivate() { if (m_firstTime) { m_firstTime = false; - m_thickness.setValue( - TIntPairProperty::Value(FullcolorBrushMinSize, FullcolorBrushMaxSize)); - m_pressure.setValue(FullcolorPressureSensitivity ? 1 : 0); - m_opacity.setValue( - TDoublePairProperty::Value(FullcolorMinOpacity, FullcolorMaxOpacity)); - m_hardness.setValue(FullcolorBrushHardness); - m_modifierSize.setValue(FullcolorModifierSize); - m_modifierOpacity.setValue(FullcolorModifierOpacity); - m_modifierEraser.setValue(FullcolorModifierEraser ? true : false); - m_modifierLockAlpha.setValue(FullcolorModifierLockAlpha ? true : false); + + std::wstring wpreset = + QString::fromStdString(FullcolorBrushPreset.getValue()).toStdWString(); + if (wpreset != CUSTOM_WSTR) { + initPresets(); + m_preset.setValue(wpreset); + loadPreset(); + } else + loadLastBrush(); } setWorkAndBackupImages(); @@ -578,6 +578,23 @@ void FullColorBrushTool::setWorkAndBackupImages() { //------------------------------------------------------------------ bool FullColorBrushTool::onPropertyChanged(std::string propertyName) { + if (m_propertyUpdating) return true; + + updateCurrentStyle(); + + if (propertyName == "Preset:") { + if (m_preset.getValue() != CUSTOM_WSTR) + loadPreset(); + else // Chose , go back to last saved brush settings + loadLastBrush(); + + FullcolorBrushPreset = m_preset.getValueAsString(); + m_propertyUpdating = true; + getApplication()->getCurrentTool()->notifyToolChanged(); + m_propertyUpdating = false; + return true; + } + FullcolorBrushMinSize = m_thickness.getValue().first; FullcolorBrushMaxSize = m_thickness.getValue().second; FullcolorPressureSensitivity = m_pressure.getValue(); @@ -589,17 +606,12 @@ bool FullColorBrushTool::onPropertyChanged(std::string propertyName) { FullcolorModifierEraser = m_modifierEraser.getValue() ? 1 : 0; FullcolorModifierLockAlpha = m_modifierLockAlpha.getValue() ? 1 : 0; - updateCurrentStyle(); - - if (propertyName == "Preset:") { - loadPreset(); - getApplication()->getCurrentTool()->notifyToolChanged(); - return true; - } - if (m_preset.getValue() != CUSTOM_WSTR) { m_preset.setValue(CUSTOM_WSTR); + FullcolorBrushPreset = m_preset.getValueAsString(); + m_propertyUpdating = true; getApplication()->getCurrentTool()->notifyToolChanged(); + m_propertyUpdating = false; } return true; @@ -694,6 +706,21 @@ void FullColorBrushTool::removePreset() { //------------------------------------------------------------------ +void FullColorBrushTool::loadLastBrush() { + m_thickness.setValue( + TIntPairProperty::Value(FullcolorBrushMinSize, FullcolorBrushMaxSize)); + m_pressure.setValue(FullcolorPressureSensitivity ? 1 : 0); + m_opacity.setValue( + TDoublePairProperty::Value(FullcolorMinOpacity, FullcolorMaxOpacity)); + m_hardness.setValue(FullcolorBrushHardness); + m_modifierSize.setValue(FullcolorModifierSize); + m_modifierOpacity.setValue(FullcolorModifierOpacity); + m_modifierEraser.setValue(FullcolorModifierEraser ? true : false); + m_modifierLockAlpha.setValue(FullcolorModifierLockAlpha ? true : false); +} + +//------------------------------------------------------------------ + void FullColorBrushTool::updateCurrentStyle() { m_currentColor = TPixel32::Black; if (TTool::Application *app = getApplication()) { diff --git a/toonz/sources/tnztools/fullcolorbrushtool.h b/toonz/sources/tnztools/fullcolorbrushtool.h index 9ac9320..414aff9 100644 --- a/toonz/sources/tnztools/fullcolorbrushtool.h +++ b/toonz/sources/tnztools/fullcolorbrushtool.h @@ -76,6 +76,8 @@ public: void addPreset(QString name); void removePreset(); + void loadLastBrush(); + void onCanvasSizeChanged(); void onColorStyleChanged(); @@ -120,6 +122,8 @@ protected: bool m_firstTime; bool m_mousePressed = false; TMouseEvent m_mouseEvent; + + bool m_propertyUpdating = false; }; //------------------------------------------------------------ diff --git a/toonz/sources/tnztools/tool.cpp b/toonz/sources/tnztools/tool.cpp index 0e5fee5..f2db9f9 100644 --- a/toonz/sources/tnztools/tool.cpp +++ b/toonz/sources/tnztools/tool.cpp @@ -857,6 +857,11 @@ QString TTool::updateEnabled(int rowIndex, int columnIndex) { Preferences::instance()->isMultiLayerStylePickerEnabled()) return (enable(true), QString()); + // Check against camera column + if (!filmstrip && columnIndex < 0 && (targetType & TTool::EmptyTarget) && + (m_name == T_Type || m_name == T_Geometric || m_name == T_Brush)) + return (enable(false), QString()); + // Check against unplaced columns (not in filmstrip mode) if (column && !filmstrip) { if (column->isLocked()) diff --git a/toonz/sources/tnztools/tooloptions.cpp b/toonz/sources/tnztools/tooloptions.cpp index 6702f93..16a9c6e 100644 --- a/toonz/sources/tnztools/tooloptions.cpp +++ b/toonz/sources/tnztools/tooloptions.cpp @@ -1130,6 +1130,11 @@ void ArrowToolOptionsBox::onCurrentStageObjectComboActivated(int index) { } // switch the current object m_objHandle->setObjectId(id); + if (id.isCamera()) { + TXsheet *xsh = m_xshHandle->getXsheet(); + if (xsh->getCameraColumnIndex() != id.getIndex()) + m_xshHandle->changeXsheetCamera(id.getIndex()); + } } //------------------------------------------------------------------------------ diff --git a/toonz/sources/tnztools/toonzrasterbrushtool.cpp b/toonz/sources/tnztools/toonzrasterbrushtool.cpp index c432f36..c051fe6 100644 --- a/toonz/sources/tnztools/toonzrasterbrushtool.cpp +++ b/toonz/sources/tnztools/toonzrasterbrushtool.cpp @@ -55,6 +55,7 @@ TEnv::IntVar RasterBrushPencilMode("InknpaintRasterBrushPencilMode", 0); TEnv::IntVar BrushPressureSensitivity("InknpaintBrushPressureSensitivity", 1); TEnv::DoubleVar RasterBrushHardness("RasterBrushHardness", 100); TEnv::DoubleVar RasterBrushModifierSize("RasterBrushModifierSize", 0); +TEnv::StringVar RasterBrushPreset("RasterBrushPreset", ""); //------------------------------------------------------------------- #define CUSTOM_WSTR L"" @@ -1125,17 +1126,16 @@ void ToonzRasterBrushTool::onActivate() { if (!m_notifier) m_notifier = new ToonzRasterBrushToolNotifier(this); if (m_firstTime) { - m_rasThickness.setValue( - TDoublePairProperty::Value(RasterBrushMinSize, RasterBrushMaxSize)); - - m_drawOrder.setIndex(BrushDrawOrder); - m_pencil.setValue(RasterBrushPencilMode ? 1 : 0); - m_hardness.setValue(RasterBrushHardness); - - m_pressure.setValue(BrushPressureSensitivity ? 1 : 0); m_firstTime = false; - m_smooth.setValue(BrushSmooth); - m_modifierSize.setValue(RasterBrushModifierSize); + + std::wstring wpreset = + QString::fromStdString(RasterBrushPreset.getValue()).toStdWString(); + if (wpreset != CUSTOM_WSTR) { + initPresets(); + m_preset.setValue(wpreset); + loadPreset(); + } else + loadLastBrush(); } m_brushPad = ToolUtils::getBrushPad(m_rasThickness.getValue().second, m_hardness.getValue() * 0.01); @@ -1201,7 +1201,7 @@ void ToonzRasterBrushTool::leftButtonDown(const TPointD &pos, if (!app) return; int col = app->getCurrentColumn()->getColumnIndex(); - m_enabled = col >= 0; + m_enabled = col >= 0 || app->getCurrentFrame()->isEditingLevel(); // todo: gestire autoenable if (!m_enabled) return; @@ -1936,11 +1936,22 @@ void ToonzRasterBrushTool::setWorkAndBackupImages() { //------------------------------------------------------------------ bool ToonzRasterBrushTool::onPropertyChanged(std::string propertyName) { - // Set the following to true whenever a different piece of interface must - // be refreshed - done once at the end. - bool notifyTool = false; + if (m_propertyUpdating) return true; + + if (propertyName == m_preset.getName()) { + if (m_preset.getValue() != CUSTOM_WSTR) + loadPreset(); + else // Chose , go back to last saved brush settings + loadLastBrush(); + + RasterBrushPreset = m_preset.getValueAsString(); + m_propertyUpdating = true; + getApplication()->getCurrentTool()->notifyToolChanged(); + m_propertyUpdating = false; + return true; + } - /*--- 変更されたPropertyに合わせて処理を分ける ---*/ + /*--- Divide the process according to the changed Property ---*/ /*--- determine which type of brush to be modified ---*/ if (propertyName == m_rasThickness.getName()) { @@ -1951,9 +1962,6 @@ bool ToonzRasterBrushTool::onPropertyChanged(std::string propertyName) { m_maxThick = m_rasThickness.getValue().second; } else if (propertyName == m_smooth.getName()) { BrushSmooth = m_smooth.getValue(); - } else if (propertyName == m_preset.getName()) { - loadPreset(); - notifyTool = true; } else if (propertyName == m_drawOrder.getName()) { BrushDrawOrder = m_drawOrder.getIndex(); } else if (propertyName == m_pencil.getName()) { @@ -1974,14 +1982,14 @@ bool ToonzRasterBrushTool::onPropertyChanged(std::string propertyName) { invalidate(rect); } - if (propertyName != m_preset.getName() && - m_preset.getValue() != CUSTOM_WSTR) { + if (m_preset.getValue() != CUSTOM_WSTR) { m_preset.setValue(CUSTOM_WSTR); - notifyTool = true; + RasterBrushPreset = m_preset.getValueAsString(); + m_propertyUpdating = true; + getApplication()->getCurrentTool()->notifyToolChanged(); + m_propertyUpdating = false; } - if (notifyTool) getApplication()->getCurrentTool()->notifyToolChanged(); - return true; } @@ -2072,6 +2080,21 @@ void ToonzRasterBrushTool::removePreset() { } //------------------------------------------------------------------ + +void ToonzRasterBrushTool::loadLastBrush() { + m_rasThickness.setValue( + TDoublePairProperty::Value(RasterBrushMinSize, RasterBrushMaxSize)); + + m_drawOrder.setIndex(BrushDrawOrder); + m_pencil.setValue(RasterBrushPencilMode ? 1 : 0); + m_hardness.setValue(RasterBrushHardness); + + m_pressure.setValue(BrushPressureSensitivity ? 1 : 0); + m_smooth.setValue(BrushSmooth); + m_modifierSize.setValue(RasterBrushModifierSize); +} + +//------------------------------------------------------------------ /*! Brush、PaintBrush、EraserToolがPencilModeのときにTrueを返す */ bool ToonzRasterBrushTool::isPencilModeActive() { diff --git a/toonz/sources/tnztools/toonzrasterbrushtool.h b/toonz/sources/tnztools/toonzrasterbrushtool.h index c524ad6..0e8eaef 100644 --- a/toonz/sources/tnztools/toonzrasterbrushtool.h +++ b/toonz/sources/tnztools/toonzrasterbrushtool.h @@ -156,6 +156,8 @@ public: void addPreset(QString name); void removePreset(); + void loadLastBrush(); + void finishRasterBrush(const TPointD &pos, double pressureVal); // return true if the pencil mode is active in the Brush / PaintBrush / Eraser // Tools. @@ -221,6 +223,8 @@ protected: QElapsedTimer m_brushTimer; int m_minCursorThick, m_maxCursorThick; + bool m_propertyUpdating = false; + protected: static void drawLine(const TPointD &point, const TPointD ¢re, bool horizontal, bool isDecimal); diff --git a/toonz/sources/tnztools/toonzvectorbrushtool.cpp b/toonz/sources/tnztools/toonzvectorbrushtool.cpp index 0a54da8..0f7c9b8 100644 --- a/toonz/sources/tnztools/toonzvectorbrushtool.cpp +++ b/toonz/sources/tnztools/toonzvectorbrushtool.cpp @@ -57,6 +57,7 @@ TEnv::IntVar V_BrushPressureSensitivity("InknpaintBrushPressureSensitivity", 1); TEnv::IntVar V_VectorBrushFrameRange("VectorBrushFrameRange", 0); TEnv::IntVar V_VectorBrushSnap("VectorBrushSnap", 0); TEnv::IntVar V_VectorBrushSnapSensitivity("VectorBrushSnapSensitivity", 0); +TEnv::StringVar V_VectorBrushPreset("VectorBrushPreset", ""); //------------------------------------------------------------------- @@ -587,33 +588,16 @@ void ToonzVectorBrushTool::updateTranslation() { void ToonzVectorBrushTool::onActivate() { if (m_firstTime) { - m_thickness.setValue( - TDoublePairProperty::Value(V_VectorBrushMinSize, V_VectorBrushMaxSize)); - - m_capStyle.setIndex(V_VectorCapStyle); - m_joinStyle.setIndex(V_VectorJoinStyle); - m_miterJoinLimit.setValue(V_VectorMiterValue); - m_breakAngles.setValue(V_BrushBreakSharpAngles ? 1 : 0); - m_accuracy.setValue(V_BrushAccuracy); - - m_pressure.setValue(V_BrushPressureSensitivity ? 1 : 0); m_firstTime = false; - m_smooth.setValue(V_BrushSmooth); - m_frameRange.setIndex(V_VectorBrushFrameRange); - m_snap.setValue(V_VectorBrushSnap); - m_snapSensitivity.setIndex(V_VectorBrushSnapSensitivity); - switch (V_VectorBrushSnapSensitivity) { - case 0: - m_minDistance2 = SNAPPING_LOW; - break; - case 1: - m_minDistance2 = SNAPPING_MEDIUM; - break; - case 2: - m_minDistance2 = SNAPPING_HIGH; - break; - } + std::wstring wpreset = + QString::fromStdString(V_VectorBrushPreset.getValue()).toStdWString(); + if (wpreset != CUSTOM_WSTR) { + initPresets(); + m_preset.setValue(wpreset); + loadPreset(); + } else + loadLastBrush(); } resetFrameRange(); // TODO:app->editImageOrSpline(); @@ -628,7 +612,7 @@ void ToonzVectorBrushTool::onDeactivate() { // End current stroke. if (m_active && m_enabled) { - leftButtonUp(m_lastDragPos, m_lastDragEvent); + leftButtonUp(m_lastDragPos, m_lastDragEvent); } if (m_tileSaver && !m_isPath) { @@ -661,7 +645,7 @@ void ToonzVectorBrushTool::leftButtonDown(const TPointD &pos, int col = app->getCurrentColumn()->getColumnIndex(); m_isPath = app->getCurrentObject()->isSpline(); - m_enabled = col >= 0 || m_isPath; + m_enabled = col >= 0 || m_isPath || app->getCurrentFrame()->isEditingLevel(); // todo: gestire autoenable if (!m_enabled) return; if (!m_isPath) { @@ -725,7 +709,7 @@ void ToonzVectorBrushTool::leftButtonDrag(const TPointD &pos, return; } - m_lastDragPos = pos; + m_lastDragPos = pos; m_lastDragEvent = e; double thickness = (m_pressure.getValue() || m_isPath) @@ -1330,8 +1314,8 @@ void ToonzVectorBrushTool::checkGuideSnapping(bool beforeMousePress, snapPoint.x = hGuide; } beforeMousePress ? m_foundFirstSnap = true : m_foundLastSnap = true; - beforeMousePress ? m_firstSnapPoint = snapPoint - : m_lastSnapPoint = snapPoint; + beforeMousePress ? m_firstSnapPoint = snapPoint : m_lastSnapPoint = + snapPoint; } } } @@ -1454,11 +1438,26 @@ void ToonzVectorBrushTool::resetFrameRange() { //------------------------------------------------------------------ bool ToonzVectorBrushTool::onPropertyChanged(std::string propertyName) { + if (m_propertyUpdating) return true; + // Set the following to true whenever a different piece of interface must // be refreshed - done once at the end. bool notifyTool = false; - /*--- �ύX���ꂽProperty�ɍ��킹�ď����𕪂��� ---*/ + if (propertyName == m_preset.getName()) { + if (m_preset.getValue() != CUSTOM_WSTR) + loadPreset(); + else // Chose , go back to last saved brush settings + loadLastBrush(); + + V_VectorBrushPreset = m_preset.getValueAsString(); + m_propertyUpdating = true; + getApplication()->getCurrentTool()->notifyToolChanged(); + m_propertyUpdating = false; + return true; + } + + /*--- Divide the process according to the changed Property ---*/ /*--- determine which type of brush to be modified ---*/ if (propertyName == m_thickness.getName()) { @@ -1470,9 +1469,6 @@ bool ToonzVectorBrushTool::onPropertyChanged(std::string propertyName) { V_BrushAccuracy = m_accuracy.getValue(); } else if (propertyName == m_smooth.getName()) { V_BrushSmooth = m_smooth.getValue(); - } else if (propertyName == m_preset.getName()) { - loadPreset(); - notifyTool = true; } else if (propertyName == m_breakAngles.getName()) { V_BrushBreakSharpAngles = m_breakAngles.getValue(); } else if (propertyName == m_pressure.getName()) { @@ -1507,13 +1503,17 @@ bool ToonzVectorBrushTool::onPropertyChanged(std::string propertyName) { if (propertyName == m_joinStyle.getName()) notifyTool = true; - if (propertyName != m_preset.getName() && - m_preset.getValue() != CUSTOM_WSTR) { + if (m_preset.getValue() != CUSTOM_WSTR) { m_preset.setValue(CUSTOM_WSTR); - notifyTool = true; + V_VectorBrushPreset = m_preset.getValueAsString(); + notifyTool = true; } - if (notifyTool) getApplication()->getCurrentTool()->notifyToolChanged(); + if (notifyTool) { + m_propertyUpdating = true; + getApplication()->getCurrentTool()->notifyToolChanged(); + m_propertyUpdating = false; + } return true; } @@ -1606,6 +1606,37 @@ void ToonzVectorBrushTool::removePreset() { } //------------------------------------------------------------------ + +void ToonzVectorBrushTool::loadLastBrush() { + m_thickness.setValue( + TDoublePairProperty::Value(V_VectorBrushMinSize, V_VectorBrushMaxSize)); + + m_capStyle.setIndex(V_VectorCapStyle); + m_joinStyle.setIndex(V_VectorJoinStyle); + m_miterJoinLimit.setValue(V_VectorMiterValue); + m_breakAngles.setValue(V_BrushBreakSharpAngles ? 1 : 0); + m_accuracy.setValue(V_BrushAccuracy); + + m_pressure.setValue(V_BrushPressureSensitivity ? 1 : 0); + m_smooth.setValue(V_BrushSmooth); + + m_frameRange.setIndex(V_VectorBrushFrameRange); + m_snap.setValue(V_VectorBrushSnap); + m_snapSensitivity.setIndex(V_VectorBrushSnapSensitivity); + switch (V_VectorBrushSnapSensitivity) { + case 0: + m_minDistance2 = SNAPPING_LOW; + break; + case 1: + m_minDistance2 = SNAPPING_MEDIUM; + break; + case 2: + m_minDistance2 = SNAPPING_HIGH; + break; + } +} + +//------------------------------------------------------------------ /*! Brush�APaintBrush�AEraserTool��PencilMode�̂Ƃ���True��Ԃ� */ bool ToonzVectorBrushTool::isPencilModeActive() { return false; } diff --git a/toonz/sources/tnztools/toonzvectorbrushtool.h b/toonz/sources/tnztools/toonzvectorbrushtool.h index 21fad23..ea53182 100644 --- a/toonz/sources/tnztools/toonzvectorbrushtool.h +++ b/toonz/sources/tnztools/toonzvectorbrushtool.h @@ -118,6 +118,8 @@ public: void addPreset(QString name); void removePreset(); + void loadLastBrush(); + // return true if the pencil mode is active in the Brush / PaintBrush / Eraser // Tools. bool isPencilModeActive() override; @@ -193,8 +195,10 @@ protected: �ړ����Ă����Ƃ��̕s����C������B---*/ TFrameId m_workingFrameId; - TPointD m_lastDragPos; //!< Position where mouse was last dragged. - TMouseEvent m_lastDragEvent; //!< Previous mouse-drag event. + TPointD m_lastDragPos; //!< Position where mouse was last dragged. + TMouseEvent m_lastDragEvent; //!< Previous mouse-drag event. + + bool m_propertyUpdating = false; }; #endif // TOONZVECTORBRUSHTOOL_H diff --git a/toonz/sources/tnztools/typetool.cpp b/toonz/sources/tnztools/typetool.cpp index 3b7c9d2..0eb3455 100644 --- a/toonz/sources/tnztools/typetool.cpp +++ b/toonz/sources/tnztools/typetool.cpp @@ -35,6 +35,9 @@ // For Qt translation support #include +#include +#include +#include //#include "tw/message.h" @@ -1511,6 +1514,20 @@ void TypeTool::deleteKey() { bool TypeTool::keyDown(QKeyEvent *event) { QString text = event->text(); if ((event->modifiers() & Qt::ShiftModifier)) text.toUpper(); + + std::string keyStr = + QKeySequence(event->key() + event->modifiers()).toString().toStdString(); + QAction *action = CommandManager::instance()->getActionFromShortcut(keyStr); + if (action) { + std::string actionId = CommandManager::instance()->getIdFromAction(action); + if (actionId == "MI_Paste") { + QClipboard *clipboard = QApplication::clipboard(); + const QMimeData *mimeData = clipboard->mimeData(); + if (!mimeData->hasText()) return true; + text = mimeData->text().replace('\n', '\r'); + } + } + std::wstring unicodeChar = text.toStdWString(); // per sicurezza @@ -1618,9 +1635,10 @@ bool TypeTool::keyDown(QKeyEvent *event) { default: if (unicodeChar.empty()) return false; replaceText(unicodeChar, m_cursorIndex, m_cursorIndex); - m_cursorIndex++; - m_preeditRange = std::make_pair(m_cursorIndex, m_cursorIndex); - updateCharPositions(m_cursorIndex - 1); + int startIndex = m_cursorIndex + 1; + m_cursorIndex += unicodeChar.size(); + m_preeditRange = std::make_pair(startIndex, m_cursorIndex); + updateCharPositions(startIndex - 1); } invalidate(); diff --git a/toonz/sources/toonz/CMakeLists.txt b/toonz/sources/toonz/CMakeLists.txt index 067887b..4ea4287 100644 --- a/toonz/sources/toonz/CMakeLists.txt +++ b/toonz/sources/toonz/CMakeLists.txt @@ -1,4 +1,4 @@ -set(VERSION 1.3) +set(VERSION 1.3) set(MOC_HEADERS addfilmstripframespopup.h @@ -479,29 +479,29 @@ if(BUILD_ENV_APPLE) message(" ==> App Bundle: " ${loc}) message(" ==> Mach-o: " ${bin}) foreach(lib ${EXTRA_LIBS}) - message(" copy:" ${lib} "==>" ${CMAKE_CURRENT_BINARY_DIR}/OpenToonz.app/Contents/MacOS/) - add_custom_command(TARGET OpenToonz POST_BUILD COMMAND cp ${lib} ${CMAKE_CURRENT_BINARY_DIR}/OpenToonz.app/Contents/MacOS/) + message(" copy:" ${lib} "==>" ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) + add_custom_command(TARGET OpenToonz POST_BUILD COMMAND cp ${lib} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) endforeach() + add_custom_command(TARGET OpenToonz POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $ ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} DEPENDS tcomposer) + add_custom_command(TARGET OpenToonz POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $ ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} DEPENDS tcleanup) + add_custom_command(TARGET OpenToonz POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $ ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} DEPENDS tconverter) + add_custom_command(TARGET OpenToonz POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $ ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} DEPENDS tfarmcontroller) + add_custom_command(TARGET OpenToonz POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $ ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} DEPENDS tfarmserver) + + add_custom_command(TARGET OpenToonz POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/../Resources) + add_custom_command(TARGET OpenToonz POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/../install/SystemVar.ini ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/../Resources) + + add_custom_command(TARGET OpenToonz POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/../../../qss) + add_custom_command(TARGET OpenToonz POST_BUILD COMMAND - ${CMAKE_INSTALL_NAME_TOOL} -add_rpath @executable_path/. ${bin} + ${CMAKE_INSTALL_NAME_TOOL} -add_rpath @executable_path/. ${bin} || true ) add_custom_command(TARGET OpenToonz POST_BUILD COMMAND - ${CMAKE_INSTALL_NAME_TOOL} -add_rpath ${CMAKE_INSTALL_RPATH} ${bin} + ${CMAKE_INSTALL_NAME_TOOL} -add_rpath ${CMAKE_INSTALL_RPATH} ${bin} || true ) - add_custom_command(TARGET OpenToonz POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/OpenToonz.app/Contents/Resources) - - add_custom_command(TARGET OpenToonz POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/OpenToonz.app/Contents/Resources) - add_custom_command(TARGET OpenToonz POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/qss) - add_custom_command(TARGET OpenToonz POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/../install/SystemVar.ini ${CMAKE_CURRENT_BINARY_DIR}/OpenToonz.app/Contents/Resources) - - add_custom_command(TARGET OpenToonz POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $ ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} DEPENDS tcomposer) - add_custom_command(TARGET OpenToonz POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $ ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} DEPENDS tcleanup) - add_custom_command(TARGET OpenToonz POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $ ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} DEPENDS tconverter) - add_custom_command(TARGET OpenToonz POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $ ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} DEPENDS tfarmcontroller) - add_custom_command(TARGET OpenToonz POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $ ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} DEPENDS tfarmserver) elseif(BUILD_ENV_UNIXLIKE AND BUILD_TARGET_WIN) # Setup files on Windows platform while cross compilation. diff --git a/toonz/sources/toonz/Resources/camera.svg b/toonz/sources/toonz/Resources/camera.svg new file mode 100644 index 0000000..20e0979 --- /dev/null +++ b/toonz/sources/toonz/Resources/camera.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/toonz/sources/toonz/Resources/pane_cam_off.svg b/toonz/sources/toonz/Resources/pane_cam_off.svg index a229819..99af4e2 100644 --- a/toonz/sources/toonz/Resources/pane_cam_off.svg +++ b/toonz/sources/toonz/Resources/pane_cam_off.svg @@ -1,24 +1,7 @@ -image/svg+xml \ No newline at end of file + + + + + + diff --git a/toonz/sources/toonz/Resources/pane_cam_on.svg b/toonz/sources/toonz/Resources/pane_cam_on.svg index e453b5b..49e943a 100644 --- a/toonz/sources/toonz/Resources/pane_cam_on.svg +++ b/toonz/sources/toonz/Resources/pane_cam_on.svg @@ -1,30 +1,7 @@ -image/svg+xml \ No newline at end of file + + + + + + diff --git a/toonz/sources/toonz/Resources/pane_cam_over.svg b/toonz/sources/toonz/Resources/pane_cam_over.svg index 94d6c26..102a227 100644 --- a/toonz/sources/toonz/Resources/pane_cam_over.svg +++ b/toonz/sources/toonz/Resources/pane_cam_over.svg @@ -1,30 +1,7 @@ -image/svg+xml \ No newline at end of file + + + + + + diff --git a/toonz/sources/toonz/cellkeyframeselection.cpp b/toonz/sources/toonz/cellkeyframeselection.cpp index a10a75a..44a9620 100644 --- a/toonz/sources/toonz/cellkeyframeselection.cpp +++ b/toonz/sources/toonz/cellkeyframeselection.cpp @@ -122,7 +122,8 @@ void TCellKeyframeSelection::selectCellsKeyframes(int r0, int c0, int r1, for (c = c0; c <= c1; c++) for (r = r0; r <= r1; r++) { TStageObjectId id = - c < 0 ? TStageObjectId::CameraId(0) : TStageObjectId::ColumnId(c); + c < 0 ? TStageObjectId::CameraId(xsh->getCameraColumnIndex()) + : TStageObjectId::ColumnId(c); TStageObject *stObj = xsh->getStageObject(id); if (stObj->isKeyframe(r)) m_keyframeSelection->select(r, c); } @@ -134,7 +135,8 @@ void TCellKeyframeSelection::selectCellKeyframe(int row, int col) { m_cellSelection->selectCell(row, col); TXsheet *xsh = m_xsheetHandle->getXsheet(); TStageObjectId id = - col < 0 ? TStageObjectId::CameraId(0) : TStageObjectId::ColumnId(col); + col < 0 ? TStageObjectId::CameraId(xsh->getCameraColumnIndex()) + : TStageObjectId::ColumnId(col); TStageObject *stObj = xsh->getStageObject(id); m_keyframeSelection->clear(); if (stObj->isKeyframe(row)) m_keyframeSelection->select(row, col); diff --git a/toonz/sources/toonz/cellselection.cpp b/toonz/sources/toonz/cellselection.cpp index f4179a9..c50f61c 100644 --- a/toonz/sources/toonz/cellselection.cpp +++ b/toonz/sources/toonz/cellselection.cpp @@ -244,7 +244,8 @@ public: DeleteCellsUndo(TCellSelection *selection, QMimeData *data) : m_data(data) { int r0, c0, r1, c1; selection->getSelectedCells(r0, c0, r1, c1); - m_selection = new TCellSelection(); + if (c0 < 0) c0 = 0; // Ignore camera column + m_selection = new TCellSelection(); m_selection->selectCells(r0, c0, r1, c1); TXsheet *xsh = TApp::instance()->getCurrentXsheet()->getXsheet(); @@ -331,7 +332,8 @@ public: CutCellsUndo(TCellSelection *selection) : m_data() { int r0, c0, r1, c1; selection->getSelectedCells(r0, c0, r1, c1); - m_selection = new TCellSelection(); + if (c0 < 0) c0 = 0; // Ignore camera column + m_selection = new TCellSelection(); m_selection->selectCells(r0, c0, r1, c1); TXsheet *xsh = TApp::instance()->getCurrentXsheet()->getXsheet(); @@ -1675,7 +1677,7 @@ void TCellSelection::pasteCells() { TKeyframeSelection selection; if (isEmpty() && TApp::instance()->getCurrentObject()->getObjectId() == - TStageObjectId::CameraId(0)) + TStageObjectId::CameraId(xsh->getCameraColumnIndex())) // Se la selezione e' vuota e l'objectId e' quello della camera sono nella // colonna di camera quindi devo selezionare la row corrente e -1. { @@ -1814,7 +1816,8 @@ void TCellSelection::deleteCells() { if (isEmpty()) return; int r0, c0, r1, c1; getSelectedCells(r0, c0, r1, c1); - TXsheet *xsh = TApp::instance()->getCurrentXsheet()->getXsheet(); + if (c0 < 0) c0 = 0; // Ignore camera column + TXsheet *xsh = TApp::instance()->getCurrentXsheet()->getXsheet(); // if all the selected cells are already empty, then do nothing if (xsh->isRectEmpty(CellPosition(r0, c0), CellPosition(r1, c1))) return; TCellData *data = new TCellData(); @@ -1847,6 +1850,7 @@ void TCellSelection::cutCells(bool withoutCopy) { int r0, c0, r1, c1; getSelectedCells(r0, c0, r1, c1); + if (c0 < 0) c0 = 0; // Ignore camera column undo->setCurrentData(r0, c0, r1, c1); if (!withoutCopy) copyCellsWithoutUndo(r0, c0, r1, c1); @@ -1876,6 +1880,7 @@ void TCellSelection::insertCells() { //----------------------------------------------------------------------------- void TCellSelection::pasteKeyframesInto() { + TXsheet *xsh = TApp::instance()->getCurrentXsheet()->getXsheet(); const TKeyframeData *keyframeData = dynamic_cast( QApplication::clipboard()->mimeData()); if (keyframeData) { @@ -1885,7 +1890,7 @@ void TCellSelection::pasteKeyframesInto() { TKeyframeSelection selection; if (isEmpty() && TApp::instance()->getCurrentObject()->getObjectId() == - TStageObjectId::CameraId(0)) + TStageObjectId::CameraId(xsh->getCameraColumnIndex())) // Se la selezione e' vuota e l'objectId e' quello della camera sono nella // colonna di camera quindi devo selezionare la row corrente e -1. { @@ -2408,6 +2413,7 @@ void TCellSelection::overWritePasteCells() { void TCellSelection::overwritePasteNumbers() { int r0, c0, r1, c1; getSelectedCells(r0, c0, r1, c1); + if (c0 < 0) c0 = 0; // Ignore camera column QClipboard *clipboard = QApplication::clipboard(); const QMimeData *mimeData = clipboard->mimeData(); diff --git a/toonz/sources/toonz/cellselectioncommand.cpp b/toonz/sources/toonz/cellselectioncommand.cpp index 2c041e4..f7b76d5 100644 --- a/toonz/sources/toonz/cellselectioncommand.cpp +++ b/toonz/sources/toonz/cellselectioncommand.cpp @@ -1237,7 +1237,9 @@ void TCellSelection::setKeyframes() { const TXshCell &cell = xsh->getCell(row, col); if (cell.getSoundLevel() || cell.getSoundTextLevel()) return; - const TStageObjectId &id = TStageObjectId::ColumnId(col); + const TStageObjectId &id = + col >= 0 ? TStageObjectId::ColumnId(col) + : TStageObjectId::CameraId(xsh->getCameraColumnIndex()); TStageObject *obj = xsh->getStageObject(id); if (!obj) return; diff --git a/toonz/sources/toonz/columncommand.cpp b/toonz/sources/toonz/columncommand.cpp index ad92e0c..cf77797 100644 --- a/toonz/sources/toonz/columncommand.cpp +++ b/toonz/sources/toonz/columncommand.cpp @@ -36,6 +36,7 @@ #include "toonz/tcamera.h" #include "toonz/tstageobjectspline.h" #include "toonz/fxcommand.h" +#include "toonz/preferences.h" // TnzBase includes #include "tfx.h" @@ -743,7 +744,14 @@ void ColumnCmd::insertEmptyColumns(const std::set &indices, bool insertAfter) { // Filter out all less than 0 indices (in particular, the 'camera' column // in the Toonz derivative product "Tab") - std::vector positiveIndices(indices.lower_bound(0), indices.end()); + std::vector positiveIndices(indices.begin(), indices.end()); + if (positiveIndices[0] < 0) { + if (!insertAfter) return; + // If inserting after on camera column, change it to insert before on column + // 1 + positiveIndices[0] = 0; + insertAfter = false; + } if (positiveIndices.empty()) return; std::unique_ptr undo( @@ -809,6 +817,7 @@ void ColumnCmd::pasteColumns(std::set &indices, void ColumnCmd::deleteColumns(std::set &indices, bool onlyColumns, bool withoutUndo) { + indices.erase(-1); // Ignore camera column if (indices.empty()) return; if (!withoutUndo && !onlyColumns) @@ -1241,18 +1250,21 @@ public: TTool::Viewer *viewer = tool ? tool->getViewer() : nullptr; bool viewer_changed = false; - for (int i = 0; i < xsh->getColumnCount(); i++) { - /*- 空のカラムの場合は飛ばす -*/ - if (xsh->isColumnEmpty(i)) continue; - /*- カラムが取得できなかったら飛ばす -*/ + int startCol = + Preferences::instance()->isXsheetCameraColumnVisible() ? -1 : 0; + + for (int i = startCol; i < xsh->getColumnCount(); i++) { + /*- Skip if empty column -*/ + if (i >= 0 && xsh->isColumnEmpty(i)) continue; + /*- Skip if column cannot be obtained -*/ TXshColumn *column = xsh->getColumn(i); if (!column) continue; - /*- ターゲットが選択カラムのモードで、選択されていなかった場合は飛ばす -*/ + /*- Skip if target is in selected column mode and not selected -*/ bool isSelected = selection && selection->isColumnSelected(i); if (m_target == TARGET_SELECTED && !isSelected) continue; /*- - * ターゲットが「カレントカラムより右側」のモードで、iがカレントカラムより左の場合は飛ばす + * Skip if target is "right side of current column" mode and i is left of current column * -*/ if (m_target == TARGET_UPPER && i < cc) continue; diff --git a/toonz/sources/toonz/columnselection.cpp b/toonz/sources/toonz/columnselection.cpp index 78b90ca..1a5f7e9 100644 --- a/toonz/sources/toonz/columnselection.cpp +++ b/toonz/sources/toonz/columnselection.cpp @@ -18,6 +18,7 @@ #include "toonz/txshcell.h" #include "toonz/levelproperties.h" #include "orientation.h" +#include "toonz/preferences.h" // TnzCore includes #include "tvectorimage.h" @@ -49,6 +50,10 @@ void TColumnSelection::enableCommands() { enableCommand(this, MI_CloneChild, &TColumnSelection::cloneChild); enableCommand(this, MI_FoldColumns, &TColumnSelection::hideColumns); + if (Preferences::instance()->isShowKeyframesOnXsheetCellAreaEnabled()) + enableCommand(this, MI_ToggleXsheetCameraColumn, + &TColumnSelection::toggleCameraColumn); + enableCommand(this, MI_Reframe1, &TColumnSelection::reframe1Cells); enableCommand(this, MI_Reframe2, &TColumnSelection::reframe2Cells); enableCommand(this, MI_Reframe3, &TColumnSelection::reframe3Cells); @@ -63,7 +68,10 @@ bool TColumnSelection::isEmpty() const { return m_indices.empty(); } //----------------------------------------------------------------------------- -void TColumnSelection::copyColumns() { ColumnCmd::copyColumns(m_indices); } +void TColumnSelection::copyColumns() { + m_indices.erase(-1); // Ignore camera column + ColumnCmd::copyColumns(m_indices); +} //----------------------------------------------------------------------------- // pasteColumns will insert columns before the first column in the selection @@ -71,6 +79,8 @@ void TColumnSelection::pasteColumns() { std::set indices; if (isEmpty()) // in case that no columns are selected indices.insert(0); + else if (*m_indices.begin() < 0) // Do nothing + return; else indices.insert(*m_indices.begin()); ColumnCmd::pasteColumns(indices); @@ -114,6 +124,7 @@ void TColumnSelection::insertColumnsAbove() { //----------------------------------------------------------------------------- void TColumnSelection::collapse() { + m_indices.erase(-1); // Ignore camera column if (m_indices.empty()) return; SubsceneCmd::collapse(m_indices); } @@ -130,6 +141,8 @@ void TColumnSelection::explodeChild() { static bool canMergeColumns(int column, int mColumn, bool forMatchlines) { TXsheet *xsh = TApp::instance()->getCurrentXsheet()->getXsheet(); + if (column < 0 || mColumn < 0) return false; + if (!xsh || !xsh->getColumn(column) || xsh->getColumn(column)->isLocked()) return false; @@ -198,6 +211,8 @@ void TColumnSelection::selectColumn(int col, bool on) { std::set::iterator it = m_indices.begin(); int firstCol = *it; + if (firstCol < 0) return; + for (++it; it != m_indices.end(); ++it) if (!canMergeColumns(firstCol, *it, false)) break; @@ -255,3 +270,11 @@ void TColumnSelection::hideColumns() { // TApp::instance()->->notify(TColumnHeadChange()); app->getCurrentScene()->setDirtyFlag(true); } + +//----------------------------------------------------------------------------- + +void TColumnSelection::toggleCameraColumn() { + Preferences *pref = Preferences::instance(); + pref->enableXsheetCameraColumn(!pref->isXsheetCameraColumnVisible()); + TApp::instance()->getCurrentXsheet()->notifyXsheetChanged(); +} diff --git a/toonz/sources/toonz/columnselection.h b/toonz/sources/toonz/columnselection.h index fad2253..3d7a955 100644 --- a/toonz/sources/toonz/columnselection.h +++ b/toonz/sources/toonz/columnselection.h @@ -45,6 +45,7 @@ public: void cloneChild(); void hideColumns(); + void toggleCameraColumn(); void reframeCells(int count); void reframe1Cells() { reframeCells(1); } diff --git a/toonz/sources/toonz/filmstrip.cpp b/toonz/sources/toonz/filmstrip.cpp index 69a9554..7fe018d 100644 --- a/toonz/sources/toonz/filmstrip.cpp +++ b/toonz/sources/toonz/filmstrip.cpp @@ -672,6 +672,14 @@ void FilmstripFrames::drawFrameIcon(QPainter &p, const QRect &r, int index, QPixmap inbetweenPixmap( svgToPixmap(":Resources/filmstrip_inbetween.svg")); + + if (r.height() - 6 < inbetweenPixmap.height()) { + QSize rectSize(inbetweenPixmap.size()); + rectSize.setHeight(r.height() - 6); + inbetweenPixmap = inbetweenPixmap.scaled( + rectSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); + } + p.drawPixmap( x0 + 2, y1 - inbetweenPixmap.height() / inbetweenPixmap.devicePixelRatio() - @@ -914,6 +922,15 @@ void FilmstripFrames::mouseMoveEvent(QMouseEvent *e) { pos = e->globalPos(); scroll((m_pos.y() - pos.y()) * 10); m_pos = pos; + } else { + TFrameId fid = index2fid(index); + TXshSimpleLevel *sl = getLevel(); + + if (sl && m_selection && sl->getType() == PLI_XSHLEVEL && + m_selection->isInInbetweenRange(fid) && + e->pos().x() > width() - 20 - fs_rightMargin) { + setToolTip(tr("Auto Inbetween")); + } } } diff --git a/toonz/sources/toonz/iocommand.cpp b/toonz/sources/toonz/iocommand.cpp index a788967..9f78aa7 100644 --- a/toonz/sources/toonz/iocommand.cpp +++ b/toonz/sources/toonz/iocommand.cpp @@ -324,7 +324,7 @@ bool beforeCellsInsert(TXsheet *xsh, int row, int &col, int rowCount, } int type = column ? column->getColumnType() : newLevelColumnType; // If some used cells in range or column type mismatch must insert a column. - if (i < rowCount || newLevelColumnType != type) { + if (col < 0 || i < rowCount || newLevelColumnType != type) { col += 1; TApp::instance()->getCurrentColumn()->setColumnIndex(col); shiftColumn = true; diff --git a/toonz/sources/toonz/keyframedata.cpp b/toonz/sources/toonz/keyframedata.cpp index 3425a9d..1773777 100644 --- a/toonz/sources/toonz/keyframedata.cpp +++ b/toonz/sources/toonz/keyframedata.cpp @@ -42,7 +42,8 @@ void TKeyframeData::setKeyframes(std::set positions, TXsheet *xsh, Position startPos) { if (positions.empty()) return; - TStageObjectId cameraId = xsh->getStageObjectTree()->getCurrentCameraId(); + TStageObjectId cameraId = + TStageObjectId::CameraId(xsh->getCameraColumnIndex()); std::set::iterator it = positions.begin(); int r0 = it->first; @@ -104,7 +105,8 @@ bool TKeyframeData::getKeyframes(std::set &positions, XsheetViewer *viewer = TApp::instance()->getCurrentXsheetViewer(); positions.clear(); - TStageObjectId cameraId = xsh->getStageObjectTree()->getCurrentCameraId(); + TStageObjectId cameraId = + TStageObjectId::CameraId(xsh->getCameraColumnIndex()); Iterator it; bool keyFrameChanged = false; for (it = m_keyData.begin(); it != m_keyData.end(); ++it) { @@ -116,9 +118,7 @@ bool TKeyframeData::getKeyframes(std::set &positions, if (column && column->getSoundColumn()) continue; TStageObject *pegbar = xsh->getStageObject( col >= 0 ? TStageObjectId::ColumnId(col) : cameraId); - if (pegbar->getId().isColumn() && xsh->getColumn(col) && - xsh->getColumn(col)->isLocked()) - continue; + if (xsh->getColumn(col) && xsh->getColumn(col)->isLocked()) continue; keyFrameChanged = true; assert(pegbar); diff --git a/toonz/sources/toonz/keyframemover.cpp b/toonz/sources/toonz/keyframemover.cpp index 39d1c39..efdb2f5 100644 --- a/toonz/sources/toonz/keyframemover.cpp +++ b/toonz/sources/toonz/keyframemover.cpp @@ -13,6 +13,7 @@ #include "toonz/txsheethandle.h" #include "toonz/tscenehandle.h" #include "toonz/txsheet.h" +#include "toonz/preferences.h" // TnzCore includes #include "tundo.h" @@ -48,7 +49,8 @@ void KeyframeMover::setKeyframes() { for (auto const &key : m_lastKeyframes) { int c = key.second; TStageObjectId objId = - c >= 0 ? TStageObjectId::ColumnId(c) : TStageObjectId::CameraId(0); + c >= 0 ? TStageObjectId::ColumnId(c) + : TStageObjectId::CameraId(xsh->getCameraColumnIndex()); TStageObject *stObj = xsh->getStageObject(objId); TStageObject::KeyframeMap keyframes; stObj->getKeyframes(keyframes); @@ -66,7 +68,8 @@ void KeyframeMover::getKeyframes() { for (auto const &pos : m_startSelectedKeyframes) { int c = pos.second; TStageObjectId objId = - c >= 0 ? TStageObjectId::ColumnId(c) : TStageObjectId::CameraId(0); + c >= 0 ? TStageObjectId::ColumnId(c) + : TStageObjectId::CameraId(xsh->getCameraColumnIndex()); TStageObject *stObj = xsh->getStageObject(objId); assert(stObj->isKeyframe(pos.first)); TStageObject::KeyframeMap keyframes; @@ -115,7 +118,8 @@ bool KeyframeMover::moveKeyframes( int c = posIt->second; int r = posIt->first; TStageObjectId objId = - c >= 0 ? TStageObjectId::ColumnId(c) : TStageObjectId::CameraId(0); + c >= 0 ? TStageObjectId::ColumnId(c) + : TStageObjectId::CameraId(xsh->getCameraColumnIndex()); TStageObject *stObj = xsh->getStageObject(objId); if (r + dr < 0) { dr = -r; @@ -140,7 +144,8 @@ bool KeyframeMover::moveKeyframes( int c = revIt->second; int r = revIt->first; TStageObjectId objId = - c >= 0 ? TStageObjectId::ColumnId(c) : TStageObjectId::CameraId(0); + c >= 0 ? TStageObjectId::ColumnId(c) + : TStageObjectId::CameraId(xsh->getCameraColumnIndex()); TStageObject *stObj = xsh->getStageObject(objId); if (m_qualifiers & eCopyKeyframes) { firstTime = true; @@ -154,7 +159,8 @@ bool KeyframeMover::moveKeyframes( int c = posIt->second; int r = posIt->first; TStageObjectId objId = - c >= 0 ? TStageObjectId::ColumnId(c) : TStageObjectId::CameraId(0); + c >= 0 ? TStageObjectId::ColumnId(c) + : TStageObjectId::CameraId(xsh->getCameraColumnIndex()); TStageObject *stObj = xsh->getStageObject(objId); if (m_qualifiers & eCopyKeyframes) { firstTime = true; @@ -178,7 +184,8 @@ bool KeyframeMover::moveKeyframes( int c = posIt->second; int r = posIt->first; TStageObjectId objId = - c >= 0 ? TStageObjectId::ColumnId(c) : TStageObjectId::CameraId(0); + c >= 0 ? TStageObjectId::ColumnId(c) + : TStageObjectId::CameraId(xsh->getCameraColumnIndex()); TStageObject *stObj = xsh->getStageObject(objId); if (r + dr < 0) dr = -r; if (dr == 0) notChange = true; @@ -192,7 +199,8 @@ bool KeyframeMover::moveKeyframes( int c = posIt->second; int r = posIt->first; TStageObjectId objId = - c >= 0 ? TStageObjectId::ColumnId(c) : TStageObjectId::CameraId(0); + c >= 0 ? TStageObjectId::ColumnId(c) + : TStageObjectId::CameraId(xsh->getCameraColumnIndex()); TStageObject *stObj = xsh->getStageObject(objId); if (m_qualifiers & eOverwriteKeyframes) { @@ -266,13 +274,13 @@ KeyframeMoverTool::KeyframeMoverTool(XsheetViewer *viewer, bool justMovement) , m_startSelection() , m_offset(0) , m_firstRow(0) - , m_firstCol(0) , m_selecting(false) , m_startPos() , m_curPos() , m_firstKeyframeMovement(false) , m_justMovement(justMovement) { - m_mover = new KeyframeMover(); + m_mover = new KeyframeMover(); + m_firstCol = Preferences::instance()->isXsheetCameraColumnVisible() ? -1 : 0; } //----------------------------------------------------------------------------- @@ -297,7 +305,13 @@ void KeyframeMoverTool::ctrlSelect(int row, int col) { void KeyframeMoverTool::shiftSelect(int row, int col) { TXsheet *xsh = getViewer()->getXsheet(); int r0 = 0, c0 = 0, r1 = -1, c1 = -1; - for (int c = 0; c < xsh->getColumnCount(); c++) { + int c = 0; + if (Preferences::instance()->isXsheetCameraColumnVisible()) { + c0--; + c1--; + c--; + } + for (; c < xsh->getColumnCount(); c++) { TStageObject *obj = xsh->getStageObject(getViewer()->getObjectId(c)); int ra, rb; obj->getKeyframeRange(ra, rb); diff --git a/toonz/sources/toonz/keyframeselection.cpp b/toonz/sources/toonz/keyframeselection.cpp index 385c7f5..1b35b1e 100644 --- a/toonz/sources/toonz/keyframeselection.cpp +++ b/toonz/sources/toonz/keyframeselection.cpp @@ -48,7 +48,8 @@ bool shiftKeyframesWithoutUndo(int r0, int r1, int c0, int c1, bool cut) { int x; for (x = c0; x <= c1; x++) { TStageObject *stObj = xsh->getStageObject( - x >= 0 ? TStageObjectId::ColumnId(x) : TStageObjectId::CameraId(0)); + x >= 0 ? TStageObjectId::ColumnId(x) + : TStageObjectId::CameraId(xsh->getCameraColumnIndex())); std::set keyToShift; int kr0, kr1; stObj->getKeyframeRange(kr0, kr1); @@ -90,8 +91,9 @@ bool deleteKeyframesWithoutUndo( std::set *positions) { TApp *app = TApp::instance(); assert(app); - TXsheet *xsh = app->getCurrentXsheet()->getXsheet(); - TStageObjectId cameraId = xsh->getStageObjectTree()->getCurrentCameraId(); + TXsheet *xsh = app->getCurrentXsheet()->getXsheet(); + TStageObjectId cameraId = + TStageObjectId::CameraId(xsh->getCameraColumnIndex()); if (positions->empty()) return false; @@ -102,9 +104,7 @@ bool deleteKeyframesWithoutUndo( int col = it->second; TStageObject *pegbar = xsh->getStageObject( col >= 0 ? TStageObjectId::ColumnId(col) : cameraId); - if (pegbar->getId().isColumn() && xsh->getColumn(col) && - xsh->getColumn(col)->isLocked()) - continue; + if (xsh->getColumn(col) && xsh->getColumn(col)->isLocked()) continue; areAllColumnLocked = false; assert(pegbar); pegbar->removeKeyframeWithoutUndo(row); @@ -208,7 +208,9 @@ public: } void redo() const override { - deleteKeyframesWithoutUndo(&m_selection->getSelection()); + TKeyframeSelection *tempSelection = + new TKeyframeSelection(m_selection->getSelection()); + deleteKeyframesWithoutUndo(&tempSelection->getSelection()); if (m_r1 - m_r0 + 1 != 0) shiftKeyframesWithoutUndo(m_r0, m_r1, m_c0, m_c1, true); TApp::instance()->getCurrentXsheet()->notifyXsheetChanged(); @@ -251,10 +253,10 @@ void TKeyframeSelection::unselectLockedColumn() { TXsheet *xsh = app->getCurrentXsheet()->getXsheet(); std::set positions; std::set::iterator it; + for (it = m_positions.begin(); it != m_positions.end(); ++it) { int col = it->second; - if (col >= 0 && xsh->getColumn(col) && xsh->getColumn(col)->isLocked()) - continue; + if (xsh->getColumn(col) && xsh->getColumn(col)->isLocked()) continue; positions.insert(*it); } m_positions.swap(positions); @@ -279,7 +281,8 @@ void TKeyframeSelection::setKeyframes() { TApp *app = TApp::instance(); TXsheetHandle *xsheetHandle = app->getCurrentXsheet(); TXsheet *xsh = xsheetHandle->getXsheet(); - TStageObjectId cameraId = xsh->getStageObjectTree()->getCurrentCameraId(); + TStageObjectId cameraId = + TStageObjectId::CameraId(xsh->getCameraColumnIndex()); if (isEmpty()) return; Position pos = *m_positions.begin(); int row = pos.first; @@ -314,7 +317,7 @@ void TKeyframeSelection::copyKeyframes() { //----------------------------------------------------------------------------- void TKeyframeSelection::pasteKeyframes() { - pasteKeyframesWithShift(0, 0, -1, -1); + pasteKeyframesWithShift(0, 0, 0, -1); } //----------------------------------------------------------------------------- diff --git a/toonz/sources/toonz/layerheaderpanel.cpp b/toonz/sources/toonz/layerheaderpanel.cpp index 8187f38..4be1da0 100644 --- a/toonz/sources/toonz/layerheaderpanel.cpp +++ b/toonz/sources/toonz/layerheaderpanel.cpp @@ -221,8 +221,10 @@ void LayerHeaderPanel::mouseReleaseEvent(QMouseEvent *event) { bool sound_changed = false; if (m_doOnRelease != 0 && totcols > 0) { - for (col = 0; col < totcols; col++) { - if (!xsh->isColumnEmpty(col)) { + int startCol = + Preferences::instance()->isXsheetCameraColumnVisible() ? -1 : 0; + for (col = startCol; col < totcols; col++) { + if (startCol < 0 || !xsh->isColumnEmpty(col)) { TXshColumn *column = xsh->getColumn(col); if (m_doOnRelease == ToggleAllPreviewVisible) { diff --git a/toonz/sources/toonz/levelcreatepopup.cpp b/toonz/sources/toonz/levelcreatepopup.cpp index 9f54ef0..901e0ae 100644 --- a/toonz/sources/toonz/levelcreatepopup.cpp +++ b/toonz/sources/toonz/levelcreatepopup.cpp @@ -523,12 +523,16 @@ bool LevelCreatePopup::apply() { bool areColumnsShifted = false; TXshCell cell = xsh->getCell(row, col); bool isInRange = true; - for (i = row; i < row + numFrames; i++) { - if (!cell.isEmpty()) { - isInRange = false; - break; + if (col < 0) + isInRange = false; + else { + for (i = row; i < row + numFrames; i++) { + if (!cell.isEmpty()) { + isInRange = false; + break; + } + cell = xsh->getCell(i, col); } - cell = xsh->getCell(i, col); } if (!validColumn) { isInRange = false; diff --git a/toonz/sources/toonz/main.cpp b/toonz/sources/toonz/main.cpp index 8ae73fc..8c2bbeb 100644 --- a/toonz/sources/toonz/main.cpp +++ b/toonz/sources/toonz/main.cpp @@ -166,7 +166,7 @@ static void initToonzEnv(QHash &argPathValues) { QCoreApplication::setOrganizationName("OpenToonz"); QCoreApplication::setOrganizationDomain(""); QCoreApplication::setApplicationName( - QString::fromStdString(TEnv::getApplicationFullName())); + QString::fromStdString(TEnv::getApplicationName())); /*-- TOONZROOTのPathの確認 --*/ // controllo se la xxxroot e' definita e corrisponde ad un folder esistente @@ -229,7 +229,7 @@ project->setUseScenePath(TProject::Extras, false); // Imposto la rootDir per ImageCache /*-- TOONZCACHEROOTの設定 --*/ - TFilePath cacheDir = ToonzFolder::getCacheRootFolder(); + TFilePath cacheDir = ToonzFolder::getCacheRootFolder(); if (cacheDir.isEmpty()) cacheDir = TEnv::getStuffDir() + "cache"; TImageCache::instance()->setRootDir(cacheDir); } @@ -315,11 +315,10 @@ int main(int argc, char *argv[]) { QApplication a(argc, argv); #ifdef MACOSX -// This workaround is to avoid missing left button problem on Qt5.6.0. -// To invalidate m_rightButtonClicked in Qt/qnsview.mm, sending NSLeftButtonDown -// event -// before NSLeftMouseDragged event propagated to QApplication. -// See more details in ../mousedragfilter/mousedragfilter.mm. + // This workaround is to avoid missing left button problem on Qt5.6.0. + // To invalidate m_rightButtonClicked in Qt/qnsview.mm, sending + // NSLeftButtonDown event before NSLeftMouseDragged event propagated to + // QApplication. See more details in ../mousedragfilter/mousedragfilter.mm. #include "mousedragfilter.h" diff --git a/toonz/sources/toonz/mainwindow.cpp b/toonz/sources/toonz/mainwindow.cpp index 1d2c100..a41612c 100644 --- a/toonz/sources/toonz/mainwindow.cpp +++ b/toonz/sources/toonz/mainwindow.cpp @@ -57,6 +57,7 @@ #include #include #include +#include TEnv::IntVar ViewCameraToggleAction("ViewCameraToggleAction", 1); TEnv::IntVar ViewTableToggleAction("ViewTableToggleAction", 1); @@ -459,6 +460,7 @@ centralWidget->setLayout(centralWidgetLayout);*/ &MainWindow::onNewToonzRasterLevelButtonPressed); setCommandHandler("MI_NewRasterLevel", this, &MainWindow::onNewRasterLevelButtonPressed); + setCommandHandler(MI_ClearCacheFolder, this, &MainWindow::clearCacheFolder); // remove ffmpegCache if still exists from crashed exit QString ffmpegCachePath = ToonzFolder::getCacheRootFolder().getQString() + "//ffmpeg"; @@ -1160,7 +1162,7 @@ void MainWindow::onMenuCheckboxChanged() { #endif 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) @@ -1596,6 +1598,7 @@ void MainWindow::defineActions() { createMenuAction(MI_LoadRecentImage, tr("&Load Recent Image Files"), files); createMenuFileAction(MI_ClearRecentImage, tr("&Clear Recent Flipbook Image List"), ""); + createMenuFileAction(MI_ClearCacheFolder, tr("&Clear Cache Folder"), ""); createRightClickMenuAction(MI_PreviewFx, tr("Preview Fx"), ""); @@ -1689,7 +1692,7 @@ void MainWindow::defineActions() { tr("&Brightness and Contrast..."), ""); createMenuLevelAction(MI_LinesFade, tr("&Color Fade..."), ""); #ifdef LINETEST - createMenuLevelAction(MI_Capture, tr("&Capture"), "Space"); + createMenuLevelAction(MI_Capture, tr("&Capture"), ""); #endif QAction *action = createMenuLevelAction(MI_CanvasSize, tr("&Canvas Size..."), ""); @@ -1741,7 +1744,7 @@ void MainWindow::defineActions() { mergeLevelsAction->setIcon(QIcon(":Resources/merge.svg")); createMenuXsheetAction(MI_InsertFx, tr("&New FX..."), "Ctrl+F"); QAction *newOutputAction = - createMenuXsheetAction(MI_NewOutputFx, tr("&New Output"), "Ctrl+F"); + createMenuXsheetAction(MI_NewOutputFx, tr("&New Output"), "Alt+O"); newOutputAction->setIcon(createQIconOnOff("output", false)); createRightClickMenuAction(MI_FxParamEditor, tr("&Edit FX..."), "Ctrl+K"); @@ -1758,6 +1761,8 @@ void MainWindow::defineActions() { "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"), ""); @@ -2335,6 +2340,96 @@ void MainWindow::onNewRasterLevelButtonPressed() { } //----------------------------------------------------------------------------- +// delete unused files / folders in the cache +void MainWindow::clearCacheFolder() { + // currently cache folder is used for following purposes + // 1. $CACHE/[ProcessID] : for disk swap of image cache. + // To be deleted on exit. Remains on crash. + // 2. $CACHE/ffmpeg : ffmpeg cache. + // To be cleared on the end of rendering, on exist and on launch. + // 3. $CACHE/temp : untitled scene data. + // To be deleted on switching or exiting scenes. Remains on crash. + + // So, this function will delete all files / folders in $CACHE + // except the following items: + // 1. $CACHE/[Current ProcessID] + // 2. $CACHE/temp/[Current scene folder] if the current scene is untitled + + TFilePath cacheRoot = ToonzFolder::getCacheRootFolder(); + if (cacheRoot.isEmpty()) cacheRoot = TEnv::getStuffDir() + "cache"; + + TFilePathSet filesToBeRemoved; + + TSystem::readDirectory(filesToBeRemoved, cacheRoot, false); + + // keep the imagecache folder + filesToBeRemoved.remove(cacheRoot + std::to_string(TSystem::getProcessId())); + // keep the untitled scene data folder + if (TApp::instance()->getCurrentScene()->getScene()->isUntitled()) { + filesToBeRemoved.remove(cacheRoot + "temp"); + TFilePathSet untitledData = + TSystem::readDirectory(cacheRoot + "temp", false); + untitledData.remove(TApp::instance() + ->getCurrentScene() + ->getScene() + ->getScenePath() + .getParentDir()); + filesToBeRemoved.insert(filesToBeRemoved.end(), untitledData.begin(), + untitledData.end()); + } + + // return if there is no files/folders to be deleted + if (filesToBeRemoved.size() == 0) { + QMessageBox::information( + this, tr("Clear Cache Folder"), + tr("There are no unused items in the cache folder.")); + return; + } + + QString message(tr("Deleting the following items:\n")); + int count = 0; + for (const auto &fileToBeRemoved : filesToBeRemoved) { + QString dirPrefix = + (TFileStatus(fileToBeRemoved).isDirectory()) ? tr(" ") : ""; + message += + " " + dirPrefix + (fileToBeRemoved - cacheRoot).getQString() + "\n"; + count++; + if (count == 5) break; + } + if (filesToBeRemoved.size() > 5) + message += + tr(" ... and %1 more items\n").arg(filesToBeRemoved.size() - 5); + + message += + tr("\nAre you sure?\n\nN.B. Make sure you are not running another " + "process of OpenToonz,\nor you may delete necessary files for it."); + + QMessageBox::StandardButton ret = QMessageBox::question( + this, tr("Clear Cache Folder"), message, + QMessageBox::StandardButtons(QMessageBox::Ok | QMessageBox::Cancel)); + + if (ret != QMessageBox::Ok) return; + + for (const auto &fileToBeRemoved : filesToBeRemoved) { + try { + if (TFileStatus(fileToBeRemoved).isDirectory()) + TSystem::rmDirTree(fileToBeRemoved); + else + TSystem::deleteFile(fileToBeRemoved); + } catch (TException &e) { + QMessageBox::warning( + this, tr("Clear Cache Folder"), + tr("Can't delete %1 : ").arg(fileToBeRemoved.getQString()) + + QString::fromStdWString(e.getMessage())); + } catch (...) { + QMessageBox::warning( + this, tr("Clear Cache Folder"), + tr("Can't delete %1 : ").arg(fileToBeRemoved.getQString())); + } + } +} + +//----------------------------------------------------------------------------- class ReloadStyle final : public MenuItemHandler { public: @@ -2374,9 +2469,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) { @@ -2543,9 +2638,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++) { @@ -2572,9 +2667,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/mainwindow.h b/toonz/sources/toonz/mainwindow.h index 1e7379c..6bdbb26 100644 --- a/toonz/sources/toonz/mainwindow.h +++ b/toonz/sources/toonz/mainwindow.h @@ -112,6 +112,7 @@ public: void onNewVectorLevelButtonPressed(); void onNewToonzRasterLevelButtonPressed(); void onNewRasterLevelButtonPressed(); + void clearCacheFolder(); QString getLayoutName() { return m_layoutName; } diff --git a/toonz/sources/toonz/menubar.cpp b/toonz/sources/toonz/menubar.cpp index cc8d616..f7dc057 100644 --- a/toonz/sources/toonz/menubar.cpp +++ b/toonz/sources/toonz/menubar.cpp @@ -117,7 +117,7 @@ void RoomTabWidget::mouseReleaseEvent(QMouseEvent *event) { //----------------------------------------------------------------------------- /*! Set a text field with focus in event position to edit tab name. -*/ + */ void RoomTabWidget::mouseDoubleClickEvent(QMouseEvent *event) { if (m_isLocked) return; int index = tabAt(event->pos()); @@ -1117,6 +1117,8 @@ QMenuBar *StackedMenuBar::createFullMenuBar() { addMenuItem(fileMenu, MI_Preferences); addMenuItem(fileMenu, MI_ShortcutPopup); fileMenu->addSeparator(); + addMenuItem(fileMenu, MI_ClearCacheFolder); + fileMenu->addSeparator(); addMenuItem(fileMenu, MI_Quit); // Menu' EDIT diff --git a/toonz/sources/toonz/menubarcommandids.h b/toonz/sources/toonz/menubarcommandids.h index c23f11a..4882888 100644 --- a/toonz/sources/toonz/menubarcommandids.h +++ b/toonz/sources/toonz/menubarcommandids.h @@ -306,6 +306,7 @@ #define MI_ToggleColumnLocks "MI_ToggleColumnLocks" #define MI_ToggleXSheetToolbar "MI_ToggleXSheetToolbar" #define MI_FoldColumns "MI_FoldColumns" +#define MI_ToggleXsheetCameraColumn "MI_ToggleXsheetCameraColumn" #define MI_ToggleCurrentTimeIndicator "MI_ToggleCurrentTimeIndicator" #define MI_LoadIntoCurrentPalette "MI_LoadIntoCurrentPalette" @@ -345,5 +346,5 @@ #define MI_SeparateColors "MI_SeparateColors" #define MI_OpenOnlineManual "MI_OpenOnlineManual" - +#define MI_ClearCacheFolder "MI_ClearCacheFolder" #endif diff --git a/toonz/sources/toonz/penciltestpopup.cpp b/toonz/sources/toonz/penciltestpopup.cpp index 47a6833..2dca8ac 100644 --- a/toonz/sources/toonz/penciltestpopup.cpp +++ b/toonz/sources/toonz/penciltestpopup.cpp @@ -2631,7 +2631,7 @@ bool PencilTestPopup::importImage(QImage image) { // if the level is newly created or imported, then insert a new column if (state == NEWLEVEL) { - if (!xsh->isColumnEmpty(col)) { + if (col < 0 || !xsh->isColumnEmpty(col)) { col += 1; xsh->insertColumn(col); } diff --git a/toonz/sources/toonz/preferencespopup.cpp b/toonz/sources/toonz/preferencespopup.cpp index ea30610..b4e07b8 100644 --- a/toonz/sources/toonz/preferencespopup.cpp +++ b/toonz/sources/toonz/preferencespopup.cpp @@ -381,7 +381,7 @@ void PreferencesPopup::onInterfaceFontChanged(int index) { QString oldTypeface = m_interfaceFontStyle->currentText(); rebuilldFontStyleList(); if (!oldTypeface.isEmpty()) { - int newIndex = m_interfaceFontStyle->findText(oldTypeface); + int newIndex = m_interfaceFontStyle->findText(oldTypeface); if (newIndex < 0) newIndex = 0; m_interfaceFontStyle->setCurrentIndex(newIndex); } @@ -504,7 +504,7 @@ void PreferencesPopup::onTranspCheckDataChanged(const TPixel32 &, void PreferencesPopup::onOnionDataChanged(const TPixel32 &, bool isDragging) { if (isDragging) return; - bool inksOnly = false; + bool inksOnly = false; if (m_inksOnly) inksOnly = m_inksOnly->isChecked(); m_pref->setOnionData(m_frontOnionColor->getColor(), m_backOnionColor->getColor(), inksOnly); @@ -517,7 +517,7 @@ void PreferencesPopup::onOnionDataChanged(const TPixel32 &, bool isDragging) { //----------------------------------------------------------------------------- void PreferencesPopup::onOnionDataChanged(int) { - bool inksOnly = false; + bool inksOnly = false; if (m_inksOnly) inksOnly = m_inksOnly->isChecked(); m_pref->setOnionData(m_frontOnionColor->getColor(), m_backOnionColor->getColor(), inksOnly); @@ -874,8 +874,9 @@ void PreferencesPopup::onShowFrameNumberWithLettersChanged(int index) { //----------------------------------------------------------------------------- -void PreferencesPopup::onShowKeyframesOnCellAreaChanged(int index) { - m_pref->enableShowKeyframesOnXsheetCellArea(index == Qt::Checked); +void PreferencesPopup::onShowKeyframesOnCellAreaChanged(bool checked) { + m_pref->enableShowKeyframesOnXsheetCellArea(checked); + TApp::instance()->getCurrentScene()->notifyPreferenceChanged("XsheetCamera"); } //----------------------------------------------------------------------------- @@ -1272,6 +1273,13 @@ void PreferencesPopup::onRasterBackgroundColorChanged(const TPixel32 &color, m_pref->setRasterBackgroundColor(color); } +//--------------------------------------------------------------------------------------- + +void PreferencesPopup::onShowXsheetCameraColumnChanged(int index) { + m_pref->enableXsheetCameraColumn(index == Qt::Checked); + TApp::instance()->getCurrentScene()->notifyPreferenceChanged("XsheetCamera"); +} + //----------------------------------------------------------------------------- void PreferencesPopup::onLevelBasedToolsDisplayChanged(int index) { @@ -1529,8 +1537,9 @@ PreferencesPopup::PreferencesPopup() m_cellsDragBehaviour = new QComboBox(); CheckBox *ignoreAlphaonColumn1CB = new CheckBox(tr("Ignore Alpha Channel on Levels in Column 1"), this); - CheckBox *showKeyframesOnCellAreaCB = - new CheckBox(tr("Show Keyframes on Cell Area"), this); + m_showKeyframesOnCellAreaCB = + new QGroupBox(tr("Show Keyframes on Cell Area"), this); + m_showKeyframesOnCellAreaCB->setCheckable(true); CheckBox *useArrowKeyToShiftCellSelectionCB = new CheckBox(tr("Use Arrow Key to Shift Cell Selection"), this); CheckBox *inputCellsWithoutDoubleClickingCB = @@ -1569,6 +1578,8 @@ PreferencesPopup::PreferencesPopup() m_pref->getCurrentColumnData(currectColumnColor); m_currentColumnColor = new ColorField(this, false, currectColumnColor); + CheckBox *showXsheetCameraCB = new CheckBox(tr("Show Camera Column"), this); + //--- Animation ------------------------------ categoryList->addItem(tr("Animation")); @@ -1929,7 +1940,7 @@ PreferencesPopup::PreferencesPopup() m_cellsDragBehaviour->addItem(tr("Cells and Column Data")); m_cellsDragBehaviour->setCurrentIndex(m_pref->getDragCellsBehaviour()); ignoreAlphaonColumn1CB->setChecked(m_pref->isIgnoreAlphaonColumn1Enabled()); - showKeyframesOnCellAreaCB->setChecked( + m_showKeyframesOnCellAreaCB->setChecked( m_pref->isShowKeyframesOnXsheetCellAreaEnabled()); useArrowKeyToShiftCellSelectionCB->setChecked( m_pref->isUseArrowKeyToShiftCellSelectionEnabled()); @@ -1944,6 +1955,7 @@ PreferencesPopup::PreferencesPopup() m_pref->isSyncLevelRenumberWithXsheetEnabled()); showCurrentTimelineCB->setChecked( m_pref->isCurrentTimelineIndicatorEnabled()); + showXsheetCameraCB->setChecked(m_pref->isXsheetCameraColumnEnabled()); //--- Animation ------------------------------ QStringList list; @@ -2566,7 +2578,16 @@ PreferencesPopup::PreferencesPopup() Qt::AlignLeft | Qt::AlignVCenter); xsheetFrameLay->addWidget(ignoreAlphaonColumn1CB, 4, 0, 1, 2); - xsheetFrameLay->addWidget(showKeyframesOnCellAreaCB, 5, 0, 1, 2); + + QVBoxLayout *showKeyframesOnCellAreaCBLay = new QVBoxLayout(); + showKeyframesOnCellAreaCBLay->setMargin(11); + { + showKeyframesOnCellAreaCBLay->addWidget( + showXsheetCameraCB, 0, Qt::AlignLeft | Qt::AlignVCenter); + } + m_showKeyframesOnCellAreaCB->setLayout(showKeyframesOnCellAreaCBLay); + + xsheetFrameLay->addWidget(m_showKeyframesOnCellAreaCB, 5, 0, 1, 2); xsheetFrameLay->addWidget(useArrowKeyToShiftCellSelectionCB, 6, 0, 1, 2); xsheetFrameLay->addWidget(inputCellsWithoutDoubleClickingCB, 7, 0, 1, @@ -3035,8 +3056,8 @@ PreferencesPopup::PreferencesPopup() SLOT(onXsheetStepChanged())); ret = ret && connect(m_cellsDragBehaviour, SIGNAL(currentIndexChanged(int)), SLOT(onDragCellsBehaviourChanged(int))); - ret = ret && connect(showKeyframesOnCellAreaCB, SIGNAL(stateChanged(int)), - this, SLOT(onShowKeyframesOnCellAreaChanged(int))); + ret = ret && connect(m_showKeyframesOnCellAreaCB, SIGNAL(clicked(bool)), this, + SLOT(onShowKeyframesOnCellAreaChanged(bool))); ret = ret && connect(useArrowKeyToShiftCellSelectionCB, SIGNAL(stateChanged(int)), SLOT(onUseArrowKeyToShiftCellSelectionClicked(int))); @@ -3065,6 +3086,9 @@ PreferencesPopup::PreferencesPopup() SIGNAL(colorChanged(const TPixel32 &, bool)), SLOT(onCurrentColumnDataChanged(const TPixel32 &, bool))); + ret = ret && connect(showXsheetCameraCB, SIGNAL(stateChanged(int)), this, + SLOT(onShowXsheetCameraColumnChanged(int))); + //--- Animation ---------------------- ret = ret && connect(m_keyframeType, SIGNAL(currentIndexChanged(int)), SLOT(onKeyframeTypeChanged(int))); diff --git a/toonz/sources/toonz/preferencespopup.h b/toonz/sources/toonz/preferencespopup.h index ebd9955..ff316f8 100644 --- a/toonz/sources/toonz/preferencespopup.h +++ b/toonz/sources/toonz/preferencespopup.h @@ -84,7 +84,7 @@ private: *m_newLevelToCameraSizeCB, *m_ignoreImageDpiCB, *m_syncLevelRenumberWithXsheet, *m_downArrowInLevelStripCreatesNewFrame, *m_enableAutoStretch, *m_enableWinInk, *m_enableTouchGestures, - *m_useOnionColorsForShiftAndTraceCB; + *m_useOnionColorsForShiftAndTraceCB, *m_showXsheetCameraColCB; DVGui::FileField *m_customProjectRootFileField; @@ -92,7 +92,7 @@ private: *m_lutPathFileField; QGroupBox *m_autoSaveGroup, *m_showXSheetToolbar, *m_colorCalibration, - *m_backup; + *m_backup, *m_showKeyframesOnCellAreaCB; DVGui::ColorField *m_currentColumnColor; @@ -195,7 +195,7 @@ private slots: void onRemoveSceneNumberFromLoadedLevelNameChanged(int index); void onShowRasterImageDarkenBlendedInViewerChanged(int index); void onShowFrameNumberWithLettersChanged(int index); - void onShowKeyframesOnCellAreaChanged(int); + void onShowKeyframesOnCellAreaChanged(bool); void onFfmpegPathChanged(); void onFfmpegTimeoutChanged(); void onFastRenderPathChanged(); @@ -226,6 +226,7 @@ private slots: void onEnableWinInkChanged(int index); void onRasterBackgroundColorChanged(const TPixel32 &, bool isDragging); void onBackupKeepCountChanged(); + void onShowXsheetCameraColumnChanged(int index); void onLevelBasedToolsDisplayChanged(int); }; diff --git a/toonz/sources/toonz/tapp.cpp b/toonz/sources/toonz/tapp.cpp index 023c520..19386d6 100644 --- a/toonz/sources/toonz/tapp.cpp +++ b/toonz/sources/toonz/tapp.cpp @@ -509,6 +509,11 @@ void TApp::onColumnIndexSwitched() { int columnIndex = m_currentColumn->getColumnIndex(); if (columnIndex >= 0) m_currentObject->setObjectId(TStageObjectId::ColumnId(columnIndex)); + else { + TXsheet *xsh = getCurrentXsheet()->getXsheet(); + m_currentObject->setObjectId( + TStageObjectId::CameraId(xsh->getCameraColumnIndex())); + } } //----------------------------------------------------------------------------- diff --git a/toonz/sources/toonz/toonz.qrc b/toonz/sources/toonz/toonz.qrc index 7a2dd82..24811d4 100644 --- a/toonz/sources/toonz/toonz.qrc +++ b/toonz/sources/toonz/toonz.qrc @@ -26,6 +26,7 @@ Resources/brush.svg Resources/brush_rollover.svg Resources/camera.png + Resources/camera.svg Resources/camera_selected.png Resources/camerastand_toggle.png Resources/canvas.svg diff --git a/toonz/sources/toonz/vectorizerpopup.cpp b/toonz/sources/toonz/vectorizerpopup.cpp index 91b0b52..fb15f10 100644 --- a/toonz/sources/toonz/vectorizerpopup.cpp +++ b/toonz/sources/toonz/vectorizerpopup.cpp @@ -903,6 +903,7 @@ bool VectorizerPopup::apply() { int r1 = 0; int c1 = 0; bool isCellSelection = getSelectedLevels(levels, r0, c0, r1, c1); + if (c0 < 0) c0 = 0; if (levels.empty()) { error(tr("The current selection is invalid.")); return false; diff --git a/toonz/sources/toonz/xshcellviewer.cpp b/toonz/sources/toonz/xshcellviewer.cpp index 7fe015f..7f1c23a 100644 --- a/toonz/sources/toonz/xshcellviewer.cpp +++ b/toonz/sources/toonz/xshcellviewer.cpp @@ -967,8 +967,10 @@ void RenameCellField::keyPressEvent(QKeyEvent *event) { c1 + offset.layer()); } else { CellPosition offset(offset * stride); - int movedR0 = std::max(0, r0 + offset.frame()); - int movedC0 = std::max(0, c0 + offset.layer()); + int movedR0 = std::max(0, r0 + offset.frame()); + int firstCol = + Preferences::instance()->isXsheetCameraColumnVisible() ? -1 : 0; + int movedC0 = std::max(firstCol, c0 + offset.layer()); int diffFrame = movedR0 - r0; int diffLayer = movedC0 - c0; // It needs to be discussed - I made not to rename cell with arrow key. @@ -976,7 +978,9 @@ void RenameCellField::keyPressEvent(QKeyEvent *event) { // renameCell(); cellSelection->selectCells(r0 + diffFrame, c0 + diffLayer, r1 + diffFrame, c1 + diffLayer); - showInRowCol(m_row + offset.frame(), m_col + offset.layer(), c1 - c0 > 0); + int newRow = std::max(0, m_row + offset.frame()); + int newCol = std::max(firstCol, m_col + offset.layer()); + showInRowCol(newRow, newCol, c1 - c0 > 0); } m_viewer->updateCells(); TApp::instance()->getCurrentSelection()->notifySelectionChanged(); @@ -1171,7 +1175,7 @@ void CellArea::drawCells(QPainter &p, const QRect toBeUpdated) { // for each frame for (row = r0; row <= r1; row++) { - if (!isColumn) { + if (col >= 0 && !isColumn) { drawFrameSeparator(p, row, col, true); if (TApp::instance()->getCurrentFrame()->isEditingScene() && !m_viewer->orientation()->isVerticalTimeline() && @@ -1235,7 +1239,7 @@ void CellArea::drawNonEmptyBackground(QPainter &p) const { m_viewer->positionToXY(CellPosition(totalFrames, lastNonEmptyCol + 1)); } else { xyTop = m_viewer->positionToXY(CellPosition(0, lastNonEmptyCol)); - xyBottom = m_viewer->positionToXY(CellPosition(totalFrames, 0)); + xyBottom = m_viewer->positionToXY(CellPosition(totalFrames, -1)); ColumnFan *fan = xsh->getColumnFan(o); xyBottom.setY(xyBottom.y() + ((fan ? fan->isActive(0) : true) ? o->cellHeight() : 9)); @@ -1658,8 +1662,38 @@ void CellArea::drawLevelCell(QPainter &p, int row, int col, bool isReference) { xy.setX(xy.x() + 1); } + TXshCell nextCell; + nextCell = xsh->getCell(row + 1, col); // cell in next frame + + int frameAdj = m_viewer->getFrameZoomAdjustment(); + QRect cellRect = o->rect(PredefinedRect::CELL).translated(QPoint(x, y)); + cellRect.adjust(0, 0, -frameAdj, 0); + QRect rect = cellRect.adjusted( + 1, 1, + (!m_viewer->orientation()->isVerticalTimeline() && !nextCell.isEmpty() + ? 2 + : 0), + 0); + + // get cell colors + QColor cellColor, sideColor; + // nothing to draw if (cell.isEmpty() && prevCell.isEmpty()) { + if (col < 0) { + TStageObjectId cameraId = + m_viewer->getXsheet()->getStageObjectTree()->getCurrentCameraId(); + bool isActive = + cameraId.getIndex() == m_viewer->getXsheet()->getCameraColumnIndex(); + cellColor = (isSelected) + ? (isActive ? m_viewer->getSelectedActiveCameraColor() + : m_viewer->getSelectedOtherCameraColor()) + : (isActive ? m_viewer->getActiveCameraColor() + : m_viewer->getOtherCameraColor()); + cellColor.setAlpha(50); + // paint cell + p.fillRect(rect, QBrush(cellColor)); + } drawFrameSeparator(p, row, col, true); if (TApp::instance()->getCurrentFrame()->isEditingScene() && @@ -1674,18 +1708,6 @@ void CellArea::drawLevelCell(QPainter &p, int row, int col, bool isReference) { prevCell.m_frameId == cell.m_frameId); drawFrameSeparator(p, row, col, false, heldFrame); - TXshCell nextCell; - nextCell = xsh->getCell(row + 1, col); // cell in next frame - - int frameAdj = m_viewer->getFrameZoomAdjustment(); - QRect cellRect = o->rect(PredefinedRect::CELL).translated(QPoint(x, y)); - cellRect.adjust(0, 0, -frameAdj, 0); - QRect rect = cellRect.adjusted( - 1, 1, - (!m_viewer->orientation()->isVerticalTimeline() && !nextCell.isEmpty() - ? 2 - : 0), - 0); if (cell.isEmpty()) { // it means previous is not empty // diagonal cross meaning end of level QColor levelEndColor = m_viewer->getTextColor(); @@ -1703,8 +1725,6 @@ void CellArea::drawLevelCell(QPainter &p, int row, int col, bool isReference) { return; } - // get cell colors - QColor cellColor, sideColor; if (isReference) { cellColor = (isSelected) ? m_viewer->getSelectedReferenceColumnColor() : m_viewer->getReferenceColumnColor(); @@ -2994,7 +3014,7 @@ void CellArea::contextMenuEvent(QContextMenuEvent *event) { TStageObject *pegbar = xsh->getStageObject(m_viewer->getObjectId(col)); int k0, k1; int r0, r1, c0, c1; - if (col >= 0) m_viewer->getCellSelection()->getSelectedCells(r0, c0, r1, c1); + m_viewer->getCellSelection()->getSelectedCells(r0, c0, r1, c1); QPoint cellTopLeft = m_viewer->positionToXY(CellPosition(row, col)); QPoint mouseInCell = event->pos() - cellTopLeft; @@ -3005,7 +3025,7 @@ void CellArea::contextMenuEvent(QContextMenuEvent *event) { if (isKeyframeFrame && isKeyFrameArea(col, row, mouseInCell)) { TStageObjectId objectId; if (col < 0) - objectId = TStageObjectId::CameraId(0); + objectId = TStageObjectId::CameraId(xsh->getCameraColumnIndex()); else { // Set the current column and the current object objectId = TStageObjectId::ColumnId(col); m_viewer->setCurrentColumn(col); @@ -3021,8 +3041,7 @@ void CellArea::contextMenuEvent(QContextMenuEvent *event) { !xsh->getColumn(col) ->isLocked()) // on the line between two keyframes createKeyLineMenu(menu, row, col); - } else if (col >= 0 && // Non e' la colonna di camera - m_viewer->getCellSelection()->isCellSelected( + } else if (m_viewer->getCellSelection()->isCellSelected( row, col) && // La cella e' selezionata (abs(r1 - r0) > 0 || abs(c1 - c0) > @@ -3041,11 +3060,9 @@ void CellArea::contextMenuEvent(QContextMenuEvent *event) { } createCellMenu(menu, areCellsEmpty, cell); } else { - if (col >= 0) { - m_viewer->getCellSelection()->makeCurrent(); - m_viewer->getCellSelection()->selectCell(row, col); - m_viewer->setCurrentColumn(col); - } + m_viewer->getCellSelection()->makeCurrent(); + m_viewer->getCellSelection()->selectCell(row, col); + m_viewer->setCurrentColumn(col); createCellMenu(menu, !cell.isEmpty(), cell); } @@ -3124,8 +3141,10 @@ const bool CellArea::isControlPressed() { return isCtrlPressed; } void CellArea::createCellMenu(QMenu &menu, bool isCellSelected, TXshCell cell) { CommandManager *cmdManager = CommandManager::instance(); - bool soundCellsSelected = m_viewer->areSoundCellsSelected(); - bool soundTextCellsSelected = m_viewer->areSoundTextCellsSelected(); + bool soundCellsSelected = m_viewer->areSoundCellsSelected(); + bool cameraCellsSelected = m_viewer->areCameraCellsSelected(); + + if (m_viewer->areSoundTextCellsSelected()) return; // Magpies stop here menu.addSeparator(); @@ -3136,17 +3155,13 @@ void CellArea::createCellMenu(QMenu &menu, bool isCellSelected, TXshCell cell) { } if (isCellSelected) { - bool addSeparator = false; // open fx settings instead of level settings when clicked on zerary fx // level - if (cell.m_level && cell.m_level->getZeraryFxLevel()) { + if (cell.m_level && cell.m_level->getZeraryFxLevel()) menu.addAction(cmdManager->getAction(MI_FxParamEditor)); - addSeparator = true; - } else if (!soundTextCellsSelected) { + else menu.addAction(cmdManager->getAction(MI_LevelSettings)); - addSeparator = true; - } - if (addSeparator) menu.addSeparator(); + menu.addSeparator(); if (!soundCellsSelected) { QMenu *reframeSubMenu = new QMenu(tr("Reframe"), this); @@ -3178,81 +3193,74 @@ void CellArea::createCellMenu(QMenu &menu, bool isCellSelected, TXshCell cell) { } menu.addMenu(eachSubMenu); - if (!soundTextCellsSelected) { - QMenu *editCellNumbersMenu = new QMenu(tr("Edit Cell Numbers"), this); - { - editCellNumbersMenu->addAction(cmdManager->getAction(MI_Reverse)); - editCellNumbersMenu->addAction(cmdManager->getAction(MI_Swing)); - editCellNumbersMenu->addAction(cmdManager->getAction(MI_Random)); - editCellNumbersMenu->addAction(cmdManager->getAction(MI_Dup)); - editCellNumbersMenu->addAction(cmdManager->getAction(MI_Rollup)); - editCellNumbersMenu->addAction(cmdManager->getAction(MI_Rolldown)); - editCellNumbersMenu->addAction(cmdManager->getAction(MI_TimeStretch)); - editCellNumbersMenu->addAction( - cmdManager->getAction(MI_AutoInputCellNumber)); - } - menu.addMenu(editCellNumbersMenu); + QMenu *editCellNumbersMenu = new QMenu(tr("Edit Cell Numbers"), this); + { + editCellNumbersMenu->addAction(cmdManager->getAction(MI_Reverse)); + editCellNumbersMenu->addAction(cmdManager->getAction(MI_Swing)); + editCellNumbersMenu->addAction(cmdManager->getAction(MI_Random)); + editCellNumbersMenu->addAction(cmdManager->getAction(MI_Dup)); + editCellNumbersMenu->addAction(cmdManager->getAction(MI_Rollup)); + editCellNumbersMenu->addAction(cmdManager->getAction(MI_Rolldown)); + editCellNumbersMenu->addAction(cmdManager->getAction(MI_TimeStretch)); + editCellNumbersMenu->addAction( + cmdManager->getAction(MI_AutoInputCellNumber)); } + menu.addMenu(editCellNumbersMenu); menu.addAction(cmdManager->getAction(MI_FillEmptyCell)); menu.addSeparator(); - - if (!soundTextCellsSelected) - menu.addAction(cmdManager->getAction(MI_Autorenumber)); + menu.addAction(cmdManager->getAction(MI_Autorenumber)); } - if (!soundTextCellsSelected) { - QMenu *replaceLevelMenu = new QMenu(tr("Replace Level"), this); - menu.addMenu(replaceLevelMenu); + QMenu *replaceLevelMenu = new QMenu(tr("Replace Level"), this); + menu.addMenu(replaceLevelMenu); - replaceLevelMenu->addAction(cmdManager->getAction(MI_ReplaceLevel)); + replaceLevelMenu->addAction(cmdManager->getAction(MI_ReplaceLevel)); - replaceLevelMenu->addAction( - cmdManager->getAction(MI_ReplaceParentDirectory)); + replaceLevelMenu->addAction( + cmdManager->getAction(MI_ReplaceParentDirectory)); - { - // replace with another level in scene cast - std::vector levels; - TApp::instance() - ->getCurrentScene() - ->getScene() - ->getLevelSet() - ->listLevels(levels); - if (!levels.empty()) { - QMenu *replaceMenu = replaceLevelMenu->addMenu(tr("Replace with")); - connect(replaceMenu, SIGNAL(triggered(QAction *)), this, - SLOT(onReplaceByCastedLevel(QAction *))); - for (int i = 0; i < (int)levels.size(); i++) { - if (!levels[i]->getSimpleLevel() && !levels[i]->getChildLevel()) - continue; - - if (levels[i]->getChildLevel() && - !TApp::instance()->getCurrentXsheet()->getXsheet()->isLevelUsed( - levels[i])) - continue; - - QString tmpLevelName = - QString::fromStdWString(levels[i]->getName()); - QAction *tmpAction = new QAction(tmpLevelName, replaceMenu); - tmpAction->setData(tmpLevelName); - replaceMenu->addAction(tmpAction); - } + { + // replace with another level in scene cast + std::vector levels; + TApp::instance() + ->getCurrentScene() + ->getScene() + ->getLevelSet() + ->listLevels(levels); + if (!levels.empty()) { + QMenu *replaceMenu = replaceLevelMenu->addMenu(tr("Replace with")); + connect(replaceMenu, SIGNAL(triggered(QAction *)), this, + SLOT(onReplaceByCastedLevel(QAction *))); + for (int i = 0; i < (int)levels.size(); i++) { + if (!levels[i]->getSimpleLevel() && !levels[i]->getChildLevel()) + continue; + + if (levels[i]->getChildLevel() && + !TApp::instance()->getCurrentXsheet()->getXsheet()->isLevelUsed( + levels[i])) + continue; + + QString tmpLevelName = QString::fromStdWString(levels[i]->getName()); + QAction *tmpAction = new QAction(tmpLevelName, replaceMenu); + tmpAction->setData(tmpLevelName); + replaceMenu->addAction(tmpAction); } } + } - if (!soundCellsSelected && !soundTextCellsSelected) { - if (selectionContainTlvImage(m_viewer->getCellSelection(), + if (!soundCellsSelected) { + if (selectionContainTlvImage(m_viewer->getCellSelection(), + m_viewer->getXsheet())) + replaceLevelMenu->addAction( + cmdManager->getAction(MI_RevertToCleanedUp)); + if (selectionContainLevelImage(m_viewer->getCellSelection(), m_viewer->getXsheet())) - replaceLevelMenu->addAction( - cmdManager->getAction(MI_RevertToCleanedUp)); - if (selectionContainLevelImage(m_viewer->getCellSelection(), - m_viewer->getXsheet())) - replaceLevelMenu->addAction( - cmdManager->getAction(MI_RevertToLastSaved)); - menu.addAction(cmdManager->getAction(MI_SetKeyframes)); - } - menu.addSeparator(); + replaceLevelMenu->addAction( + cmdManager->getAction(MI_RevertToLastSaved)); + menu.addAction(cmdManager->getAction(MI_SetKeyframes)); } + menu.addSeparator(); menu.addAction(cmdManager->getAction(MI_Cut)); menu.addAction(cmdManager->getAction(MI_Copy)); @@ -3267,8 +3275,7 @@ void CellArea::createCellMenu(QMenu &menu, bool isCellSelected, TXshCell cell) { menu.addAction(cmdManager->getAction(MI_Clear)); menu.addAction(cmdManager->getAction(MI_Insert)); - if (!soundTextCellsSelected) - menu.addAction(cmdManager->getAction(MI_Duplicate)); + menu.addAction(cmdManager->getAction(MI_Duplicate)); menu.addSeparator(); TXshSimpleLevel *sl = TApp::instance()->getCurrentLevel()->getSimpleLevel(); @@ -3307,6 +3314,10 @@ void CellArea::createCellMenu(QMenu &menu, bool isCellSelected, TXshCell cell) { menu.addAction(cmdManager->getAction(MI_LipSyncPopup)); } else { menu.addAction(cmdManager->getAction(MI_FillEmptyCell)); + if (cameraCellsSelected) { + menu.addSeparator(); + menu.addAction(cmdManager->getAction(MI_SetKeyframes)); + } } menu.addSeparator(); if (!soundCellsSelected) diff --git a/toonz/sources/toonz/xshcolumnviewer.cpp b/toonz/sources/toonz/xshcolumnviewer.cpp index 1e6cf08..b605dce 100644 --- a/toonz/sources/toonz/xshcolumnviewer.cpp +++ b/toonz/sources/toonz/xshcolumnviewer.cpp @@ -19,6 +19,7 @@ #include "toonzqt/intfield.h" // TnzLib includes +#include "toonz/txshcolumn.h" #include "toonz/tscenehandle.h" #include "toonz/txsheethandle.h" #include "toonz/txshlevelhandle.h" @@ -45,6 +46,8 @@ #include "toonz/txshlevelcolumn.h" #include "toonz/txshmeshcolumn.h" #include "toonz/tfxhandle.h" +#include "toonz/tcamera.h" +#include "toonz/tcolumnhandle.h" // TnzCore includes #include "tconvert.h" @@ -58,6 +61,7 @@ #include #include #include +#include #include //============================================================================= @@ -479,9 +483,12 @@ void RenameColumnField::show(const QRect &rect, int col) { setFont(font); m_col = col; - TXsheet *xsh = m_xsheetHandle->getXsheet(); + TXsheet *xsh = m_xsheetHandle->getXsheet(); + int cameraIndex = xsh->getCameraColumnIndex(); std::string name = - xsh->getStageObject(TStageObjectId::ColumnId(col))->getName(); + col >= 0 ? xsh->getStageObject(TStageObjectId::ColumnId(col))->getName() + : xsh->getStageObject(TStageObjectId::CameraId(cameraIndex)) + ->getName(); TXshColumn *column = xsh->getColumn(col); TXshZeraryFxColumn *zColumn = dynamic_cast(column); if (zColumn) @@ -498,7 +505,9 @@ void RenameColumnField::show(const QRect &rect, int col) { void RenameColumnField::renameColumn() { std::string newName = text().toStdString(); - TStageObjectId columnId = TStageObjectId::ColumnId(m_col); + int cameraIndex = m_xsheetHandle->getXsheet()->getCameraColumnIndex(); + TStageObjectId columnId = m_col >= 0 ? TStageObjectId::ColumnId(m_col) + : TStageObjectId::CameraId(cameraIndex); TXshColumn *column = m_xsheetHandle->getXsheet()->getColumn(columnId.getIndex()); TXshZeraryFxColumn *zColumn = dynamic_cast(column); @@ -544,19 +553,20 @@ ColumnArea::DrawHeader::DrawHeader(ColumnArea *nArea, QPainter &nP, int nCol) o = m_viewer->orientation(); app = TApp::instance(); xsh = m_viewer->getXsheet(); - column = col >= 0 ? xsh->getColumn(col) : 0; - isEmpty = col >= 0 && xsh->isColumnEmpty(col); + column = xsh->getColumn(col); + isEmpty = col >= 0 ? xsh->isColumnEmpty(col) : false; TStageObjectId currentColumnId = app->getCurrentObject()->getObjectId(); // check if the column is current isCurrent = false; - if (currentColumnId == TStageObjectId::CameraId(0)) // CAMERA + if (currentColumnId == + TStageObjectId::CameraId(xsh->getCameraColumnIndex())) // CAMERA isCurrent = col == -1; else isCurrent = m_viewer->getCurrentColumn() == col; - orig = m_viewer->positionToXY(CellPosition(0, max(col, 0))); + orig = m_viewer->positionToXY(CellPosition(0, max(col, -1))); } void ColumnArea::DrawHeader::prepare() const { @@ -590,6 +600,17 @@ const QPixmap &ColumnArea::Pixmaps::soundPlaying() { void ColumnArea::DrawHeader::levelColors(QColor &columnColor, QColor &dragColor) const { + if (col < 0) { + TStageObjectId cameraId = + m_viewer->getXsheet()->getStageObjectTree()->getCurrentCameraId(); + bool isActive = + cameraId.getIndex() == m_viewer->getXsheet()->getCameraColumnIndex(); + columnColor = isActive ? m_viewer->getActiveCameraColor() + : m_viewer->getOtherCameraColor(); + dragColor = isActive ? m_viewer->getActiveCameraColor() + : m_viewer->getOtherCameraColor(); + return; + } enum { Normal, Reference, Control } usage = Reference; if (column) { if (column->isControl()) usage = Control; @@ -636,8 +657,10 @@ void ColumnArea::DrawHeader::drawBaseFill(const QColor &columnColor, int y1 = rect.bottom(); // fill base color - if (isEmpty || col < 0) + if (isEmpty) p.fillRect(rect, m_viewer->getEmptyColumnHeadColor()); + else if (col < 0) + p.fillRect(rect, columnColor); else { p.fillRect(rect, columnColor); @@ -659,7 +682,7 @@ void ColumnArea::DrawHeader::drawBaseFill(const QColor &columnColor, p.setPen(m_viewer->getVerticalLineColor()); QLine vertical = o->verticalLine(m_viewer->columnToLayerAxis(col), o->frameSide(rect)); - if (isEmpty || col < 0 || o->isVerticalTimeline()) p.drawLine(vertical); + if (isEmpty || o->isVerticalTimeline()) p.drawLine(vertical); // highlight selection bool isSelected = @@ -671,12 +694,11 @@ void ColumnArea::DrawHeader::drawBaseFill(const QColor &columnColor, QColor colorSelection(m_viewer->getSelectedColumnHead()); colorSelection.setAlpha(170); - p.fillRect(rect, - (isSelected || isCameraSelected) ? colorSelection : pastelizer); + p.fillRect(rect, isSelected ? colorSelection : pastelizer); } void ColumnArea::DrawHeader::drawEye() const { - if (col < 0 || isEmpty || !o->flag(PredefinedFlag::EYE_AREA_VISIBLE)) return; + if (isEmpty || !o->flag(PredefinedFlag::EYE_AREA_VISIBLE)) return; QColor bgColor; QImage icon; int buttonType = !column->isPreviewVisible() ? PREVIEW_OFF_XSHBUTTON @@ -688,7 +710,7 @@ void ColumnArea::DrawHeader::drawEye() const { // preview visible toggle p.setPen(m_viewer->getVerticalLineColor()); - if (column->getSoundTextColumn()) { + if (col < 0 || column->getSoundTextColumn()) { if (o->flag(PredefinedFlag::EYE_AREA_BORDER)) p.drawRect(prevViewRect); return; } @@ -706,9 +728,7 @@ void ColumnArea::DrawHeader::drawEye() const { } void ColumnArea::DrawHeader::drawPreviewToggle(int opacity) const { - if (col < 0 || isEmpty || - !o->flag(PredefinedFlag::PREVIEW_LAYER_AREA_VISIBLE)) - return; + if (isEmpty || !o->flag(PredefinedFlag::PREVIEW_LAYER_AREA_VISIBLE)) return; // camstand visible toggle QColor bgColor; QImage icon; @@ -725,7 +745,7 @@ void ColumnArea::DrawHeader::drawPreviewToggle(int opacity) const { p.setPen(m_viewer->getVerticalLineColor()); - if (column->getPaletteColumn() || column->getSoundTextColumn()) { + if (col < 0 || column->getPaletteColumn() || column->getSoundTextColumn()) { if (o->flag(PredefinedFlag::PREVIEW_LAYER_AREA_BORDER)) p.drawRect(tableViewRect); return; @@ -744,7 +764,7 @@ void ColumnArea::DrawHeader::drawPreviewToggle(int opacity) const { } void ColumnArea::DrawHeader::drawLock() const { - if (col < 0 || isEmpty || !o->flag(PredefinedFlag::LOCK_AREA_VISIBLE)) return; + if (isEmpty || !o->flag(PredefinedFlag::LOCK_AREA_VISIBLE)) return; QColor bgColor; QImage icon; int buttonType = !column->isLocked() ? LOCK_OFF_XSHBUTTON : LOCK_ON_XSHBUTTON; @@ -760,6 +780,7 @@ void ColumnArea::DrawHeader::drawLock() const { // lock button p.setPen(m_viewer->getVerticalLineColor()); + p.fillRect(lockModeRect, bgColor); if (o->flag(PredefinedFlag::LOCK_AREA_BORDER)) p.drawRect(lockModeRect); @@ -772,8 +793,7 @@ void ColumnArea::DrawHeader::drawLock() const { } void ColumnArea::DrawHeader::drawConfig() const { - if (col < 0 || isEmpty || !o->flag(PredefinedFlag::CONFIG_AREA_VISIBLE)) - return; + if (isEmpty || !o->flag(PredefinedFlag::CONFIG_AREA_VISIBLE)) return; QColor bgColor; QImage icon; int buttonType = CONFIG_XSHBUTTON; @@ -822,7 +842,7 @@ void ColumnArea::DrawHeader::drawColumnName() const { // Build column name std::string name(columnObject->getName()); - if (col < 0) name = std::string("Camera"); + // if (col < 0) name = std::string("Camera"); // ZeraryFx columns store name elsewhere TXshZeraryFxColumn *zColumn = dynamic_cast(column); @@ -877,7 +897,7 @@ void ColumnArea::DrawHeader::drawColumnName() const { } void ColumnArea::DrawHeader::drawThumbnail(QPixmap &iconPixmap) const { - if (col < 0 || isEmpty) return; + if (isEmpty) return; QRect thumbnailRect = o->rect(PredefinedRect::THUMBNAIL_AREA).translated(orig); @@ -952,8 +972,7 @@ void ColumnArea::DrawHeader::drawThumbnail(QPixmap &iconPixmap) const { } void ColumnArea::DrawHeader::drawPegbarName() const { - if (col < 0 || isEmpty || !o->flag(PredefinedFlag::PEGBAR_NAME_VISIBLE)) - return; + if (isEmpty || !o->flag(PredefinedFlag::PEGBAR_NAME_VISIBLE)) return; TStageObjectId columnId = m_viewer->getObjectId(col); TStageObjectId parentId = xsh->getStageObjectParent(columnId); @@ -963,7 +982,7 @@ void ColumnArea::DrawHeader::drawPegbarName() const { p.setPen(m_viewer->getVerticalLineColor()); if (o->flag(PredefinedFlag::PEGBAR_NAME_BORDER)) p.drawRect(pegbarnamerect); - if (column->getSoundColumn() || column->getSoundTextColumn() || + if (col < 0 || column->getSoundColumn() || column->getSoundTextColumn() || column->getPaletteColumn()) return; @@ -1140,7 +1159,8 @@ ColumnArea::ColumnArea(XsheetViewer *parent, Qt::WFlags flags) connect(actionGroup, SIGNAL(triggered(QAction *)), this, SLOT(onSubSampling(QAction *))); - + connect(xsheetHandle, SIGNAL(xsheetCameraChange(int)), this, + SLOT(onXsheetCameraChange(int))); setMouseTracking(true); } @@ -1285,7 +1305,8 @@ void ColumnArea::drawLevelColumnHead(QPainter &p, int col) { // check if the column is current bool isCurrent = false; - if (currentColumnId == TStageObjectId::CameraId(0)) // CAMERA + if (currentColumnId == + TStageObjectId::CameraId(xsh->getCameraColumnIndex())) // CAMERA isCurrent = col == -1; else isCurrent = m_viewer->getCurrentColumn() == col; @@ -1374,7 +1395,7 @@ void ColumnArea::drawPaletteColumnHead(QPainter &p, int col) { // AREA TColumnSelection *selection = m_viewer->getColumnSelection(); const Orientation *o = m_viewer->orientation(); - QPoint orig = m_viewer->positionToXY(CellPosition(0, max(col, 0))); + QPoint orig = m_viewer->positionToXY(CellPosition(0, max(col, -1))); QString fontName = Preferences::instance()->getInterfaceFont(); if (fontName == "") { @@ -1482,7 +1503,7 @@ QPixmap ColumnArea::getColumnIcon(int columnIndex) { if (columnIndex == -1) { // Indice colonna = -1 -> CAMERA TApp *app = TApp::instance(); - static QPixmap camera = QPixmap(":Resources/camera.png"); + static QPixmap camera = svgToPixmap(":Resources/camera.svg"); return camera; } TXsheet *xsh = m_viewer->getXsheet(); @@ -1541,7 +1562,7 @@ void ColumnArea::paintEvent(QPaintEvent *event) { // AREA // draw column fan (collapsed columns) if (!columnFan->isActive(col)) { drawFoldedColumnHead(p, col); - } else if (col >= 0) { + } else { TXshColumn *column = m_viewer->getXsheet()->getColumn(col); int colType = (column && !column->isEmpty()) ? column->getColumnType() @@ -1853,6 +1874,46 @@ void ColumnArea::openSoundColumnPopup() { m_soundColumnPopup->show(); } +void ColumnArea::openCameraColumnPopup(QPoint pos) { + QMenu menu(this); + + TXsheet *xsh = TApp::instance()->getCurrentXsheet()->getXsheet(); + TStageObjectTree *tree = xsh->getStageObjectTree(); + int i, objCount = tree->getStageObjectCount(); + for (i = 0; i < objCount; i++) { + TStageObject *obj = tree->getStageObject(i); + if (!obj || !obj->getId().isCamera()) continue; + TStageObjectId objId = obj->getId(); + std::string objName = obj->getName(); + QAction *action = new QAction(QString::fromStdString(objName), this); + action->setData(objId.getIndex()); + connect(action, SIGNAL(triggered()), this, + SLOT(onCameraColumnChangedTriggered())); + menu.addAction(action); + } + + menu.exec(pos); +} + +void ColumnArea::onCameraColumnChangedTriggered() { + int newIndex = qobject_cast(sender())->data().toInt(); + onXsheetCameraChange(newIndex); +} + +//---------------------------------------------------------------- + +void ColumnArea::onXsheetCameraChange(int newIndex) { + int oldIndex = m_viewer->getXsheet()->getCameraColumnIndex(); + if (newIndex == oldIndex) return; + + TXsheetHandle *xsheetHandle = TApp::instance()->getCurrentXsheet(); + + CameraColumnSwitchUndo *undo = + new CameraColumnSwitchUndo(oldIndex, newIndex, xsheetHandle); + undo->redo(); + TUndoManager::manager()->add(undo); +} + //---------------------------------------------------------------- void ColumnArea::startTransparencyPopupTimer(QMouseEvent *e) { // AREA @@ -1889,18 +1950,12 @@ void ColumnArea::mousePressEvent(QMouseEvent *event) { TXsheet *xsh = m_viewer->getXsheet(); ColumnFan *fan = xsh->getColumnFan(o); m_col = m_viewer->xyToPosition(event->pos()).layer(); - // do nothing for the camera column - if (m_col < 0) // CAMERA - { - TApp::instance()->getCurrentSelection()->getSelection()->makeNotCurrent(); - m_viewer->getColumnSelection()->selectNone(); - } // when clicking the column fan - else if (m_col >= 0 && !fan->isActive(m_col)) // column Fan + if (!fan->isActive(m_col)) // column Fan { for (auto o : Orientations::all()) { fan = xsh->getColumnFan(o); - for (int i = m_col; i >= 0 && !fan->isActive(i); i--) fan->activate(i); + for (int i = m_col; !fan->isActive(i); i--) fan->activate(i); } TApp::instance()->getCurrentScene()->setDirtyFlag(true); @@ -1912,7 +1967,7 @@ void ColumnArea::mousePressEvent(QMouseEvent *event) { m_viewer->setCurrentColumn(m_col); TXshColumn *column = xsh->getColumn(m_col); - bool isEmpty = !column || column->isEmpty(); + bool isEmpty = m_col < 0 ? false : (!column || column->isEmpty()); TApp::instance()->getCurrentObject()->setIsSpline(false); // get mouse position @@ -1923,7 +1978,7 @@ void ColumnArea::mousePressEvent(QMouseEvent *event) { // QPoint mouseInCell(x, y); int x = mouseInCell.x(), y = mouseInCell.y(); - if (!isEmpty && m_col >= 0) { + if (!isEmpty) { // grabbing the left side of the column enables column move if (o->rect(PredefinedRect::DRAG_LAYER).contains(mouseInCell) || (!o->flag(PredefinedFlag::DRAG_LAYER_VISIBLE) // If dragbar hidden, @@ -1931,7 +1986,8 @@ void ColumnArea::mousePressEvent(QMouseEvent *event) { // becomes dragbar && (o->rect(PredefinedRect::LAYER_NUMBER).contains(mouseInCell) || o->rect(PredefinedRect::LAYER_NAME).contains(mouseInCell)))) { - setDragTool(XsheetGUI::DragTool::makeColumnMoveTool(m_viewer)); + if (m_col >= 0) + setDragTool(XsheetGUI::DragTool::makeColumnMoveTool(m_viewer)); } // lock button else if (o->rect(PredefinedRect::LOCK_AREA).contains(mouseInCell) && @@ -1941,7 +1997,7 @@ void ColumnArea::mousePressEvent(QMouseEvent *event) { // preview button else if (o->rect(PredefinedRect::EYE_AREA).contains(mouseInCell) && event->button() == Qt::LeftButton) { - if (column->getSoundTextColumn()) { + if (m_col < 0 || column->getSoundTextColumn()) { // do nothing } else { m_doOnRelease = @@ -1954,7 +2010,8 @@ void ColumnArea::mousePressEvent(QMouseEvent *event) { else if (o->rect(PredefinedRect::PREVIEW_LAYER_AREA) .contains(mouseInCell) && event->button() == Qt::LeftButton) { - if (column->getPaletteColumn() || column->getSoundTextColumn()) { + if (m_col < 0 || column->getPaletteColumn() || + column->getSoundTextColumn()) { // do nothing } else { m_doOnRelease = @@ -1970,8 +2027,8 @@ void ColumnArea::mousePressEvent(QMouseEvent *event) { TXshZeraryFxColumn *zColumn = dynamic_cast(column); - if (zColumn || column->getPaletteColumn() || - column->getSoundTextColumn()) { + if (column && (zColumn || column->getPaletteColumn() || + column->getSoundTextColumn())) { // do nothing } else m_doOnRelease = OpenSettings; @@ -2012,21 +2069,23 @@ void ColumnArea::mousePressEvent(QMouseEvent *event) { setDragTool(XsheetGUI::DragTool::makeColumnSelectionTool(m_viewer)); - // toggle columnIcon visibility with alt+click - TXshLevelColumn *levelColumn = column->getLevelColumn(); - TXshMeshColumn *meshColumn = column->getMeshColumn(); - if (Preferences::instance()->getColumnIconLoadingPolicy() == - Preferences::LoadOnDemand && - (event->modifiers() & Qt::AltModifier)) { - if (levelColumn) - levelColumn->setIconVisible(!levelColumn->isIconVisible()); - else if (meshColumn) - meshColumn->setIconVisible(!meshColumn->isIconVisible()); + if (column) { + // toggle columnIcon visibility with alt+click + TXshLevelColumn *levelColumn = column->getLevelColumn(); + TXshMeshColumn *meshColumn = column->getMeshColumn(); + if (Preferences::instance()->getColumnIconLoadingPolicy() == + Preferences::LoadOnDemand && + (event->modifiers() & Qt::AltModifier)) { + if (levelColumn) + levelColumn->setIconVisible(!levelColumn->isIconVisible()); + else if (meshColumn) + meshColumn->setIconVisible(!meshColumn->isIconVisible()); + } } } // synchronize the current column and the current fx - TApp::instance()->getCurrentFx()->setFx(column->getFx()); - } else if (m_col >= 0) { + if (column) TApp::instance()->getCurrentFx()->setFx(column->getFx()); + } else { if (m_viewer->getColumnSelection()->isColumnSelected(m_col) && event->button() == Qt::RightButton) return; @@ -2163,7 +2222,7 @@ void ColumnArea::mouseReleaseEvent(QMouseEvent *event) { TApp *app = TApp::instance(); TXsheet *xsh = m_viewer->getXsheet(); int col, totcols = xsh->getColumnCount(); - if (m_doOnRelease != 0 && m_col != -1) { + if (m_doOnRelease != 0) { TXshColumn *column = xsh->getColumn(m_col); if (m_doOnRelease == ToggleTransparency) { column->setCamstandVisible(!column->isCamstandVisible()); @@ -2188,7 +2247,10 @@ void ColumnArea::mouseReleaseEvent(QMouseEvent *event) { mouseInCell.y() - configRect.bottom(); // distance from bottum edge of CONFIG button - if (column->getSoundColumn()) { + if (col < 0) { + openCameraColumnPopup( + QPoint(event->globalPos().x() + x, event->globalPos().y() - y)); + } else if (column->getSoundColumn()) { if (!m_soundColumnPopup) m_soundColumnPopup = new SoundColumnPopup(this); @@ -2228,7 +2290,9 @@ void ColumnArea::mouseReleaseEvent(QMouseEvent *event) { app->getCurrentXsheet()->notifyXsheetSoundChanged(); } } else if (m_doOnRelease == ToggleAllLock) { - for (col = 0; col < totcols; col++) { + int startCol = + Preferences::instance()->isXsheetCameraColumnVisible() ? -1 : 0; + for (col = startCol; col < totcols; col++) { TXshColumn *column = xsh->getColumn(col); if (!xsh->isColumnEmpty(col)) { column->lock(!column->isLocked()); @@ -2291,8 +2355,9 @@ void ColumnArea::contextMenuEvent(QContextMenuEvent *event) { const Orientation *o = m_viewer->orientation(); int col = m_viewer->xyToPosition(event->pos()).layer(); - if (col < 0) // CAMERA - return; + + bool isCamera = col < 0; + m_viewer->setCurrentColumn(col); TXsheet *xsh = m_viewer->getXsheet(); QPoint topLeft = m_viewer->positionToXY(CellPosition(0, col)); @@ -2302,7 +2367,7 @@ void ColumnArea::contextMenuEvent(QContextMenuEvent *event) { CommandManager *cmdManager = CommandManager::instance(); //---- Preview - if (!xsh->isColumnEmpty(col) && + if ((isCamera || !xsh->isColumnEmpty(col)) && o->rect(PredefinedRect::EYE_AREA).contains(mouseInCell)) { menu.setObjectName("xsheetColumnAreaMenu_Preview"); @@ -2314,7 +2379,7 @@ void ColumnArea::contextMenuEvent(QContextMenuEvent *event) { menu.addAction(cmdManager->getAction("MI_SwapEnabledColumns")); } //---- Lock - else if (!xsh->isColumnEmpty(col) && + else if ((isCamera || !xsh->isColumnEmpty(col)) && o->rect(PredefinedRect::LOCK_AREA).contains(mouseInCell)) { menu.setObjectName("xsheetColumnAreaMenu_Lock"); @@ -2326,7 +2391,7 @@ void ColumnArea::contextMenuEvent(QContextMenuEvent *event) { menu.addAction(cmdManager->getAction("MI_ToggleColumnLocks")); } //---- Camstand - else if (!xsh->isColumnEmpty(col) && + else if ((isCamera || !xsh->isColumnEmpty(col)) && o->rect(PredefinedRect::PREVIEW_LAYER_AREA).contains(mouseInCell)) { menu.setObjectName("xsheetColumnAreaMenu_Camstand"); @@ -2375,6 +2440,17 @@ void ColumnArea::contextMenuEvent(QContextMenuEvent *event) { } menu.addSeparator(); menu.addAction(cmdManager->getAction(MI_FoldColumns)); + if (Preferences::instance()->isShowKeyframesOnXsheetCellAreaEnabled()) { + QAction *cameraToggle = + cmdManager->getAction(MI_ToggleXsheetCameraColumn); + bool cameraVisible = + Preferences::instance()->isXsheetCameraColumnVisible(); + if (cameraVisible) + cameraToggle->setText(tr("Hide Camera Column")); + else + cameraToggle->setText(tr("Show Camera Column")); + menu.addAction(cameraToggle); + } menu.addSeparator(); menu.addAction(cmdManager->getAction(MI_ToggleXSheetToolbar)); @@ -2458,6 +2534,7 @@ void ColumnArea::onSubSampling(QAction *action) { const set indexes = selection->getIndices(); set::const_iterator it; for (it = indexes.begin(); it != indexes.end(); it++) { + if (*it < 0) continue; // Ignore camera column TXshColumn *column = xsh->getColumn(*it); TXshColumn::ColumnType type = column->getColumnType(); if (type != TXshColumn::eLevelType) continue; diff --git a/toonz/sources/toonz/xshcolumnviewer.h b/toonz/sources/toonz/xshcolumnviewer.h index d006981..3c1bd76 100644 --- a/toonz/sources/toonz/xshcolumnviewer.h +++ b/toonz/sources/toonz/xshcolumnviewer.h @@ -3,6 +3,17 @@ #ifndef XSHCOLUMNVIEWER_H #define XSHCOLUMNVIEWER_H +#include "tapp.h" + +#include "toonz/tstageobject.h" +#include "toonz/txsheethandle.h" +#include "toonz/tscenehandle.h" +#include "toonz/tcolumnhandle.h" +#include "toonz/txsheet.h" + +#include "../include/tundo.h" +#include "../include/historytypes.h" + #include #include #include @@ -149,6 +160,48 @@ protected slots: }; //============================================================================= +// CameraColumnSwitchUndo +//----------------------------------------------------------------------------- +class CameraColumnSwitchUndo final : public TUndo { + int m_oldCameraIndex, m_newCameraIndex; + TXsheetHandle *m_xsheetHandle; + +public: + CameraColumnSwitchUndo(int oldIndex, int newIndex, TXsheetHandle *xshHandle) + : m_oldCameraIndex(oldIndex) + , m_newCameraIndex(newIndex) + , m_xsheetHandle(xshHandle) {} + ~CameraColumnSwitchUndo() {} + + void undo() const override { + m_xsheetHandle->getXsheet()->setCameraColumnIndex(m_oldCameraIndex); + TApp::instance()->getCurrentScene()->notifySceneChanged(); + TApp::instance()->getCurrentXsheet()->notifyXsheetChanged(); + TApp::instance()->getCurrentColumn()->notifyColumnIndexSwitched(); + } + + void redo() const override { + m_xsheetHandle->getXsheet()->setCameraColumnIndex(m_newCameraIndex); + TApp::instance()->getCurrentScene()->notifySceneChanged(); + TApp::instance()->getCurrentXsheet()->notifyXsheetChanged(); + TApp::instance()->getCurrentColumn()->notifyColumnIndexSwitched(); + } + + int getSize() const override { return sizeof(*this); } + + QString getHistoryString() override { + TStageObjectId objId = TStageObjectId::CameraId(m_newCameraIndex); + TStageObject *obj = m_xsheetHandle->getXsheet()->getStageObject(objId); + std::string objName = obj->getName(); + QString str = QObject::tr("Camera Column Switch : ") + + QString::fromStdString(objName); + return str; + } + + int getHistoryType() override { return HistoryType::Xsheet; } +}; + +//============================================================================= // ColumnArea //----------------------------------------------------------------------------- @@ -326,6 +379,9 @@ protected slots: void onSubSampling(QAction *); void openTransparencyPopup(); void openSoundColumnPopup(); + void openCameraColumnPopup(QPoint pos); + void onCameraColumnChangedTriggered(); + void onXsheetCameraChange(int); }; //----------------------------------------------------------------------------- diff --git a/toonz/sources/toonz/xsheetcmd.cpp b/toonz/sources/toonz/xsheetcmd.cpp index 731a532..4f06327 100644 --- a/toonz/sources/toonz/xsheetcmd.cpp +++ b/toonz/sources/toonz/xsheetcmd.cpp @@ -101,7 +101,8 @@ bool isKeyframe(int r, int c) { TXsheet *xsh = TApp::instance()->getCurrentXsheet()->getXsheet(); TStageObjectId objectId = - (c == -1) ? TStageObjectId::CameraId(0) : TStageObjectId::ColumnId(c); + (c == -1) ? TStageObjectId::CameraId(xsh->getCameraColumnIndex()) + : TStageObjectId::ColumnId(c); TStageObject *object = xsh->getStageObject(objectId); assert(object); @@ -160,17 +161,14 @@ void InsertSceneFrameUndo::doInsertSceneFrame(int frame) { for (c = -1; c < colsCount; ++c) { TStageObjectId objectId; - if (c == -1) { -#ifdef LINETEST - objectId = TStageObjectId::CameraId(0); -#else - continue; -#endif - } else + if (c == -1) + objectId = TStageObjectId::CameraId(xsh->getCameraColumnIndex()); + else { objectId = TStageObjectId::ColumnId(c); - xsh->insertCells(frame, c); - xsh->setCell(frame, c, xsh->getCell(frame + 1, c)); + xsh->insertCells(frame, c); + xsh->setCell(frame, c, xsh->getCell(frame + 1, c)); + } if (!xsh->getColumn(c) || xsh->getColumn(c)->isLocked()) continue; @@ -187,16 +185,13 @@ void InsertSceneFrameUndo::doRemoveSceneFrame(int frame) { for (int c = -1; c != xsh->getColumnCount(); ++c) { TStageObjectId objectId; - if (c == -1) { -#ifdef LINETEST - objectId = TStageObjectId::CameraId(0); -#else - continue; -#endif - } else + if (c == -1) + objectId = TStageObjectId::CameraId(xsh->getCameraColumnIndex()); + else { objectId = TStageObjectId::ColumnId(c); - xsh->removeCells(frame, c); + xsh->removeCells(frame, c); + } if (!xsh->getColumn(c) || xsh->getColumn(c)->isLocked()) continue; @@ -258,7 +253,8 @@ public: m_keyframes.resize(colsCount + 1); // Inserting the eventual camera keyframe at the end - TStageObject *cameraObj = xsh->getStageObject(TStageObjectId::CameraId(0)); + TStageObject *cameraObj = xsh->getStageObject( + TStageObjectId::CameraId(xsh->getCameraColumnIndex())); if (cameraObj->isKeyframe(m_frame)) m_keyframes[colsCount] = cameraObj->getKeyframe(m_frame); @@ -285,8 +281,8 @@ public: // Deal with the eventual camera keyframe if (m_keyframes[cellsCount].m_isKeyframe) { - TStageObject *cameraObj = - xsh->getStageObject(TStageObjectId::CameraId(0)); + TStageObject *cameraObj = xsh->getStageObject( + TStageObjectId::CameraId(xsh->getCameraColumnIndex())); cameraObj->setKeyframeWithoutUndo(m_frame, m_keyframes[cellsCount]); } @@ -366,7 +362,9 @@ void GlobalKeyframeUndo::doInsertGlobalKeyframes( TXsheet *xsh = TApp::instance()->getCurrentXsheet()->getXsheet(); int i, colsCount = columns.size(); - for (i = 0; i != colsCount; ++i) { + int startCol = + Preferences::instance()->isXsheetCameraColumnVisible() ? -1 : 0; + for (i = startCol; i != colsCount; ++i) { TStageObjectId objectId; int c = columns[i]; @@ -374,19 +372,14 @@ void GlobalKeyframeUndo::doInsertGlobalKeyframes( TXshColumn *column = xsh->getColumn(c); if (column && column->getSoundColumn()) continue; - if (c == -1) { -#ifdef LINETEST - objectId = TStageObjectId::CameraId(0); -#else - continue; -#endif - } else + if (c == -1) + objectId = TStageObjectId::CameraId(xsh->getCameraColumnIndex()); + else objectId = TStageObjectId::ColumnId(c); TXshColumn *xshColumn = xsh->getColumn(c); - if ((!xshColumn || xshColumn->isLocked() || - xshColumn->isCellEmpty(frame)) && - !objectId.isCamera()) + if (!xshColumn || xshColumn->isLocked() || + (xshColumn->isCellEmpty(frame) && !objectId.isCamera())) continue; TStageObject *obj = xsh->getStageObject(objectId); @@ -401,6 +394,8 @@ void GlobalKeyframeUndo::doRemoveGlobalKeyframes( TXsheet *xsh = TApp::instance()->getCurrentXsheet()->getXsheet(); int i, colsCount = columns.size(); + int startCol = + Preferences::instance()->isXsheetCameraColumnVisible() ? -1 : 0; for (i = 0; i != colsCount; ++i) { TStageObjectId objectId; @@ -409,13 +404,9 @@ void GlobalKeyframeUndo::doRemoveGlobalKeyframes( TXshColumn *column = xsh->getColumn(c); if (column && column->getSoundColumn()) continue; - if (c == -1) { -#ifdef LINETEST - objectId = TStageObjectId::CameraId(0); -#else - continue; -#endif - } else + if (c == -1) + objectId = TStageObjectId::CameraId(xsh->getCameraColumnIndex()); + else objectId = TStageObjectId::ColumnId(c); if (xsh->getColumn(c) && xsh->getColumn(c)->isLocked()) continue; @@ -498,8 +489,9 @@ public: static TStageObject::Keyframe getKeyframe(int r, int c) { TXsheet *xsh = TApp::instance()->getCurrentXsheet()->getXsheet(); - TStageObjectId objectId = (c == -1) ? TStageObjectId::CameraId(0) - : TStageObjectId::ColumnId(c); + TStageObjectId objectId = + (c == -1) ? TStageObjectId::CameraId(xsh->getCameraColumnIndex()) + : TStageObjectId::ColumnId(c); TStageObject *object = xsh->getStageObject(objectId); assert(object); @@ -530,8 +522,9 @@ public: for (c = 0; c != cCount; ++c) { int col = m_columns[c]; - TStageObjectId objectId = (col == -1) ? TStageObjectId::CameraId(0) - : TStageObjectId::ColumnId(col); + TStageObjectId objectId = + (col == -1) ? TStageObjectId::CameraId(xsh->getCameraColumnIndex()) + : TStageObjectId::ColumnId(col); TStageObject *object = xsh->getStageObject(objectId); object->setKeyframeWithoutUndo(m_frame, m_keyframes[c]); @@ -1012,6 +1005,8 @@ static void newNoteLevel() { TTool::Application *app = TTool::getApplication(); TXsheet *xsh = app->getCurrentScene()->getScene()->getXsheet(); int col = TTool::getApplication()->getCurrentColumn()->getColumnIndex(); + if (col < 0) + col = 0; // Normally insert before. In case of camera, insert after TXshSoundTextColumn *textSoundCol = new TXshSoundTextColumn(); textSoundCol->setXsheet(xsh); @@ -1103,11 +1098,8 @@ public: int col; for (col = -1; col < xsh->getColumnCount(); col++) { TStageObjectId objectId; -#ifdef LINETEST - if (col == -1) objectId = TStageObjectId::CameraId(0); -#else - if (col == -1) continue; -#endif + if (col == -1 && Preferences::instance()->isXsheetCameraColumnVisible()) + objectId = TStageObjectId::CameraId(xsh->getCameraColumnIndex()); else objectId = TStageObjectId::ColumnId(col); TStageObject *pegbar = xsh->getStageObject(objectId); @@ -1126,18 +1118,19 @@ public: void execute() override { TApp *app = TApp::instance(); + ToonzScene *scene = app->getCurrentScene()->getScene(); + TXsheet *xsh = scene->getXsheet(); TKeyframeSelection *selection = dynamic_cast( app->getCurrentSelection()->getSelection()); if (!selection) return; int col = app->getCurrentColumn()->getColumnIndex(); TStageObjectId objectId = app->getCurrentObject()->getObjectId(); - if (app->getCurrentObject()->getObjectId() == TStageObjectId::CameraId(0)) { - objectId = TStageObjectId::CameraId(0); + if (app->getCurrentObject()->getObjectId() == + TStageObjectId::CameraId(xsh->getCameraColumnIndex())) { + objectId = TStageObjectId::CameraId(xsh->getCameraColumnIndex()); col = -1; } selection->selectNone(); - ToonzScene *scene = app->getCurrentScene()->getScene(); - TXsheet *xsh = scene->getXsheet(); TStageObject *pegbar = xsh->getStageObject(objectId); TStageObject::KeyframeMap keyframes; pegbar->getKeyframes(keyframes); @@ -1167,11 +1160,8 @@ public: int col; for (col = -1; col < xsh->getColumnCount(); col++) { TStageObjectId objectId; -#ifdef LINETEST - if (col == -1) objectId = TStageObjectId::CameraId(0); -#else - if (col == -1) continue; -#endif + if (col == -1 && Preferences::instance()->isXsheetCameraColumnVisible()) + objectId = TStageObjectId::CameraId(xsh->getCameraColumnIndex()); else objectId = TStageObjectId::ColumnId(col); TStageObject *pegbar = xsh->getStageObject(objectId); @@ -1207,11 +1197,8 @@ public: TXsheet *xsh = scene->getXsheet(); for (int col = -1; col < xsh->getColumnCount(); col++) { TStageObjectId objectId; -#ifdef LINETEST - if (col == -1) objectId = TStageObjectId::CameraId(0); -#else - if (col == -1) continue; -#endif + if (col == -1 && Preferences::instance()->isXsheetCameraColumnVisible()) + objectId = TStageObjectId::CameraId(xsh->getCameraColumnIndex()); else objectId = TStageObjectId::ColumnId(col); TStageObject *pegbar = xsh->getStageObject(objectId); @@ -1249,11 +1236,8 @@ public: int col; for (col = -1; col < xsh->getColumnCount(); col++) { TStageObjectId objectId; -#ifdef LINETEST - if (col == -1) objectId = TStageObjectId::CameraId(0); -#else - if (col == -1) continue; -#endif + if (col == -1 && Preferences::instance()->isXsheetCameraColumnVisible()) + objectId = TStageObjectId::CameraId(xsh->getCameraColumnIndex()); else objectId = TStageObjectId::ColumnId(col); TStageObject *pegbar = xsh->getStageObject(objectId); @@ -1292,9 +1276,9 @@ public: TStageObjectId objectId = TApp::instance()->getCurrentObject()->getObjectId(); -#ifdef LINETEST - if (objectId == TStageObjectId::CameraId(0)) currentColumn = -1; -#endif + if (objectId == TStageObjectId::CameraId(xsh->getCameraColumnIndex()) && + Preferences::instance()->isXsheetCameraColumnVisible()) + currentColumn = -1; TStageObject *pegbar = xsh->getStageObject(objectId); TStageObject::KeyframeMap keyframes; pegbar->getKeyframes(keyframes); @@ -1329,9 +1313,9 @@ public: TXsheet *xsh = scene->getXsheet(); TStageObjectId objectId = TApp::instance()->getCurrentObject()->getObjectId(); -#ifdef LINETEST - if (objectId == TStageObjectId::CameraId(0)) currentColumn = -1; -#endif + if (objectId == TStageObjectId::CameraId(xsh->getCameraColumnIndex()) && + Preferences::instance()->isXsheetCameraColumnVisible()) + currentColumn = -1; TStageObject *pegbar = xsh->getStageObject(objectId); TStageObject::KeyframeMap keyframes; pegbar->getKeyframes(keyframes); @@ -1367,11 +1351,8 @@ public: int col; for (col = -1; col <= currentColumn; col++) { TStageObjectId objectId; -#ifdef LINETEST - if (col == -1) objectId = TStageObjectId::CameraId(0); -#else - if (col == -1) continue; -#endif + if (col == -1 && Preferences::instance()->isXsheetCameraColumnVisible()) + objectId = TStageObjectId::CameraId(xsh->getCameraColumnIndex()); else objectId = TStageObjectId::ColumnId(col); TStageObject *pegbar = xsh->getStageObject(objectId); @@ -1405,20 +1386,21 @@ public: int currentRow = app->getCurrentFrame()->getFrame(); int currentColumn = app->getCurrentColumn()->getColumnIndex(); + ToonzScene *scene = app->getCurrentScene()->getScene(); + TXsheet *xsh = scene->getXsheet(); + TStageObjectId objectId = TApp::instance()->getCurrentObject()->getObjectId(); -#ifdef LINETEST - if (objectId == TStageObjectId::CameraId(0)) currentColumn = -1; -#endif + if (objectId == TStageObjectId::CameraId(xsh->getCameraColumnIndex()) && + Preferences::instance()->isXsheetCameraColumnVisible()) + currentColumn = -1; selection->selectNone(); - ToonzScene *scene = app->getCurrentScene()->getScene(); - TXsheet *xsh = scene->getXsheet(); int col; for (col = currentColumn; col < xsh->getColumnCount(); col++) { TStageObjectId objectId; if (col == -1) - objectId = TStageObjectId::CameraId(0); + objectId = TStageObjectId::CameraId(xsh->getCameraColumnIndex()); else objectId = TStageObjectId::ColumnId(col); TStageObject *pegbar = xsh->getStageObject(objectId); @@ -1454,11 +1436,8 @@ public: int col; for (col = -1; col < xsh->getColumnCount(); col++) { TStageObjectId objectId; -#ifdef LINETEST - if (col == -1) objectId = TStageObjectId::CameraId(0); -#else - if (col == -1) continue; -#endif + if (col == -1 && Preferences::instance()->isXsheetCameraColumnVisible()) + objectId = TStageObjectId::CameraId(xsh->getCameraColumnIndex()); else objectId = TStageObjectId::ColumnId(col); TStageObject *pegbar = xsh->getStageObject(objectId); diff --git a/toonz/sources/toonz/xsheetdragtool.cpp b/toonz/sources/toonz/xsheetdragtool.cpp index 3e1a135..619ac12 100644 --- a/toonz/sources/toonz/xsheetdragtool.cpp +++ b/toonz/sources/toonz/xsheetdragtool.cpp @@ -179,8 +179,10 @@ public: void onDrag(const CellPosition &pos) override { TXsheet *xsh = TApp::instance()->getCurrentXsheet()->getXsheet(); int row = pos.frame(), col = pos.layer(); - if (col < 0 || (!getViewer()->orientation()->isVerticalTimeline() && - col >= xsh->getColumnCount())) + int firstCol = + Preferences::instance()->isXsheetCameraColumnVisible() ? -1 : 0; + if (col < firstCol || (!getViewer()->orientation()->isVerticalTimeline() && + col >= xsh->getColumnCount())) return; if (row < 0) row = 0; if (m_modifier & Qt::ControlModifier) @@ -1163,12 +1165,13 @@ public: void onClick(const CellPosition &pos) override { int row = pos.frame(), col = pos.layer(); - m_r0 = m_r1 = row; - TXsheet *xsh = getViewer()->getXsheet(); - TStageObjectId cameraId = xsh->getStageObjectTree()->getCurrentCameraId(); + m_r0 = m_r1 = row; + TXsheet *xsh = getViewer()->getXsheet(); + TStageObjectId cameraId = + TStageObjectId::CameraId(xsh->getCameraColumnIndex()); TStageObjectId objId = col >= 0 ? TStageObjectId::ColumnId(col) : cameraId; - if (col >= 0 && xsh->getColumn(col) && xsh->getColumn(col)->isLocked()) { + if (xsh->getColumn(col) && xsh->getColumn(col)->isLocked()) { m_enable = false; return; } @@ -1545,8 +1548,10 @@ public: TXsheet *xsh = TApp::instance()->getCurrentXsheet()->getXsheet(); int col = pos.layer(); if (!m_enabled) return; - if (col < 0 || (!getViewer()->orientation()->isVerticalTimeline() && - col >= xsh->getColumnCount())) + int firstCol = + Preferences::instance()->isXsheetCameraColumnVisible() ? -1 : 0; + if (col < firstCol || (!getViewer()->orientation()->isVerticalTimeline() && + col >= xsh->getColumnCount())) return; TColumnSelection *selection = getViewer()->getColumnSelection(); selection->selectNone(); @@ -1678,6 +1683,7 @@ public: TXsheet *xsh = app->getCurrentXsheet()->getXsheet(); std::set indices = selection->getIndices(); + indices.erase(-1); // Ignore camera column if (indices.empty()) return; assert(m_lastCol == *indices.begin()); @@ -1791,12 +1797,12 @@ public: TXsheet *xsh = TApp::instance()->getCurrentXsheet()->getXsheet(); TStageObjectId columnId(getViewer()->getObjectId(m_firstCol)); if (m_firstCol == -1) - columnId = - getViewer()->getXsheet()->getStageObjectTree()->getCurrentCameraId(); + columnId = TStageObjectId::CameraId( + getViewer()->getXsheet()->getCameraColumnIndex()); TStageObjectId parentId(getViewer()->getObjectId(m_lastCol)); if (m_lastCol == -1) - parentId = - getViewer()->getXsheet()->getStageObjectTree()->getCurrentCameraId(); + parentId = TStageObjectId::CameraId( + getViewer()->getXsheet()->getCameraColumnIndex()); if (getViewer()->getXsheet()->getColumn(m_lastCol) && getViewer()->getXsheet()->getColumn(m_lastCol)->getSoundColumn()) return; diff --git a/toonz/sources/toonz/xsheetviewer.cpp b/toonz/sources/toonz/xsheetviewer.cpp index 4f67295..93111d4 100644 --- a/toonz/sources/toonz/xsheetviewer.cpp +++ b/toonz/sources/toonz/xsheetviewer.cpp @@ -285,6 +285,8 @@ XsheetViewer::XsheetViewer(QWidget *parent, Qt::WFlags flags) SLOT(positionSections())); emit orientationChanged(orientation()); + + onPreferenceChanged("XsheetCamera"); } //----------------------------------------------------------------------------- @@ -481,7 +483,8 @@ int XsheetViewer::getCurrentRow() const { //----------------------------------------------------------------------------- TStageObjectId XsheetViewer::getObjectId(int col) const { - if (col < 0) return TStageObjectId::CameraId(0); + TXsheet *xsh = getXsheet(); + if (col < 0) return TStageObjectId::CameraId(xsh->getCameraColumnIndex()); return TStageObjectId::ColumnId(col); } //----------------------------------------------------------------------------- @@ -660,12 +663,15 @@ bool XsheetViewer::refreshContentSize(int dx, int dy) { if (m_orientation->isVerticalTimeline()) contentSize = positionToXY(CellPosition(frameCount + 1, columnCount + 1)); else { - contentSize = positionToXY(CellPosition(frameCount + 1, 0)); + int firstCol = + Preferences::instance()->isXsheetCameraColumnVisible() ? -1 : 0; + contentSize = positionToXY(CellPosition(frameCount + 1, firstCol)); ColumnFan *fan = xsh->getColumnFan(m_orientation); contentSize.setY(contentSize.y() + 1 + - (fan->isActive(0) ? m_orientation->cellHeight() - : m_orientation->foldedCellSize())); + (fan->isActive(firstCol) + ? m_orientation->cellHeight() + : m_orientation->foldedCellSize())); } QSize actualSize(contentSize.x(), contentSize.y()); @@ -711,10 +717,13 @@ void XsheetViewer::updateAreeSize() { areaFilled = positionToXY( CellPosition(xsh->getFrameCount() + 1, xsh->getColumnCount() + 1)); else { - areaFilled = positionToXY(CellPosition(xsh->getFrameCount() + 1, 0)); + int firstCol = + Preferences::instance()->isXsheetCameraColumnVisible() ? -1 : 0; + areaFilled = + positionToXY(CellPosition(xsh->getFrameCount() + 1, firstCol)); ColumnFan *fan = xsh->getColumnFan(m_orientation); - areaFilled.setY(areaFilled.y() + 1 + (fan->isActive(0) + areaFilled.setY(areaFilled.y() + 1 + (fan->isActive(firstCol) ? o->cellHeight() : o->foldedCellSize())); } @@ -808,14 +817,14 @@ QPoint XsheetViewer::positionToXY(const CellPosition &pos) const { // area // since the layers are flipped - usePoint.setY(usePoint.y() + (fan->isActive(pos.layer()) + 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); if (colsHeight) - usePoint.setY(colsHeight - usePoint.y()); + usePoint.setY(colsHeight - usePoint.y() - o->cellHeight()); else usePoint.setY(0); @@ -901,6 +910,7 @@ bool XsheetViewer::areCellsSelectedEmpty() { bool XsheetViewer::areSoundCellsSelected() { int r0, c0, r1, c1; getCellSelection()->getSelectedCells(r0, c0, r1, c1); + if (c0 < 0) return false; int i, j; for (i = r0; i <= r1; i++) for (j = c0; j <= c1; j++) { @@ -916,6 +926,7 @@ bool XsheetViewer::areSoundCellsSelected() { bool XsheetViewer::areSoundTextCellsSelected() { int r0, c0, r1, c1; getCellSelection()->getSelectedCells(r0, c0, r1, c1); + if (c0 < 0) return false; int i, j; for (i = r0; i <= r1; i++) for (j = c0; j <= c1; j++) { @@ -928,6 +939,14 @@ bool XsheetViewer::areSoundTextCellsSelected() { //----------------------------------------------------------------------------- +bool XsheetViewer::areCameraCellsSelected() { + int r0, c0, r1, c1; + getCellSelection()->getSelectedCells(r0, c0, r1, c1); + return c0 < 0; +} + +//----------------------------------------------------------------------------- + void XsheetViewer::setScrubHighlight(int row, int startRow, int col) { if (m_scrubCol == -1) m_scrubCol = col; m_scrubRow0 = std::min(row, startRow); @@ -1176,6 +1195,8 @@ void XsheetViewer::keyPressEvent(QKeyEvent *event) { TCellSelection *cellSel = dynamic_cast(TSelection::getCurrent()); + int firstCol = + Preferences::instance()->isXsheetCameraColumnVisible() ? -1 : 0; // Use arrow keys to shift the cell selection. Ctrl + arrow keys to resize the // selection range. if (Preferences::instance()->isUseArrowKeyToShiftCellSelectionEnabled() && @@ -1186,7 +1207,7 @@ void XsheetViewer::keyPressEvent(QKeyEvent *event) { if (m_cellArea->isControlPressed()) { // resize if (r0 == r1 && shift.frame() < 0) return; - if (c0 == c1 && shift.layer() < 0) return; + if (c0 == c1 && shift.layer() < firstCol) return; cellSel->selectCells(r0, c0, r1 + shift.frame(), c1 + shift.layer()); updateCells(); TApp::instance()->getCurrentSelection()->notifySelectionChanged(); @@ -1194,7 +1215,7 @@ void XsheetViewer::keyPressEvent(QKeyEvent *event) { } else { // shift CellPosition offset(shift * stride); int movedR0 = std::max(0, r0 + offset.frame()); - int movedC0 = std::max(0, c0 + offset.layer()); + int movedC0 = std::max(firstCol, c0 + offset.layer()); int diffFrame = movedR0 - r0; int diffLayer = movedC0 - c0; cellSel->selectCells(r0 + diffFrame, c0 + diffLayer, r1 + diffFrame, @@ -1206,6 +1227,7 @@ void XsheetViewer::keyPressEvent(QKeyEvent *event) { if (shift) { now = now + shift * stride; now.ensureValid(); + if (now.layer() < firstCol) now.setLayer(firstCol); setCurrentRow(now.frame()); setCurrentColumn(now.layer()); return; @@ -1325,6 +1347,8 @@ void XsheetViewer::onPreferenceChanged(const QString &prefName) { if (prefName == "XSheetToolbar") { positionSections(); refreshContentSize(0, 0); + } else if (prefName == "XsheetCamera") { + refreshContentSize(0, 0); } } @@ -1365,7 +1389,7 @@ void XsheetViewer::onCurrentColumnSwitched() { void XsheetViewer::scrollToColumn(int col) { int colNext = col + (m_orientation->isVerticalTimeline() ? 1 : -1); - if (colNext < 0) colNext = 0; + if (colNext < 0) colNext = -1; int x0 = columnToLayerAxis(col); int x1 = columnToLayerAxis(colNext); @@ -1751,12 +1775,12 @@ int XsheetViewer::getFrameZoomAdjustment() { } void XsheetViewer::zoomOnFrame(int frame, int factor) { - QPoint xyOrig = positionToXY(CellPosition(frame, 0)); + QPoint xyOrig = positionToXY(CellPosition(frame, -1)); m_frameZoomFactor = factor; m_layerFooterPanel->setZoomSliderValue(m_frameZoomFactor); - QPoint xyNew = positionToXY(CellPosition(frame, 0)); + QPoint xyNew = positionToXY(CellPosition(frame, -1)); int viewShift = xyNew.x() - xyOrig.x(); diff --git a/toonz/sources/toonz/xsheetviewer.h b/toonz/sources/toonz/xsheetviewer.h index aa2a8fa..1011c56 100644 --- a/toonz/sources/toonz/xsheetviewer.h +++ b/toonz/sources/toonz/xsheetviewer.h @@ -370,6 +370,21 @@ class XsheetViewer final : public QFrame, public SaveLoadQSettings { QColor XsheetDragBarHighlightColor READ getXsheetDragBarHighlightColor WRITE setXsheetDragBarHighlightColor) + // Xsheet Active Camera color + QColor m_ActiveCameraColor; + QColor m_SelectedActiveCameraColor; + Q_PROPERTY(QColor ActiveCameraColor READ getActiveCameraColor WRITE + setActiveCameraColor) + Q_PROPERTY(QColor SelectedActiveCameraColor READ getSelectedActiveCameraColor + WRITE setSelectedActiveCameraColor) + // Xsheet Other Camera color + QColor m_OtherCameraColor; + QColor m_SelectedOtherCameraColor; + Q_PROPERTY(QColor OtherCameraColor READ getOtherCameraColor WRITE + setOtherCameraColor) + Q_PROPERTY(QColor SelectedOtherCameraColor READ getSelectedOtherCameraColor + WRITE setSelectedOtherCameraColor) + // Xsheet Preview Button QColor m_xsheetPreviewButtonBgOnColor; QImage m_xsheetPreviewButtonOnImage; @@ -597,6 +612,7 @@ public: /*! Return true if selection contain only sound cell.*/ bool areSoundCellsSelected(); bool areSoundTextCellsSelected(); + bool areCameraCellsSelected(); XsheetGUI::DragTool *getDragTool() const { return m_dragTool; }; void setDragTool(XsheetGUI::DragTool *dragTool); @@ -915,6 +931,28 @@ public: QColor getXsheetDragBarHighlightColor() const { return m_xsheetDragBarHighlightColor; } + + // Xsheet Active Camera Color + void setActiveCameraColor(const QColor &color) { + m_ActiveCameraColor = color; + } + void setSelectedActiveCameraColor(const QColor &color) { + m_SelectedActiveCameraColor = color; + } + QColor getActiveCameraColor() const { return m_ActiveCameraColor; } + QColor getSelectedActiveCameraColor() const { + return m_SelectedActiveCameraColor; + } + // Xsheet Other Camera Color + void setOtherCameraColor(const QColor &color) { m_OtherCameraColor = color; } + void setSelectedOtherCameraColor(const QColor &color) { + m_SelectedOtherCameraColor = color; + } + QColor getOtherCameraColor() const { return m_OtherCameraColor; } + QColor getSelectedOtherCameraColor() const { + return m_SelectedOtherCameraColor; + } + // Xsheet Preview Button void setXsheetPreviewButtonBgOnColor(const QColor &color) { m_xsheetPreviewButtonBgOnColor = color; diff --git a/toonz/sources/toonz/xshrowviewer.cpp b/toonz/sources/toonz/xshrowviewer.cpp index 30c1541..092fb57 100644 --- a/toonz/sources/toonz/xshrowviewer.cpp +++ b/toonz/sources/toonz/xshrowviewer.cpp @@ -150,8 +150,11 @@ void RowArea::drawRows(QPainter &p, int r0, int r1) { else p.setPen(m_viewer->getTextColor()); - QPoint basePoint = m_viewer->positionToXY(CellPosition(r, 0)); - if (!m_viewer->orientation()->isVerticalTimeline()) basePoint.setY(0); + QPoint basePoint = m_viewer->positionToXY(CellPosition(r, -1)); + if (!m_viewer->orientation()->isVerticalTimeline()) + basePoint.setY(0); + else + basePoint.setX(0); QRect labelRect = m_viewer->orientation() ->rect(PredefinedRect::FRAME_LABEL) .translated(basePoint); @@ -278,8 +281,11 @@ void RowArea::drawPlayRangeBackground(QPainter &p, int r0, int r1) { for (int r = r0; r <= r1; r++) { if (!(playR0 <= r && r <= playR1) && ((r - m_r0) % step == 0)) continue; - QPoint basePoint = m_viewer->positionToXY(CellPosition(r, 0)); - if (!o->isVerticalTimeline()) basePoint.setY(0); + QPoint basePoint = m_viewer->positionToXY(CellPosition(r, -1)); + if (!o->isVerticalTimeline()) + basePoint.setY(0); + else + basePoint.setX(0); QRect previewBoxRect = o->rect(PredefinedRect::PREVIEW_FRAME_AREA) .adjusted(0, 0, -frameAdj, 0) @@ -324,16 +330,22 @@ void RowArea::drawPlayRange(QPainter &p, int r0, int r1) { p.setBrush(QBrush(ArrowColor)); if (m_r0 > r0 - 1 && r1 + 1 > m_r0) { - QPoint topLeft = m_viewer->positionToXY(CellPosition(m_r0, 0)); - if (!m_viewer->orientation()->isVerticalTimeline()) topLeft.setY(0); + QPoint topLeft = m_viewer->positionToXY(CellPosition(m_r0, -1)); + if (!m_viewer->orientation()->isVerticalTimeline()) + topLeft.setY(0); + else + topLeft.setX(0); m_viewer->drawPredefinedPath(p, PredefinedPath::BEGIN_PLAY_RANGE, topLeft, ArrowColor, QColor(Qt::black)); } if (m_r1 > r0 - 1 && r1 + 1 > m_r1) { - QPoint topLeft = m_viewer->positionToXY(CellPosition(m_r1, 0)); + QPoint topLeft = m_viewer->positionToXY(CellPosition(m_r1, -1)); topLeft.setX(topLeft.x() - frameAdj); - if (!m_viewer->orientation()->isVerticalTimeline()) topLeft.setY(0); + if (!m_viewer->orientation()->isVerticalTimeline()) + topLeft.setY(0); + else + topLeft.setX(0); m_viewer->drawPredefinedPath(p, PredefinedPath::END_PLAY_RANGE, topLeft, ArrowColor, QColor(Qt::black)); } @@ -345,8 +357,11 @@ void RowArea::drawCurrentRowGadget(QPainter &p, int r0, int r1) { int currentRow = m_viewer->getCurrentRow(); if (currentRow < r0 || r1 < currentRow) return; - QPoint topLeft = m_viewer->positionToXY(CellPosition(currentRow, 0)); - if (!m_viewer->orientation()->isVerticalTimeline()) topLeft.setY(0); + QPoint topLeft = m_viewer->positionToXY(CellPosition(currentRow, -1)); + if (!m_viewer->orientation()->isVerticalTimeline()) + topLeft.setY(0); + else + topLeft.setX(0); QRect header = m_viewer->orientation() ->rect(PredefinedRect::FRAME_HEADER) .translated(topLeft); @@ -363,8 +378,11 @@ void RowArea::drawOnionSkinBackground(QPainter &p, int r0, int r1) { int frameAdj = m_viewer->getFrameZoomAdjustment(); for (int r = r0; r <= r1; r++) { - QPoint basePoint = m_viewer->positionToXY(CellPosition(r, 0)); - if (!m_viewer->orientation()->isVerticalTimeline()) basePoint.setY(0); + QPoint basePoint = m_viewer->positionToXY(CellPosition(r, -1)); + if (!m_viewer->orientation()->isVerticalTimeline()) + basePoint.setY(0); + else + basePoint.setX(0); QRect oRect = m_viewer->orientation() ->rect(PredefinedRect::ONION_AREA) @@ -461,8 +479,11 @@ void RowArea::drawOnionSkinSelection(QPainter &p) { verticalLine.x2() - 3, verticalLine.y2()); } // Draw onion skin main handle - QPoint handleTopLeft = m_viewer->positionToXY(CellPosition(currentRow, 0)); - if (!m_viewer->orientation()->isVerticalTimeline()) handleTopLeft.setY(0); + QPoint handleTopLeft = m_viewer->positionToXY(CellPosition(currentRow, -1)); + if (!m_viewer->orientation()->isVerticalTimeline()) + handleTopLeft.setY(0); + else + handleTopLeft.setX(0); QRect handleRect = onionRect.translated(handleTopLeft); handleRect.adjust(-frameAdj / 2, 0, -frameAdj / 2, 0); int angle180 = 16 * 180; @@ -487,8 +508,11 @@ void RowArea::drawOnionSkinSelection(QPainter &p) { p.setBrush(mos < 0 ? backDotColor : frontDotColor); else p.setBrush(Qt::NoBrush); - QPoint topLeft = m_viewer->positionToXY(CellPosition(currentRow + mos, 0)); - if (!m_viewer->orientation()->isVerticalTimeline()) topLeft.setY(0); + QPoint topLeft = m_viewer->positionToXY(CellPosition(currentRow + mos, -1)); + if (!m_viewer->orientation()->isVerticalTimeline()) + topLeft.setY(0); + else + topLeft.setX(0); QRect dotRect = m_viewer->orientation() ->rect(PredefinedRect::ONION_DOT) .translated(topLeft); @@ -508,8 +532,11 @@ void RowArea::drawOnionSkinSelection(QPainter &p) { p.setBrush(QBrush(QColor(0, 255, 255, 128))); else p.setBrush(Qt::NoBrush); - QPoint topLeft = m_viewer->positionToXY(CellPosition(fos, 0)); - if (!m_viewer->orientation()->isVerticalTimeline()) topLeft.setY(0); + QPoint topLeft = m_viewer->positionToXY(CellPosition(fos, -1)); + if (!m_viewer->orientation()->isVerticalTimeline()) + topLeft.setY(0); + else + topLeft.setX(0); QRect dotRect = m_viewer->orientation() ->rect(PredefinedRect::ONION_DOT_FIXED) .translated(topLeft); @@ -521,8 +548,11 @@ void RowArea::drawOnionSkinSelection(QPainter &p) { if (m_showOnionToSet != None) { p.setPen(QColor(255, 255, 0)); p.setBrush(QBrush(QColor(255, 255, 0))); - QPoint topLeft = m_viewer->positionToXY(CellPosition(m_row, 0)); - if (!m_viewer->orientation()->isVerticalTimeline()) topLeft.setY(0); + QPoint topLeft = m_viewer->positionToXY(CellPosition(m_row, -1)); + if (!m_viewer->orientation()->isVerticalTimeline()) + topLeft.setY(0); + else + topLeft.setX(0); QRect dotRect = m_viewer->orientation() ->rect(m_showOnionToSet == Fos ? PredefinedRect::ONION_DOT_FIXED @@ -539,8 +569,11 @@ void RowArea::drawCurrentTimeIndicator(QPainter &p) { int frameAdj = m_viewer->getFrameZoomAdjustment(); int currentRow = m_viewer->getCurrentRow(); - QPoint topLeft = m_viewer->positionToXY(CellPosition(currentRow, 0)); - if (!m_viewer->orientation()->isVerticalTimeline()) topLeft.setY(0); + QPoint topLeft = m_viewer->positionToXY(CellPosition(currentRow, -1)); + if (!m_viewer->orientation()->isVerticalTimeline()) + topLeft.setY(0); + else + topLeft.setX(0); QRect header = m_viewer->orientation() ->rect(PredefinedRect::FRAME_HEADER) .adjusted(-frameAdj / 2, 0, -frameAdj / 2, 0) @@ -563,8 +596,11 @@ void RowArea::drawCurrentTimeLine(QPainter &p) { int frameAdj = m_viewer->getFrameZoomAdjustment(); int currentRow = m_viewer->getCurrentRow(); - QPoint topLeft = m_viewer->positionToXY(CellPosition(currentRow, 0)); - if (!m_viewer->orientation()->isVerticalTimeline()) topLeft.setY(0); + QPoint topLeft = m_viewer->positionToXY(CellPosition(currentRow, -1)); + if (!m_viewer->orientation()->isVerticalTimeline()) + topLeft.setY(0); + else + topLeft.setX(0); QRect header = m_viewer->orientation() ->rect(PredefinedRect::FRAME_HEADER) .adjusted(-frameAdj / 2, 0, -frameAdj / 2, 0) @@ -650,8 +686,11 @@ void RowArea::drawShiftTraceMarker(QPainter &p) { p.setPen(colorsVec[i]); p.setBrush(Qt::gray); QPoint topLeft = - m_viewer->positionToXY(CellPosition(currentRow + offsVec[i], 0)); - if (!m_viewer->orientation()->isVerticalTimeline()) topLeft.setY(0); + m_viewer->positionToXY(CellPosition(currentRow + offsVec[i], -1)); + if (!m_viewer->orientation()->isVerticalTimeline()) + topLeft.setY(0); + else + topLeft.setX(0); QRect dotRect = m_viewer->orientation() ->rect(PredefinedRect::SHIFTTRACE_DOT) .translated(topLeft); @@ -667,8 +706,11 @@ void RowArea::drawShiftTraceMarker(QPainter &p) { if (m_showOnionToSet == ShiftTraceGhost) { p.setPen(QColor(255, 255, 0)); p.setBrush(QColor(255, 255, 0, 180)); - QPoint topLeft = m_viewer->positionToXY(CellPosition(m_row, 0)); - if (!m_viewer->orientation()->isVerticalTimeline()) topLeft.setY(0); + QPoint topLeft = m_viewer->positionToXY(CellPosition(m_row, -1)); + if (!m_viewer->orientation()->isVerticalTimeline()) + topLeft.setY(0); + else + topLeft.setX(0); QRect dotRect = m_viewer->orientation() ->rect(PredefinedRect::SHIFTTRACE_DOT) .translated(topLeft); @@ -735,8 +777,11 @@ void RowArea::drawPinnedCenterKeys(QPainter &p, int r0, int r1) { if (tmp_pinnedCol != prev_pinnedCol) { prev_pinnedCol = tmp_pinnedCol; if (r != r0 - 1) { - QPoint topLeft = m_viewer->positionToXY(CellPosition(r, 0)); - if (!m_viewer->orientation()->isVerticalTimeline()) topLeft.setY(0); + QPoint topLeft = m_viewer->positionToXY(CellPosition(r, -1)); + if (!m_viewer->orientation()->isVerticalTimeline()) + topLeft.setY(0); + else + topLeft.setX(0); QPoint mouseInCell = m_pos - topLeft; if (keyRect.contains(mouseInCell)) p.setBrush(QColor(30, 210, 255)); @@ -829,8 +874,11 @@ void RowArea::mousePressEvent(QMouseEvent *event) { int currentFrame = TApp::instance()->getCurrentFrame()->getFrame(); int row = m_viewer->xyToPosition(pos).frame(); - QPoint topLeft = m_viewer->positionToXY(CellPosition(row, 0)); - if (!m_viewer->orientation()->isVerticalTimeline()) topLeft.setY(0); + QPoint topLeft = m_viewer->positionToXY(CellPosition(row, -1)); + if (!m_viewer->orientation()->isVerticalTimeline()) + topLeft.setY(0); + else + topLeft.setX(0); QPoint mouseInCell = event->pos() - topLeft; int frameAdj = m_viewer->getFrameZoomAdjustment(); @@ -978,8 +1026,11 @@ void RowArea::mouseMoveEvent(QMouseEvent *event) { int currentRow = TApp::instance()->getCurrentFrame()->getFrame(); int row = m_viewer->xyToPosition(m_pos).frame(); int frameAdj = m_viewer->getFrameZoomAdjustment(); - QPoint topLeft = m_viewer->positionToXY(CellPosition(row, 0)); - if (!m_viewer->orientation()->isVerticalTimeline()) topLeft.setY(0); + QPoint topLeft = m_viewer->positionToXY(CellPosition(row, -1)); + if (!m_viewer->orientation()->isVerticalTimeline()) + topLeft.setY(0); + else + topLeft.setX(0); QPoint mouseInCell = event->pos() - topLeft; if (row < 0) return; @@ -1054,10 +1105,16 @@ void RowArea::mouseMoveEvent(QMouseEvent *event) { update(); - QPoint base0 = m_viewer->positionToXY(CellPosition(m_r0, 0)); - if (!m_viewer->orientation()->isVerticalTimeline()) base0.setY(0); - QPoint base1 = m_viewer->positionToXY(CellPosition(m_r1, 0)); - if (!m_viewer->orientation()->isVerticalTimeline()) base1.setY(0); + QPoint base0 = m_viewer->positionToXY(CellPosition(m_r0, -1)); + if (!m_viewer->orientation()->isVerticalTimeline()) + base0.setY(0); + else + base0.setX(0); + QPoint base1 = m_viewer->positionToXY(CellPosition(m_r1, -1)); + if (!m_viewer->orientation()->isVerticalTimeline()) + base1.setY(0); + else + base1.setX(0); QPainterPath startArrow = o->path(PredefinedPath::BEGIN_PLAY_RANGE).translated(base0); QPainterPath endArrow = @@ -1186,8 +1243,11 @@ void RowArea::mouseDoubleClickEvent(QMouseEvent *event) { int currentFrame = TApp::instance()->getCurrentFrame()->getFrame(); int row = m_viewer->xyToPosition(event->pos()).frame(); int frameAdj = m_viewer->getFrameZoomAdjustment(); - QPoint topLeft = m_viewer->positionToXY(CellPosition(row, 0)); - if (!m_viewer->orientation()->isVerticalTimeline()) topLeft.setY(0); + QPoint topLeft = m_viewer->positionToXY(CellPosition(row, -1)); + if (!m_viewer->orientation()->isVerticalTimeline()) + topLeft.setY(0); + else + topLeft.setX(0); QPoint mouseInCell = event->pos() - topLeft; if (TApp::instance()->getCurrentFrame()->isEditingScene() && event->buttons() & Qt::LeftButton && diff --git a/toonz/sources/toonzfarm/tfarm/CMakeLists.txt b/toonz/sources/toonzfarm/tfarm/CMakeLists.txt index afcbbed..833c4dc 100644 --- a/toonz/sources/toonzfarm/tfarm/CMakeLists.txt +++ b/toonz/sources/toonzfarm/tfarm/CMakeLists.txt @@ -45,9 +45,9 @@ if(BUILD_ENV_MSVC) ) elseif(BUILD_ENV_APPLE) set(EXTRA_LIBS - ${CMAKE_CURRENT_BINARY_DIR}/../../tnzcore/libtnzcore.dylib - ${CMAKE_CURRENT_BINARY_DIR}/../../tnzbase/libtnzbase.dylib - ${CMAKE_CURRENT_BINARY_DIR}/../../toonzlib/libtoonzlib.dylib + "$" + "$" + "$" ) add_dependencies(tfarm tnzcore tnzbase toonzlib tnzext) elseif(BUILD_ENV_UNIXLIKE) diff --git a/toonz/sources/toonzlib/CMakeLists.txt b/toonz/sources/toonzlib/CMakeLists.txt index e09e470..ca5f21c 100644 --- a/toonz/sources/toonzlib/CMakeLists.txt +++ b/toonz/sources/toonzlib/CMakeLists.txt @@ -361,9 +361,9 @@ if(BUILD_ENV_MSVC) ) elseif(BUILD_ENV_APPLE) set(EXTRA_LIBS - ${CMAKE_CURRENT_BINARY_DIR}/../tnzcore/libtnzcore.dylib - ${CMAKE_CURRENT_BINARY_DIR}/../tnzbase/libtnzbase.dylib - ${CMAKE_CURRENT_BINARY_DIR}/../tnzext/libtnzext.dylib + "$" + "$" + "$" ${USB_LIB} ${MYPAINT_LIB_LDFLAGS} ) diff --git a/toonz/sources/toonzlib/columnfan.cpp b/toonz/sources/toonzlib/columnfan.cpp index 4b24cf3..fd03b10 100644 --- a/toonz/sources/toonzlib/columnfan.cpp +++ b/toonz/sources/toonzlib/columnfan.cpp @@ -1,6 +1,7 @@ #include "toonz/columnfan.h" +#include "toonz/preferences.h" // TnzCore includes #include "tstream.h" @@ -11,7 +12,8 @@ //============================================================================= // ColumnFan -ColumnFan::ColumnFan() : m_firstFreePos(0), m_unfolded(74), m_folded(9) {} +ColumnFan::ColumnFan() + : m_firstFreePos(0), m_unfolded(74), m_folded(9), m_cameraActive(true) {} //----------------------------------------------------------------------------- @@ -51,6 +53,14 @@ void ColumnFan::update() { //----------------------------------------------------------------------------- int ColumnFan::layerAxisToCol(int coord) const { + if (Preferences::instance()->isXsheetCameraColumnVisible()) { + int firstCol = + m_cameraActive + ? m_unfolded + : ((m_columns.size() > 0 && !m_columns[0].m_active) ? 0 : m_folded); + if (coord < firstCol) return -1; + coord -= firstCol; + } if (coord < m_firstFreePos) { std::map::const_iterator it = m_table.lower_bound(coord); if (it == m_table.end()) return -3; @@ -63,17 +73,30 @@ int ColumnFan::layerAxisToCol(int coord) const { //----------------------------------------------------------------------------- int ColumnFan::colToLayerAxis(int col) const { - int m = m_columns.size(); + int m = m_columns.size(); + int firstCol = 0; + if (Preferences::instance()->isXsheetCameraColumnVisible()) { + if (col < -1) return -m_unfolded; + if (col < 0) return 0; + firstCol = + m_cameraActive + ? m_unfolded + : ((m_columns.size() > 0 && !m_columns[0].m_active) ? 0 : m_folded); + } if (col >= 0 && col < m) - return m_columns[col].m_pos; + return firstCol + m_columns[col].m_pos; else - return m_firstFreePos + (col - m) * m_unfolded; + return firstCol + m_firstFreePos + (col - m) * m_unfolded; } //----------------------------------------------------------------------------- void ColumnFan::activate(int col) { int m = m_columns.size(); + if (col < 0) { + m_cameraActive = true; + return; + } if (col < m) { m_columns[col].m_active = true; int i; @@ -91,6 +114,10 @@ void ColumnFan::activate(int col) { //----------------------------------------------------------------------------- void ColumnFan::deactivate(int col) { + if (col < 0) { + m_cameraActive = false; + return; + } while ((int)m_columns.size() <= col) m_columns.push_back(Column()); m_columns[col].m_active = false; update(); @@ -99,8 +126,9 @@ void ColumnFan::deactivate(int col) { //----------------------------------------------------------------------------- bool ColumnFan::isActive(int col) const { - return 0 <= col && col < (int)m_columns.size() ? m_columns[col].m_active - : true; + return 0 <= col && col < (int)m_columns.size() + ? m_columns[col].m_active + : col < 0 ? m_cameraActive : true; } //----------------------------------------------------------------------------- @@ -110,6 +138,7 @@ bool ColumnFan::isEmpty() const { return m_columns.empty(); } //----------------------------------------------------------------------------- void ColumnFan::copyFoldedStateFrom(const ColumnFan &from) { + m_cameraActive = from.m_cameraActive; for (int i = 0, n = (int)from.m_columns.size(); i < n; i++) if (!from.isActive(i)) deactivate(i); } diff --git a/toonz/sources/toonzlib/fxcommand.cpp b/toonz/sources/toonzlib/fxcommand.cpp index b046e03..aab8e07 100644 --- a/toonz/sources/toonzlib/fxcommand.cpp +++ b/toonz/sources/toonzlib/fxcommand.cpp @@ -920,6 +920,9 @@ void TFxCommand::insertFx(TFx *newFx, const QList &fxs, int row) { if (!newFx) return; + if (col < 0) + col = 0; // Normally insert before. In case of camera, insert after + std::unique_ptr undo( new InsertFxUndo(newFx, row, col, fxs, links, app)); if (undo->isConsistent()) { diff --git a/toonz/sources/toonzlib/preferences.cpp b/toonz/sources/toonzlib/preferences.cpp index d1d5cf8..bcda2ce 100644 --- a/toonz/sources/toonzlib/preferences.cpp +++ b/toonz/sources/toonzlib/preferences.cpp @@ -237,7 +237,7 @@ Preferences::Preferences() , m_defLevelWidth(0.0) , m_defLevelHeight(0.0) , m_defLevelDpi(0.0) - , m_iconSize(160, 90) + , m_iconSize(80, 45) , m_blankColor(TPixel32::White) , m_frontOnionColor(TPixel::Black) , m_backOnionColor(TPixel::Black) @@ -250,7 +250,7 @@ Preferences::Preferences() , m_shrink(1) , m_step(1) , m_blanksCount(0) - , m_keyframeType(3) + , m_keyframeType(2) , m_animationStep(1) , m_textureSize(0) , m_xsheetStep(10) @@ -262,11 +262,11 @@ Preferences::Preferences() , m_currentLanguage("English") , m_currentStyleSheet("Default") , m_undoMemorySize(100) - , m_dragCellsBehaviour(0) + , m_dragCellsBehaviour(1) , m_lineTestFpsCapture(25) , m_defLevelType(0) , m_vectorSnappingTarget(SnapAll) - , m_autocreationType(1) + , m_autocreationType(2) , m_autoExposeEnabled(true) , m_autoCreateEnabled(true) , m_subsceneFolderEnabled(true) @@ -295,7 +295,7 @@ Preferences::Preferences() , m_regionAntialias(false) , m_keepFillOnVectorSimplify(true) , m_useHigherDpiOnVectorSimplify(false) - , m_downArrowInLevelStripCreatesNewFrame(false) + , m_downArrowInLevelStripCreatesNewFrame(true) , m_viewerBGColor(128, 128, 128, 255) , m_previewBGColor(64, 64, 64, 255) , m_chessboardColor1(180, 180, 180) @@ -312,22 +312,22 @@ Preferences::Preferences() , m_moveCurrentFrameByClickCellArea(true) , m_onionSkinEnabled(true) , m_onionSkinDuringPlayback(false) - , m_dropdownShortcutsCycleOptions(false) + , m_dropdownShortcutsCycleOptions(true) , m_multiLayerStylePickerEnabled(false) , m_showKeyframesOnXsheetCellArea(true) , m_projectRoot(0x08) , m_customProjectRoot("") , m_precompute(true) , m_fastRenderPath("desktop") - , m_ffmpegTimeout(60) + , m_ffmpegTimeout(600) , m_shortcutPreset("defopentoonz") , m_useNumpadForSwitchingStyles(true) , m_newLevelSizeToCameraSizeEnabled(false) - , m_showXSheetToolbar(false) - , m_syncLevelRenumberWithXsheet(false) + , m_showXSheetToolbar(true) + , m_syncLevelRenumberWithXsheet(true) , m_expandFunctionHeader(false) , m_showColumnNumbers(false) - , m_useArrowKeyToShiftCellSelection(false) + , m_useArrowKeyToShiftCellSelection(true) , m_inputCellsWithoutDoubleClickingEnabled(false) , m_importPolicy(0) , m_guidedDrawingType(0) @@ -346,12 +346,13 @@ Preferences::Preferences() , m_cursorOutlineEnabled(true) , m_currentColumnColor(TPixel::Black) , m_enableWinInk(false) - , m_useOnionColorsForShiftAndTraceGhosts(false) + , m_useOnionColorsForShiftAndTraceGhosts(true) , m_rasterBackgroundColor(TPixel::White) , m_backupKeepCount(1) + , m_showXsheetCameraColumn(true) , m_levelBasedToolsDisplay(0) { TCamera camera; - m_defLevelType = PLI_XSHLEVEL; + m_defLevelType = TZP_XSHLEVEL; m_defLevelWidth = camera.getSize().lx; m_defLevelHeight = camera.getSize().ly; m_defLevelDpi = camera.getDpi().x; @@ -730,6 +731,8 @@ Preferences::Preferences() getValue(*m_settings, "rasterBackgroundColor", m_rasterBackgroundColor); TImageWriter::setBackgroundColor(m_rasterBackgroundColor); + getValue(*m_settings, "showXsheetCameraColumn", m_showXsheetCameraColumn); + getValue(*m_settings, "levelBasedToolsDisplay", m_levelBasedToolsDisplay); } @@ -1786,6 +1789,13 @@ void Preferences::setRasterBackgroundColor(const TPixel32 &color) { QString::number((int)color.m)); } +//----------------------------------------------------------------- + +void Preferences::enableXsheetCameraColumn(bool on) { + m_showXsheetCameraColumn = on; + m_settings->setValue("showXsheetCameraColumn", on ? "1" : "0"); +} + void Preferences::setLevelBasedToolsDisplay(int displayType) { m_levelBasedToolsDisplay = displayType; m_settings->setValue("levelBasedToolsDisplay", displayType); diff --git a/toonz/sources/toonzlib/toonzfolders.cpp b/toonz/sources/toonzlib/toonzfolders.cpp index a9bc0cf..223e527 100644 --- a/toonz/sources/toonzlib/toonzfolders.cpp +++ b/toonz/sources/toonzlib/toonzfolders.cpp @@ -6,6 +6,7 @@ #include "tconvert.h" #include "toonz/preferences.h" #include +#include using namespace TEnv; @@ -23,7 +24,7 @@ TFilePath getDesktopPath() { QStandardPaths::standardLocations(QStandardPaths::DesktopLocation)[0]; return TFilePath(desktopPath); } -} +} // namespace //------------------------------------------------------------------- TFilePath ToonzFolder::getModulesDir() { @@ -107,10 +108,16 @@ TFilePath ToonzFolder::getFxPresetFolder() { } TFilePath ToonzFolder::getCacheRootFolder() { - TFilePath fp = getSystemVarPathValue(getSystemVarPrefix() + "CACHEROOT"); - if (fp == TFilePath()) - fp = getStuffDir() + TEnv::getSystemPathMap().at("CACHEROOT"); - return fp; + static enum STATE { FIRSTTIME, OK, NG } state = FIRSTTIME; + QString cacheDir = + QStandardPaths::writableLocation(QStandardPaths::CacheLocation); + if (state == FIRSTTIME) { + if (QDir(cacheDir).mkpath(".")) + state = OK; + else + state = NG; + } + return (state == OK) ? TFilePath(cacheDir) : TFilePath(); } TFilePath ToonzFolder::getProfileFolder() { diff --git a/toonz/sources/toonzlib/tstageobjectcmd.cpp b/toonz/sources/toonzlib/tstageobjectcmd.cpp index 103fc36..9f843a3 100644 --- a/toonz/sources/toonzlib/tstageobjectcmd.cpp +++ b/toonz/sources/toonzlib/tstageobjectcmd.cpp @@ -792,6 +792,9 @@ void removeStageObjectNode(const TStageObjectId &id, TXsheetHandle *xshHandle, (id.isCamera() && xsh->getStageObjectTree()->getCurrentCameraId() == id)) return; + if (id.isCamera() && xsh->getCameraColumnIndex() == id.getIndex()) + xsh->setCameraColumnIndex(0); + // stacco tutti i figli e li attacco al padre QList linkedObjects; int pegbarsCount = xsh->getStageObjectTree()->getStageObjectCount(); diff --git a/toonz/sources/toonzlib/tstageobjecttree.cpp b/toonz/sources/toonzlib/tstageobjecttree.cpp index e0b02bd..962d548 100644 --- a/toonz/sources/toonzlib/tstageobjecttree.cpp +++ b/toonz/sources/toonzlib/tstageobjecttree.cpp @@ -13,6 +13,8 @@ #include "toonz/txshcell.h" #include "toonz/txsheetexpr.h" +#include "toonz/columnfan.h" +#include "../include/orientation.h" using namespace TSyntax; @@ -372,7 +374,7 @@ void TStageObjectTree::swapColumns(int i, int j) { //----------------------------------------------------------------------------- -void TStageObjectTree::loadData(TIStream &is) { +void TStageObjectTree::loadData(TIStream &is, TXsheet *xsh) { std::string tagName; while (is.matchTag(tagName)) { if (tagName == "splines") { @@ -397,6 +399,13 @@ void TStageObjectTree::loadData(TIStream &is) { else if (id.isCamera() && is.getTagAttribute("activeboth") == "yes") m_imp->m_currentPreviewCameraId = m_imp->m_currentCameraId = id; + if (id.isCamera()) { + if (is.getTagAttribute("columnLocked") == "yes") + xsh->setCameraColumnLocked(true); + if (is.getTagAttribute("columnFolded") == "yes") + xsh->getColumnFan(Orientations::topToBottom())->deactivate(-1); + } + TStageObject *pegbar = dynamic_cast(getStageObject(id, true)); if (!pegbar) @@ -421,7 +430,8 @@ void TStageObjectTree::loadData(TIStream &is) { //----------------------------------------------------------------------------- -void TStageObjectTree::saveData(TOStream &os, int occupiedColumnCount) { +void TStageObjectTree::saveData(TOStream &os, int occupiedColumnCount, + TXsheet *xsh) { std::map::iterator it; std::map &pegbars = m_imp->m_pegbarTable; if (!m_imp->m_splines.empty()) { @@ -449,6 +459,15 @@ void TStageObjectTree::saveData(TOStream &os, int occupiedColumnCount) { else if (objectId == m_imp->m_currentPreviewCameraId) attr["activepreview"] = "yes"; + // Since we don't have a real column and we want the files to open in + // older versions, we'll store column settings on the camera pegbar + if ((objectId == m_imp->m_currentCameraId || + objectId == m_imp->m_currentPreviewCameraId)) { + if (xsh->isCameraColumnLocked()) attr["columnLocked"] = "yes"; + if (!xsh->getColumnFan(Orientations::topToBottom())->isActive(-1)) + attr["columnFolded"] = "yes"; + } + os.openChild("pegbar", attr); pegbar->saveData(os); diff --git a/toonz/sources/toonzlib/txsheet.cpp b/toonz/sources/toonzlib/txsheet.cpp index 72efe2d..e89af0a 100644 --- a/toonz/sources/toonzlib/txsheet.cpp +++ b/toonz/sources/toonzlib/txsheet.cpp @@ -185,12 +185,18 @@ TXsheet::TXsheet() : TSmartObject(m_classCode) , m_player(0) , m_imp(new TXsheet::TXsheetImp) - , m_notes(new TXshNoteSet()) { + , m_notes(new TXshNoteSet()) + , m_cameraColumnIndex(0) { // extern TSyntax::Grammar *createXsheetGrammar(TXsheet*); m_soundProperties = new TXsheet::SoundProperties(); m_imp->m_handleManager = new XshHandleManager(this); m_imp->m_pegTree->setHandleManager(m_imp->m_handleManager); m_imp->m_pegTree->createGrammar(this); + + // Dummy camera column + m_cameraColumn = TXshColumn::createEmpty(0); + m_cameraColumn->m_index = -1; + m_cameraColumn->setXsheet(this); } //----------------------------------------------------------------------------- @@ -338,7 +344,8 @@ bool TXsheet::setCells(int row, int col, int rowCount, const TXshCell cells[]) { else if (levelType == MESH_XSHLEVEL) type = TXshColumn::eMeshType; } - bool wasColumnEmpty = isColumnEmpty(col); + bool wasColumnEmpty = isColumnEmpty(col); + if (col < 0) return false; TXshCellColumn *column = touchColumn(col, type)->getCellColumn(); if (!column) return false; @@ -772,7 +779,7 @@ void TXsheet::increaseStepCells(int r0, int c0, int &r1, int c1) { // controllo se devo cambiare la selezione bool allIncreaseIsEqual = true; for (c = 0; c < ends.size() - 1 && allIncreaseIsEqual; c++) - allIncreaseIsEqual = allIncreaseIsEqual && ends[c] == ends[c + 1]; + allIncreaseIsEqual = allIncreaseIsEqual && ends[c] == ends[c + 1]; if (allIncreaseIsEqual) r1 = ends[0]; } @@ -806,7 +813,7 @@ void TXsheet::decreaseStepCells(int r0, int c0, int &r1, int c1) { // controllo se devo cambiare la selezione bool allDecreaseIsEqual = true; for (c = 0; c < ends.size() - 1 && allDecreaseIsEqual; c++) - allDecreaseIsEqual = allDecreaseIsEqual && ends[c] == ends[c + 1]; + allDecreaseIsEqual = allDecreaseIsEqual && ends[c] == ends[c + 1]; if (allDecreaseIsEqual) r1 = ends[0]; } @@ -1206,7 +1213,7 @@ void TXsheet::loadData(TIStream &is) { } } else if (tagName == "pegbars") { TPersist *p = m_imp->m_pegTree; - is >> *p; + m_imp->m_pegTree->loadData(is, this); } else if (tagName == "fxnodes") { m_imp->m_fxDag->loadData(is); std::vector fxs; @@ -1261,7 +1268,7 @@ void TXsheet::saveData(TOStream &os) { } os.closeChild(); os.openChild("pegbars"); - m_imp->m_pegTree->saveData(os, getFirstFreeColumnIndex()); + m_imp->m_pegTree->saveData(os, getFirstFreeColumnIndex(), this); // os << *(m_imp->m_pegTree); os.closeChild(); @@ -1299,6 +1306,7 @@ void TXsheet::insertColumn(int col, TXshColumn::ColumnType type) { //----------------------------------------------------------------------------- void TXsheet::insertColumn(int col, TXshColumn *column) { + if (col < 0) col = 0; column->setXsheet(this); m_imp->m_columnSet.insertColumn(col, column); m_imp->m_pegTree->insertColumn(col); @@ -1366,6 +1374,7 @@ void TXsheet::moveColumn(int srcIndex, int dstIndex) { //----------------------------------------------------------------------------- TXshColumn *TXsheet::getColumn(int col) const { + if (col < 0) return m_cameraColumn; return m_imp->m_columnSet.getColumn(col).getPointer(); } @@ -1387,7 +1396,7 @@ int TXsheet::getFirstFreeColumnIndex() const { TXshColumn *TXsheet::touchColumn(int index, TXshColumn::ColumnType type) { TXshColumn *column = m_imp->m_columnSet.touchColumn(index, type).getPointer(); - if (!column) return 0; + if (index < 0 || !column) return 0; // NOTE (Daniele): The following && should be a bug... but I fear I'd break // something changing it. diff --git a/toonz/sources/toonzqt/Resources/camera_off.svg b/toonz/sources/toonzqt/Resources/camera_off.svg index c803318..bbf1376 100644 --- a/toonz/sources/toonzqt/Resources/camera_off.svg +++ b/toonz/sources/toonzqt/Resources/camera_off.svg @@ -1,25 +1,7 @@ - - - - - - - - - - - - - - - + + + + + + diff --git a/toonz/sources/toonzqt/Resources/camera_on.svg b/toonz/sources/toonzqt/Resources/camera_on.svg index ee2b627..7c3f1fa 100644 --- a/toonz/sources/toonzqt/Resources/camera_on.svg +++ b/toonz/sources/toonzqt/Resources/camera_on.svg @@ -1,25 +1,7 @@ - - - - - - - - - - - - - - - + + + + + + diff --git a/toonz/sources/toonzqt/colorfield.cpp b/toonz/sources/toonzqt/colorfield.cpp index 407aee8..c37e04e 100644 --- a/toonz/sources/toonzqt/colorfield.cpp +++ b/toonz/sources/toonzqt/colorfield.cpp @@ -70,7 +70,7 @@ StyleSample::~StyleSample() { //----------------------------------------------------------------------------- /*! Return current StyleSample \b TColorStyle style. -*/ + */ TColorStyle *StyleSample::getStyle() const { return m_style; } //----------------------------------------------------------------------------- @@ -116,7 +116,7 @@ void StyleSample::setChessboardColors(const TPixel32 &col1, //----------------------------------------------------------------------------- /*! Paint square color. -*/ + */ void StyleSample::paintEvent(QPaintEvent *event) { if (!isEnable()) return; QPainter painter(this); @@ -225,9 +225,11 @@ ChannelField::ChannelField(QWidget *parent, const QString &string, int value, bool ret = connect(m_channelEdit, SIGNAL(textChanged(const QString &)), SLOT(onEditChanged(const QString &))); - ret = ret && connect(m_channelSlider, SIGNAL(valueChanged(int)), + ret = ret && connect(m_channelEdit, SIGNAL(editingFinished()), + SLOT(onEditFinished())); + ret = ret && connect(m_channelSlider, SIGNAL(valueChanged(int)), SLOT(onSliderChanged(int))); - ret = ret && connect(m_channelSlider, SIGNAL(sliderReleased()), + ret = ret && connect(m_channelSlider, SIGNAL(sliderReleased()), SLOT(onSliderReleased())); assert(ret); } @@ -262,14 +264,20 @@ int ChannelField::getChannel() { emit signal valueChanged(int value). */ void ChannelField::onEditChanged(const QString &str) { - int value = str.toInt(); - if (value < 0) value = 0; + int value = str.toInt(); + if (value < 0) value = 0; if (value > m_maxValue) value = m_maxValue; assert(0 <= value && value <= m_maxValue); if (str.toInt() != value) m_channelEdit->setValue(value); if (m_channelSlider->value() == value) return; m_channelSlider->setValue(value); - emit valueChanged(value, false); + emit valueChanged(value, true); +} + +//----------------------------------------------------------------------------- + +void ChannelField::onEditFinished() { + emit valueChanged(m_channelEdit->getValue(), false); } //----------------------------------------------------------------------------- @@ -422,7 +430,7 @@ void ColorField::setColor(const TPixel32 &color) { //----------------------------------------------------------------------------- /*! Set all \b ChannelField channel value to ColorField current color. -*/ + */ void ColorField::hideChannelsFields(bool hide) { if (hide) { m_redChannel->hide(); @@ -456,7 +464,7 @@ void ColorField::hideChannelsFields(bool hide) { //----------------------------------------------------------------------------- /*! Set all \b ChannelField channel value to ColorField current color. -*/ + */ void ColorField::updateChannels() { m_redChannel->setChannel(m_color.r); m_greenChannel->setChannel(m_color.g); diff --git a/toonz/sources/toonzqt/fxsettings.cpp b/toonz/sources/toonzqt/fxsettings.cpp index 2c2da56..8353809 100644 --- a/toonz/sources/toonzqt/fxsettings.cpp +++ b/toonz/sources/toonzqt/fxsettings.cpp @@ -100,7 +100,7 @@ inputFx); } } */ -} +} // namespace //============================================================================= // ParamViewer @@ -319,11 +319,9 @@ void ParamsPage::setPageField(TIStream &is, const TFxP &fx, bool isVertical) { QString::fromStdWString(TStringTable::translate(paramName1)); QString str2 = QString::fromStdWString(TStringTable::translate(paramName2)); - QString buttonStr = QString("Copy RGB : %1 > %2").arg(str1).arg(str2); - RgbLinkButton *linkBut = new RgbLinkButton(buttonStr, this, ppf1, ppf2); - linkBut->setFixedHeight(21); - connect(linkBut, SIGNAL(clicked()), linkBut, SLOT(onButtonClicked())); + RgbLinkButtons *linkBut = + new RgbLinkButtons(str1, str2, this, ppf1, ppf2); int currentRow = m_mainLayout->rowCount(); m_mainLayout->addWidget(linkBut, currentRow, 1, @@ -577,7 +575,7 @@ QSize getItemSize(QLayoutItem *item) { Histogram *histo = dynamic_cast(item->widget()); if (histo) return QSize(278, 162); - RgbLinkButton *linkBut = dynamic_cast(item->widget()); + RgbLinkButtons *linkBut = dynamic_cast(item->widget()); if (linkBut) return QSize(0, 21); return QSize(); @@ -615,19 +613,19 @@ void updateMaximumPageSize(QGridLayout *layout, int &maxLabelWidth, /*-- Widget側の最適な縦サイズおよび横幅の最大値を得る --*/ for (int r = 0; r < layout->rowCount(); r++) { /*-- Column1にある可能性のあるもの:ParamField, Histogram, Layout, - * RgbLinkButton --*/ + * RgbLinkButtons --*/ QLayoutItem *item = layout->itemAtPosition(r, 1); if (!item) continue; - QSize itemSize = getItemSize(item); + QSize itemSize = getItemSize(item); if (maxWidgetWidth < itemSize.width()) maxWidgetWidth = itemSize.width(); fieldsHeight += itemSize.height(); } if (layout->rowCount() > 1) fieldsHeight += (layout->rowCount() - 1) * 10; } -}; +}; // namespace QSize ParamsPage::getPreferedSize() { int maxLabelWidth = 0; @@ -873,7 +871,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); @@ -1127,7 +1125,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(preferedSizeChanged(QSize)), this, @@ -1276,10 +1274,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); @@ -1339,7 +1337,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/paramfield.cpp b/toonz/sources/toonzqt/paramfield.cpp index 1b746fb..ac6c43b 100644 --- a/toonz/sources/toonzqt/paramfield.cpp +++ b/toonz/sources/toonzqt/paramfield.cpp @@ -27,7 +27,7 @@ using namespace DVGui; //----------------------------------------------------------------------------- /*! FxSettingsに共通のUndo -*/ + */ class FxSettingsUndo : public TUndo { protected: TFxHandle *m_fxHandle; @@ -62,7 +62,7 @@ public: //----------------------------------------------------------------------------- /*! MeasuredDoubleParamField Undo -*/ + */ class MeasuredDoubleParamFieldUndo final : public AnimatableFxSettingsUndo { TDoubleParamP m_param; double m_oldValue, m_newValue; @@ -100,7 +100,7 @@ public: //----------------------------------------------------------------------------- /*! RangeParamField Undo -*/ + */ class RangeParamFieldUndo final : public AnimatableFxSettingsUndo { TRangeParamP m_param; DoublePair m_oldValue, m_newValue; @@ -138,7 +138,7 @@ public: //----------------------------------------------------------------------------- /*! PixelParamField Undo -*/ + */ class PixelParamFieldUndo final : public AnimatableFxSettingsUndo { TPixelParamP m_param; TPixel32 m_oldValue, m_newValue; @@ -176,7 +176,7 @@ public: //----------------------------------------------------------------------------- /*! PointParamField Undo -*/ + */ class PointParamFieldUndo final : public AnimatableFxSettingsUndo { TPointParamP m_param; TPointD m_oldValue, m_newValue; @@ -212,7 +212,7 @@ public: //----------------------------------------------------------------------------- /*! EnumParamField Undo -*/ + */ class EnumParamFieldUndo final : public FxSettingsUndo { TIntEnumParamP m_param; std::string m_oldString, m_newString; @@ -246,7 +246,7 @@ public: //----------------------------------------------------------------------------- /*! IntParamFieldのUndo -*/ + */ class IntParamFieldUndo final : public FxSettingsUndo { TIntParamP m_param; int m_oldValue, m_newValue; @@ -281,7 +281,7 @@ public: //----------------------------------------------------------------------------- /*! BoolParamFieldのUndo -*/ + */ class BoolParamFieldUndo final : public FxSettingsUndo { TBoolParamP m_param; bool m_newState; @@ -314,7 +314,7 @@ public: //----------------------------------------------------------------------------- /*! SpectrumParamFieldのUndo -*/ + */ class SpectrumParamFieldUndo final : public AnimatableFxSettingsUndo { TSpectrumParamP m_param; TSpectrum m_oldSpectrum, m_newSpectrum; @@ -415,7 +415,7 @@ public: //----------------------------------------------------------------------------- /*! StringParamField Undo -*/ + */ class StringParamFieldUndo final : public FxSettingsUndo { TStringParamP m_param; std::wstring m_oldValue, m_newValue; @@ -451,7 +451,7 @@ public: //----------------------------------------------------------------------------- /*! FontParamFieldUndo -*/ + */ class FontParamFieldUndo final : public FxSettingsUndo { TFontParamP m_param; std::wstring m_oldValue, m_newValue; @@ -483,7 +483,7 @@ public: //----------------------------------------------------------------------------- /*! ToneCurveParamField Undo -*/ + */ class ToneCurveParamFieldUndo final : public AnimatableFxSettingsUndo { TToneCurveParamP m_param; QList m_oldPoints, m_newPoints; @@ -583,7 +583,7 @@ public: //----------------------------------------------------------------------------- /*! ToneCurveParamField Undo (Linearのトグル) -*/ + */ class ToneCurveParamFieldToggleLinearUndo final : public FxSettingsUndo { TToneCurveParamP m_actualParam; TToneCurveParamP m_currentParam; @@ -1057,25 +1057,46 @@ TPixel32 PixelParamField::getColor() { return m_colorField->getColor(); } void PixelParamField::setColor(TPixel32 value) { m_colorField->setColor(value); - setValue(value); + onChange(value, false); } //============================================================================= // RGB Link Button //----------------------------------------------------------------------------- -RgbLinkButton::RgbLinkButton(QString str, QWidget *parent, - PixelParamField *field1, PixelParamField *field2) - : QPushButton(str, parent), m_field1(field1), m_field2(field2) {} +RgbLinkButtons::RgbLinkButtons(QString str1, QString str2, QWidget *parent, + PixelParamField *field1, PixelParamField *field2) + : QWidget(parent), m_field1(field1), m_field2(field2) { + QString copyButtonStr = tr("Copy RGB : %1 > %2").arg(str1).arg(str2); + QString swapButtonStr = tr("Swap %1 and %2").arg(str1).arg(str2); + QPushButton *copyButton = new QPushButton(copyButtonStr, this); + QPushButton *swapButton = new QPushButton(swapButtonStr, this); + + copyButton->setFixedHeight(21); + swapButton->setFixedHeight(21); + + QHBoxLayout *lay = new QHBoxLayout(); + lay->setMargin(0); + lay->setSpacing(5); + { + lay->addWidget(copyButton, 0); + lay->addWidget(swapButton, 0); + lay->addStretch(1); + } + setLayout(lay); + + connect(copyButton, SIGNAL(clicked()), this, SLOT(onCopyButtonClicked())); + connect(swapButton, SIGNAL(clicked()), this, SLOT(onSwapButtonClicked())); +} //----------------------------------------------------------------------------- -void RgbLinkButton::onButtonClicked() { +void RgbLinkButtons::onCopyButtonClicked() { if (!m_field1 || !m_field2) return; TPixel32 val1 = m_field1->getColor(); TPixel32 val2 = m_field2->getColor(); - /*-- Alphaは変えない --*/ + // keep alpha channel unchanged val1.m = val2.m; if (val1 == val2) return; @@ -1083,6 +1104,21 @@ void RgbLinkButton::onButtonClicked() { m_field2->setColor(val1); } +//----------------------------------------------------------------------------- + +void RgbLinkButtons::onSwapButtonClicked() { + if (!m_field1 || !m_field2) return; + TPixel32 val1 = m_field1->getColor(); + TPixel32 val2 = m_field2->getColor(); + + if (val1 == val2) return; + + TUndoManager::manager()->beginBlock(); + m_field2->setColor(val1); + m_field1->setColor(val2); + TUndoManager::manager()->endBlock(); +} + //============================================================================= // SpectrumParamField //----------------------------------------------------------------------------- @@ -1440,7 +1476,7 @@ void MyTextEdit::focusOutEvent(QFocusEvent *event) { QTextEdit::focusOutEvent(event); emit edited(); } -}; +}; // namespace component StringParamField::StringParamField(QWidget *parent, QString name, const TStringParamP ¶m) @@ -1476,7 +1512,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; @@ -1698,9 +1734,8 @@ 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());