diff --git a/ArchitectureColoredPainting.sln b/ArchitectureColoredPainting.sln index 7cb4526..73a777c 100644 --- a/ArchitectureColoredPainting.sln +++ b/ArchitectureColoredPainting.sln @@ -14,6 +14,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest", "UnitTest\UnitTe {3FE96A33-2BB7-4686-A710-3EB8E3BBD709} = {3FE96A33-2BB7-4686-A710-3EB8E3BBD709} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "components", "qt-material-widgets\components\components.vcxproj", "{8F360763-A045-3808-87A9-3FAE38E69819}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "examples", "qt-material-widgets\examples\examples.vcxproj", "{2CF18346-77C1-3A0A-B9ED-8B38C828491B}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 @@ -54,6 +58,22 @@ Global {C81742B7-2428-4329-BEA8-01E4B985810A}.Release|x64.Build.0 = Release|x64 {C81742B7-2428-4329-BEA8-01E4B985810A}.Release|x86.ActiveCfg = Release|x64 {C81742B7-2428-4329-BEA8-01E4B985810A}.Release|x86.Build.0 = Release|x64 + {8F360763-A045-3808-87A9-3FAE38E69819}.Debug|x64.ActiveCfg = Debug|x64 + {8F360763-A045-3808-87A9-3FAE38E69819}.Debug|x64.Build.0 = Debug|x64 + {8F360763-A045-3808-87A9-3FAE38E69819}.Debug|x86.ActiveCfg = Debug|x64 + {8F360763-A045-3808-87A9-3FAE38E69819}.Debug|x86.Build.0 = Debug|x64 + {8F360763-A045-3808-87A9-3FAE38E69819}.Release|x64.ActiveCfg = Release|x64 + {8F360763-A045-3808-87A9-3FAE38E69819}.Release|x64.Build.0 = Release|x64 + {8F360763-A045-3808-87A9-3FAE38E69819}.Release|x86.ActiveCfg = Release|x64 + {8F360763-A045-3808-87A9-3FAE38E69819}.Release|x86.Build.0 = Release|x64 + {2CF18346-77C1-3A0A-B9ED-8B38C828491B}.Debug|x64.ActiveCfg = Debug|x64 + {2CF18346-77C1-3A0A-B9ED-8B38C828491B}.Debug|x64.Build.0 = Debug|x64 + {2CF18346-77C1-3A0A-B9ED-8B38C828491B}.Debug|x86.ActiveCfg = Debug|x64 + {2CF18346-77C1-3A0A-B9ED-8B38C828491B}.Debug|x86.Build.0 = Debug|x64 + {2CF18346-77C1-3A0A-B9ED-8B38C828491B}.Release|x64.ActiveCfg = Release|x64 + {2CF18346-77C1-3A0A-B9ED-8B38C828491B}.Release|x64.Build.0 = Release|x64 + {2CF18346-77C1-3A0A-B9ED-8B38C828491B}.Release|x86.ActiveCfg = Release|x64 + {2CF18346-77C1-3A0A-B9ED-8B38C828491B}.Release|x86.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj b/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj index eb014e5..7de0186 100644 --- a/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj +++ b/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj @@ -68,7 +68,7 @@ stdcpp20 - $(ProjectDir)include;$(SolutionDir)ArchitectureColoredPainting\src\Editor\RightBar;$(SolutionDir)ArchitectureColoredPainting\src\Editor\;$(SolutionDir)FramelessHelper\include;$(SolutionDir)FramelessHelper\qmake\inc\core;$(SolutionDir)FramelessHelper\include\FramelessHelper\Core;%(AdditionalIncludeDirectories) + $(ProjectDir)include;$(SolutionDir)ArchitectureColoredPainting\src\Editor\RightBar;$(SolutionDir)ArchitectureColoredPainting\src\Editor\;$(SolutionDir)FramelessHelper\include;$(SolutionDir)FramelessHelper\qmake\inc\core;$(SolutionDir)FramelessHelper\include\FramelessHelper\Core;$(SolutionDir)qt-material-widgets\components;%(AdditionalIncludeDirectories) FRAMELESSHELPER_WIDGETS_STATIC;%(PreprocessorDefinitions) Level1 Speed @@ -104,10 +104,13 @@ + + + @@ -119,9 +122,10 @@ + + - @@ -149,12 +153,11 @@ - - + - + @@ -188,8 +191,11 @@ + + + @@ -200,7 +206,9 @@ + + @@ -213,12 +221,9 @@ - - - - + @@ -239,6 +244,9 @@ {e7a71e05-4aa5-31db-a17d-542fc7bd83a3} + + {8f360763-a045-3808-87a9-3fae38e69819} + diff --git a/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj.filters b/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj.filters index 11b36fe..b24135f 100644 --- a/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj.filters +++ b/ArchitectureColoredPainting/ArchitectureColoredPainting.vcxproj.filters @@ -70,15 +70,15 @@ Form Files - + Form Files - + Form Files - + Source Files\Editor @@ -114,15 +114,6 @@ Source Files - - Source Files - - - Source Files - - - Source Files - Source Files\Renderer\Painting @@ -213,6 +204,21 @@ Source Files\Editor + + Source Files + + + Source Files\Editor + + + Source Files + + + Source Files\Editor\util + + + Source Files + Source Files @@ -221,7 +227,7 @@ Header Files\Renderer - + Header Files\Editor @@ -230,15 +236,6 @@ Header Files - - Header Files - - - Header Files - - - Header Files - Header Files @@ -251,6 +248,18 @@ Header Files + + Header Files + + + Header Files\Editor + + + Header Files + + + Header Files + Header Files @@ -334,7 +343,7 @@ - + Form Files @@ -444,6 +453,9 @@ Header Files\Renderer + + Header Files\Editor\util + Header Files\Editor diff --git a/ArchitectureColoredPainting/EditorWidget.ui b/ArchitectureColoredPainting/EditorWidget.ui index 38ca891..4b7d672 100644 --- a/ArchitectureColoredPainting/EditorWidget.ui +++ b/ArchitectureColoredPainting/EditorWidget.ui @@ -1,108 +1,199 @@ - EditorWidgetClass - + EditorWidget + 0 0 - 1124 - 695 + 1139 + 862 - RendererWidget + Form - - - 0 - + 0 - - 0 - - - 0 - - - - - - - 纹理编辑 + + + 0 + + + + + false + + + + 0 - - Qt::AlignCenter + + 0 + + + 0 + + + 0 - - - - - - - - - - - - - - - - 0 - - - - Layer - - - - - Element - - - - - - - - Qt::CustomContextMenu - - - - - + + + 0 + + + 0 + + + + + + 80 + 40 + + + + + 80 + 16777215 + + + + 新建 + + + + + + + + 80 + 40 + + + + + 80 + 16777215 + + + + 打开 + + + + + + + + 80 + 40 + + + + + 80 + 16777215 + + + + 保存 + + + + + + + + 80 + 40 + + + + + 80 + 16777215 + + + + 另存为 + + + + + + + + 0 + 0 + + + + + 80 + 40 + + + + + 80 + 16777215 + + + + 关闭 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + - - - + + + + + + + 0 + 800 + + + + 0 + + + + Tab 1 + + + + + Tab 2 + + + + + - - - - PreviewWindow - QOpenGLWidget -
PreviewWindow.h
-
- - LayerTreeWidget - QTreeWidget -
LayerTreeWidget.h
-
- - InfoDisplayWidget - QWidget -
InfoDisplayWidget.h
- 1 -
-
diff --git a/ArchitectureColoredPainting/EditorWidgetItem.ui b/ArchitectureColoredPainting/EditorWidgetItem.ui new file mode 100644 index 0000000..93811f0 --- /dev/null +++ b/ArchitectureColoredPainting/EditorWidgetItem.ui @@ -0,0 +1,160 @@ + + + EditorWidgetItem + + + + 0 + 0 + 1124 + 1010 + + + + + 0 + 0 + + + + RendererWidget + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + + + + + + 20 + + + 11 + + + 11 + + + 0 + + + 11 + + + + + + 0 + 0 + + + + 1 + + + + 图层信息 + + + + + 图元池 + + + + + + + + + 0 + 0 + + + + Qt::CustomContextMenu + + + + + + + 图层树 + + + + + + + + + + + + + + + + + + PreviewWindow + QOpenGLWidget +
PreviewWindow.h
+
+ + LayerTreeWidget + QTreeWidget +
LayerTreeWidget.h
+
+ + InfoDisplayWidget + QWidget +
InfoDisplayWidget.h
+ 1 +
+ + ElementPoolWidget + QWidget +
ElementPoolWidget.h
+ 1 +
+
+ + +
diff --git a/ArchitectureColoredPainting/FramelessWindow.ui b/ArchitectureColoredPainting/FramelessWindow.ui deleted file mode 100644 index cf43485..0000000 --- a/ArchitectureColoredPainting/FramelessWindow.ui +++ /dev/null @@ -1,94 +0,0 @@ - - - FramelessWindow - - - - 0 - 0 - 560 - 544 - - - - - - - false - - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - false - - - - - - - 0 - - - 1 - - - 1 - - - 1 - - - 1 - - - - - false - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - - - - - - - - diff --git a/ArchitectureColoredPainting/MainWindow.ui b/ArchitectureColoredPainting/MainWindow.ui index 418a6af..101be92 100644 --- a/ArchitectureColoredPainting/MainWindow.ui +++ b/ArchitectureColoredPainting/MainWindow.ui @@ -40,65 +40,20 @@ 0 - - - 0 - + QLayout::SetDefaultConstraint - - - - - Segoe UI, Microsoft YaHei UI - 10 - 50 - false - false - - - - QTabBar::tab { -height: 0px; -margin-top:0px; -} -QTabWidget::tab-bar -{ - height: 0px; - top:0px; -} -QTabWidget::pane { - border: 0px; - background-color: rgba(0, 0, 0, 0); -} - - - - QTabWidget::North - - - QTabWidget::Rounded - - - 0 - - - Qt::ElideNone - - - false - - - - 纹理编辑 - - - - - 场景渲染 - - + + 0 + + + 0 + + + + + @@ -119,8 +74,6 @@ QTabWidget::pane {
Editor/EditorWidget.h
- - - + diff --git a/ArchitectureColoredPainting/Models/Sponza/Sponza.txt b/ArchitectureColoredPainting/Models/Sponza/Sponza.txt new file mode 100644 index 0000000..abc7a1d --- /dev/null +++ b/ArchitectureColoredPainting/Models/Sponza/Sponza.txt @@ -0,0 +1,2 @@ +17876391417123941155.jpg 0.json 0 0 1 1 +11474523244911310074.jpg 1.json 0 0 1 1 \ No newline at end of file diff --git a/ArchitectureColoredPainting/NavigationBarWidget.ui b/ArchitectureColoredPainting/NavigationBarWidget.ui deleted file mode 100644 index 32061cf..0000000 --- a/ArchitectureColoredPainting/NavigationBarWidget.ui +++ /dev/null @@ -1,100 +0,0 @@ - - - NavigationBarWidgetClass - - - - 0 - 0 - 612 - 41 - - - - - 0 - 0 - - - - - 0 - 40 - - - - - 0 - 0 - - - - NavigationBarWidget - - - QRadioButton::indicator { - width: 0px; - border: 0px; - background-color: rgba(0, 0, 0, 0); -} - - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 0 - 0 - - - - - 0 - 0 - - - - 纹理编辑 - - - true - - - - - - - - 0 - 0 - - - - 场景渲染 - - - true - - - - - - - - - diff --git a/ArchitectureColoredPainting/RendererWidget.ui b/ArchitectureColoredPainting/RendererWidget.ui index e7ae4e5..e116c32 100644 --- a/ArchitectureColoredPainting/RendererWidget.ui +++ b/ArchitectureColoredPainting/RendererWidget.ui @@ -13,7 +13,7 @@ RendererWidget - + 0 @@ -31,25 +31,37 @@ - - QLayout::SetDefaultConstraint + + 6 + + + 5 + + + 5 - + - + 0 0 - 0 - 40 + 50 + 30 + + + + + 50 + 30 - 打开 + 文件 false @@ -71,34 +83,6 @@ - - - - - 0 - 0 - - - - - 0 - 0 - - - - - - 0 - 40 - - - - 打开 - - - - - @@ -180,6 +164,11 @@ QOpenGLWidget
RendererGLWidget.h
+ + QtMaterialFlatButton + QPushButton +
qtmaterialflatbutton.h
+
diff --git a/ArchitectureColoredPainting/res/Shaders/painting.comp b/ArchitectureColoredPainting/res/Shaders/painting.comp index 49af942..ffd0e38 100644 --- a/ArchitectureColoredPainting/res/Shaders/painting.comp +++ b/ArchitectureColoredPainting/res/Shaders/painting.comp @@ -22,8 +22,9 @@ layout(std430, binding = 2) buffer elementOffsetBuffer * @[1] styleOffset * @[2] pointsOffset * @[3] linesOffset + */ - uint elementOffset[][4]; + uint elementOffset[][5]; }; layout(std430, binding = 3) buffer elementIndexBuffer { @@ -961,7 +962,7 @@ void drawLine(in float d, in uint styleIndex, out vec4 elementColor, out vec2 me } } -bool drawElement(uint elementIndex, vec2 localUV, out vec3 color, out vec2 metallicRoughness, inout vec3 debugBVH = vec3(0)) +bool drawElement(uint elementIndex, vec2 localUV, vec2 scale, out vec3 color, out vec2 metallicRoughness, inout vec3 debugBVH = vec3(0)) { bool hitElement = false; vec4 elementColor = vec4(-1); @@ -1053,6 +1054,13 @@ bool drawElement(uint elementIndex, vec2 localUV, out vec3 color, out vec2 metal else // { float strokeWidth = elementData[styleIndex]; + float widthHeightRatio = uintBitsToFloat(currentOffset[4]); + + vec2 size = normalize(vec2(widthHeightRatio, 1)) + vec2(2 * strokeWidth); + vec2 ratio = widthHeightRatio < 1 ? vec2(widthHeightRatio, 1) : vec2(1, 1 / widthHeightRatio); + localUV *= ratio; + + uint contourIndex = linesOffset + leftChild - 0x80000000; float minDistance = 1e38; uint lineCount = elementIndexs[contourIndex]; @@ -1077,6 +1085,11 @@ bool drawElement(uint elementIndex, vec2 localUV, out vec3 color, out vec2 metal elementData[pxIndex[2]], elementData[pyIndex[2]], elementData[pxIndex[3]], elementData[pyIndex[3]]); + p[0] *= ratio; + p[1] *= ratio; + p[2] *= ratio; + p[3] *= ratio; + if(p[0]==p[1]&&p[2]==p[3]) { p[1] = (p[0]+p[3])/2; @@ -1203,7 +1216,8 @@ void main() mat2 rotation = {{cos(angle), -sin(angle)}, {sin(angle), cos(angle)}}; vec2 localUV = uv - (bound.xy + bound.zw) / 2; localUV = rotation * localUV; - localUV /= (bound.zw - bound.xy) / 2; + vec2 scale = (bound.zw - bound.xy) / 2; + localUV /= scale; if (all(lessThan(vec2(-1), localUV)) && all(lessThan(localUV, vec2(1))) && zIndex>color.w) { //if (any(greaterThan(bound.xy+vec2(0.005), uv)) || any(greaterThan(uv, bound.zw-vec2(0.005)))) @@ -1217,7 +1231,7 @@ void main() if(flip.y) localUV.y = -localUV.y; vec3 elementColor; vec2 elementMetallicRoughness; - if(drawElement(leftChild - 0x80000000, localUV, elementColor, elementMetallicRoughness, debugBVH)) + if(drawElement(leftChild - 0x80000000, localUV, scale, elementColor, elementMetallicRoughness, debugBVH)) { color = vec4(elementColor, zIndex); metallicRoughness = elementMetallicRoughness; diff --git a/ArchitectureColoredPainting/src/CaptionButton.cpp b/ArchitectureColoredPainting/src/CaptionButton.cpp deleted file mode 100644 index 833bb82..0000000 --- a/ArchitectureColoredPainting/src/CaptionButton.cpp +++ /dev/null @@ -1,261 +0,0 @@ -/* -The MIT License (MIT) - -Copyright © 2018-2022 Antonio Dias - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#include "CaptionButton.h" - -CaptionButton::CaptionButton(QWidget *parent) : QWidget(parent) -{ - m_is_active = false; - m_is_under_mouse = false; - m_is_pressed = false; - m_icon_dark = false; - - setAttribute(Qt::WA_Hover); -} - -CaptionButton::~CaptionButton() -{ - -} - -QPixmap CaptionButton::drawIcon(const QPixmap &icon, bool active, bool force_light) -{ - QImage tmp = icon.toImage(); - - if (!active) - { - for (int i = 0; i < tmp.height(); i++) - { - for (int j = 0; j < tmp.width(); j++) - { - QColor pixel = QColor::fromRgba(tmp.pixel(j, i)); - - pixel.setRedF(pixel.redF() * 0.5f); - pixel.setGreenF(pixel.greenF() * 0.5f); - pixel.setBlueF(pixel.blueF() * 0.5f); - - tmp.setPixel(j, i, pixel.rgba()); - } - } - } - - if (m_icon_dark && !force_light) - tmp.invertPixels(); - - return QPixmap::fromImage(tmp); -} - -void CaptionButton::init(IconType type) -{ - m_type = type; - - setColors(); - drawIcons(); -} - -void CaptionButton::drawIcons() -{ - switch (m_type) - { - case IconType::Minimize: - { - QPixmap icon = QPixmap(":/images/icon_window_minimize.png"); - - m_active_icon = drawIcon(icon, true); - m_inactive_icon = drawIcon(icon, false); - - break; - } - case IconType::Restore: - { - QPixmap icon = QPixmap(":/images/icon_window_restore.png"); - - m_active_icon = drawIcon(icon, true); - m_inactive_icon = drawIcon(icon, false); - - break; - } - case IconType::Maximize: - { - QPixmap icon = QPixmap(":/images/icon_window_maximize.png"); - - m_active_icon = drawIcon(icon, true); - m_inactive_icon = drawIcon(icon, false); - - break; - } - case IconType::Close: - { - QPixmap icon = QPixmap(":/images/icon_window_close.png"); - - m_active_icon = drawIcon(icon, true); - m_inactive_icon = drawIcon(icon, false); - m_close_icon_hover = drawIcon(icon, true, true); - - break; - } - } -} - -void CaptionButton::setColors() -{ - if (m_icon_dark) - { - if (m_type == IconType::Close) - { - m_normal = QColor("transparent"); - m_hover = QColor("#F00000"); - m_pressed = QColor("#F1707A"); - } - else - { - m_normal = QColor("transparent"); - m_hover = QColor("#E5E5E5"); - m_pressed = QColor("#CACACB"); - } - } - else - { - if (m_type == IconType::Close) - { - m_normal = QColor("transparent"); - m_hover = QColor("#F00000"); - m_pressed = QColor("#F1707A"); - } - else - { - m_normal = QColor("transparent"); - m_hover = QColor("#505050"); - m_pressed = QColor("#3F3F3F"); - } - } - - repaint(); -} - -void CaptionButton::setIconMode(bool icon_dark) -{ - m_icon_dark = icon_dark; - - drawIcons(); - setColors(); - - repaint(); -} - -void CaptionButton::setActive(bool is_active) -{ - m_is_active = is_active; - - repaint(); -} - -void CaptionButton::setState(int state) -{ - switch (state) - { - case QEvent::HoverEnter: - { - m_is_under_mouse = true; - - repaint(); - - break; - } - case QEvent::HoverLeave: - { - m_is_under_mouse = false; - - repaint(); - - break; - } - case QEvent::MouseButtonPress: - { - m_is_pressed = true; - - m_is_under_mouse = true; - - repaint(); - - break; - } - case QEvent::MouseButtonRelease: - { - m_is_pressed = false; - - m_is_under_mouse = false; - - repaint(); - - break; - } - default: - break; - } -} - -void CaptionButton::paintEvent(QPaintEvent *event) -{ - Q_UNUSED(event) - - QPixmap current_icon = m_active_icon; - QColor current_color = m_normal; - - //Change icon if needed - if (m_is_under_mouse) - { - if (m_type == IconType::Close) - current_icon = m_close_icon_hover; - } - else - { - if (!m_is_active) - current_icon = m_inactive_icon; - } - - //Change background color if needed - if (m_is_pressed) - { - if (m_is_under_mouse) - current_color = m_pressed; - } - else - { - if (m_is_under_mouse) - current_color = m_hover; - } - - QPainter painter(this); - painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); - painter.setCompositionMode(QPainter::CompositionMode_SourceOver); - - painter.fillRect(rect(), current_color); - - QRect target_rect; - target_rect = current_icon.rect(); - target_rect.setSize(QSize(16, 16)); - target_rect = QRect(rect().center() - target_rect.center(), target_rect.size()); - painter.drawPixmap(target_rect, current_icon); -} diff --git a/ArchitectureColoredPainting/src/CaptionButton.h b/ArchitectureColoredPainting/src/CaptionButton.h deleted file mode 100644 index e2a3f2b..0000000 --- a/ArchitectureColoredPainting/src/CaptionButton.h +++ /dev/null @@ -1,81 +0,0 @@ -/* -The MIT License (MIT) - -Copyright © 2018-2022 Antonio Dias - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#ifndef CAPTIONBUTTON_H -#define CAPTIONBUTTON_H - -#include -#include -#include - -class CaptionButton : public QWidget -{ - Q_OBJECT -public: - explicit CaptionButton(QWidget *parent = nullptr); - ~CaptionButton(); - - enum class IconType - { - Minimize, - Restore, - Maximize, - Close - }; - - void init(IconType type); - -signals: - void clicked(); - -public slots: - void setIconMode(bool icon_dark); - void setActive(bool is_active); - void setState(int state); - -private: - //Functions - QPixmap drawIcon(const QPixmap &icon, bool active, bool force_light = false); - void setColors(); - void drawIcons(); - void paintEvent(QPaintEvent *event); - - //Variables - QPixmap m_inactive_icon; - QPixmap m_active_icon; - - QPixmap m_close_icon_hover; - - QColor m_normal; - QColor m_hover; - QColor m_pressed; - - IconType m_type; - bool m_is_active; - bool m_is_under_mouse; - bool m_is_pressed; - bool m_icon_dark; -}; - -#endif // CAPTIONBUTTON_H diff --git a/ArchitectureColoredPainting/src/Editor/EditorWidget.cpp b/ArchitectureColoredPainting/src/Editor/EditorWidget.cpp index 81d9f19..2c990de 100644 --- a/ArchitectureColoredPainting/src/Editor/EditorWidget.cpp +++ b/ArchitectureColoredPainting/src/Editor/EditorWidget.cpp @@ -1,62 +1,48 @@ #include "EditorWidget.h" +#include "EditorWidgetItem.h" +#include +#include +#include +#include -EditorWidget::EditorWidget(QWidget *parent) : QWidget(parent) +EditorWidget::EditorWidget(QWidget* parent) : QWidget(parent) { - QImage x; - displayLayer = nullptr; - displayElement = nullptr; - ui.setupUi(this); - previewWindow = ui.Preview; - treeWidget = ui.LayerTree; - tabWidget = ui.DisplayTab; - layerInfoDisplayWidget = dynamic_cast(tabWidget->widget(0)); - elementInfoDisplayWidget = dynamic_cast(tabWidget->widget(1)); - connect(treeWidget, &LayerTreeWidget::displayLayerChange, this, &EditorWidget::onLayerChange); - connect(layerInfoDisplayWidget, &InfoDisplayWidget::requireRefreshPreview, this, - &EditorWidget::triggerRefreshPreview); - connect(treeWidget, &LayerTreeWidget::requireRefreshPreview, this, - &EditorWidget::triggerRefreshPreview); - connect(layerInfoDisplayWidget, &InfoDisplayWidget::requireSelfRefresh, layerInfoDisplayWidget, &InfoDisplayWidget::triggerSelfRefresh); - // &EditorWidget::triggerRefreshPreview); - // test - QFile settingFile; - settingFile.setFileName("../data.json"); - settingFile.open(QFile::ReadOnly); - QByteArray setting = settingFile.readAll().trimmed(); - QJsonParseError jError; - QJsonDocument jsonDoc(QJsonDocument::fromJson(setting, &jError)); - qDebug() << jsonDoc.object().value("height").toDouble(); - qDebug() << jError.errorString(); - // end test - QJsonObject source = jsonDoc.object(); - elementManager = new ElementManager(source,previewWindow->getRenderer()); - layerManager = new LayerManager(source, elementManager); - previewWindow->initialize(layerManager,QSize(jsonDoc.object().value("width").toDouble(),jsonDoc.object().value("height").toDouble())); - if (layerManager->getRoot() != nullptr) - { - treeWidget->root = layerManager->getRoot(); - treeWidget->refresh(); - treeWidget->addTopLevelItem(treeWidget->root->getQTreeItem()); - } + ui.setupUi(this); + this->createButton = ui.createButton; + this->closeButton = ui.closeButton; + this->saveButton = ui.saveButton; + this->saveAsButton = ui.saveAsButton; + this->openButton = ui.openButton; + this->tabWidget = ui.tabWidget; + while (this->tabWidget->count() > 0) + { + this->tabWidget->removeTab(0); + } + connect(this->createButton, &QPushButton::clicked, this, [this]() { + static int count = 0; + this->tabWidget->addTab(new EditorWidgetItem("../data.json",this), "untitled" + QString::number(count++)); + }); + connect(this->openButton, &QPushButton::clicked, this, [this]() { + QString fileName = QFileDialog::getOpenFileName(this->saveAsButton, QString::fromLocal8Bit(""), "", QString::fromLocal8Bit("JSONļ(*.json)")); + this->tabWidget->addTab(new EditorWidgetItem(fileName, this), fileName); + }); + connect(this->closeButton, &QPushButton::clicked, this, [this]() { + this->tabWidget->removeTab(this->tabWidget->currentIndex()); + }); + connect(this->saveButton, &QPushButton::clicked, this, [this]() { + EditorWidgetItem* item = dynamic_cast(this->tabWidget->currentWidget()); + if (item != nullptr) + { + //item->save(); + } + }); + connect(this->saveAsButton, &QPushButton::clicked, this, [this]() { + EditorWidgetItem* item = dynamic_cast(this->tabWidget->currentWidget()); + if (item != nullptr) + { + QString fileName = QFileDialog::getSaveFileName(this->saveAsButton, QString::fromLocal8Bit("Ϊ"), "", QString::fromLocal8Bit("JSONļ(*.json)")); + item->saveAs(fileName); + } + }); } -EditorWidget::~EditorWidget() -{ -} - -void EditorWidget::paintEvent(QPaintEvent *event) -{ -} - -void EditorWidget::onLayerChange(LayerWrapper *layer) -{ - displayLayer = layer; - // TODO : notify InfoDisplayWidget and update - dynamic_cast(tabWidget->widget(0))->setLayer(layer); - this->update(); -} - -void EditorWidget::triggerRefreshPreview() -{ - previewWindow->update(); -} diff --git a/ArchitectureColoredPainting/src/Editor/EditorWidget.h b/ArchitectureColoredPainting/src/Editor/EditorWidget.h index 6c56ded..b0cfe2f 100644 --- a/ArchitectureColoredPainting/src/Editor/EditorWidget.h +++ b/ArchitectureColoredPainting/src/Editor/EditorWidget.h @@ -1,39 +1,23 @@ #pragma once - -#include "ElementManager.h" -#include "InfoDisplayWidget.h" -#include "LayerManager.h" -#include "LayerTreeWidget.h" -#include "PreviewWindow.h" +#include #include "ui_EditorWidget.h" -#include -#include -#include -class EditorWidget : public QWidget +class EditorWidget : + public QWidget { Q_OBJECT - - private: - // DATA PART - PreviewWindow *previewWindow; - ElementManager *elementManager; - LayerManager *layerManager; - // QT GUI PART - Ui::EditorWidgetClass ui; - LayerTreeWidget *treeWidget; - QTabWidget *tabWidget; - InfoDisplayWidget *layerInfoDisplayWidget, *elementInfoDisplayWidget; - // QT DATA PART - LayerWrapper *displayLayer; - GraphicElement *displayElement; - - public: - EditorWidget(QWidget *parent = nullptr); - ~EditorWidget(); - void paintEvent(QPaintEvent *event) override; - - private slots: - void onLayerChange(LayerWrapper *layer); - void triggerRefreshPreview(); +private: + Ui::EditorWidget ui; + QTabWidget* tabWidget; + QPushButton* createButton; + QPushButton* closeButton; + QPushButton* saveButton; + QPushButton* saveAsButton; + QPushButton* openButton; + +public: + EditorWidget(QWidget* parent = nullptr); + ~EditorWidget()=default; + }; + diff --git a/ArchitectureColoredPainting/src/Editor/EditorWidgetComponent/LayerCreateWidget.cpp b/ArchitectureColoredPainting/src/Editor/EditorWidgetComponent/LayerCreateWidget.cpp new file mode 100644 index 0000000..a567453 --- /dev/null +++ b/ArchitectureColoredPainting/src/Editor/EditorWidgetComponent/LayerCreateWidget.cpp @@ -0,0 +1,44 @@ +#include "LayerCreateWidget.h" +#include + +LayerCreateWidget::LayerCreateWidget(ElementManager* elementManager, QWidget* parent) : + QDialog(parent) +{ + ui.setupUi(this); + connect(ui.buttonBox, SIGNAL(accepted()), this, SLOT(accept())); + connect(ui.buttonBox, SIGNAL(rejected()), this, SLOT(reject())); + connect(ui.comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(onCurrentIndexChanged(int))); + elementPool = new ElementPoolWidget(ui.elementPool); + elementPool->setElementList(elementManager->elements); +} + +LayerCreateWidget::~LayerCreateWidget() +{ +} + +void LayerCreateWidget::accept() +{ + QJsonObject jsonObj; + jsonObj.insert("name", ui.name->text()); + if (ui.comboBox->currentIndex() == 0) { + jsonObj.insert("is-folder", false); + jsonObj.insert("element", elementPool->currentIndex); + } + else { + jsonObj.insert("is-folder", true); + jsonObj.insert("children", QJsonArray()); + } + jsonObj.insert("tranform", "{\"offset\":{\"x\":0,\"y\":0},\"scale\":{\"x\":1,\"y\":1},\"rotation\":0}"); + jsonObj.insert("referenced-by", QJsonValue()); + emit LayerInfoReturned(jsonObj); + QDialog::accept(); +} + +void LayerCreateWidget::onCurrentIndexChanged(int index) { + if (index == 0) {// leaf layer + elementPool->setVisible(true); + } + else {// folder layer + elementPool->setVisible(false); + } +} \ No newline at end of file diff --git a/ArchitectureColoredPainting/src/Editor/EditorWidgetComponent/LayerCreateWidget.h b/ArchitectureColoredPainting/src/Editor/EditorWidgetComponent/LayerCreateWidget.h new file mode 100644 index 0000000..c9b7c89 --- /dev/null +++ b/ArchitectureColoredPainting/src/Editor/EditorWidgetComponent/LayerCreateWidget.h @@ -0,0 +1,29 @@ +#pragma once +#include +#include +#include "ElementPoolWidget.h" +#include "ElementManager.h" +#include "ui_LayerCreateWidget.h" + +class LayerCreateWidget : + public QDialog +{ + Q_OBJECT + +private: + Ui::LayerCreateWidget ui; + ElementPoolWidget* elementPool; + + +public: + LayerCreateWidget(ElementManager* elementManager,QWidget* parent = nullptr); + ~LayerCreateWidget(); + void accept() override; + +public slots: + void onCurrentIndexChanged(int index); + +signals: + void LayerInfoReturned(QJsonObject jsonObj); +}; + diff --git a/ArchitectureColoredPainting/src/Editor/EditorWidgetComponent/LayerCreateWidget.ui b/ArchitectureColoredPainting/src/Editor/EditorWidgetComponent/LayerCreateWidget.ui new file mode 100644 index 0000000..345306c --- /dev/null +++ b/ArchitectureColoredPainting/src/Editor/EditorWidgetComponent/LayerCreateWidget.ui @@ -0,0 +1,124 @@ + + + LayerCreateWidget + + + + 0 + 0 + 326 + 355 + + + + Form + + + + + + + + + 90 + 16777215 + + + + 0 + + + 2 + + + 2 + + + QComboBox::NoInsert + + + QComboBox::AdjustToContents + + + + 叶子节点 + + + + + 组合节点 + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 11 + + + 11 + + + + + 图层名: + + + + + + + + + + + + + + + + + + QDialogButtonBox::Close|QDialogButtonBox::Ok + + + false + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + diff --git a/ArchitectureColoredPainting/src/Editor/EditorWidgetItem.cpp b/ArchitectureColoredPainting/src/Editor/EditorWidgetItem.cpp new file mode 100644 index 0000000..deebf88 --- /dev/null +++ b/ArchitectureColoredPainting/src/Editor/EditorWidgetItem.cpp @@ -0,0 +1,98 @@ +#include "EditorWidgetItem.h" + +EditorWidgetItem::EditorWidgetItem(QString filePath,QWidget *parent) : QWidget(parent) +{ + QImage x; + displayLayer = nullptr; + displayElement = nullptr; + ui.setupUi(this); + previewWindow = ui.Preview; + treeWidget = ui.LayerTree; + tabWidget = ui.DisplayTab; + this->filePath = filePath; + layerInfoDisplayWidget = dynamic_cast(tabWidget->widget(0)); + elementInfoDisplayWidget = dynamic_cast(tabWidget->widget(1)); + qDebug() << layerInfoDisplayWidget; + qDebug() << elementInfoDisplayWidget; + connect(treeWidget, &LayerTreeWidget::displayLayerChange, this, &EditorWidgetItem::onLayerChange); + connect(layerInfoDisplayWidget, &InfoDisplayWidget::requireRefreshPreview, this, + &EditorWidgetItem::triggerRefreshPreview); + connect(treeWidget, &LayerTreeWidget::requireRefreshPreview, this, + &EditorWidgetItem::triggerRefreshPreview); + connect(layerInfoDisplayWidget, &InfoDisplayWidget::requireSelfRefresh, layerInfoDisplayWidget, &InfoDisplayWidget::triggerSelfRefresh); + // &EditorWidget::triggerRefreshPreview); + // test + QFile settingFile; + //settingFile.setFileName("../data.json"); + settingFile.setFileName(filePath); + settingFile.open(QFile::ReadOnly); + QByteArray setting = settingFile.readAll().trimmed(); + QJsonParseError jError; + QJsonDocument jsonDoc(QJsonDocument::fromJson(setting, &jError)); + qDebug() << jsonDoc.object().value("height").toDouble(); + qDebug() << jError.errorString(); + // end test + QJsonObject source = jsonDoc.object(); + elementManager = new ElementManager(source,previewWindow->getRenderer()); + layerManager = new LayerManager(source, elementManager); + elementInfoDisplayWidget->setElementManager(elementManager); + treeWidget->elementManager = elementManager; + qDebug() << layerManager->toJson(); + previewWindow->initialize(layerManager,QSize(jsonDoc.object().value("width").toDouble(),jsonDoc.object().value("height").toDouble())); + + + if (layerManager->getRoot() != nullptr) + { + treeWidget->root = layerManager->getRoot(); + treeWidget->refresh(); + treeWidget->addTopLevelItem(treeWidget->root->getQTreeItem()); + } +} + +EditorWidgetItem::~EditorWidgetItem() +{ +} + +void EditorWidgetItem::paintEvent(QPaintEvent *event) +{ + +} + +void EditorWidgetItem::onLayerChange(LayerWrapper *layer) +{ + displayLayer = layer; + // TODO : notify InfoDisplayWidget and update + dynamic_cast(tabWidget->widget(0))->setLayer(layer); + this->update(); +} + +void EditorWidgetItem::triggerRefreshPreview() +{ + previewWindow->update(); +} + +void EditorWidgetItem::save() const +{ + saveImpl(this->filePath); +} + +void EditorWidgetItem::saveAs(QString filePath) const +{ + saveImpl(filePath); +} + +void EditorWidgetItem::saveImpl(QString filePath) const +{ + QJsonObject source1 = layerManager->toJson(); + QJsonObject source2 = elementManager->toJson(); + QJsonObject json; + json.insert("width", 1080); + json.insert("height", 1080); + json.insert("root-layer", source1.value("root-layer")); + json.insert("elements", source2.value("elements")); + QJsonDocument doc(json); + QFile file(filePath); + file.open(QIODevice::WriteOnly); + file.write(doc.toJson()); + file.close(); +} \ No newline at end of file diff --git a/ArchitectureColoredPainting/src/Editor/EditorWidgetItem.h b/ArchitectureColoredPainting/src/Editor/EditorWidgetItem.h new file mode 100644 index 0000000..9fc5be8 --- /dev/null +++ b/ArchitectureColoredPainting/src/Editor/EditorWidgetItem.h @@ -0,0 +1,45 @@ +#pragma once + +#include "ElementManager.h" +#include "ElementPoolWidget.h" +#include "InfoDisplayWidget.h" +#include "LayerManager.h" +#include "LayerTreeWidget.h" +#include "PreviewWindow.h" +#include "ui_EditorWidgetItem.h" +#include +#include +#include + +class EditorWidgetItem : public QWidget +{ + Q_OBJECT + + private: + // DATA PART + PreviewWindow *previewWindow; + ElementManager *elementManager; + LayerManager *layerManager; + // QT GUI PART + Ui::EditorWidgetItem ui; + LayerTreeWidget *treeWidget; + QTabWidget *tabWidget; + InfoDisplayWidget* layerInfoDisplayWidget; + ElementPoolWidget* elementInfoDisplayWidget; + // QT DATA PART + LayerWrapper *displayLayer; + GraphicElement *displayElement; + QString filePath; + void saveImpl(QString filePath)const; + + public: + EditorWidgetItem(QString filePath, QWidget *parent = nullptr); + ~EditorWidgetItem(); + void paintEvent(QPaintEvent *event) override; + void save() const; + void saveAs(QString filePath)const; + + private slots: + void onLayerChange(LayerWrapper *layer); + void triggerRefreshPreview(); +}; diff --git a/ArchitectureColoredPainting/src/Editor/ElementManager.cpp b/ArchitectureColoredPainting/src/Editor/ElementManager.cpp index 78b03b6..0177c31 100644 --- a/ArchitectureColoredPainting/src/Editor/ElementManager.cpp +++ b/ArchitectureColoredPainting/src/Editor/ElementManager.cpp @@ -3,6 +3,7 @@ ElementManager::ElementManager(QJsonObject source,Renderer::ElementRenderer* ren { auto elementsJson = source.value("elements").toArray(); qDebug() << elementsJson.size(); + int index = 0; for (auto elementJson : elementsJson) { if (elementJson.toObject().value("type").toString() == "group") @@ -12,6 +13,8 @@ ElementManager::ElementManager(QJsonObject source,Renderer::ElementRenderer* ren (*elements.rbegin())->renderer = renderer; } + for (auto element : elements) + element->index = index++; } void ElementManager::addElement(GraphicElement *element) @@ -33,3 +36,13 @@ GraphicElement *ElementManager::getElementById(int index) ElementManager::~ElementManager() { } + +QJsonObject ElementManager::toJson() const +{ + QJsonArray elementsJson; + for (auto element : elements) + elementsJson.push_back(element->toJson()); + QJsonObject result; + result.insert("elements", elementsJson); + return result; +} \ No newline at end of file diff --git a/ArchitectureColoredPainting/src/Editor/ElementManager.h b/ArchitectureColoredPainting/src/Editor/ElementManager.h index 3c26f9b..1c76067 100644 --- a/ArchitectureColoredPainting/src/Editor/ElementManager.h +++ b/ArchitectureColoredPainting/src/Editor/ElementManager.h @@ -11,7 +11,7 @@ class Renderer::ElementRenderer; class ElementManager { - private: + public: vector elements; public: @@ -19,6 +19,7 @@ class ElementManager ~ElementManager(); void addElement(GraphicElement *element); void removeElement(GraphicElement *pElement); + QJsonObject toJson()const; /** * only used in initialization */ diff --git a/ArchitectureColoredPainting/src/Editor/ElementPoolWidget.cpp b/ArchitectureColoredPainting/src/Editor/ElementPoolWidget.cpp new file mode 100644 index 0000000..e9d9b82 --- /dev/null +++ b/ArchitectureColoredPainting/src/Editor/ElementPoolWidget.cpp @@ -0,0 +1,81 @@ +#include "ElementPoolWidget.h" + +ElementPoolWidget::ElementPoolWidget(QWidget* parent) + : QWidget(parent) +{ + elementManager = nullptr; + iconWidth = 100, iconHeight = 75; + pictureList = new QListWidget(); + pictureList->setIconSize(QSize(iconWidth, iconHeight)); + pictureList->setWindowFlags(Qt::FramelessWindowHint); + pictureList->setResizeMode(QListWidget::Adjust); + pictureList->setViewMode(QListWidget::IconMode); + pictureList->setMovement(QListWidget::Static); + pictureList->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); + pictureList->setWrapping(true); + pictureList->setSpacing(5); + pictureList->setStyleSheet("QListWidget::Item:hover{background-color: #f5f5f5;border-radius:5px; }" + "QListWidget::item:selected{background-color:rgba(234,234,234,1);color:rgb(61,61,61);border:1px solid #778899;border-radius:2px; }" + "QScrollBar:vertical{width:6px}" + "QListWidget{outline:none;border:0px}"); + pictureList->setFocusPolicy(Qt::NoFocus); + + QLayout* layout = new QHBoxLayout(); + layout->addWidget(pictureList); + setLayout(layout); + //pictureList->setFixedSize(600, 800); + + connect(pictureList, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(pictureItemClicked(QListWidgetItem*))); +} + +void ElementPoolWidget::setElementList(std::vector elements) { + pictureList->clear(); + this->elements = elements; + for (int index = 0; index < elements.size(); index++) { + // + //QString strPath = QString("C:\\Users\\86177\\Pictures\\Screenshots\\test.png"); + //QPixmap itemPixmap(strPath); + //QPixmap itemPixmap(QSize(200, 200)); + //itemPixmap.fill(Qt::red); + QPixmap itemPixmap = elements[index]->getPaintObject().getDetail(); + qDebug() << this->parentWidget()->size(); + //auto p = new QWidget(); + //auto lb = new QLabel(p); + //lb->setPixmap(itemPixmap); + //lb->setFixedSize(1920, 1080); + //p->setFixedSize(1920, 1080); + //lb->show(); + //p->show(); + + QListWidgetItem* pItem = new QListWidgetItem( + itemPixmap.scaled(QSize(iconWidth - 15, iconHeight - 15)), + elements[index]->name); + pItem->setSizeHint(QSize(iconWidth, iconHeight)); + pictureList->insertItem(index, pItem); + } + if(elements.size() > 0) + pictureList->setCurrentRow(0), + currentIndex = 0; +} + +ElementPoolWidget::~ElementPoolWidget() { + +} + +int ElementPoolWidget::pictureItemClicked(QListWidgetItem* item) { + //qDebug() << pictureList->currentRow(); + currentIndex = pictureList->currentRow(); + emit elementSelected(this->elements[pictureList->currentRow()]); + return pictureList->currentRow(); +} + +void ElementPoolWidget::setElementManager(ElementManager* element) +{ + this->elementManager = element; + this->setElementList(this->elementManager->elements); +} + +void ElementPoolWidget::refresh() { + this->setElementList(this->elementManager->elements); + // update(); +} \ No newline at end of file diff --git a/ArchitectureColoredPainting/src/Editor/ElementPoolWidget.h b/ArchitectureColoredPainting/src/Editor/ElementPoolWidget.h new file mode 100644 index 0000000..2a880a7 --- /dev/null +++ b/ArchitectureColoredPainting/src/Editor/ElementPoolWidget.h @@ -0,0 +1,32 @@ +#pragma once +#include +#include +#include +#include +#include +#include + +class ElementPoolWidget : public QWidget +{ + Q_OBJECT +private: + std::vector elements; + QListWidget* pictureList; + int iconWidth, iconHeight; + ElementManager* elementManager; + +public: + int currentIndex = -1; + ElementPoolWidget(QWidget* parent = nullptr); + void setElementList(std::vector elementList); + void setElementManager(ElementManager* element); + ~ElementPoolWidget(); + +signals: + void elementSelected(GraphicElement* element); + +public slots: + int pictureItemClicked(QListWidgetItem* item); + void refresh(); +}; + diff --git a/ArchitectureColoredPainting/src/Editor/GraphicElement.cpp b/ArchitectureColoredPainting/src/Editor/GraphicElement.cpp index 2bfc5aa..0c7bf52 100644 --- a/ArchitectureColoredPainting/src/Editor/GraphicElement.cpp +++ b/ArchitectureColoredPainting/src/Editor/GraphicElement.cpp @@ -46,7 +46,7 @@ PixelPath GroupElement::getPaintObject() const PixelPath SimpleElement::getPaintObject(std::vector>* styles) const { PixelPath result; Renderer::ElementStyleStrokeDemo demo(2); - auto [img, mov] = renderer->drawElement(painterPath, demo, 1.0, false); + auto [img, mov] = renderer->drawElement(painterPath, demo, 1.0); //qDebug() << img << " ------"; result.addImage(img, mov); //result.addPath(painterPath); @@ -76,3 +76,10 @@ PixelPath GroupElement::getPaintObject(std::vector>* // rawPath.addPath(path); // } //} +//TODO : ϸ +QJsonObject GraphicElement::toJson() const +{ + QJsonObject result; + result.insert("name", name); + return result; +} \ No newline at end of file diff --git a/ArchitectureColoredPainting/src/Editor/GraphicElement.h b/ArchitectureColoredPainting/src/Editor/GraphicElement.h index b1a968a..cfad73e 100644 --- a/ArchitectureColoredPainting/src/Editor/GraphicElement.h +++ b/ArchitectureColoredPainting/src/Editor/GraphicElement.h @@ -23,7 +23,9 @@ class GraphicElement public: Renderer::ElementRenderer *renderer; QString name = ""; + int index; // TODO: ΪBitmapPath + virtual QJsonObject toJson() const; virtual PixelPath getPaintObject() const = 0; virtual PixelPath getPaintObject(std::vector>*) const = 0; }; diff --git a/ArchitectureColoredPainting/src/Editor/LayerManager.cpp b/ArchitectureColoredPainting/src/Editor/LayerManager.cpp index 5831180..a9b73b8 100644 --- a/ArchitectureColoredPainting/src/Editor/LayerManager.cpp +++ b/ArchitectureColoredPainting/src/Editor/LayerManager.cpp @@ -62,11 +62,20 @@ bool LayerManager::changeParent(FolderLayerWrapper *newParent) const selectedLayers[0]->setParent(newParent); return true; } + void LayerManager::addLayer(LayerWrapper *layer) { layerSet.insert(layer); } + void LayerManager::removeLayer(LayerWrapper *layer) { layerSet.erase(layer); } + +QJsonObject LayerManager::toJson() const +{ + QJsonObject result; + result.insert("root-layer", root->toJson()); + return result; +} \ No newline at end of file diff --git a/ArchitectureColoredPainting/src/Editor/LayerManager.h b/ArchitectureColoredPainting/src/Editor/LayerManager.h index b484047..390cfed 100644 --- a/ArchitectureColoredPainting/src/Editor/LayerManager.h +++ b/ArchitectureColoredPainting/src/Editor/LayerManager.h @@ -31,6 +31,7 @@ class LayerManager LayerWrapper *getRoot() const; LayerManager() = default; LayerManager(QJsonObject source, ElementManager* elementManager); + QJsonObject toJson() const; void paint(QPainter *painter, QSize size) const; bool rename(QString newName) const; bool combine() const; diff --git a/ArchitectureColoredPainting/src/Editor/LayerWrapper.cpp b/ArchitectureColoredPainting/src/Editor/LayerWrapper.cpp index 3f0f6a5..9135744 100644 --- a/ArchitectureColoredPainting/src/Editor/LayerWrapper.cpp +++ b/ArchitectureColoredPainting/src/Editor/LayerWrapper.cpp @@ -53,6 +53,7 @@ FolderLayerWrapper::FolderLayerWrapper(QJsonObject json, ElementManager *element auto p = reinterpret_cast(elementManager->getElementById(referencedJson.toInt())); if (p != nullptr) p->setSourceLayer(this); + this->referencedBy = referencedJson.toInt(); } for (auto childJson : childrenJson) { @@ -95,7 +96,6 @@ void FolderLayerWrapper::refresh() { cache.clear(); for (auto& child : children) { - qDebug() << child.get(); cache.addPath(child.get()->getCache()); } LayerWrapper::refresh(); @@ -181,3 +181,40 @@ QTreeWidgetItem* FolderLayerWrapper::getQTreeItem() } return LayerWrapper::getQTreeItem(); } + +//TODO: add effects + +QJsonObject LayerWrapper::toJson() const +{ + QJsonObject json; + json.insert("name", property.name); + QJsonObject transformJson; + transformJson.insert("offset", QJsonObject({ {"x", property.offset.x()}, {"y", property.offset.y()} })); + transformJson.insert("scale", QJsonObject({ {"x", property.scale.x()}, {"y", property.scale.y()} })); + transformJson.insert("rotation", property.rotation); + json.insert("transform", transformJson); + return json; +} + +QJsonObject FolderLayerWrapper::toJson() const +{ + QJsonObject json = LayerWrapper::toJson(); + QJsonArray childrenJson; + for (auto& child : children) + childrenJson.push_back(child->toJson()); + json.insert("children", childrenJson); + json.insert("is-folder", true); + if(this->referencedBy != -1) + json.insert("referenced-by", this->referencedBy); + else + json.insert("referenced-by", QJsonValue()); + return json; +} + +QJsonObject LeafLayerWrapper::toJson() const +{ + QJsonObject json = LayerWrapper::toJson(); + json.insert("element", wrappedElement->index); + json.insert("is-folder", false); + return json; +} \ No newline at end of file diff --git a/ArchitectureColoredPainting/src/Editor/LayerWrapper.h b/ArchitectureColoredPainting/src/Editor/LayerWrapper.h index bbce701..08f0c9b 100644 --- a/ArchitectureColoredPainting/src/Editor/LayerWrapper.h +++ b/ArchitectureColoredPainting/src/Editor/LayerWrapper.h @@ -60,13 +60,16 @@ class LayerWrapper // virtual void deleteAll() const = 0; virtual void del(); virtual void delSelf(); + virtual QJsonObject toJson() const; ~LayerWrapper() = default; + }; class FolderLayerWrapper : public LayerWrapper { public: vector> children; + int referencedBy = -1; public: @@ -80,6 +83,7 @@ class FolderLayerWrapper : public LayerWrapper void del() override; void delSelf() override; QTreeWidgetItem* getQTreeItem() override; + QJsonObject toJson() const override; }; class LeafLayerWrapper : public LayerWrapper @@ -94,6 +98,7 @@ class LeafLayerWrapper : public LayerWrapper void refresh() override; LeafLayerWrapper() = default; LeafLayerWrapper(QJsonObject json, ElementManager *elementManager, FolderLayerWrapper*parent); + QJsonObject toJson() const override; }; Q_DECLARE_METATYPE(LayerWrapper *) diff --git a/ArchitectureColoredPainting/src/Editor/PixelPath.cpp b/ArchitectureColoredPainting/src/Editor/PixelPath.cpp index 936b280..2d710e1 100644 --- a/ArchitectureColoredPainting/src/Editor/PixelPath.cpp +++ b/ArchitectureColoredPainting/src/Editor/PixelPath.cpp @@ -84,4 +84,15 @@ QPixmap PixelPath::resizedPixel(QSize size)const painter.setRenderHint(QPainter::HighQualityAntialiasing); painter.drawPixmap(0, 0, pixmap.scaled(size, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); return result; +} + +QPixmap PixelPath::getDetail()const +{ + QPixmap result; + auto rect = boundingRect.toRect(); + rect.setHeight(rect.height() + 20); + rect.setWidth(rect.width() + 20); + qDebug() << rect; + result = pixmap.copy(rect); + return result; } \ No newline at end of file diff --git a/ArchitectureColoredPainting/src/Editor/PixelPath.h b/ArchitectureColoredPainting/src/Editor/PixelPath.h index 785887c..be80950 100644 --- a/ArchitectureColoredPainting/src/Editor/PixelPath.h +++ b/ArchitectureColoredPainting/src/Editor/PixelPath.h @@ -23,4 +23,5 @@ public: void clear(); PixelPath trans(QTransform& mat)const; QPixmap resizedPixel(QSize size)const; + QPixmap getDetail()const; }; \ No newline at end of file diff --git a/ArchitectureColoredPainting/src/Editor/PreviewWindow.cpp b/ArchitectureColoredPainting/src/Editor/PreviewWindow.cpp index 53e894c..0db3c48 100644 --- a/ArchitectureColoredPainting/src/Editor/PreviewWindow.cpp +++ b/ArchitectureColoredPainting/src/Editor/PreviewWindow.cpp @@ -2,7 +2,7 @@ PreviewWindow::PreviewWindow(QWidget *parent) : QOpenGLWidget(parent) { - this->renderer = new Renderer::ElementRenderer(this); + this->renderer = Renderer::ElementRenderer::instance(); QSurfaceFormat surfaceFormat; surfaceFormat.setSamples(16); setFormat(surfaceFormat); @@ -36,7 +36,6 @@ void PreviewWindow::show() void PreviewWindow::initializeGL() { - this->renderer->initialize(); initializeOpenGLFunctions(); } diff --git a/ArchitectureColoredPainting/src/Editor/RightBar/InfoDisplayWidget.cpp b/ArchitectureColoredPainting/src/Editor/RightBar/InfoDisplayWidget.cpp index 30c46ee..7f0e3b3 100644 --- a/ArchitectureColoredPainting/src/Editor/RightBar/InfoDisplayWidget.cpp +++ b/ArchitectureColoredPainting/src/Editor/RightBar/InfoDisplayWidget.cpp @@ -13,17 +13,13 @@ void InfoDisplayWidget::setLayer(LayerWrapper *layer) this->displayLayer = layer; generateLayerForm(); } -void InfoDisplayWidget::setElement(GraphicElement *element) -{ - this->displayElement = element; - generateElementForm(); -} + void InfoDisplayWidget::generateLayerForm() { QLayoutItem *item; if (this->layout() != nullptr) { - while ((item = this->layout()->takeAt(0)) != nullptr) + while (this->layout()->count() > 0 && (item = this->layout()->takeAt(0)) != nullptr) { delete item->widget(); delete item; @@ -211,15 +207,8 @@ void InfoDisplayWidget::generateLayerForm() this->setLayout(layout); } - -void InfoDisplayWidget::generateElementForm() -{ -} - void InfoDisplayWidget::triggerSelfRefresh() { if (this->displayLayer != nullptr) this->generateLayerForm(); - else - this->generateElementForm(); } \ No newline at end of file diff --git a/ArchitectureColoredPainting/src/Editor/RightBar/InfoDisplayWidget.h b/ArchitectureColoredPainting/src/Editor/RightBar/InfoDisplayWidget.h index 5426425..11f642b 100644 --- a/ArchitectureColoredPainting/src/Editor/RightBar/InfoDisplayWidget.h +++ b/ArchitectureColoredPainting/src/Editor/RightBar/InfoDisplayWidget.h @@ -4,19 +4,18 @@ #include #include #include +#include "ElementPoolWidget.h" class InfoDisplayWidget : public QWidget { Q_OBJECT private: LayerWrapper *displayLayer; - GraphicElement *displayElement; + public: void setLayer(LayerWrapper *layer); - void setElement(GraphicElement *element); void generateLayerForm(); - void generateElementForm(); public slots: void triggerSelfRefresh(); diff --git a/ArchitectureColoredPainting/src/Editor/RightBar/LayerTreeWidget.cpp b/ArchitectureColoredPainting/src/Editor/RightBar/LayerTreeWidget.cpp index 7ee7083..1d7cee7 100644 --- a/ArchitectureColoredPainting/src/Editor/RightBar/LayerTreeWidget.cpp +++ b/ArchitectureColoredPainting/src/Editor/RightBar/LayerTreeWidget.cpp @@ -1,6 +1,8 @@ #include "LayerTreeWidget.h" #include #include +#include "./EditorWidgetComponent/LayerCreateWidget.h" + LayerTreeWidget::LayerTreeWidget(QWidget *parent) { emit displayLayerChange(nullptr); @@ -35,27 +37,47 @@ void LayerTreeWidget::popMenu(const QPoint &pos) QMenu menu; QTreeWidgetItem *item = itemAt(pos); this->selectedItem = item; - // TODO - menu.addAction(QString::fromLocal8Bit("ӽڵ"), this, &LayerTreeWidget::onRenameEvent); - menu.addAction(QString::fromLocal8Bit(""), this, &LayerTreeWidget::onRenameEvent); - // menu.addAction("Copy", this, &LayerTreeWidget::onRenameEvent); - if (item != nullptr && item->childCount() > 0) - menu.addAction(QString::fromLocal8Bit("ɾӽڵ㣩"), this, [this]() { - auto layer = this->selectedItem->data(0, Qt::UserRole).value(); + if (item != nullptr) { + auto layer = this->selectedItem->data(0, Qt::UserRole).value(); + if (layer != nullptr) { + if (typeid(*layer) == typeid(FolderLayerWrapper)) { + menu.addAction(QString::fromLocal8Bit("ӽڵ"), this, [this, layer]() { + auto dialog = new LayerCreateWidget(elementManager, this); + connect(dialog, &LayerCreateWidget::LayerInfoReturned, this, [this, layer](QJsonObject jsonObj) { + auto folderLayer = dynamic_cast(layer); + LayerWrapper* newLayer; + if(jsonObj.value("is-folder").toBool()) + newLayer = new FolderLayerWrapper(jsonObj, this->elementManager, folderLayer); + else + newLayer = new LeafLayerWrapper(jsonObj, this->elementManager, folderLayer); + folderLayer->addChild(std::shared_ptr(newLayer)); + folderLayer->qTreeWidgetItem.addChild(newLayer->getQTreeItem()); + qDebug() << jsonObj<<"----------------------"; + this->refresh(); + emit requireRefreshPreview(); + }); + dialog->exec(); + }); + menu.addAction(QString::fromLocal8Bit("ɾӽڵ㣩"), this, [this]() { + auto layer = this->selectedItem->data(0, Qt::UserRole).value(); layer->delSelf(); layer->getParent()->removeChild(layer); this->refresh(); emit requireRefreshPreview(); - }); - menu.addAction(QString::fromLocal8Bit("ɾ"), this, [this]() { - if (this->selectedItem == nullptr) - return; - auto layer = this->selectedItem->data(0, Qt::UserRole).value(); - layer->del(); - layer->getParent()->removeChild(layer); - this->refresh(); - emit requireRefreshPreview(); - }); + }); + } + if (layer != root) { + menu.addAction(QString::fromLocal8Bit("ɾ"), this, [this]() { + auto layer = this->selectedItem->data(0, Qt::UserRole).value(); + layer->del(); + layer->getParent()->removeChild(layer); + this->refresh(); + emit requireRefreshPreview(); + }); + menu.addAction(QString::fromLocal8Bit(""), this, &LayerTreeWidget::onRenameEvent); + } + } + } menu.exec(mapToGlobal(pos)); } diff --git a/ArchitectureColoredPainting/src/Editor/RightBar/LayerTreeWidget.h b/ArchitectureColoredPainting/src/Editor/RightBar/LayerTreeWidget.h index e935371..9c2f574 100644 --- a/ArchitectureColoredPainting/src/Editor/RightBar/LayerTreeWidget.h +++ b/ArchitectureColoredPainting/src/Editor/RightBar/LayerTreeWidget.h @@ -1,5 +1,6 @@ #pragma once #include "LayerWrapper.h" +#include "ElementManager.h" #include #include class LayerTreeWidget : public QTreeWidget @@ -10,6 +11,7 @@ class LayerTreeWidget : public QTreeWidget LayerWrapper *copiedItem; public: + ElementManager* elementManager; LayerWrapper* root; LayerTreeWidget(QWidget *parent = nullptr); void onRenameEvent(); diff --git a/ArchitectureColoredPainting/src/Editor/util/PaintingUtil.cpp b/ArchitectureColoredPainting/src/Editor/util/PaintingUtil.cpp new file mode 100644 index 0000000..7064a16 --- /dev/null +++ b/ArchitectureColoredPainting/src/Editor/util/PaintingUtil.cpp @@ -0,0 +1,2 @@ +#include "PaintingUtil.h" + diff --git a/ArchitectureColoredPainting/src/Editor/util/PaintingUtil.h b/ArchitectureColoredPainting/src/Editor/util/PaintingUtil.h new file mode 100644 index 0000000..83dbac3 --- /dev/null +++ b/ArchitectureColoredPainting/src/Editor/util/PaintingUtil.h @@ -0,0 +1,8 @@ +#pragma once +#include "../../Renderer/Painting/Painting.h" +class PaintingUtil +{ +public: + //static Renderer::Painting transfromToPainting(); +}; + diff --git a/ArchitectureColoredPainting/src/FluentMenu.cpp b/ArchitectureColoredPainting/src/FluentMenu.cpp new file mode 100644 index 0000000..42b0f7d --- /dev/null +++ b/ArchitectureColoredPainting/src/FluentMenu.cpp @@ -0,0 +1,24 @@ +#include "FluentMenu.h" +#include +#include + +::FluentMenu::FluentMenu(QWidget* parent) : QMenu(parent) +{ + setWindowFlags(windowFlags() | Qt::FramelessWindowHint | Qt::NoDropShadowWindowHint); + setAttribute(Qt::WA_TranslucentBackground); + setStyleSheet(QString::fromStdString(std::format("QMenu {{margin:{}px;border-radius:{}px;padding:4px;border: 1px solid #c1c1c1;}}" + "QMenu::item {{height:30px;width:100px;padding-left:20px;border-radius:{}px;}}" + "QMenu::item:selected {{background-color:#dedede;}}", shadowRadius, borderRadius, itemBorderRadius))); +} + +void ::FluentMenu::paintEvent(QPaintEvent* event) +{ + QPainter painter(this); + painter.setRenderHint(QPainter::Antialiasing, true); + for (qreal i = 0; i < shadowRadius; i += 1 / devicePixelRatioF()) + { + painter.setPen(QColor(0, 0, 0, glm::mix(0.22 * 255, 0., glm::pow(i / shadowRadius, 0.2)))); + painter.drawRoundedRect(QRectF(shadowRadius - i, shadowRadius - i, width() - (shadowRadius - i) * 2, height() - (shadowRadius - i) * 2), borderRadius + i, borderRadius + i); + } + QMenu::paintEvent(event); +} \ No newline at end of file diff --git a/ArchitectureColoredPainting/src/FluentMenu.h b/ArchitectureColoredPainting/src/FluentMenu.h new file mode 100644 index 0000000..480f6e2 --- /dev/null +++ b/ArchitectureColoredPainting/src/FluentMenu.h @@ -0,0 +1,14 @@ +#pragma once +#include + +class FluentMenu : public QMenu +{ + Q_OBJECT +public: + explicit FluentMenu(QWidget* parent = nullptr); + void paintEvent(QPaintEvent* event) override; + int shadowRadius = 16; + int borderRadius = 6; + int itemBorderRadius = 4; +}; + diff --git a/ArchitectureColoredPainting/src/IconWidget.cpp b/ArchitectureColoredPainting/src/IconWidget.cpp deleted file mode 100644 index 65412b2..0000000 --- a/ArchitectureColoredPainting/src/IconWidget.cpp +++ /dev/null @@ -1,75 +0,0 @@ -/* -The MIT License (MIT) - -Copyright © 2018-2022 Antonio Dias - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#include "iconwidget.h" - -#define ICONWIDTH 16 -#define ICONHEIGHT 16 - -IconWidget::IconWidget(QWidget *parent) : QWidget(parent) -{ - m_active = true; -} - -void IconWidget::setPixmap(const QPixmap &pixmap) -{ - m_pixmap = pixmap; - - QImage tmp = m_pixmap.toImage(); - - for (int i = 0; i < m_pixmap.width(); i++) - { - for (int j = 0; j < m_pixmap.height(); j++) - { - int gray = qGray(tmp.pixel(i, j)); - - int alpha = qAlpha(tmp.pixel(i, j)); - - tmp.setPixel(i, j, qRgba(gray, gray, gray, alpha)); - } - } - - m_grayed_pixmap = QPixmap::fromImage(tmp); - - repaint(); -} - -void IconWidget::setActive(bool active) -{ - m_active = active; - repaint(); -} - -void IconWidget::paintEvent(QPaintEvent *event) -{ - Q_UNUSED(event) - - QPainter painter(this); - painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); - - painter.drawPixmap((width() - ICONWIDTH)/ 2, - (height() - ICONHEIGHT) / 2, - ICONWIDTH, ICONHEIGHT, - m_active ? m_pixmap : m_grayed_pixmap); -} diff --git a/ArchitectureColoredPainting/src/IconWidget.h b/ArchitectureColoredPainting/src/IconWidget.h deleted file mode 100644 index 94f489d..0000000 --- a/ArchitectureColoredPainting/src/IconWidget.h +++ /dev/null @@ -1,52 +0,0 @@ -/* -The MIT License (MIT) - -Copyright © 2018-2022 Antonio Dias - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#ifndef ICONWIDGET_H -#define ICONWIDGET_H - -#include -#include -#include - -class IconWidget : public QWidget -{ - Q_OBJECT -public: - explicit IconWidget(QWidget *parent = nullptr); - -public slots: - void setPixmap(const QPixmap &pixmap); - void setActive(bool active); - -private: - //Functions - void paintEvent(QPaintEvent *event); - - //Variables - QPixmap m_pixmap; - QPixmap m_grayed_pixmap; - bool m_active; -}; - -#endif // ICONWIDGET_H diff --git a/ArchitectureColoredPainting/src/MainWindow.cpp b/ArchitectureColoredPainting/src/MainWindow.cpp index c6cef40..485a39f 100644 --- a/ArchitectureColoredPainting/src/MainWindow.cpp +++ b/ArchitectureColoredPainting/src/MainWindow.cpp @@ -2,6 +2,7 @@ #include "Renderer/RendererGLWidget.h" #include "qslider.h" #include +#include #include "NavigationBarWidget.h" #include #include @@ -11,111 +12,13 @@ FRAMELESSHELPER_USE_NAMESPACE -inline void fontTheme() -{ - QFont defaultFont = qApp->font(); - defaultFont.setPointSize(defaultFont.pointSize() + 2); - qApp->setFont(defaultFont); -} - -inline void setThemeStyleSheet(bool dark) -{ - QFile file(dark ? ":/darkstyle.qss" : ":/lightstyle.qss"); - - if (!file.open(QFile::ReadOnly)) - return; - - const QString style_sheet = QLatin1String(file.readAll()); - - file.close(); - - qApp->setStyleSheet(style_sheet); -} - -inline void darkTheme() -{ - QPalette darkPalette = qApp->palette(); - - darkPalette.setColor(QPalette::Window, QColor(53, 53, 53)); - darkPalette.setColor(QPalette::WindowText, QColor(255, 255, 255)); - darkPalette.setColor(QPalette::Disabled, QPalette::WindowText, QColor(127, 127, 127)); - darkPalette.setColor(QPalette::Base, QColor(42, 42, 42)); - darkPalette.setColor(QPalette::AlternateBase, QColor(66, 66, 66)); - darkPalette.setColor(QPalette::ToolTipBase, QColor(255, 255, 255)); - darkPalette.setColor(QPalette::ToolTipText, QColor(255, 255, 255)); - darkPalette.setColor(QPalette::Text, QColor(255, 255, 255)); - darkPalette.setColor(QPalette::Disabled, QPalette::Text, QColor(127, 127, 127)); - darkPalette.setColor(QPalette::Dark, QColor(35, 35, 35)); - darkPalette.setColor(QPalette::Shadow, QColor(20, 20, 20)); - darkPalette.setColor(QPalette::Button, QColor(53, 53, 53)); - darkPalette.setColor(QPalette::ButtonText, QColor(255, 255, 255)); - darkPalette.setColor(QPalette::Disabled, QPalette::ButtonText, QColor(127, 127, 127)); - darkPalette.setColor(QPalette::BrightText, QColor(255, 0, 0)); - darkPalette.setColor(QPalette::Link, QColor(42, 130, 218)); - darkPalette.setColor(QPalette::Highlight, QColor(42, 130, 218)); - darkPalette.setColor(QPalette::Disabled, QPalette::Highlight, QColor(80, 80, 80)); - darkPalette.setColor(QPalette::HighlightedText, QColor(255, 255, 255)); - darkPalette.setColor(QPalette::Disabled, QPalette::HighlightedText, QColor(127, 127, 127)); - - qApp->setPalette(darkPalette); - - setThemeStyleSheet(true /*dark*/); -} - - -inline void lightTheme() -{ - QPalette lightPalette = qApp->palette(); - - lightPalette.setColor(QPalette::Window, QColor(240, 240, 240)); - lightPalette.setColor(QPalette::WindowText, QColor(0, 0, 0)); - lightPalette.setColor(QPalette::Disabled, QPalette::WindowText, QColor(120, 120, 120)); - lightPalette.setColor(QPalette::Base, QColor(255, 255, 255)); - lightPalette.setColor(QPalette::AlternateBase, QColor(233, 231, 227)); - lightPalette.setColor(QPalette::ToolTipBase, QColor(255, 255, 220)); - lightPalette.setColor(QPalette::ToolTipText, QColor(0, 0, 0)); - lightPalette.setColor(QPalette::Text, QColor(0, 0, 0)); - lightPalette.setColor(QPalette::Disabled, QPalette::Text, QColor(120, 120, 120)); - lightPalette.setColor(QPalette::Dark, QColor(160, 160, 160)); - lightPalette.setColor(QPalette::Shadow, QColor(105, 105, 105)); - lightPalette.setColor(QPalette::Button, QColor(240, 240, 240)); - lightPalette.setColor(QPalette::ButtonText, QColor(0, 0, 0)); - lightPalette.setColor(QPalette::Disabled, QPalette::ButtonText, QColor(120, 120, 120)); - lightPalette.setColor(QPalette::BrightText, QColor(0, 0, 255)); - lightPalette.setColor(QPalette::Link, QColor(51, 153, 255)); - lightPalette.setColor(QPalette::Highlight, QColor(0, 0, 255)); - lightPalette.setColor(QPalette::Disabled, QPalette::Highlight, QColor(51, 153, 255)); - lightPalette.setColor(QPalette::HighlightedText, QColor(255, 255, 255)); - lightPalette.setColor(QPalette::Disabled, QPalette::HighlightedText, QColor(255, 255, 255)); - - qApp->setPalette(lightPalette); - - setThemeStyleSheet(false /*dark*/); -} - -FramelessWindow::FramelessWindow(QWidget* parent) : QWidget(parent), ui(new Ui::FramelessWindow) -{ - ui->setupUi(this); -} - -FramelessWindow::~FramelessWindow() -{ - delete ui; -} - CentralWidget::CentralWidget(QWidget* parent) : QMainWindow(parent) { ui.setupUi(this); - NavigationBarWidget* navigationBarWidget = new NavigationBarWidget(); - - QHBoxLayout* tabBarLayout = new QHBoxLayout(ui.tabWidget); - tabBarLayout->setSpacing(0); - tabBarLayout->setMargin(0); - tabBarLayout->addWidget(navigationBarWidget, 0, Qt::AlignTop | Qt::AlignHCenter); - - QObject::connect(navigationBarWidget->buttonGroup, &QButtonGroup::idClicked, - ui.tabWidget, &QTabWidget::setCurrentIndex); - QObject::connect(ui.tabWidget, &QTabWidget::currentChanged, + NavigationBarWidget* navigationBarWidget = new NavigationBarWidget(this); + ui.gridLayout->addWidget(navigationBarWidget, 0, 0, 1, 1, Qt::AlignTop | Qt::AlignHCenter); + QObject::connect(navigationBarWidget->tabs, &QtMaterialTabs::currentChanged, ui.stackedWidget, &QStackedWidget::setCurrentIndex); + QObject::connect(ui.stackedWidget, &QStackedWidget::currentChanged, ui.rendererWidget, &Renderer::RendererWidget::currentTabChanged); } @@ -134,38 +37,29 @@ MainWindow::MainWindow(QWidget* parent, const Qt::WindowFlags flags) m_titleBar->maximizeButton()->setFixedHeight(kTitleBarHeight); m_titleBar->closeButton()->setFixedHeight(kTitleBarHeight); m_titleBar->setTitleFont(QFont(QString("Segoe UI, Microsoft YaHei UI"), 10)); - m_titleBar->chromePalette()->setTitleBarActiveBackgroundColor(QColor(0,0,0,0)); + m_titleBar->chromePalette()->setTitleBarActiveBackgroundColor(QColor(0, 0, 0, 0)); m_titleBar->chromePalette()->setTitleBarInactiveBackgroundColor(QColor(0, 0, 0, 0)); - m_window = new FramelessWindow(this); - m_central_widget = new CentralWidget(this); - m_window->ui->windowContent->layout()->addWidget(m_central_widget); + m_central_widget = new CentralWidget(); setMenuWidget(m_titleBar); - setCentralWidget(m_window); + setCentralWidget(m_central_widget); FramelessWidgetsHelper* helper = FramelessWidgetsHelper::get(this); helper->setTitleBarWidget(m_titleBar); -#ifndef Q_OS_MACOS helper->setSystemButton(m_titleBar->minimizeButton(), Global::SystemButtonType::Minimize); helper->setSystemButton(m_titleBar->maximizeButton(), Global::SystemButtonType::Maximize); helper->setSystemButton(m_titleBar->closeButton(), Global::SystemButtonType::Close); -#endif // Q_OS_MACOS - - connect(helper, &FramelessWidgetsHelper::ready, this, [this, helper]() { - helper->moveWindowToDesktopCenter(); - - }); + //connect(helper, &FramelessWidgetsHelper::ready, this, [this, helper]() { + // helper->moveWindowToDesktopCenter(); + // }); setWindowIcon(QIcon(":/images/icon.png")); setWindowTitle("ArchitectureColoredPainting"); - resize(m_central_widget->size()); - //setCentralWidget(m_window); - - //move(QGuiApplication::primaryScreen()->availableGeometry().center() - rect().center()); + move(QGuiApplication::primaryScreen()->availableGeometry().center() - rect().center()); } @@ -180,5 +74,3 @@ void MainWindow::closeEvent(QCloseEvent* event) if (result != QMessageBox::Yes) event->ignore();*/ } - - diff --git a/ArchitectureColoredPainting/src/MainWindow.h b/ArchitectureColoredPainting/src/MainWindow.h index cfcc888..6d8bd54 100644 --- a/ArchitectureColoredPainting/src/MainWindow.h +++ b/ArchitectureColoredPainting/src/MainWindow.h @@ -2,7 +2,6 @@ #include #include "ui_MainWindow.h" -#include "ui_FramelessWindow.h" #include @@ -10,19 +9,6 @@ FRAMELESSHELPER_BEGIN_NAMESPACE class StandardTitleBar; FRAMELESSHELPER_END_NAMESPACE - -class FramelessWindow : public QWidget -{ - Q_OBJECT -public: - explicit FramelessWindow(QWidget* parent = nullptr); - - ~FramelessWindow(); - - Ui::FramelessWindow* ui; -}; - - class CentralWidget : public QMainWindow { Q_OBJECT @@ -46,10 +32,7 @@ public: private: FRAMELESSHELPER_PREPEND_NAMESPACE(StandardTitleBar)* m_titleBar = nullptr; Ui::MainWindowClass ui; + CentralWidget* m_central_widget = nullptr; - - void closeEvent(QCloseEvent* event); - - FramelessWindow* m_window; - CentralWidget* m_central_widget; + void closeEvent(QCloseEvent * event); }; diff --git a/ArchitectureColoredPainting/src/NavigationBarWidget.cpp b/ArchitectureColoredPainting/src/NavigationBarWidget.cpp index e4cdacc..b4286b4 100644 --- a/ArchitectureColoredPainting/src/NavigationBarWidget.cpp +++ b/ArchitectureColoredPainting/src/NavigationBarWidget.cpp @@ -1,14 +1,25 @@ #include "NavigationBarWidget.h" +#include +#include +#include NavigationBarWidget::NavigationBarWidget(QWidget *parent) : QWidget(parent) + , tabs(new QtMaterialTabs) { - ui.setupUi(this); - buttonGroup = new QButtonGroup(this); - buttonGroup->addButton(ui.radioButton0, 0); - buttonGroup->addButton(ui.radioButton1, 1); - ui.radioButton0->setChecked(true); -;} + tabs->addTab(QStringLiteral("༭")); + tabs->addTab(QStringLiteral("Ⱦ")); + tabs->setHaloVisible(false); + tabs->setBackgroundColor(Qt::transparent); + tabs->setTextColor(Qt::black); + tabs->setInkColor(QColor(0, 90, 158)); + tabs->setFixedHeight(38); + QVBoxLayout* layout = new QVBoxLayout; + layout->setContentsMargins(0, 0, 0, 0); + layout->addWidget(tabs); + layout->setAlignment(tabs, Qt::AlignHCenter); + setLayout(layout); +} NavigationBarWidget::~NavigationBarWidget() {} diff --git a/ArchitectureColoredPainting/src/NavigationBarWidget.h b/ArchitectureColoredPainting/src/NavigationBarWidget.h index 07d48e7..2fb43f1 100644 --- a/ArchitectureColoredPainting/src/NavigationBarWidget.h +++ b/ArchitectureColoredPainting/src/NavigationBarWidget.h @@ -2,7 +2,7 @@ #include #include -#include "ui_NavigationBarWidget.h" +#include class NavigationBarWidget : public QWidget { @@ -11,8 +11,5 @@ class NavigationBarWidget : public QWidget public: NavigationBarWidget(QWidget *parent = nullptr); ~NavigationBarWidget(); - QButtonGroup* buttonGroup; -private: - Ui::NavigationBarWidgetClass ui; - + QtMaterialTabs* tabs; }; diff --git a/ArchitectureColoredPainting/src/Renderer/Model.cpp b/ArchitectureColoredPainting/src/Renderer/Model.cpp index ff0142e..0cd402c 100644 --- a/ArchitectureColoredPainting/src/Renderer/Model.cpp +++ b/ArchitectureColoredPainting/src/Renderer/Model.cpp @@ -12,6 +12,7 @@ #include "Painting/Painting.h" #include "../SvgParser.h" #include "../Editor/util/PainterPathUtil.h" +#include "../Editor/util/SvgFileLoader.h" #include using namespace Renderer; @@ -44,19 +45,41 @@ void Model::drawShadow() { void Renderer::Model::loadModel(QString path) { - directory = path; + QFileInfo modelFile(path); + name = modelFile.baseName(); + directory = modelFile.dir(); + Assimp::Importer importer; - const aiScene* scene = importer.ReadFile(directory.absolutePath().toUtf8(), aiProcess_Triangulate | aiProcess_FlipUVs); + const aiScene* scene = importer.ReadFile(modelFile.absoluteFilePath().toUtf8(), aiProcess_Triangulate | aiProcess_FlipUVs); if (!scene || scene->mFlags & AI_SCENE_FLAGS_INCOMPLETE || !scene->mRootNode) { - qDebug() << "ERROR::ASSIMP::" << importer.GetErrorString() << endl; + qCritical() << "ERROR::ASSIMP::" << importer.GetErrorString() << endl; return; } - qDebug() << directory.absolutePath() << "Loaded Successfully"; + qDebug() << modelFile.absoluteFilePath() << "Loaded Successfully"; qDebug() << "NumMeshes: " << scene->mNumMeshes; qDebug() << "NumMaterials: " << scene->mNumMaterials; qDebug() << "NumTextures: " << scene->mNumTextures; - directory.cdUp(); + + if (QFile paintingConfigFile(directory.filePath(name + ".txt")); paintingConfigFile.open(QFile::ReadOnly | QIODevice::Text)) + { + paintingMap.clear(); + QTextStream stream(&paintingConfigFile); + while (!stream.atEnd()) + { + QString source, target; + glm::vec2 leftBottom, rightTop; + stream >> source >> target >> leftBottom.x >> leftBottom.y >> rightTop.x >> rightTop.y; + qDebug() << source << target << leftBottom.x << leftBottom.y << rightTop.x << rightTop.y; + paintingMap.emplace(source.toStdString(), std::forward_as_tuple(target.toStdString(), leftBottom, rightTop)); + } + paintingConfigFile.close(); + } + else + { + qWarning() << "Painting Config Not Found!"; + } + minX = std::numeric_limits::max(); maxX = std::numeric_limits::min(); minY = std::numeric_limits::max(); @@ -98,8 +121,9 @@ std::unique_ptr Model::processMesh(aiMesh* mesh, const aiScene* scene, aiString str; material->GetTexture(aiTextureType_BASE_COLOR, 0, &str); - if (paintingProgram != nullptr && (std::strcmp(str.C_Str(), "17876391417123941155.jpg") == 0 || std::strcmp(str.C_Str(), "11474523244911310074.jpg") == 0)) + if (auto iter = paintingMap.find(std::string(str.C_Str())); paintingProgram != nullptr && iter != paintingMap.end()) { + auto& [paintingPath, leftBottom, rightTop] = iter->second; qDebug() << str.C_Str() << "Replaced"; // ʼ auto m_mesh = std::make_unique(glFunc, paintingProgram, shadowProgram, modelQ); @@ -128,7 +152,7 @@ std::unique_ptr Model::processMesh(aiMesh* mesh, const aiScene* scene, } } - m_mesh->paintingId = loadPainting(std::string(str.C_Str())); + m_mesh->paintingId = loadPainting(paintingPath); auto& handle = vtManager->getPaintingHandle(m_mesh->paintingId); m_mesh->textureBasecolor = handle.baseColor; m_mesh->textureMetallicRoughness = handle.metallicRoughness; @@ -223,8 +247,10 @@ GLuint Renderer::Model::loadPainting(std::string path) QPainterPath painterPaths[3]; QQuickSvgParser::parsePathDataFast("M100,100C-.5,100,0,100.5,0,0L40,.07C40,59.5,39.5,60,100,60Z", painterPaths[0]); - QQuickSvgParser::parsePathDataFast("M308.49,212.25l23,28.38-82,78.31c-14.28,13.64-26.34-20.6-53.44,9.32l-30.24-13.4,63.56-51.59L190.71,215.6l-32.92,26.72L149.5,232.1l32.92-26.72L173.2,194l-32.91,26.72-7.38-9.08L165.83,185l-38.69-47.66L94.22,164,85,152.65l32.91-26.72-9.21-11.35L75.79,141.3l-5.53-6.81,32.92-26.72L94,96.42,61.05,123.14l-12-14.76L37.72,117.6l12,14.75L30.41,148,0,110.55,136.2,0l30.4,37.46L147.31,53.12l-12-14.76L124,47.58l12,14.75L103.05,89.05l9.21,11.35,32.92-26.72,5.52,6.81-32.91,26.72L127,118.56l32.92-26.72,9.21,11.35-32.91,26.72,38.69,47.67,32.91-26.72,7.37,9.08-32.91,26.72L191.49,198l32.92-26.72,8.29,10.22-32.92,26.71,38.7,47.68L302,204.3l6.45,7.95Z", - painterPaths[1]); + if (!SvgFileLoader().loadSvgFile("../svg/2.svg", painterPaths[1])) + qCritical() << "load error"; + /*QQuickSvgParser::parsePathDataFast("M292.82,107.78s0,0,0,0,0,3.59,0,7.62c0,3.85,0,5.78.06,6.43a19.94,19.94,0,0,0,2.87,7.58,15.85,15.85,0,0,0,6.61,6.23A14.75,14.75,0,0,0,310,137a11.69,11.69,0,0,0,7.59-2.92,11,11,0,0,0,3.2-6.84c.15-1.27.58-4.84-1.79-7.64a8.54,8.54,0,0,0-3.56-2.44c-1.32-.52-3.32-1.31-5.06-.33a5.41,5.41,0,0,0-2.14,3,3.48,3.48,0,0,0-.16,2.71c.78,1.86,3.36,2.14,3.47,2.15", + painterPaths[1]);*/ QQuickSvgParser::parsePathDataFast("M377,459.61a11.26,11.26,0,0,1,11.27-11.27H696.12a11.27,11.27,0,0,0,11-8.62A359.84,359.84,0,0,0,708,280.56a11.26,11.26,0,0,0-11-8.73H388.27A11.26,11.26,0,0,1,377,260.57h0a11.26,11.26,0,0,1,11.27-11.26H683.71A11.32,11.32,0,0,0,694.28,234C649.8,113.69,542.57,23.85,412.3,4.12a11.22,11.22,0,0,0-12.76,11.17v158.9a11.26,11.26,0,0,0,11.26,11.27H583.12a11.32,11.32,0,0,0,9.26-17.75c-31.67-46.59-78.51-75.2-109.11-90.07a11.25,11.25,0,0,0-16.13,10.17V115.2a11.24,11.24,0,0,0,6.22,10.07l7.51,3.76a11.28,11.28,0,0,1,5,15.12h0a11.27,11.27,0,0,1-15.11,5l-20-10a11.27,11.27,0,0,1-6.22-10.07V54a11.27,11.27,0,0,1,14.62-10.75c5.11,1.59,125.66,40.35,172.24,149A11.27,11.27,0,0,1,621.11,208H388.27A11.26,11.26,0,0,1,377,196.73V11.36A11.32,11.32,0,0,0,365.89.08C363.34,0,360.79,0,358.22,0s-5.11,0-7.66.08a11.32,11.32,0,0,0-11.11,11.28V196.74A11.26,11.26,0,0,1,328.18,208H95.35A11.27,11.27,0,0,1,85,192.3c46.57-108.67,167.12-147.42,172.23-149A11.26,11.26,0,0,1,271.86,54v75.11a11.25,11.25,0,0,1-6.23,10.07l-20,10a11.27,11.27,0,0,1-15.11-5h0a11.26,11.26,0,0,1,5-15.11l7.52-3.76a11.27,11.27,0,0,0,6.22-10.07V87.82a11.25,11.25,0,0,0-16.14-10.16c-30.6,14.87-77.45,43.48-109.1,90.07a11.3,11.3,0,0,0,9.25,17.74H305.66a11.26,11.26,0,0,0,11.27-11.26V15.31A11.22,11.22,0,0,0,304.17,4.14C173.88,23.86,66.66,113.71,22.17,234a11.32,11.32,0,0,0,10.56,15.29H328.18a11.26,11.26,0,0,1,11.27,11.26v0a11.26,11.26,0,0,1-11.27,11.26H19.52a11.26,11.26,0,0,0-11,8.72,359.84,359.84,0,0,0,.83,159.16,11.26,11.26,0,0,0,11,8.61H328.18a11.26,11.26,0,0,1,11.27,11.27h0a11.26,11.26,0,0,1-11.27,11.26h-294a11.32,11.32,0,0,0-10.53,15.4C69,604.65,175.3,692.78,304.16,712.3a11.21,11.21,0,0,0,12.76-11.16V542.22A11.26,11.26,0,0,0,305.66,531h-166c-9.53,0-14.89,11.22-8.69,18.47,34.09,39.77,74.45,65.66,101.77,80.18a11.25,11.25,0,0,0,16.53-10V591a11.26,11.26,0,0,1,11.26-11.26h0A11.26,11.26,0,0,1,271.85,591v63.85A11.27,11.27,0,0,1,256.8,665.5c-4.45-1.59-109.58-40-171-139.9a11.27,11.27,0,0,1,9.59-17.17H328.18a11.26,11.26,0,0,1,11.27,11.26V705.08a11.32,11.32,0,0,0,11.11,11.28q3.82.07,7.66.08c2.57,0,5.12,0,7.67-.08A11.32,11.32,0,0,0,377,705.08V519.69a11.25,11.25,0,0,1,11.27-11.26H621.1a11.26,11.26,0,0,1,9.59,17.16c-61.46,99.87-166.59,138.3-171,139.9a11.27,11.27,0,0,1-15-10.61V591a11.26,11.26,0,0,1,11.26-11.26h0A11.26,11.26,0,0,1,467.14,591v28.6a11.25,11.25,0,0,0,16.53,10c27.33-14.53,67.68-40.42,101.77-80.19,6.2-7.23.85-18.46-8.69-18.46h-166a11.26,11.26,0,0,0-11.26,11.26V701.12a11.21,11.21,0,0,0,12.76,11.17c128.86-19.51,235.14-107.66,280.48-226a11.33,11.33,0,0,0-10.53-15.41h-294A11.25,11.25,0,0,1,377,459.61ZM35.27,399.53V316.9a11.26,11.26,0,0,1,11.27-11.26H669.92a11.25,11.25,0,0,1,11.26,11.26v82.63a11.25,11.25,0,0,1-11.26,11.26H46.54a11.27,11.27,0,0,1-11.27-11.26Z", painterPaths[2]); @@ -237,7 +263,7 @@ GLuint Renderer::Model::loadPainting(std::string path) vector> style = { std::make_shared(), std::make_shared(0.02), - std::make_shared(0.02) + std::make_shared(0.2) }; vector> element = { @@ -247,10 +273,10 @@ GLuint Renderer::Model::loadPainting(std::string path) }; Painting painting; - if (path == "17876391417123941155.jpg") + if (path == "0.json") { - painting.addElement(*element[0], ElementTransform{ glm::vec2(-0.5,-0.45), glm::vec2(0.6,0.7) / 2.f, 45, glm::bvec2(true, false), 0 }); - painting.addElement(*element[1], ElementTransform{ glm::vec2(-0.45,0.45), glm::vec2(0.5,0.5) / 2.f, 0, glm::bvec2(false), 0 }); + painting.addElement(*element[0], ElementTransform{ glm::vec2(-0.45,-0.45), glm::vec2(0.5,0.5) / 2.f, 0, glm::bvec2(false), 0 }); + painting.addElement(*element[1], ElementTransform{ glm::vec2(-0.45, 0.45), glm::vec2(0.5,0.5) / 2.f, 0, glm::bvec2(false), 0 }); painting.addElement(*element[2], ElementTransform{ glm::vec2(0.50,-0.45), glm::vec2(0.6,0.7) / 2.f, 0, glm::bvec2(false), 0 }); } else @@ -263,7 +289,6 @@ GLuint Renderer::Model::loadPainting(std::string path) } } - painting.generateBuffers(glFunc); auto index = vtManager->createVirtualTexture(painting); diff --git a/ArchitectureColoredPainting/src/Renderer/Model.h b/ArchitectureColoredPainting/src/Renderer/Model.h index 0c0dca0..c19fdf3 100644 --- a/ArchitectureColoredPainting/src/Renderer/Model.h +++ b/ArchitectureColoredPainting/src/Renderer/Model.h @@ -17,20 +17,20 @@ namespace Renderer void loadModel(QString path); Model(QOpenGLContext* context, QOpenGLShaderProgram* shaderProgram, QOpenGLShaderProgram* paintingProgram, QOpenGLShaderProgram* shadowProgram, VirtualTextureManager* vtManager); private: - QOpenGLContext* context; + QOpenGLContext* context = nullptr; QOpenGLFunctions_4_5_Core* glFunc = nullptr; QOpenGLShaderProgram* shaderProgram = nullptr; QOpenGLShaderProgram* paintingProgram = nullptr; QOpenGLShaderProgram* shadowProgram = nullptr; VirtualTextureManager* vtManager = nullptr; - /* ģ */ + std::unordered_map> paintingMap; std::unordered_map paintingLoaded; std::unordered_map texturesLoaded; std::vector> meshes; - - /// ģ· - QDir directory; + + QDir directory; /// ģ· + QString name; /// ģļ float minX, maxX, minY, maxY, minZ, maxZ; diff --git a/ArchitectureColoredPainting/src/Renderer/Painting/ElementStyle.cpp b/ArchitectureColoredPainting/src/Renderer/Painting/ElementStyle.cpp index cf1f722..2d0aff4 100644 --- a/ArchitectureColoredPainting/src/Renderer/Painting/ElementStyle.cpp +++ b/ArchitectureColoredPainting/src/Renderer/Painting/ElementStyle.cpp @@ -35,6 +35,6 @@ std::vector Renderer::ElementStyleStrokeRadialGradientDemo::toBaseSty {1.00, Material{QColor(255,255,0)}}, }; return { BaseStyle(std::make_shared(), - std::make_shared(width, StrokeType::kLeftSide, StrokeEndType::kRound, + std::make_shared(width, StrokeType::kBothSides, StrokeEndType::kRound, std::make_shared(materialMap, false))) }; } \ No newline at end of file diff --git a/ArchitectureColoredPainting/src/Renderer/Painting/Painting.cpp b/ArchitectureColoredPainting/src/Renderer/Painting/Painting.cpp index 8ffa8c8..3d1fb2a 100644 --- a/ArchitectureColoredPainting/src/Renderer/Painting/Painting.cpp +++ b/ArchitectureColoredPainting/src/Renderer/Painting/Painting.cpp @@ -101,7 +101,7 @@ BvhTreeData Painting::encodeElementLeaf(ElementWithTransform e) case MaterialStyleType::kStroke: { auto w = std::static_pointer_cast(e.element.style)->getHalfWidth(); - glm::vec2 size = glm::normalize(glm::vec2(e.element.ratio, 1)) + glm::vec2(2 * w); + glm::vec2 size = e.element.ratio < 1 ? glm::vec2(e.element.ratio, 1) : glm::vec2(1, 1 / e.element.ratio); glm::vec2 scale = size * e.transform.scale; bound = glm::vec4(e.transform.center - scale, e.transform.center + scale); break; @@ -112,7 +112,7 @@ BvhTreeData Painting::encodeElementLeaf(ElementWithTransform e) break; } } - bound = glm::vec4(e.transform.center - e.transform.scale, e.transform.center + e.transform.scale); + //bound = glm::vec4(e.transform.center - e.transform.scale, e.transform.center + e.transform.scale); GLuint rightSon = (GLuint)(glm::mod(e.transform.rotation, 360.f) / 360.f * (1 << 16)) + (e.transform.flip.x << 16) + (e.transform.flip.y << 17) + (e.transform.zIndex << 18); return BvhTreeData(QVector4D(bound.x, bound.y, bound.z, bound.w), elementPool[e.element], rightSon); @@ -167,7 +167,7 @@ void Painting::generateBuffers(QOpenGLFunctions_4_5_Core* glFunc) //qDebug() <<"element:" << i.second; //std::shared_ptr contourBuffer = i.first.style->type() == MaterialStyleType::kStroke ? contourPool[i.first.contour].second : contourPool[i.first.contour].first; auto& contourBuffer = contourPool[{i.first.contour, i.first.style->type()}]; - elementOffsets.push_back({ contourBuffer.bvhOffset, stylePool[i.first.style], contourBuffer.pointsOffset, contourBuffer.linesOffset }); + elementOffsets.push_back({ contourBuffer.bvhOffset, stylePool[i.first.style], contourBuffer.pointsOffset, contourBuffer.linesOffset, glm::floatBitsToUint(i.first.ratio) }); //std::cout << std::format("{} {} {} {}\n", contourBuffer->bvhOffset, stylePool[i.first->style], contourBuffer->pointsOffset, contourBuffer->linesOffset); } diff --git a/ArchitectureColoredPainting/src/Renderer/Painting/Painting.h b/ArchitectureColoredPainting/src/Renderer/Painting/Painting.h index 4867b64..ab8f31a 100644 --- a/ArchitectureColoredPainting/src/Renderer/Painting/Painting.h +++ b/ArchitectureColoredPainting/src/Renderer/Painting/Painting.h @@ -52,6 +52,7 @@ namespace Renderer GLuint styleOffset; GLuint pointsOffset; GLuint linesOffset; + GLuint ratio; }; class Painting diff --git a/ArchitectureColoredPainting/src/Renderer/Preview/ElementRenderer.cpp b/ArchitectureColoredPainting/src/Renderer/Preview/ElementRenderer.cpp index 19ea176..60a3b81 100644 --- a/ArchitectureColoredPainting/src/Renderer/Preview/ElementRenderer.cpp +++ b/ArchitectureColoredPainting/src/Renderer/Preview/ElementRenderer.cpp @@ -12,22 +12,6 @@ #include "../Painting/MaterialStyleStroke.h" using namespace Renderer; -Renderer::ElementRenderer::ElementRenderer(QOpenGLWidget* glWidget) - : glWidget(glWidget) -{ -} - -void Renderer::ElementRenderer::initialize() -{ - initializeOpenGLFunctions(); - shader = std::make_unique(); - if (!shader->addShaderFromSourceFile(QOpenGLShader::Compute, ":/Shaders/element.comp")) - qDebug() << "ERROR: " << shader->log(); - if (!shader->link()) - qDebug() << "ERROR: " << shader->log(); - -} - std::vector generatePathBuffer(const QPainterPath& path) { std::vector pathBuffer; @@ -130,42 +114,88 @@ QRectF calcBoundingRect(const QPainterPath& path, const std::vector& return QRectF(QPointF(leftTop.x, leftTop.y), QPointF(rightBottom.x, rightBottom.y)); } -std::pair Renderer::ElementRenderer::drawElement(const QPainterPath& path, const ElementStyle& style, float pixelRatio, bool releaseContext) +Renderer::ElementRenderer::ElementRenderer() { - auto baseStyles = style.toBaseStyles(); - QRectF bound = calcBoundingRect(path, baseStyles); - QPointF leftTop = bound.topLeft(); - QSize size(ceil(bound.width() * pixelRatio), ceil(bound.height() * pixelRatio)); + surface.create(); + thread = std::jthread([&] { + QOpenGLContext context; + context.create(); + context.makeCurrent(&surface); - auto pathBuffer = generatePathBuffer(path); - auto styleBuffer = generateStyleBuffer(baseStyles); + initializeOpenGLFunctions(); + shader = std::make_unique(); + if (!shader->addShaderFromSourceFile(QOpenGLShader::Compute, ":/Shaders/element.comp")) + qDebug() << "ERROR: " << shader->log(); + if (!shader->link()) + qDebug() << "ERROR: " << shader->log(); - if (releaseContext) glWidget->makeCurrent(); + initialized = true; - GLuint ssbo[2]; - glCreateBuffers(2, ssbo); - glNamedBufferData(ssbo[0], pathBuffer.size() * sizeof(glm::vec2), pathBuffer.data(), GL_STATIC_READ); - glNamedBufferData(ssbo[1], styleBuffer.size() * sizeof(GLfloat), styleBuffer.data(), GL_STATIC_READ); + while (true) + { + std::unique_lock lock(drawMutex); + draw.wait(lock, [&] {return needDraw; }); + { + needDraw = false; + auto baseStyles = style->toBaseStyles(); + QRectF bound = calcBoundingRect(*path, baseStyles); + QPointF leftTop = bound.topLeft(); + QSize size(ceil(bound.width() * pixelRatio), ceil(bound.height() * pixelRatio)); - auto fbo = QOpenGLFramebufferObject(size, QOpenGLFramebufferObject::NoAttachment, GL_TEXTURE_2D); - fbo.bind(); - glClearColor(0, 0, 0, 0); - glClear(GL_COLOR_BUFFER_BIT); - fbo.release(); + auto pathBuffer = generatePathBuffer(*path); + auto styleBuffer = generateStyleBuffer(baseStyles); - shader->bind(); - shader->setUniformValue("pathSize", (GLint)pathBuffer.size()); - shader->setUniformValue("styleSize", (GLint)styleBuffer.size()); - shader->setUniformValue("leftTop", leftTop); - shader->setUniformValue("pixelRatio", pixelRatio); - glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 10, ssbo[0]); - glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 11, ssbo[1]); - glBindImageTexture(0, fbo.texture(), 0, GL_FALSE, 0, GL_READ_WRITE, GL_RGBA8); - glDispatchCompute(ceil(size.width() / 8.), ceil(size.height() / 8.), 1); - shader->release(); + GLuint ssbo[2]; + glCreateBuffers(2, ssbo); + glNamedBufferData(ssbo[0], pathBuffer.size() * sizeof(glm::vec2), pathBuffer.data(), GL_STATIC_READ); + glNamedBufferData(ssbo[1], styleBuffer.size() * sizeof(GLfloat), styleBuffer.data(), GL_STATIC_READ); - auto image = fbo.toImage(false); - glDeleteBuffers(2, ssbo); - if (releaseContext) glWidget->doneCurrent(); - return { image, leftTop }; + auto fbo = QOpenGLFramebufferObject(size, QOpenGLFramebufferObject::NoAttachment, GL_TEXTURE_2D); + fbo.bind(); + glClearColor(0, 0, 0, 0); + glClear(GL_COLOR_BUFFER_BIT); + fbo.release(); + + shader->bind(); + shader->setUniformValue("pathSize", (GLint)pathBuffer.size()); + shader->setUniformValue("styleSize", (GLint)styleBuffer.size()); + shader->setUniformValue("leftTop", leftTop); + shader->setUniformValue("pixelRatio", pixelRatio); + glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 10, ssbo[0]); + glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 11, ssbo[1]); + glBindImageTexture(0, fbo.texture(), 0, GL_FALSE, 0, GL_READ_WRITE, GL_RGBA8); + glDispatchCompute(ceil(size.width() / 8.), ceil(size.height() / 8.), 1); + shader->release(); + + auto image = fbo.toImage(false); + glDeleteBuffers(2, ssbo); + result = { image, leftTop }; + drawFinished = true; + } + draw.notify_all(); + } + }); + + while (!initialized) + std::this_thread::yield(); } + +ElementRenderer* Renderer::ElementRenderer::instance() +{ + static ElementRenderer renderer; + return &renderer; +} + +std::pair Renderer::ElementRenderer::drawElement(const QPainterPath& path, const ElementStyle& style, float pixelRatio) +{ + std::unique_lock lock(drawMutex); + draw.wait(lock, [&] {return drawFinished; }); + drawFinished = false; + this->path = &path; + this->style = &style; + this->pixelRatio = pixelRatio; + needDraw = true; + draw.notify_all(); + draw.wait(lock, [&] {return drawFinished; }); + return result; +} \ No newline at end of file diff --git a/ArchitectureColoredPainting/src/Renderer/Preview/ElementRenderer.h b/ArchitectureColoredPainting/src/Renderer/Preview/ElementRenderer.h index ca88d44..9c59db5 100644 --- a/ArchitectureColoredPainting/src/Renderer/Preview/ElementRenderer.h +++ b/ArchitectureColoredPainting/src/Renderer/Preview/ElementRenderer.h @@ -3,32 +3,40 @@ #include #include #include "../Painting/ElementStyle.h" +#include namespace Renderer { class ElementRenderer : protected QOpenGLFunctions_4_5_Core { public: - ElementRenderer(QOpenGLWidget* glWidget); - - /** - * @brief initializeGLе - */ - void initialize(); + static ElementRenderer* instance(); /** * @brief ͼԪƵQImage * @param path ͼԪ * @param style ͼԪʽ * @param pixelRatio pathеĵλӦشС - * @param releaseContext initializeGL, resizeGLpaintGLе봫false * @return QImage Ƶõλͼ * @return QPointF λͼԭ㣨ϽǣQPainterPathϵµ */ - std::pair drawElement(const QPainterPath& path, const ElementStyle& style, float pixelRatio, bool releaseContext = true); + std::pair drawElement(const QPainterPath& path, const ElementStyle& style, float pixelRatio); protected: - QOpenGLWidget* glWidget; std::unique_ptr shader; + std::jthread thread; + QOffscreenSurface surface; + QOpenGLContext context; + std::atomic initialized = false; + bool drawFinished = true; + bool needDraw = false; + std::condition_variable draw; + std::mutex drawMutex; + const QPainterPath* path; + const ElementStyle* style; + float pixelRatio; + std::pair result; + + ElementRenderer(); }; } diff --git a/ArchitectureColoredPainting/src/Renderer/RendererWidget.cpp b/ArchitectureColoredPainting/src/Renderer/RendererWidget.cpp index b478df7..27bc6c8 100644 --- a/ArchitectureColoredPainting/src/Renderer/RendererWidget.cpp +++ b/ArchitectureColoredPainting/src/Renderer/RendererWidget.cpp @@ -1,29 +1,50 @@ #include "RendererWidget.h" #include "RendererGLWidget.h" -using namespace Renderer; -RendererWidget::RendererWidget(QWidget *parent) +#include "../FluentMenu.h" + +Renderer::RendererWidget::RendererWidget(QWidget* parent) : QWidget(parent) { ui.setupUi(this); - QObject::connect(ui.horizontalSlider, &QSlider::valueChanged, - ui.openGLWidget, &RendererGLWidget::setMainLightPitch); - QObject::connect(ui.horizontalSlider_2, &QSlider::valueChanged, - ui.openGLWidget, &RendererGLWidget::setMainLightYaw); - QObject::connect(ui.exposureSlider, &QSlider::valueChanged, [&](int value) { - ui.openGLWidget->setExposure(value/100.f); + + FluentMenu* menu = new FluentMenu(this); + auto openAction = new QAction(QStringLiteral(""), menu); + auto saveAction = new QAction(QStringLiteral(""), menu); + menu->addAction(openAction); + menu->addAction(saveAction); + + ui.openButton->setHaloVisible(false); + ui.openButton->setOverlayStyle(::Material::TintedOverlay); + ui.openButton->setCheckable(true); + + QObject::connect(menu, &QMenu::aboutToShow, [&]() { + ui.openButton->setChecked(true); }); + QObject::connect(menu, &QMenu::aboutToHide, [&]() { + ui.openButton->setChecked(false); + }); + QObject::connect(ui.openButton, &QPushButton::clicked, [&, menu]() { + menu->exec(ui.openButton->mapToGlobal(QPoint(-menu->shadowRadius, ui.openButton->height() - menu->shadowRadius))); + }); + + QObject::connect(ui.horizontalSlider, &QSlider::valueChanged, + ui.openGLWidget, &Renderer::RendererGLWidget::setMainLightPitch); + QObject::connect(ui.horizontalSlider_2, &QSlider::valueChanged, + ui.openGLWidget, &Renderer::RendererGLWidget::setMainLightYaw); + QObject::connect(ui.exposureSlider, &QSlider::valueChanged, [&](int value) { + ui.openGLWidget->setExposure(value / 100.f); + }); + QObject::connect(openAction, &QAction::triggered, ui.openGLWidget, &Renderer::RendererGLWidget::setModel); ui.horizontalSlider->setValue(105); ui.horizontalSlider_2->setValue(80); ui.exposureSlider->setValue(60); - QObject::connect(ui.openButton, &QPushButton::clicked, - ui.openGLWidget, &RendererGLWidget::setModel); } -RendererWidget::~RendererWidget() +Renderer::RendererWidget::~RendererWidget() {} -void RendererWidget::currentTabChanged(int index) +void Renderer::RendererWidget::currentTabChanged(int index) { if (index == 1) { @@ -33,4 +54,5 @@ void RendererWidget::currentTabChanged(int index) { ui.openGLWidget->stopTimer(); } -} \ No newline at end of file +} + diff --git a/ArchitectureColoredPainting/src/Renderer/RendererWidget.h b/ArchitectureColoredPainting/src/Renderer/RendererWidget.h index 8d3f1e2..258a173 100644 --- a/ArchitectureColoredPainting/src/Renderer/RendererWidget.h +++ b/ArchitectureColoredPainting/src/Renderer/RendererWidget.h @@ -1,15 +1,14 @@ #pragma once #include +#include #include "ui_RendererWidget.h" namespace Renderer { class RendererWidget : public QWidget { Q_OBJECT - public: - RendererWidget(QWidget* parent = nullptr); ~RendererWidget(); public slots: diff --git a/ArchitectureColoredPainting/src/TitleWidget.cpp b/ArchitectureColoredPainting/src/TitleWidget.cpp deleted file mode 100644 index cd4d5b6..0000000 --- a/ArchitectureColoredPainting/src/TitleWidget.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/* -The MIT License (MIT) - -Copyright © 2018-2022 Antonio Dias - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#include "titlewidget.h" - -TitleWidget::TitleWidget(QWidget *parent) : QWidget(parent) -{ - m_active = false; -} - -void TitleWidget::setText(const QString &text) -{ - m_title = text; - repaint(); -} - -void TitleWidget::setActive(bool active) -{ - m_active = active; - repaint(); -} - -void TitleWidget::setTitleColor(const QColor &active_color, const QColor &inactive_color) -{ - m_active_color = active_color; - m_inactive_color = inactive_color; - - repaint(); -} - -void TitleWidget::paintEvent(QPaintEvent *event) -{ - Q_UNUSED(event) - - QPainter painter(this); - painter.setRenderHints(QPainter::Antialiasing); - - QFont font; - font.setPointSize(10); -#ifdef Q_OS_WIN - font.setFamily("Segoe UI, Microsoft YaHei UI"); -#else - font.setFamily(qApp->font().family()); -#endif - - painter.setFont(font); - - QPen pen; - pen.setColor(m_active ? m_active_color : m_inactive_color); - - painter.setPen(pen); - - QFontMetrics metrics(painter.font()); - QSize title_size = metrics.size(0, m_title); - - QString title = metrics.elidedText(m_title, Qt::ElideRight, width()); - - painter.drawText(0, (height() - title_size.height()) / 2, title_size.width(), title_size.height(), 0, title); -} diff --git a/ArchitectureColoredPainting/src/TitleWidget.h b/ArchitectureColoredPainting/src/TitleWidget.h deleted file mode 100644 index ea297b7..0000000 --- a/ArchitectureColoredPainting/src/TitleWidget.h +++ /dev/null @@ -1,54 +0,0 @@ -/* -The MIT License (MIT) - -Copyright © 2018-2022 Antonio Dias - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#ifndef TITLEWIDGET_H -#define TITLEWIDGET_H - -#include -#include -#include - -class TitleWidget : public QWidget -{ - Q_OBJECT -public: - explicit TitleWidget(QWidget *parent = nullptr); - -public slots: - void setText(const QString &text); - void setActive(bool active); - void setTitleColor(const QColor &active_color, const QColor &inactive_color); - -private: - //Functions - void paintEvent(QPaintEvent *event); - - //Variables - QString m_title; - bool m_active; - QColor m_active_color; - QColor m_inactive_color; -}; - -#endif // TITLEWIDGET_H diff --git a/ArchitectureColoredPainting/src/main.cpp b/ArchitectureColoredPainting/src/main.cpp index 6cd3b6b..e43c971 100644 --- a/ArchitectureColoredPainting/src/main.cpp +++ b/ArchitectureColoredPainting/src/main.cpp @@ -51,8 +51,8 @@ int main(int argc, char* argv[]) QApplication a(argc, argv); //FramelessHelper::Core::setApplicationOSThemeAware(); FramelessConfig::instance()->set(Global::Option::ForceNonNativeBackgroundBlur); - FramelessConfig::instance()->set(Global::Option::EnableBlurBehindWindow); - FramelessConfig::instance()->set(Global::Option::CenterWindowBeforeShow); + //FramelessConfig::instance()->set(Global::Option::EnableBlurBehindWindow); + //FramelessConfig::instance()->set(Global::Option::CenterWindowBeforeShow); MainWindow w; w.show(); return a.exec(); diff --git a/UnitTest/ElementRendererTest.cpp b/UnitTest/ElementRendererTest.cpp index e6afb0c..2ff2e88 100644 --- a/UnitTest/ElementRendererTest.cpp +++ b/UnitTest/ElementRendererTest.cpp @@ -12,14 +12,20 @@ namespace UnitTest { TEST_CLASS(ElementRendererStokeTypeTest) { + private: + char* argv[1]; + int argc; public: - TEST_METHOD(TestBothSidesRound) + ElementRendererStokeTypeTest() :argv{ (char*)"" }, argc(1) {} + + TEST_METHOD_INITIALIZE(initialize) { QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough); - char* argv[] = { (char*)"" }; - int argc = 1; + } + TEST_METHOD(TestBothSidesRound) + { QApplication a(argc, argv); class StyleStrokeRadialGradient : public Renderer::ElementStyle { @@ -41,11 +47,6 @@ namespace UnitTest } TEST_METHOD(TestBothSidesFlat) { - QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); - QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); - QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough); - char* argv[] = { (char*)"" }; - int argc = 1; QApplication a(argc, argv); class StyleStrokeRadialGradient : public Renderer::ElementStyle { @@ -67,11 +68,6 @@ namespace UnitTest } TEST_METHOD(TestLeftSideRound) { - QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); - QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); - QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough); - char* argv[] = { (char*)"" }; - int argc = 1; QApplication a(argc, argv); class StyleStrokeRadialGradient : public Renderer::ElementStyle { @@ -93,11 +89,6 @@ namespace UnitTest } TEST_METHOD(TestLeftSideFlat) { - QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); - QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); - QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough); - char* argv[] = { (char*)"" }; - int argc = 1; QApplication a(argc, argv); class StyleStrokeRadialGradient : public Renderer::ElementStyle { @@ -121,14 +112,13 @@ namespace UnitTest TEST_CLASS(ElementRendererStokeMaterialTest) { + private: + char* argv[1]; + int argc; public: + ElementRendererStokeMaterialTest() :argv{ (char*)"" }, argc(1) {} TEST_METHOD(TestStrokePlain) { - QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); - QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); - QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough); - char* argv[] = { (char*)"" }; - int argc = 1; QApplication a(argc, argv); class StyleStrokePlain : public Renderer::ElementStyle { @@ -145,11 +135,6 @@ namespace UnitTest } TEST_METHOD(TestStrokeRadialGradient1) { - QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); - QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); - QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough); - char* argv[] = { (char*)"" }; - int argc = 1; QApplication a(argc, argv); class StyleStrokeRadialGradient : public Renderer::ElementStyle { @@ -171,11 +156,6 @@ namespace UnitTest } TEST_METHOD(TestStrokeRadialGradient2) { - QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); - QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); - QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough); - char* argv[] = { (char*)"" }; - int argc = 1; QApplication a(argc, argv); class StyleStrokeRadialGradient : public Renderer::ElementStyle { diff --git a/UnitTest/ElementRendererTest.h b/UnitTest/ElementRendererTest.h index c6d1651..9271821 100644 --- a/UnitTest/ElementRendererTest.h +++ b/UnitTest/ElementRendererTest.h @@ -14,15 +14,14 @@ namespace UnitTest { Q_OBJECT private: - Renderer::ElementRenderer renderer; + Renderer::ElementRenderer& renderer; Renderer::ElementStyle& style; public: TestGLWidget(Renderer::ElementStyle& style, QWidget* parent = nullptr) - : QOpenGLWidget(parent), renderer(this), style(style) {}; + : QOpenGLWidget(parent), renderer(*Renderer::ElementRenderer::instance()), style(style) {}; void initializeGL() override { initializeOpenGLFunctions(); - renderer.initialize(); }; void paintGL() override { @@ -35,7 +34,7 @@ namespace UnitTest transform.scale(10, 10); path = transform.map(path); float pixelRatio = devicePixelRatioF(); - auto [img, pos] = renderer.drawElement(path, style, pixelRatio, false); + auto [img, pos] = renderer.drawElement(path, style, pixelRatio); QPainter painter(this); painter.setRenderHint(QPainter::SmoothPixmapTransform); painter.setRenderHint(QPainter::HighQualityAntialiasing); diff --git a/UnitTest/PaintingTest.cpp b/UnitTest/PaintingTest.cpp new file mode 100644 index 0000000..29ae33a --- /dev/null +++ b/UnitTest/PaintingTest.cpp @@ -0,0 +1,53 @@ +#include "CppUnitTest.h" +#include "PaintingTest.h" +#include +#include "Renderer/Painting/Painting.h" +#include "Renderer/Painting/MaterialStyleStroke.h" + +using namespace Microsoft::VisualStudio::CppUnitTestFramework; +using namespace Renderer; + +namespace UnitTest +{ + TEST_CLASS(PaintingTest) + { + private: + char* argv[1]; + int argc; + public: + PaintingTest() :argv{ (char*)"" }, argc(1) {} + + TEST_METHOD_INITIALIZE(initialize) + { + QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); + QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); + QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough); + } + TEST_METHOD(TestBothSidesRound) + { + QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); + QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); + QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough); + QApplication a(argc, argv); + class StyleStrokeRadialGradient : public Renderer::ElementStyle + { + virtual std::vector toBaseStyles() const override + { + std::map materialMap = { + {0.20, Material{QColor(255,255,255)}}, + {0.60, Material{QColor(165,176,207)}}, + {1.00, Material{QColor(58,64,151)}} + }; + return { BaseStyle(std::make_shared(), + std::make_shared(60, StrokeType::kBothSides, StrokeEndType::kRound, + std::make_shared(materialMap, false))) }; + } + } style; + TestPaintingGLWidget w(style); + w.show(); + a.exec(); + } + }; + + +} diff --git a/UnitTest/PaintingTest.h b/UnitTest/PaintingTest.h new file mode 100644 index 0000000..7141342 --- /dev/null +++ b/UnitTest/PaintingTest.h @@ -0,0 +1,66 @@ +#pragma once + +#include +#include +#include "Renderer/Painting/ElementStyle.h" +#include +#include +#include + +namespace UnitTest +{ + class TestPaintingGLWidget : public QOpenGLWidget, protected QOpenGLFunctions_4_5_Core + { + Q_OBJECT + private: + Renderer::ElementStyle& style; + + public: + TestPaintingGLWidget(Renderer::ElementStyle& style, QWidget* parent = nullptr) + : QOpenGLWidget(parent), style(style) {}; + void initializeGL() override + { + initializeOpenGLFunctions(); + /*std::vector, float>> contours; + + QPainterPath painterPaths[3]; + QQuickSvgParser::parsePathDataFast("M100,100C-.5,100,0,100.5,0,0L40,.07C40,59.5,39.5,60,100,60Z", + painterPaths[0]); + if (!SvgFileLoader().loadSvgFile("../svg/2.svg", painterPaths[1])) + qCritical() << "load error"; + QQuickSvgParser::parsePathDataFast("M377,459.61a11.26,11.26,0,0,1,11.27-11.27H696.12a11.27,11.27,0,0,0,11-8.62A359.84,359.84,0,0,0,708,280.56a11.26,11.26,0,0,0-11-8.73H388.27A11.26,11.26,0,0,1,377,260.57h0a11.26,11.26,0,0,1,11.27-11.26H683.71A11.32,11.32,0,0,0,694.28,234C649.8,113.69,542.57,23.85,412.3,4.12a11.22,11.22,0,0,0-12.76,11.17v158.9a11.26,11.26,0,0,0,11.26,11.27H583.12a11.32,11.32,0,0,0,9.26-17.75c-31.67-46.59-78.51-75.2-109.11-90.07a11.25,11.25,0,0,0-16.13,10.17V115.2a11.24,11.24,0,0,0,6.22,10.07l7.51,3.76a11.28,11.28,0,0,1,5,15.12h0a11.27,11.27,0,0,1-15.11,5l-20-10a11.27,11.27,0,0,1-6.22-10.07V54a11.27,11.27,0,0,1,14.62-10.75c5.11,1.59,125.66,40.35,172.24,149A11.27,11.27,0,0,1,621.11,208H388.27A11.26,11.26,0,0,1,377,196.73V11.36A11.32,11.32,0,0,0,365.89.08C363.34,0,360.79,0,358.22,0s-5.11,0-7.66.08a11.32,11.32,0,0,0-11.11,11.28V196.74A11.26,11.26,0,0,1,328.18,208H95.35A11.27,11.27,0,0,1,85,192.3c46.57-108.67,167.12-147.42,172.23-149A11.26,11.26,0,0,1,271.86,54v75.11a11.25,11.25,0,0,1-6.23,10.07l-20,10a11.27,11.27,0,0,1-15.11-5h0a11.26,11.26,0,0,1,5-15.11l7.52-3.76a11.27,11.27,0,0,0,6.22-10.07V87.82a11.25,11.25,0,0,0-16.14-10.16c-30.6,14.87-77.45,43.48-109.1,90.07a11.3,11.3,0,0,0,9.25,17.74H305.66a11.26,11.26,0,0,0,11.27-11.26V15.31A11.22,11.22,0,0,0,304.17,4.14C173.88,23.86,66.66,113.71,22.17,234a11.32,11.32,0,0,0,10.56,15.29H328.18a11.26,11.26,0,0,1,11.27,11.26v0a11.26,11.26,0,0,1-11.27,11.26H19.52a11.26,11.26,0,0,0-11,8.72,359.84,359.84,0,0,0,.83,159.16,11.26,11.26,0,0,0,11,8.61H328.18a11.26,11.26,0,0,1,11.27,11.27h0a11.26,11.26,0,0,1-11.27,11.26h-294a11.32,11.32,0,0,0-10.53,15.4C69,604.65,175.3,692.78,304.16,712.3a11.21,11.21,0,0,0,12.76-11.16V542.22A11.26,11.26,0,0,0,305.66,531h-166c-9.53,0-14.89,11.22-8.69,18.47,34.09,39.77,74.45,65.66,101.77,80.18a11.25,11.25,0,0,0,16.53-10V591a11.26,11.26,0,0,1,11.26-11.26h0A11.26,11.26,0,0,1,271.85,591v63.85A11.27,11.27,0,0,1,256.8,665.5c-4.45-1.59-109.58-40-171-139.9a11.27,11.27,0,0,1,9.59-17.17H328.18a11.26,11.26,0,0,1,11.27,11.26V705.08a11.32,11.32,0,0,0,11.11,11.28q3.82.07,7.66.08c2.57,0,5.12,0,7.67-.08A11.32,11.32,0,0,0,377,705.08V519.69a11.25,11.25,0,0,1,11.27-11.26H621.1a11.26,11.26,0,0,1,9.59,17.16c-61.46,99.87-166.59,138.3-171,139.9a11.27,11.27,0,0,1-15-10.61V591a11.26,11.26,0,0,1,11.26-11.26h0A11.26,11.26,0,0,1,467.14,591v28.6a11.25,11.25,0,0,0,16.53,10c27.33-14.53,67.68-40.42,101.77-80.19,6.2-7.23.85-18.46-8.69-18.46h-166a11.26,11.26,0,0,0-11.26,11.26V701.12a11.21,11.21,0,0,0,12.76,11.17c128.86-19.51,235.14-107.66,280.48-226a11.33,11.33,0,0,0-10.53-15.41h-294A11.25,11.25,0,0,1,377,459.61ZM35.27,399.53V316.9a11.26,11.26,0,0,1,11.27-11.26H669.92a11.25,11.25,0,0,1,11.26,11.26v82.63a11.25,11.25,0,0,1-11.26,11.26H46.54a11.27,11.27,0,0,1-11.27-11.26Z", + painterPaths[2]); + + for (auto& i : painterPaths) + { + auto [contour, ratio] = PainterPathUtil::toNormalizedLines(i); + contours.emplace_back(std::make_shared(contour), ratio); + } + + std::vector> style = { + std::make_shared(), + std::make_shared(0.02), + std::make_shared(0.2) + }; + + std::vector> element = { + std::make_shared(Element{ contours[0].first, style[0], contours[0].second}), + std::make_shared(Element{ contours[1].first, style[2], contours[1].second}), + std::make_shared(Element{ contours[2].first, style[0], contours[2].second}), + }; + Painting painting; + painting.addElement(*element[0], ElementTransform{ glm::vec2(-0.45,-0.45), glm::vec2(0.5,0.5) / 2.f, 0, glm::bvec2(false), 0 }); + painting.addElement(*element[1], ElementTransform{ glm::vec2(-0.45, 0.45), glm::vec2(0.5,0.5) / 2.f, 0, glm::bvec2(false), 0 }); + painting.addElement(*element[2], ElementTransform{ glm::vec2(0.50,-0.45), glm::vec2(0.6,0.7) / 2.f, 0, glm::bvec2(false), 0 }); + painting.generateBuffers(this);*/ + + //auto index = vtManager->createVirtualTexture(painting); + }; + void paintGL() override + { + glClearColor(219 / 255., 78 / 255., 32 / 255., 1.0); + glClear(GL_COLOR_BUFFER_BIT); + }; + void resizeGL(int w, int h) override {}; + }; +} \ No newline at end of file diff --git a/UnitTest/UnitTest.cpp b/UnitTest/UnitTest.cpp index d24ce02..2d7d95a 100644 --- a/UnitTest/UnitTest.cpp +++ b/UnitTest/UnitTest.cpp @@ -1,11 +1,12 @@ #include "CppUnitTest.h" -#include "MainWindow.h" +//#include "MainWindow.h" #include #include #include #include #include "Renderer/Painting/CubicBezier.h" #include +#include using namespace Microsoft::VisualStudio::CppUnitTestFramework; @@ -43,24 +44,24 @@ namespace UnitTest TEST_CLASS(UnitTest) { public: - TEST_METHOD(TestMethod1) - { - FRAMELESSHELPER_USE_NAMESPACE - FramelessHelper::Core::initialize(); - //QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); - QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough); - char arg[] = ""; - char* argv[] = { arg }; - int argc = 1; - QApplication a(argc, argv); - FramelessHelper::Core::setApplicationOSThemeAware(); - FramelessConfig::instance()->set(Global::Option::ForceNonNativeBackgroundBlur); - FramelessConfig::instance()->set(Global::Option::EnableBlurBehindWindow); - FramelessConfig::instance()->set(Global::Option::CenterWindowBeforeShow); - MainWindow w; - w.show(); - a.exec(); - } + //TEST_METHOD(TestMethod1) + //{ + // FRAMELESSHELPER_USE_NAMESPACE + // FramelessHelper::Core::initialize(); + // //QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); + // QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough); + // char arg[] = ""; + // char* argv[] = { arg }; + // int argc = 1; + // QApplication a(argc, argv); + // FramelessHelper::Core::setApplicationOSThemeAware(); + // FramelessConfig::instance()->set(Global::Option::ForceNonNativeBackgroundBlur); + // FramelessConfig::instance()->set(Global::Option::EnableBlurBehindWindow); + // FramelessConfig::instance()->set(Global::Option::CenterWindowBeforeShow); + // MainWindow w; + // w.show(); + // a.exec(); + //} }; TEST_CLASS(SvgLoaderTest) @@ -94,5 +95,28 @@ namespace UnitTest } }; + TEST_CLASS(ElementPoolTest) + { + private: + char* argv[1]; + int argc; + public: + ElementPoolTest() :argv{ (char*)"" }, argc(1) {} + TEST_METHOD_INITIALIZE(initialize) + { + QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); + QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); + QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough); + } + TEST_METHOD(ElementPool) { + QApplication a(argc, argv); + qInstallMessageHandler(messageHandler); + ElementPoolWidget wi; + //wi.setElementList({"1", "2", "3"}); + wi.setFixedSize(QSize(600, 800)); + wi.show(); + a.exec(); + } + }; } diff --git a/UnitTest/UnitTest.vcxproj b/UnitTest/UnitTest.vcxproj index 9ea033b..402f061 100644 --- a/UnitTest/UnitTest.vcxproj +++ b/UnitTest/UnitTest.vcxproj @@ -65,11 +65,11 @@ stdcpp20 - $(VCInstallDir)UnitTest\include;$(SolutionDIr)ArchitectureColoredPainting;$(SolutionDIr)ArchitectureColoredPainting\include;$(SolutionDIr)ArchitectureColoredPainting\src;$(SolutionDir)ArchitectureColoredPainting\src\Editor\RightBar;$(SolutionDir)ArchitectureColoredPainting\src\Editor\;$(SolutionDIr)ArchitectureColoredPainting\x64\Debug\uic;$(SolutionDir)FramelessHelper\include;$(SolutionDir)FramelessHelper\qmake\inc\core;$(SolutionDir)FramelessHelper\include\FramelessHelper\Core;%(AdditionalIncludeDirectories) + $(VCInstallDir)UnitTest\include;$(SolutionDIr)ArchitectureColoredPainting;$(SolutionDIr)ArchitectureColoredPainting\include;$(SolutionDIr)ArchitectureColoredPainting\src;$(SolutionDir)ArchitectureColoredPainting\src\Editor\RightBar;$(SolutionDir)ArchitectureColoredPainting\src\Editor\;$(SolutionDIr)ArchitectureColoredPainting\x64\Debug\uic;$(SolutionDir)FramelessHelper\include;$(SolutionDir)FramelessHelper\qmake\inc\core;$(SolutionDir)FramelessHelper\include\FramelessHelper\Core;$(SolutionDir)qt-material-widgets\components;%(AdditionalIncludeDirectories) FRAMELESSHELPER_WIDGETS_STATIC;_DEBUG;%(PreprocessorDefinitions) - $(SolutionDIr)ArchitectureColoredPainting\x64\Debug\*.obj;$(SolutionDIr)FramelessHelper\qmake\FramelessHelperCore\debug\FramelessHelperCore.lib;$(SolutionDIr)FramelessHelper\qmake\FramelessHelperWidgets\debug\FramelessHelperWidgets.lib;opengl32.lib;%(AdditionalDependencies) + $(SolutionDIr)ArchitectureColoredPainting\x64\Debug\*.obj;$(SolutionDIr)FramelessHelper\qmake\FramelessHelperCore\debug\FramelessHelperCore.lib;$(SolutionDIr)FramelessHelper\qmake\FramelessHelperWidgets\debug\FramelessHelperWidgets.lib;$(SolutionDIr)qt-material-widgets\components\debug\components.lib;opengl32.lib;%(AdditionalDependencies) @@ -111,6 +111,12 @@ input %(Filename).moc + + input + %(Filename).moc + input + %(Filename).moc +
@@ -125,6 +131,9 @@ + + + diff --git a/UnitTest/UnitTest.vcxproj.filters b/UnitTest/UnitTest.vcxproj.filters index 7460244..2a74cbc 100644 --- a/UnitTest/UnitTest.vcxproj.filters +++ b/UnitTest/UnitTest.vcxproj.filters @@ -37,10 +37,16 @@ Header Files + + Header Files + Source Files + + Source Files + \ No newline at end of file diff --git a/data - 副本.json b/data - 副本.json new file mode 100644 index 0000000..150cb6c --- /dev/null +++ b/data - 副本.json @@ -0,0 +1,111 @@ +{ + "height": 1080, + "width": 1080, + "elements": [ + { + "name": "ababa", + "type": "svg-file", + "data": { + "include": "./svg/2.svg" + } + }, + { + "name": "ababa-group", + "type": "group", + "data": { + "reference-layer": "0.0" + } + } + ], + "root-layer": { + "name": "root", + "transform": { + "offset": { + "x": 0, + "y": 0 + }, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "rotation": 0.0 + }, + "effects": [], + "is-folder": true, + "referenced-by": null, + "children": [ + + { + "name": "GroupFolderExample", + "transform": { + "offset": { + "x": 50, + "y": 50 + }, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "rotation": 0.0 + }, + "effects": [], + "is-folder": true, + "referenced-by": 1, + "children": [ + { + "name": "Leaf1", + "transform": { + "offset": { + "x": 0, + "y": 0 + }, + "scale": { + "x": 1.0, + "y": 1.0 + }, + "rotation": 0.0 + }, + "effects": [], + "is-folder": false, + "element": 0 + }, + { + "name": "Leaf2", + "transform": { + "offset": { + "x": 150, + "y": 0 + }, + "scale": { + "x": 1.5, + "y": 1.5 + }, + "rotation": 0.0 + }, + "effects": [], + "is-folder": false, + "element": 0 + } + ] + }, + + { + "name": "ReferencingGroupLayer", + "transform": { + "offset": { + "x": 100, + "y": 0 + }, + "scale": { + "x": 1, + "y": 1 + }, + "rotation": 45 + }, + "effects": [], + "is-folder": false, + "element": 1 + } + ] + } +} \ No newline at end of file diff --git a/data.back.json b/data.back.json new file mode 100644 index 0000000..bf590e5 --- /dev/null +++ b/data.back.json @@ -0,0 +1,96 @@ +{ + "elements": [ + { + "name": "" + }, + { + "name": "" + } + ], + "height": 1080, + "root-layer": { + "children": [ + { + "children": [ + { + "element": 0, + "is-folder": false, + "name": "Leaf1", + "transform": { + "offset": { + "x": 0, + "y": 0 + }, + "rotation": 0, + "scale": { + "x": 1, + "y": 1 + } + } + }, + { + "element": 0, + "is-folder": false, + "name": "Leaf2", + "transform": { + "offset": { + "x": 150, + "y": 0 + }, + "rotation": 0, + "scale": { + "x": 1.5, + "y": 1.5 + } + } + } + ], + "is-folder": true, + "name": "GroupFolderExample", + "referenced-by": 1, + "transform": { + "offset": { + "x": 50, + "y": 50 + }, + "rotation": 0, + "scale": { + "x": 1, + "y": 1 + } + } + }, + { + "element": 1, + "is-folder": false, + "name": "ReferencingGroupLayer", + "transform": { + "offset": { + "x": 100, + "y": 0 + }, + "rotation": 45, + "scale": { + "x": 1, + "y": 1 + } + } + } + ], + "is-folder": true, + "name": "root", + "referenced-by": null, + "transform": { + "offset": { + "x": 0, + "y": 0 + }, + "rotation": 0, + "scale": { + "x": 1, + "y": 1 + } + } + }, + "width": 1080 +} diff --git a/data.json b/data.json index 577f595..150cb6c 100644 --- a/data.json +++ b/data.json @@ -34,6 +34,7 @@ "is-folder": true, "referenced-by": null, "children": [ + { "name": "GroupFolderExample", "transform": { @@ -87,6 +88,7 @@ } ] }, + { "name": "ReferencingGroupLayer", "transform": { diff --git a/qt-material-widgets/.git_/HEAD b/qt-material-widgets/.git_/HEAD new file mode 100644 index 0000000..cb089cd --- /dev/null +++ b/qt-material-widgets/.git_/HEAD @@ -0,0 +1 @@ +ref: refs/heads/master diff --git a/qt-material-widgets/.git_/config b/qt-material-widgets/.git_/config new file mode 100644 index 0000000..222ffc8 --- /dev/null +++ b/qt-material-widgets/.git_/config @@ -0,0 +1,16 @@ +[core] + repositoryformatversion = 0 + filemode = false + bare = false + logallrefupdates = true + symlinks = false + ignorecase = true +[remote "origin"] + url = git@github.com:laserpants/qt-material-widgets.git + fetch = +refs/heads/*:refs/remotes/origin/* +[branch "master"] + remote = origin + merge = refs/heads/master +[gui] + wmstate = normal + geometry = 1425x773+407+375 321 352 diff --git a/qt-material-widgets/.git_/description b/qt-material-widgets/.git_/description new file mode 100644 index 0000000..498b267 --- /dev/null +++ b/qt-material-widgets/.git_/description @@ -0,0 +1 @@ +Unnamed repository; edit this file 'description' to name the repository. diff --git a/qt-material-widgets/.git_/hooks/applypatch-msg.sample b/qt-material-widgets/.git_/hooks/applypatch-msg.sample new file mode 100644 index 0000000..a5d7b84 --- /dev/null +++ b/qt-material-widgets/.git_/hooks/applypatch-msg.sample @@ -0,0 +1,15 @@ +#!/bin/sh +# +# An example hook script to check the commit log message taken by +# applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. The hook is +# allowed to edit the commit message file. +# +# To enable this hook, rename this file to "applypatch-msg". + +. git-sh-setup +commitmsg="$(git rev-parse --git-path hooks/commit-msg)" +test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"} +: diff --git a/qt-material-widgets/.git_/hooks/commit-msg.sample b/qt-material-widgets/.git_/hooks/commit-msg.sample new file mode 100644 index 0000000..b58d118 --- /dev/null +++ b/qt-material-widgets/.git_/hooks/commit-msg.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to check the commit log message. +# Called by "git commit" with one argument, the name of the file +# that has the commit message. The hook should exit with non-zero +# status after issuing an appropriate message if it wants to stop the +# commit. The hook is allowed to edit the commit message file. +# +# To enable this hook, rename this file to "commit-msg". + +# Uncomment the below to add a Signed-off-by line to the message. +# Doing this in a hook is a bad idea in general, but the prepare-commit-msg +# hook is more suited to it. +# +# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" + +# This example catches duplicate Signed-off-by lines. + +test "" = "$(grep '^Signed-off-by: ' "$1" | + sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { + echo >&2 Duplicate Signed-off-by lines. + exit 1 +} diff --git a/qt-material-widgets/.git_/hooks/fsmonitor-watchman.sample b/qt-material-widgets/.git_/hooks/fsmonitor-watchman.sample new file mode 100644 index 0000000..14ed0aa --- /dev/null +++ b/qt-material-widgets/.git_/hooks/fsmonitor-watchman.sample @@ -0,0 +1,173 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use IPC::Open2; + +# An example hook script to integrate Watchman +# (https://facebook.github.io/watchman/) with git to speed up detecting +# new and modified files. +# +# The hook is passed a version (currently 2) and last update token +# formatted as a string and outputs to stdout a new update token and +# all files that have been modified since the update token. Paths must +# be relative to the root of the working tree and separated by a single NUL. +# +# To enable this hook, rename this file to "query-watchman" and set +# 'git config core.fsmonitor .git/hooks/query-watchman' +# +my ($version, $last_update_token) = @ARGV; + +# Uncomment for debugging +# print STDERR "$0 $version $last_update_token\n"; + +# Check the hook interface version +if ($version ne 2) { + die "Unsupported query-fsmonitor hook version '$version'.\n" . + "Falling back to scanning...\n"; +} + +my $git_work_tree = get_working_dir(); + +my $retry = 1; + +my $json_pkg; +eval { + require JSON::XS; + $json_pkg = "JSON::XS"; + 1; +} or do { + require JSON::PP; + $json_pkg = "JSON::PP"; +}; + +launch_watchman(); + +sub launch_watchman { + my $o = watchman_query(); + if (is_work_tree_watched($o)) { + output_result($o->{clock}, @{$o->{files}}); + } +} + +sub output_result { + my ($clockid, @files) = @_; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # binmode $fh, ":utf8"; + # print $fh "$clockid\n@files\n"; + # close $fh; + + binmode STDOUT, ":utf8"; + print $clockid; + print "\0"; + local $, = "\0"; + print @files; +} + +sub watchman_clock { + my $response = qx/watchman clock "$git_work_tree"/; + die "Failed to get clock id on '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + + return $json_pkg->new->utf8->decode($response); +} + +sub watchman_query { + my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty') + or die "open2() failed: $!\n" . + "Falling back to scanning...\n"; + + # In the query expression below we're asking for names of files that + # changed since $last_update_token but not from the .git folder. + # + # To accomplish this, we're using the "since" generator to use the + # recency index to select candidate nodes and "fields" to limit the + # output to file names only. Then we're using the "expression" term to + # further constrain the results. + if (substr($last_update_token, 0, 1) eq "c") { + $last_update_token = "\"$last_update_token\""; + } + my $query = <<" END"; + ["query", "$git_work_tree", { + "since": $last_update_token, + "fields": ["name"], + "expression": ["not", ["dirname", ".git"]] + }] + END + + # Uncomment for debugging the watchman query + # open (my $fh, ">", ".git/watchman-query.json"); + # print $fh $query; + # close $fh; + + print CHLD_IN $query; + close CHLD_IN; + my $response = do {local $/; }; + + # Uncomment for debugging the watch response + # open ($fh, ">", ".git/watchman-response.json"); + # print $fh $response; + # close $fh; + + die "Watchman: command returned no output.\n" . + "Falling back to scanning...\n" if $response eq ""; + die "Watchman: command returned invalid output: $response\n" . + "Falling back to scanning...\n" unless $response =~ /^\{/; + + return $json_pkg->new->utf8->decode($response); +} + +sub is_work_tree_watched { + my ($output) = @_; + my $error = $output->{error}; + if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) { + $retry--; + my $response = qx/watchman watch "$git_work_tree"/; + die "Failed to make watchman watch '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + $output = $json_pkg->new->utf8->decode($response); + $error = $output->{error}; + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # close $fh; + + # Watchman will always return all files on the first query so + # return the fast "everything is dirty" flag to git and do the + # Watchman query just to get it over with now so we won't pay + # the cost in git to look up each individual file. + my $o = watchman_clock(); + $error = $output->{error}; + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + output_result($o->{clock}, ("/")); + $last_update_token = $o->{clock}; + + eval { launch_watchman() }; + return 0; + } + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + return 1; +} + +sub get_working_dir { + my $working_dir; + if ($^O =~ 'msys' || $^O =~ 'cygwin') { + $working_dir = Win32::GetCwd(); + $working_dir =~ tr/\\/\//; + } else { + require Cwd; + $working_dir = Cwd::cwd(); + } + + return $working_dir; +} diff --git a/qt-material-widgets/.git_/hooks/post-update.sample b/qt-material-widgets/.git_/hooks/post-update.sample new file mode 100644 index 0000000..ec17ec1 --- /dev/null +++ b/qt-material-widgets/.git_/hooks/post-update.sample @@ -0,0 +1,8 @@ +#!/bin/sh +# +# An example hook script to prepare a packed repository for use over +# dumb transports. +# +# To enable this hook, rename this file to "post-update". + +exec git update-server-info diff --git a/qt-material-widgets/.git_/hooks/pre-applypatch.sample b/qt-material-widgets/.git_/hooks/pre-applypatch.sample new file mode 100644 index 0000000..4142082 --- /dev/null +++ b/qt-material-widgets/.git_/hooks/pre-applypatch.sample @@ -0,0 +1,14 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed +# by applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-applypatch". + +. git-sh-setup +precommit="$(git rev-parse --git-path hooks/pre-commit)" +test -x "$precommit" && exec "$precommit" ${1+"$@"} +: diff --git a/qt-material-widgets/.git_/hooks/pre-commit.sample b/qt-material-widgets/.git_/hooks/pre-commit.sample new file mode 100644 index 0000000..e144712 --- /dev/null +++ b/qt-material-widgets/.git_/hooks/pre-commit.sample @@ -0,0 +1,49 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git commit" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message if +# it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-commit". + +if git rev-parse --verify HEAD >/dev/null 2>&1 +then + against=HEAD +else + # Initial commit: diff against an empty tree object + against=$(git hash-object -t tree /dev/null) +fi + +# If you want to allow non-ASCII filenames set this variable to true. +allownonascii=$(git config --type=bool hooks.allownonascii) + +# Redirect output to stderr. +exec 1>&2 + +# Cross platform projects tend to avoid non-ASCII filenames; prevent +# them from being added to the repository. We exploit the fact that the +# printable range starts at the space character and ends with tilde. +if [ "$allownonascii" != "true" ] && + # Note that the use of brackets around a tr range is ok here, (it's + # even required, for portability to Solaris 10's /usr/bin/tr), since + # the square bracket bytes happen to fall in the designated range. + test $(git diff --cached --name-only --diff-filter=A -z $against | + LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 +then + cat <<\EOF +Error: Attempt to add a non-ASCII file name. + +This can cause problems if you want to work with people on other platforms. + +To be portable it is advisable to rename the file. + +If you know what you are doing you can disable this check using: + + git config hooks.allownonascii true +EOF + exit 1 +fi + +# If there are whitespace errors, print the offending file names and fail. +exec git diff-index --check --cached $against -- diff --git a/qt-material-widgets/.git_/hooks/pre-merge-commit.sample b/qt-material-widgets/.git_/hooks/pre-merge-commit.sample new file mode 100644 index 0000000..399eab1 --- /dev/null +++ b/qt-material-widgets/.git_/hooks/pre-merge-commit.sample @@ -0,0 +1,13 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git merge" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message to +# stderr if it wants to stop the merge commit. +# +# To enable this hook, rename this file to "pre-merge-commit". + +. git-sh-setup +test -x "$GIT_DIR/hooks/pre-commit" && + exec "$GIT_DIR/hooks/pre-commit" +: diff --git a/qt-material-widgets/.git_/hooks/pre-push.sample b/qt-material-widgets/.git_/hooks/pre-push.sample new file mode 100644 index 0000000..6187dbf --- /dev/null +++ b/qt-material-widgets/.git_/hooks/pre-push.sample @@ -0,0 +1,53 @@ +#!/bin/sh + +# An example hook script to verify what is about to be pushed. Called by "git +# push" after it has checked the remote status, but before anything has been +# pushed. If this script exits with a non-zero status nothing will be pushed. +# +# This hook is called with the following parameters: +# +# $1 -- Name of the remote to which the push is being done +# $2 -- URL to which the push is being done +# +# If pushing without using a named remote those arguments will be equal. +# +# Information about the commits which are being pushed is supplied as lines to +# the standard input in the form: +# +# +# +# This sample shows how to prevent push of commits where the log message starts +# with "WIP" (work in progress). + +remote="$1" +url="$2" + +z40=0000000000000000000000000000000000000000 + +while read local_ref local_sha remote_ref remote_sha +do + if [ "$local_sha" = $z40 ] + then + # Handle delete + : + else + if [ "$remote_sha" = $z40 ] + then + # New branch, examine all commits + range="$local_sha" + else + # Update to existing branch, examine new commits + range="$remote_sha..$local_sha" + fi + + # Check for WIP commit + commit=`git rev-list -n 1 --grep '^WIP' "$range"` + if [ -n "$commit" ] + then + echo >&2 "Found WIP commit in $local_ref, not pushing" + exit 1 + fi + fi +done + +exit 0 diff --git a/qt-material-widgets/.git_/hooks/pre-rebase.sample b/qt-material-widgets/.git_/hooks/pre-rebase.sample new file mode 100644 index 0000000..6cbef5c --- /dev/null +++ b/qt-material-widgets/.git_/hooks/pre-rebase.sample @@ -0,0 +1,169 @@ +#!/bin/sh +# +# Copyright (c) 2006, 2008 Junio C Hamano +# +# The "pre-rebase" hook is run just before "git rebase" starts doing +# its job, and can prevent the command from running by exiting with +# non-zero status. +# +# The hook is called with the following parameters: +# +# $1 -- the upstream the series was forked from. +# $2 -- the branch being rebased (or empty when rebasing the current branch). +# +# This sample shows how to prevent topic branches that are already +# merged to 'next' branch from getting rebased, because allowing it +# would result in rebasing already published history. + +publish=next +basebranch="$1" +if test "$#" = 2 +then + topic="refs/heads/$2" +else + topic=`git symbolic-ref HEAD` || + exit 0 ;# we do not interrupt rebasing detached HEAD +fi + +case "$topic" in +refs/heads/??/*) + ;; +*) + exit 0 ;# we do not interrupt others. + ;; +esac + +# Now we are dealing with a topic branch being rebased +# on top of master. Is it OK to rebase it? + +# Does the topic really exist? +git show-ref -q "$topic" || { + echo >&2 "No such branch $topic" + exit 1 +} + +# Is topic fully merged to master? +not_in_master=`git rev-list --pretty=oneline ^master "$topic"` +if test -z "$not_in_master" +then + echo >&2 "$topic is fully merged to master; better remove it." + exit 1 ;# we could allow it, but there is no point. +fi + +# Is topic ever merged to next? If so you should not be rebasing it. +only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` +only_next_2=`git rev-list ^master ${publish} | sort` +if test "$only_next_1" = "$only_next_2" +then + not_in_topic=`git rev-list "^$topic" master` + if test -z "$not_in_topic" + then + echo >&2 "$topic is already up to date with master" + exit 1 ;# we could allow it, but there is no point. + else + exit 0 + fi +else + not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` + /usr/bin/perl -e ' + my $topic = $ARGV[0]; + my $msg = "* $topic has commits already merged to public branch:\n"; + my (%not_in_next) = map { + /^([0-9a-f]+) /; + ($1 => 1); + } split(/\n/, $ARGV[1]); + for my $elem (map { + /^([0-9a-f]+) (.*)$/; + [$1 => $2]; + } split(/\n/, $ARGV[2])) { + if (!exists $not_in_next{$elem->[0]}) { + if ($msg) { + print STDERR $msg; + undef $msg; + } + print STDERR " $elem->[1]\n"; + } + } + ' "$topic" "$not_in_next" "$not_in_master" + exit 1 +fi + +<<\DOC_END + +This sample hook safeguards topic branches that have been +published from being rewound. + +The workflow assumed here is: + + * Once a topic branch forks from "master", "master" is never + merged into it again (either directly or indirectly). + + * Once a topic branch is fully cooked and merged into "master", + it is deleted. If you need to build on top of it to correct + earlier mistakes, a new topic branch is created by forking at + the tip of the "master". This is not strictly necessary, but + it makes it easier to keep your history simple. + + * Whenever you need to test or publish your changes to topic + branches, merge them into "next" branch. + +The script, being an example, hardcodes the publish branch name +to be "next", but it is trivial to make it configurable via +$GIT_DIR/config mechanism. + +With this workflow, you would want to know: + +(1) ... if a topic branch has ever been merged to "next". Young + topic branches can have stupid mistakes you would rather + clean up before publishing, and things that have not been + merged into other branches can be easily rebased without + affecting other people. But once it is published, you would + not want to rewind it. + +(2) ... if a topic branch has been fully merged to "master". + Then you can delete it. More importantly, you should not + build on top of it -- other people may already want to + change things related to the topic as patches against your + "master", so if you need further changes, it is better to + fork the topic (perhaps with the same name) afresh from the + tip of "master". + +Let's look at this example: + + o---o---o---o---o---o---o---o---o---o "next" + / / / / + / a---a---b A / / + / / / / + / / c---c---c---c B / + / / / \ / + / / / b---b C \ / + / / / / \ / + ---o---o---o---o---o---o---o---o---o---o---o "master" + + +A, B and C are topic branches. + + * A has one fix since it was merged up to "next". + + * B has finished. It has been fully merged up to "master" and "next", + and is ready to be deleted. + + * C has not merged to "next" at all. + +We would want to allow C to be rebased, refuse A, and encourage +B to be deleted. + +To compute (1): + + git rev-list ^master ^topic next + git rev-list ^master next + + if these match, topic has not merged in next at all. + +To compute (2): + + git rev-list master..topic + + if this is empty, it is fully merged to "master". + +DOC_END diff --git a/qt-material-widgets/.git_/hooks/pre-receive.sample b/qt-material-widgets/.git_/hooks/pre-receive.sample new file mode 100644 index 0000000..a1fd29e --- /dev/null +++ b/qt-material-widgets/.git_/hooks/pre-receive.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to make use of push options. +# The example simply echoes all push options that start with 'echoback=' +# and rejects all pushes when the "reject" push option is used. +# +# To enable this hook, rename this file to "pre-receive". + +if test -n "$GIT_PUSH_OPTION_COUNT" +then + i=0 + while test "$i" -lt "$GIT_PUSH_OPTION_COUNT" + do + eval "value=\$GIT_PUSH_OPTION_$i" + case "$value" in + echoback=*) + echo "echo from the pre-receive-hook: ${value#*=}" >&2 + ;; + reject) + exit 1 + esac + i=$((i + 1)) + done +fi diff --git a/qt-material-widgets/.git_/hooks/prepare-commit-msg.sample b/qt-material-widgets/.git_/hooks/prepare-commit-msg.sample new file mode 100644 index 0000000..10fa14c --- /dev/null +++ b/qt-material-widgets/.git_/hooks/prepare-commit-msg.sample @@ -0,0 +1,42 @@ +#!/bin/sh +# +# An example hook script to prepare the commit log message. +# Called by "git commit" with the name of the file that has the +# commit message, followed by the description of the commit +# message's source. The hook's purpose is to edit the commit +# message file. If the hook fails with a non-zero status, +# the commit is aborted. +# +# To enable this hook, rename this file to "prepare-commit-msg". + +# This hook includes three examples. The first one removes the +# "# Please enter the commit message..." help message. +# +# The second includes the output of "git diff --name-status -r" +# into the message, just before the "git status" output. It is +# commented because it doesn't cope with --amend or with squashed +# commits. +# +# The third example adds a Signed-off-by line to the message, that can +# still be edited. This is rarely a good idea. + +COMMIT_MSG_FILE=$1 +COMMIT_SOURCE=$2 +SHA1=$3 + +/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE" + +# case "$COMMIT_SOURCE,$SHA1" in +# ,|template,) +# /usr/bin/perl -i.bak -pe ' +# print "\n" . `git diff --cached --name-status -r` +# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;; +# *) ;; +# esac + +# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE" +# if test -z "$COMMIT_SOURCE" +# then +# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE" +# fi diff --git a/qt-material-widgets/.git_/hooks/update.sample b/qt-material-widgets/.git_/hooks/update.sample new file mode 100644 index 0000000..5014c4b --- /dev/null +++ b/qt-material-widgets/.git_/hooks/update.sample @@ -0,0 +1,128 @@ +#!/bin/sh +# +# An example hook script to block unannotated tags from entering. +# Called by "git receive-pack" with arguments: refname sha1-old sha1-new +# +# To enable this hook, rename this file to "update". +# +# Config +# ------ +# hooks.allowunannotated +# This boolean sets whether unannotated tags will be allowed into the +# repository. By default they won't be. +# hooks.allowdeletetag +# This boolean sets whether deleting tags will be allowed in the +# repository. By default they won't be. +# hooks.allowmodifytag +# This boolean sets whether a tag may be modified after creation. By default +# it won't be. +# hooks.allowdeletebranch +# This boolean sets whether deleting branches will be allowed in the +# repository. By default they won't be. +# hooks.denycreatebranch +# This boolean sets whether remotely creating branches will be denied +# in the repository. By default this is allowed. +# + +# --- Command line +refname="$1" +oldrev="$2" +newrev="$3" + +# --- Safety check +if [ -z "$GIT_DIR" ]; then + echo "Don't run this script from the command line." >&2 + echo " (if you want, you could supply GIT_DIR then run" >&2 + echo " $0 )" >&2 + exit 1 +fi + +if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then + echo "usage: $0 " >&2 + exit 1 +fi + +# --- Config +allowunannotated=$(git config --type=bool hooks.allowunannotated) +allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch) +denycreatebranch=$(git config --type=bool hooks.denycreatebranch) +allowdeletetag=$(git config --type=bool hooks.allowdeletetag) +allowmodifytag=$(git config --type=bool hooks.allowmodifytag) + +# check for no description +projectdesc=$(sed -e '1q' "$GIT_DIR/description") +case "$projectdesc" in +"Unnamed repository"* | "") + echo "*** Project description file hasn't been set" >&2 + exit 1 + ;; +esac + +# --- Check types +# if $newrev is 0000...0000, it's a commit to delete a ref. +zero="0000000000000000000000000000000000000000" +if [ "$newrev" = "$zero" ]; then + newrev_type=delete +else + newrev_type=$(git cat-file -t $newrev) +fi + +case "$refname","$newrev_type" in + refs/tags/*,commit) + # un-annotated tag + short_refname=${refname##refs/tags/} + if [ "$allowunannotated" != "true" ]; then + echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2 + echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 + exit 1 + fi + ;; + refs/tags/*,delete) + # delete tag + if [ "$allowdeletetag" != "true" ]; then + echo "*** Deleting a tag is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/tags/*,tag) + # annotated tag + if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 + then + echo "*** Tag '$refname' already exists." >&2 + echo "*** Modifying a tag is not allowed in this repository." >&2 + exit 1 + fi + ;; + refs/heads/*,commit) + # branch + if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then + echo "*** Creating a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/heads/*,delete) + # delete branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/remotes/*,commit) + # tracking branch + ;; + refs/remotes/*,delete) + # delete tracking branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a tracking branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + *) + # Anything else (is there anything else?) + echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 + exit 1 + ;; +esac + +# --- Finished +exit 0 diff --git a/qt-material-widgets/.git_/index b/qt-material-widgets/.git_/index new file mode 100644 index 0000000..7d81a72 Binary files /dev/null and b/qt-material-widgets/.git_/index differ diff --git a/qt-material-widgets/.git_/info/exclude b/qt-material-widgets/.git_/info/exclude new file mode 100644 index 0000000..a5196d1 --- /dev/null +++ b/qt-material-widgets/.git_/info/exclude @@ -0,0 +1,6 @@ +# git ls-files --others --exclude-from=.git/info/exclude +# Lines that start with '#' are comments. +# For a project mostly in C, the following would be a good set of +# exclude patterns (uncomment them if you want to use them): +# *.[oa] +# *~ diff --git a/qt-material-widgets/.git_/ms-persist.xml b/qt-material-widgets/.git_/ms-persist.xml new file mode 100644 index 0000000..651e86c --- /dev/null +++ b/qt-material-widgets/.git_/ms-persist.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/qt-material-widgets/.git_/objects/pack/pack-de455770b027f6227a0613ef4be6ff07893e456e.idx b/qt-material-widgets/.git_/objects/pack/pack-de455770b027f6227a0613ef4be6ff07893e456e.idx new file mode 100644 index 0000000..225f05a Binary files /dev/null and b/qt-material-widgets/.git_/objects/pack/pack-de455770b027f6227a0613ef4be6ff07893e456e.idx differ diff --git a/qt-material-widgets/.git_/objects/pack/pack-de455770b027f6227a0613ef4be6ff07893e456e.pack b/qt-material-widgets/.git_/objects/pack/pack-de455770b027f6227a0613ef4be6ff07893e456e.pack new file mode 100644 index 0000000..a95f0b1 Binary files /dev/null and b/qt-material-widgets/.git_/objects/pack/pack-de455770b027f6227a0613ef4be6ff07893e456e.pack differ diff --git a/qt-material-widgets/.git_/packed-refs b/qt-material-widgets/.git_/packed-refs new file mode 100644 index 0000000..ef97c6e --- /dev/null +++ b/qt-material-widgets/.git_/packed-refs @@ -0,0 +1,3 @@ +# pack-refs with: peeled fully-peeled sorted +80e9a5a4b8021f37baf2c189458f200a6a7ffd67 refs/remotes/origin/debug +3a0e2265972e5203e240489bc975623c85127813 refs/remotes/origin/master diff --git a/qt-material-widgets/.git_/refs/heads/master b/qt-material-widgets/.git_/refs/heads/master new file mode 100644 index 0000000..9dc4140 --- /dev/null +++ b/qt-material-widgets/.git_/refs/heads/master @@ -0,0 +1 @@ +3a0e2265972e5203e240489bc975623c85127813 diff --git a/qt-material-widgets/.git_/refs/remotes/origin/HEAD b/qt-material-widgets/.git_/refs/remotes/origin/HEAD new file mode 100644 index 0000000..6efe28f --- /dev/null +++ b/qt-material-widgets/.git_/refs/remotes/origin/HEAD @@ -0,0 +1 @@ +ref: refs/remotes/origin/master diff --git a/qt-material-widgets/.gitignore b/qt-material-widgets/.gitignore new file mode 100644 index 0000000..75c107b --- /dev/null +++ b/qt-material-widgets/.gitignore @@ -0,0 +1 @@ +*.pro.user diff --git a/qt-material-widgets/.qmake.conf b/qt-material-widgets/.qmake.conf new file mode 100644 index 0000000..b303d71 --- /dev/null +++ b/qt-material-widgets/.qmake.conf @@ -0,0 +1,2 @@ +top_srcdir=$$PWD +top_builddir=$$shadowed($$PWD) diff --git a/qt-material-widgets/.qmake.stash b/qt-material-widgets/.qmake.stash new file mode 100644 index 0000000..8168347 --- /dev/null +++ b/qt-material-widgets/.qmake.stash @@ -0,0 +1,23 @@ +QMAKE_CXX.QT_COMPILER_STDCXX = 199711L +QMAKE_CXX.QMAKE_MSC_VER = 1935 +QMAKE_CXX.QMAKE_MSC_FULL_VER = 193532215 +QMAKE_CXX.COMPILER_MACROS = \ + QT_COMPILER_STDCXX \ + QMAKE_MSC_VER \ + QMAKE_MSC_FULL_VER +QMAKE_CXX.INCDIRS = \ + "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.35.32215\\include" \ + "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.35.32215\\ATLMFC\\include" \ + "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Auxiliary\\VS\\include" \ + "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.22000.0\\ucrt" \ + "C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.22000.0\\\\um" \ + "C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.22000.0\\\\shared" \ + "C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.22000.0\\\\winrt" \ + "C:\\Program Files (x86)\\Windows Kits\\10\\\\include\\10.0.22000.0\\\\cppwinrt" \ + "C:\\Program Files (x86)\\Windows Kits\\NETFXSDK\\4.8\\include\\um" +QMAKE_CXX.LIBDIRS = \ + "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.35.32215\\ATLMFC\\lib\\x64" \ + "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.35.32215\\lib\\x64" \ + "C:\\Program Files (x86)\\Windows Kits\\NETFXSDK\\4.8\\lib\\um\\x64" \ + "C:\\Program Files (x86)\\Windows Kits\\10\\lib\\10.0.22000.0\\ucrt\\x64" \ + "C:\\Program Files (x86)\\Windows Kits\\10\\\\lib\\10.0.22000.0\\\\um\\x64" diff --git a/qt-material-widgets/LICENSE b/qt-material-widgets/LICENSE new file mode 100644 index 0000000..42dfd84 --- /dev/null +++ b/qt-material-widgets/LICENSE @@ -0,0 +1,30 @@ +Copyright Johannes Hilden (c) 2017 + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Author name here nor the names of other + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/qt-material-widgets/README.md b/qt-material-widgets/README.md new file mode 100644 index 0000000..c73eed0 --- /dev/null +++ b/qt-material-widgets/README.md @@ -0,0 +1,317 @@ +# Qt Material Design Desktop Widgets [![Language](https://img.shields.io/badge/language-c++-brightgreen.svg)]() [![Join the chat at https://gitter.im/qt-material-widgets/Lobby](https://badges.gitter.im/qt-material-widgets/Lobby.svg)](https://gitter.im/qt-material-widgets/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + +YouTube video preview [available here](http://www.youtube.com/watch?v=21UMeNVBPU4). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ App Bar + + QtMaterialAppBar +
+ +
+ Auto Complete + + QtMaterialAutoComplete +
+ +
+ Avatar + + QtMaterialAvatar +
+ +
+ Badge + + QtMaterialBadge +
+ +
+ Check Box + + QtMaterialCheckBox +
+ +
+ Circular Progress + + QtMaterialCircularProgress +
+ +
+ Dialog + + QtMaterialDialog +
+ +
+ Drawer + + QtMaterialDrawer +
+ +
+ FAB + + QtMaterialFloatingActionButton +
+ +
+ Flat Button + + QtMaterialFlatButton +
+ +
+ Icon Button + + QtMaterialIconButton +
+ +
+ Progress + + QtMaterialProgress +
+ +
+ Radio Button + + QtMaterialRadioButton +
+ +
+ Raised Button + + QtMaterialRaisedButton +
+ +
+ Scroll Bar + + QtMaterialScrollBar +
+ +
+ Slider + + QtMaterialSlider +
+ +
+ Snackbar + + QtMaterialSnackBar +
+ +
+ Tabs + + QtMaterialTabs +
+ +
+ Text Field + + QtMaterialTextField +
+ +
+ Toggle + + QtMaterialToggle +
+ +
+ +#### Implemented components + +- [x] App Bar +- [x] Auto Complete +- [x] Avatar +- [x] Badge +- [x] Check Box +- [x] Circular Progress +- [x] Dialog +- [x] Drawer +- [x] Floating Action Button +- [x] Flat Button +- [x] Icon Button +- [x] Progress +- [x] Radio Button +- [x] Raised Button +- [x] Scroll Bar +- [x] Slider +- [x] Snackbar +- [x] Tabs +- [x] Text Field +- [x] Toggle + +#### Work in progress + +- [ ] Divider +- [ ] List +- [ ] List Item +- [ ] Menu +- [ ] Paper +- [ ] Snackbar Layout +- [ ] Table + +#### Not implemented + +- [ ] Card +- [ ] Chips +- [ ] Discrete Slider +- [ ] Grid List +- [ ] Icon Menu +- [ ] Search Field +- [ ] Select Field +- [ ] Stepper +- [ ] Subheaders +- [ ] Toolbar diff --git a/qt-material-widgets/components/components.pro b/qt-material-widgets/components/components.pro new file mode 100644 index 0000000..d6080d5 --- /dev/null +++ b/qt-material-widgets/components/components.pro @@ -0,0 +1,130 @@ +TEMPLATE = lib +CONFIG += staticlib +SOURCES = \ + qtmaterialavatar.cpp \ + lib/qtmaterialstyle.cpp \ + lib/qtmaterialtheme.cpp \ + qtmaterialbadge.cpp \ + lib/qtmaterialoverlaywidget.cpp \ + qtmaterialcheckbox.cpp \ + lib/qtmaterialcheckable_internal.cpp \ + lib/qtmaterialcheckable.cpp \ + lib/qtmaterialripple.cpp \ + lib/qtmaterialrippleoverlay.cpp \ + qtmaterialfab.cpp \ + qtmaterialraisedbutton.cpp \ + qtmaterialflatbutton_internal.cpp \ + qtmaterialflatbutton.cpp \ + lib/qtmaterialstatetransition.cpp \ + qtmaterialiconbutton.cpp \ + qtmaterialprogress_internal.cpp \ + qtmaterialprogress.cpp \ + qtmaterialcircularprogress_internal.cpp \ + qtmaterialcircularprogress.cpp \ + qtmaterialslider_internal.cpp \ + qtmaterialslider.cpp \ + qtmaterialsnackbar_internal.cpp \ + qtmaterialsnackbar.cpp \ + qtmaterialradiobutton.cpp \ + qtmaterialtoggle_internal.cpp \ + qtmaterialtoggle.cpp \ + qtmaterialtextfield_internal.cpp \ + qtmaterialtextfield.cpp \ + qtmaterialtabs_internal.cpp \ + qtmaterialtabs.cpp \ + qtmaterialscrollbar_internal.cpp \ + qtmaterialscrollbar.cpp \ + qtmaterialdialog_internal.cpp \ + qtmaterialdialog.cpp \ + qtmaterialdrawer_internal.cpp \ + qtmaterialdrawer.cpp \ + qtmaterialappbar.cpp \ + qtmaterialautocomplete.cpp \ + qtmaterialpaper.cpp \ + qtmaterialtable.cpp \ + layouts/qtmaterialsnackbarlayout.cpp \ + qtmaterialautocomplete_internal.cpp \ + qtmaterialmenu.cpp \ + qtmaterialmenu_internal.cpp \ + qtmateriallist.cpp \ + qtmateriallistitem.cpp +HEADERS = \ + qtmaterialavatar_p.h \ + qtmaterialavatar.h \ + lib/qtmaterialstyle_p.h \ + lib/qtmaterialstyle.h \ + lib/qtmaterialtheme_p.h \ + lib/qtmaterialtheme.h \ + qtmaterialbadge_p.h \ + qtmaterialbadge.h \ + lib/qtmaterialoverlaywidget.h \ + qtmaterialcheckbox_p.h \ + qtmaterialcheckbox.h \ + lib/qtmaterialcheckable_internal.h \ + lib/qtmaterialcheckable_p.h \ + lib/qtmaterialripple.h \ + lib/qtmaterialrippleoverlay.h \ + lib/qtmaterialcheckable.h \ + qtmaterialfab_p.h \ + qtmaterialfab.h \ + qtmaterialraisedbutton_p.h \ + qtmaterialraisedbutton.h \ + qtmaterialflatbutton_internal.h \ + qtmaterialflatbutton_p.h \ + qtmaterialflatbutton.h \ + lib/qtmaterialstatetransition.h \ + lib/qtmaterialstatetransitionevent.h \ + qtmaterialiconbutton_p.h \ + qtmaterialiconbutton.h \ + qtmaterialprogress_internal.h \ + qtmaterialprogress_p.h \ + qtmaterialprogress.h \ + qtmaterialcircularprogress_internal.h \ + qtmaterialcircularprogress_p.h \ + qtmaterialcircularprogress.h \ + qtmaterialslider_internal.h \ + qtmaterialslider_p.h \ + qtmaterialslider.h \ + qtmaterialsnackbar_internal.h \ + qtmaterialsnackbar_p.h \ + qtmaterialsnackbar.h \ + qtmaterialradiobutton_p.h \ + qtmaterialradiobutton.h \ + qtmaterialtoggle_internal.h \ + qtmaterialtoggle_p.h \ + qtmaterialtoggle.h \ + qtmaterialtextfield_internal.h \ + qtmaterialtextfield_p.h \ + qtmaterialtextfield.h \ + qtmaterialtabs_internal.h \ + qtmaterialtabs_p.h \ + qtmaterialtabs.h \ + qtmaterialscrollbar_internal.h \ + qtmaterialscrollbar_p.h \ + qtmaterialscrollbar.h \ + qtmaterialdialog_internal.h \ + qtmaterialdialog_p.h \ + qtmaterialdialog.h \ + qtmaterialdrawer_internal.h \ + qtmaterialdrawer_p.h \ + qtmaterialdrawer.h \ + qtmaterialappbar.h \ + qtmaterialappbar_p.h \ + qtmaterialautocomplete.h \ + qtmaterialautocomplete_p.h \ + qtmaterialpaper.h \ + qtmaterialpaper_p.h \ + qtmaterialtable.h \ + qtmaterialtable_p.h \ + layouts/qtmaterialsnackbarlayout.h \ + layouts/qtmaterialsnackbarlayout_p.h \ + qtmaterialautocomplete_internal.h \ + qtmaterialmenu.h \ + qtmaterialmenu_p.h \ + qtmaterialmenu_internal.h \ + qtmateriallist.h \ + qtmateriallist_p.h \ + qtmateriallistitem.h \ + qtmateriallistitem_p.h +RESOURCES += \ + resources.qrc diff --git a/qt-material-widgets/components/components.vcxproj b/qt-material-widgets/components/components.vcxproj new file mode 100644 index 0000000..bf12405 --- /dev/null +++ b/qt-material-widgets/components/components.vcxproj @@ -0,0 +1,1339 @@ + + + + + Release + x64 + + + Debug + x64 + + + + {8F360763-A045-3808-87A9-3FAE38E69819} + components + QtVS_v304 + 10.0.22000.0 + 10.0.22000.0 + $(MSBuildProjectDirectory)\QtMsBuild + QtMaterialWidgetsComponents + + + + v143 + release\ + false + NotSet + StaticLibrary + release\ + components + + + v143 + debug\ + false + NotSet + StaticLibrary + debug\ + components + + + + + + + + + + + + + + + + + + debug\ + debug\ + components + true + + + release\ + release\ + components + true + + + 5.15.2_msvc2019_64 + core;gui + + + 5.15.2_msvc2019_64 + core;gui + + + + + + + .;release;%(AdditionalIncludeDirectories) + -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 %(AdditionalOptions) + release\ + false + None + 4577;4467;%(DisableSpecificWarnings) + Sync + release\ + MaxSpeed + _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;NDEBUG;QT_NO_DEBUG;%(PreprocessorDefinitions) + false + + + MultiThreadedDLL + true + true + Level3 + true + stdcpp20 + + + $(OutDir)\components.lib + true + + + Unsigned + None + 0 + + + _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;NDEBUG;QT_NO_DEBUG;%(PreprocessorDefinitions) + + + msvc + ./$(Configuration)/moc_predefs.h + Moc'ing %(Identity)... + output + $(Configuration) + moc_%(Filename).cpp + + + resources + default + Rcc'ing %(Identity)... + $(Configuration) + qrc_%(Filename).cpp + + + + + .;debug;%(AdditionalIncludeDirectories) + -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 %(AdditionalOptions) + debug\ + false + ProgramDatabase + 4577;4467;%(DisableSpecificWarnings) + Sync + debug\ + Disabled + _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;%(PreprocessorDefinitions) + false + MultiThreadedDebugDLL + true + true + Level3 + true + stdcpp20 + + + $(OutDir)\components.lib + true + + + Unsigned + None + 0 + + + _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;_DEBUG;%(PreprocessorDefinitions) + + + msvc + ./$(Configuration)/moc_predefs.h + Moc'ing %(Identity)... + output + $(Configuration) + moc_%(Filename).cpp + + + resources + default + Rcc'ing %(Identity)... + $(Configuration) + qrc_%(Filename).cpp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Document + true + $(QTDIR)\mkspecs\features\data\dummy.cpp;%(AdditionalInputs) + cl -Bx"$(QTDIR)\bin\qmake.exe" -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -Zi -MDd -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -E $(QTDIR)\mkspecs\features\data\dummy.cpp 2>NUL >debug\moc_predefs.h + Generate moc_predefs.h + debug\moc_predefs.h;%(Outputs) + + + Document + $(QTDIR)\mkspecs\features\data\dummy.cpp;%(AdditionalInputs) + cl -Bx"$(QTDIR)\bin\qmake.exe" -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -O2 -MD -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -E $(QTDIR)\mkspecs\features\data\dummy.cpp 2>NUL >release\moc_predefs.h + Generate moc_predefs.h + release\moc_predefs.h;%(Outputs) + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/qt-material-widgets/components/components.vcxproj.filters b/qt-material-widgets/components/components.vcxproj.filters new file mode 100644 index 0000000..fef25a3 --- /dev/null +++ b/qt-material-widgets/components/components.vcxproj.filters @@ -0,0 +1,3410 @@ + + + + + {71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11} + cpp;c;cxx;moc;h;def;odl;idl;res; + + + {71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11} + cpp;c;cxx;moc;h;def;odl;idl;res; + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E} + qrc;* + false + + + {D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E} + qrc;* + false + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + Generated Files + + + Generated Files + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/LICENSE b/qt-material-widgets/components/icons/LICENSE new file mode 100644 index 0000000..7a4a3ea --- /dev/null +++ b/qt-material-widgets/components/icons/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_3d_rotation_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_3d_rotation_24px.svg new file mode 100644 index 0000000..db31710 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_3d_rotation_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_accessibility_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_accessibility_24px.svg new file mode 100644 index 0000000..fda62ae --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_accessibility_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_accessible_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_accessible_24px.svg new file mode 100644 index 0000000..7f14189 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_accessible_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_account_balance_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_account_balance_24px.svg new file mode 100644 index 0000000..1faddad --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_account_balance_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_account_balance_wallet_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_account_balance_wallet_24px.svg new file mode 100644 index 0000000..e71a765 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_account_balance_wallet_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_account_box_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_account_box_24px.svg new file mode 100644 index 0000000..d581147 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_account_box_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_account_circle_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_account_circle_24px.svg new file mode 100644 index 0000000..01dc062 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_account_circle_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_add_shopping_cart_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_add_shopping_cart_24px.svg new file mode 100644 index 0000000..3331ecc --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_add_shopping_cart_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_alarm_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_alarm_24px.svg new file mode 100644 index 0000000..edfa7a6 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_alarm_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_alarm_add_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_alarm_add_24px.svg new file mode 100644 index 0000000..8bf2e6c --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_alarm_add_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_alarm_off_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_alarm_off_24px.svg new file mode 100644 index 0000000..58edb5d --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_alarm_off_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_alarm_on_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_alarm_on_24px.svg new file mode 100644 index 0000000..79de6cb --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_alarm_on_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_all_out_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_all_out_24px.svg new file mode 100644 index 0000000..6ad5c9c --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_all_out_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_android_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_android_24px.svg new file mode 100644 index 0000000..600a26a --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_android_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_announcement_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_announcement_24px.svg new file mode 100644 index 0000000..fd7463c --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_announcement_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_aspect_ratio_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_aspect_ratio_24px.svg new file mode 100644 index 0000000..d84112f --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_aspect_ratio_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_assessment_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_assessment_24px.svg new file mode 100644 index 0000000..cc7768b --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_assessment_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_assignment_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_assignment_24px.svg new file mode 100644 index 0000000..cb7fd32 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_assignment_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_assignment_ind_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_assignment_ind_24px.svg new file mode 100644 index 0000000..3c0a273 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_assignment_ind_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_assignment_late_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_assignment_late_24px.svg new file mode 100644 index 0000000..ad82055 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_assignment_late_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_assignment_return_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_assignment_return_24px.svg new file mode 100644 index 0000000..4bfb1e5 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_assignment_return_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_assignment_returned_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_assignment_returned_24px.svg new file mode 100644 index 0000000..4417ebc --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_assignment_returned_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_assignment_turned_in_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_assignment_turned_in_24px.svg new file mode 100644 index 0000000..841afa5 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_assignment_turned_in_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_autorenew_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_autorenew_24px.svg new file mode 100644 index 0000000..a260be6 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_autorenew_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_backup_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_backup_24px.svg new file mode 100644 index 0000000..69a9622 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_backup_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_book_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_book_24px.svg new file mode 100644 index 0000000..f5dd104 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_book_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_bookmark_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_bookmark_24px.svg new file mode 100644 index 0000000..1d507a6 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_bookmark_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_bookmark_border_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_bookmark_border_24px.svg new file mode 100644 index 0000000..f178b05 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_bookmark_border_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_bug_report_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_bug_report_24px.svg new file mode 100644 index 0000000..0ac92ab --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_bug_report_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_build_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_build_24px.svg new file mode 100644 index 0000000..447e292 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_build_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_cached_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_cached_24px.svg new file mode 100644 index 0000000..9bd4422 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_cached_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_camera_enhance_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_camera_enhance_24px.svg new file mode 100644 index 0000000..a2471c1 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_camera_enhance_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_card_giftcard_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_card_giftcard_24px.svg new file mode 100644 index 0000000..30e51d6 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_card_giftcard_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_card_membership_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_card_membership_24px.svg new file mode 100644 index 0000000..daadcd4 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_card_membership_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_card_travel_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_card_travel_24px.svg new file mode 100644 index 0000000..e4149b3 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_card_travel_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_change_history_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_change_history_24px.svg new file mode 100644 index 0000000..301bfa9 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_change_history_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_check_circle_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_check_circle_24px.svg new file mode 100644 index 0000000..1741e30 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_check_circle_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_chrome_reader_mode_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_chrome_reader_mode_24px.svg new file mode 100644 index 0000000..ba864e1 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_chrome_reader_mode_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_class_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_class_24px.svg new file mode 100644 index 0000000..f5dd104 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_class_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_code_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_code_24px.svg new file mode 100644 index 0000000..612ca55 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_code_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_compare_arrows_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_compare_arrows_24px.svg new file mode 100644 index 0000000..21a0239 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_compare_arrows_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_copyright_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_copyright_24px.svg new file mode 100644 index 0000000..33d8465 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_copyright_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_credit_card_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_credit_card_24px.svg new file mode 100644 index 0000000..99afa68 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_credit_card_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_dashboard_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_dashboard_24px.svg new file mode 100644 index 0000000..1682295 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_dashboard_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_date_range_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_date_range_24px.svg new file mode 100644 index 0000000..6d8cee4 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_date_range_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_delete_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_delete_24px.svg new file mode 100644 index 0000000..0969a4d --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_delete_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_delete_forever_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_delete_forever_24px.svg new file mode 100644 index 0000000..8b0bbe4 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_delete_forever_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_description_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_description_24px.svg new file mode 100644 index 0000000..1585a6c --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_description_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_dns_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_dns_24px.svg new file mode 100644 index 0000000..4079ced --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_dns_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_done_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_done_24px.svg new file mode 100644 index 0000000..20a7f2d --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_done_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_done_all_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_done_all_24px.svg new file mode 100644 index 0000000..24e36cf --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_done_all_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_donut_large_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_donut_large_24px.svg new file mode 100644 index 0000000..bbc39e6 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_donut_large_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_donut_small_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_donut_small_24px.svg new file mode 100644 index 0000000..36987e6 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_donut_small_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_eject_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_eject_24px.svg new file mode 100644 index 0000000..a8fc5a1 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_eject_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_euro_symbol_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_euro_symbol_24px.svg new file mode 100644 index 0000000..713f078 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_euro_symbol_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_event_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_event_24px.svg new file mode 100644 index 0000000..1b084e8 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_event_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_event_seat_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_event_seat_24px.svg new file mode 100644 index 0000000..6ec648c --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_event_seat_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_exit_to_app_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_exit_to_app_24px.svg new file mode 100644 index 0000000..b5763e9 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_exit_to_app_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_explore_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_explore_24px.svg new file mode 100644 index 0000000..4243343 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_explore_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_extension_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_extension_24px.svg new file mode 100644 index 0000000..39f275c --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_extension_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_face_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_face_24px.svg new file mode 100644 index 0000000..993149b --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_face_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_favorite_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_favorite_24px.svg new file mode 100644 index 0000000..8a7ea03 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_favorite_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_favorite_border_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_favorite_border_24px.svg new file mode 100644 index 0000000..999e319 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_favorite_border_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_feedback_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_feedback_24px.svg new file mode 100644 index 0000000..72b0945 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_feedback_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_find_in_page_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_find_in_page_24px.svg new file mode 100644 index 0000000..eacc8e8 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_find_in_page_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_find_replace_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_find_replace_24px.svg new file mode 100644 index 0000000..cede6cd --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_find_replace_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_fingerprint_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_fingerprint_24px.svg new file mode 100644 index 0000000..c6802fe --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_fingerprint_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_flight_land_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_flight_land_24px.svg new file mode 100644 index 0000000..0b6c294 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_flight_land_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_flight_takeoff_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_flight_takeoff_24px.svg new file mode 100644 index 0000000..fe40880 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_flight_takeoff_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_flip_to_back_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_flip_to_back_24px.svg new file mode 100644 index 0000000..7e641b6 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_flip_to_back_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_flip_to_front_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_flip_to_front_24px.svg new file mode 100644 index 0000000..d2d1664 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_flip_to_front_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_g_translate_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_g_translate_24px.svg new file mode 100644 index 0000000..47ade36 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_g_translate_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_gavel_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_gavel_24px.svg new file mode 100644 index 0000000..2092083 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_gavel_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_get_app_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_get_app_24px.svg new file mode 100644 index 0000000..ef421c3 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_get_app_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_gif_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_gif_24px.svg new file mode 100644 index 0000000..d16cb7c --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_gif_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_grade_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_grade_24px.svg new file mode 100644 index 0000000..46d104b --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_grade_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_group_work_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_group_work_24px.svg new file mode 100644 index 0000000..0f3fd5a --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_group_work_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_help_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_help_24px.svg new file mode 100644 index 0000000..dd1cd77 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_help_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_help_outline_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_help_outline_24px.svg new file mode 100644 index 0000000..3e980a4 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_help_outline_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_highlight_off_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_highlight_off_24px.svg new file mode 100644 index 0000000..848183c --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_highlight_off_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_history_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_history_24px.svg new file mode 100644 index 0000000..c00b86b --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_history_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_home_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_home_24px.svg new file mode 100644 index 0000000..6bd84cf --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_home_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_hourglass_empty_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_hourglass_empty_24px.svg new file mode 100644 index 0000000..48298a7 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_hourglass_empty_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_hourglass_full_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_hourglass_full_24px.svg new file mode 100644 index 0000000..e33ac31 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_hourglass_full_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_http_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_http_24px.svg new file mode 100644 index 0000000..4a8c23a --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_http_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_https_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_https_24px.svg new file mode 100644 index 0000000..2154a2c --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_https_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_important_devices_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_important_devices_24px.svg new file mode 100644 index 0000000..9d0162b --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_important_devices_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_info_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_info_24px.svg new file mode 100644 index 0000000..22ef137 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_info_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_info_outline_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_info_outline_24px.svg new file mode 100644 index 0000000..bb86e65 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_info_outline_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_input_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_input_24px.svg new file mode 100644 index 0000000..64d1d0b --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_input_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_invert_colors_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_invert_colors_24px.svg new file mode 100644 index 0000000..d7165a2 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_invert_colors_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_label_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_label_24px.svg new file mode 100644 index 0000000..e0f42a3 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_label_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_label_outline_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_label_outline_24px.svg new file mode 100644 index 0000000..aca61dc --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_label_outline_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_language_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_language_24px.svg new file mode 100644 index 0000000..0349db4 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_language_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_launch_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_launch_24px.svg new file mode 100644 index 0000000..40f6564 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_launch_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_lightbulb_outline_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_lightbulb_outline_24px.svg new file mode 100644 index 0000000..4351f81 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_lightbulb_outline_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_line_style_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_line_style_24px.svg new file mode 100644 index 0000000..7fc27b1 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_line_style_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_line_weight_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_line_weight_24px.svg new file mode 100644 index 0000000..e1321a7 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_line_weight_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_list_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_list_24px.svg new file mode 100644 index 0000000..f280e6a --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_list_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_lock_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_lock_24px.svg new file mode 100644 index 0000000..2154a2c --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_lock_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_lock_open_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_lock_open_24px.svg new file mode 100644 index 0000000..4481b0e --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_lock_open_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_lock_outline_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_lock_outline_24px.svg new file mode 100644 index 0000000..b8b5c01 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_lock_outline_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_loyalty_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_loyalty_24px.svg new file mode 100644 index 0000000..c151715 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_loyalty_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_markunread_mailbox_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_markunread_mailbox_24px.svg new file mode 100644 index 0000000..7237f6b --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_markunread_mailbox_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_motorcycle_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_motorcycle_24px.svg new file mode 100644 index 0000000..bc98009 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_motorcycle_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_note_add_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_note_add_24px.svg new file mode 100644 index 0000000..36c9d08 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_note_add_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_offline_pin_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_offline_pin_24px.svg new file mode 100644 index 0000000..c1abee0 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_offline_pin_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_opacity_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_opacity_24px.svg new file mode 100644 index 0000000..af841ac --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_opacity_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_open_in_browser_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_open_in_browser_24px.svg new file mode 100644 index 0000000..39bc1c0 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_open_in_browser_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_open_in_new_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_open_in_new_24px.svg new file mode 100644 index 0000000..40f6564 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_open_in_new_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_open_with_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_open_with_24px.svg new file mode 100644 index 0000000..e7fc349 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_open_with_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_pageview_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_pageview_24px.svg new file mode 100644 index 0000000..224cf28 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_pageview_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_pan_tool_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_pan_tool_24px.svg new file mode 100644 index 0000000..a89a41c --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_pan_tool_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_payment_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_payment_24px.svg new file mode 100644 index 0000000..99afa68 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_payment_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_perm_camera_mic_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_perm_camera_mic_24px.svg new file mode 100644 index 0000000..e5ef14b --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_perm_camera_mic_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_perm_contact_calendar_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_perm_contact_calendar_24px.svg new file mode 100644 index 0000000..903123a --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_perm_contact_calendar_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_perm_data_setting_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_perm_data_setting_24px.svg new file mode 100644 index 0000000..3720f3a --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_perm_data_setting_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_perm_device_information_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_perm_device_information_24px.svg new file mode 100644 index 0000000..89a3a8a --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_perm_device_information_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_perm_identity_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_perm_identity_24px.svg new file mode 100644 index 0000000..a1ac943 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_perm_identity_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_perm_media_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_perm_media_24px.svg new file mode 100644 index 0000000..7420f7b --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_perm_media_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_perm_phone_msg_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_perm_phone_msg_24px.svg new file mode 100644 index 0000000..aa35fb8 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_perm_phone_msg_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_perm_scan_wifi_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_perm_scan_wifi_24px.svg new file mode 100644 index 0000000..97dff31 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_perm_scan_wifi_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_pets_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_pets_24px.svg new file mode 100644 index 0000000..e4d7d48 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_pets_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_picture_in_picture_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_picture_in_picture_24px.svg new file mode 100644 index 0000000..b74607d --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_picture_in_picture_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_picture_in_picture_alt_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_picture_in_picture_alt_24px.svg new file mode 100644 index 0000000..7f7e861 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_picture_in_picture_alt_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_play_for_work_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_play_for_work_24px.svg new file mode 100644 index 0000000..3568dd9 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_play_for_work_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_polymer_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_polymer_24px.svg new file mode 100644 index 0000000..11dfede --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_polymer_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_power_settings_new_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_power_settings_new_24px.svg new file mode 100644 index 0000000..27e5293 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_power_settings_new_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_pregnant_woman_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_pregnant_woman_24px.svg new file mode 100644 index 0000000..7e1be40 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_pregnant_woman_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_print_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_print_24px.svg new file mode 100644 index 0000000..6128bd8 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_print_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_query_builder_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_query_builder_24px.svg new file mode 100644 index 0000000..fac5f2e --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_query_builder_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_question_answer_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_question_answer_24px.svg new file mode 100644 index 0000000..8c958d9 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_question_answer_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_receipt_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_receipt_24px.svg new file mode 100644 index 0000000..1357bbd --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_receipt_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_record_voice_over_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_record_voice_over_24px.svg new file mode 100644 index 0000000..2ce9798 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_record_voice_over_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_redeem_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_redeem_24px.svg new file mode 100644 index 0000000..30e51d6 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_redeem_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_remove_shopping_cart_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_remove_shopping_cart_24px.svg new file mode 100644 index 0000000..85566b8 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_remove_shopping_cart_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_reorder_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_reorder_24px.svg new file mode 100644 index 0000000..7f277b8 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_reorder_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_report_problem_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_report_problem_24px.svg new file mode 100644 index 0000000..dfcf997 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_report_problem_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_restore_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_restore_24px.svg new file mode 100644 index 0000000..c00b86b --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_restore_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_restore_page_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_restore_page_24px.svg new file mode 100644 index 0000000..8ceee58 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_restore_page_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_room_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_room_24px.svg new file mode 100644 index 0000000..490afe9 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_room_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_rounded_corner_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_rounded_corner_24px.svg new file mode 100644 index 0000000..8dc2bf4 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_rounded_corner_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_rowing_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_rowing_24px.svg new file mode 100644 index 0000000..5c9f926 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_rowing_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_schedule_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_schedule_24px.svg new file mode 100644 index 0000000..fac5f2e --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_schedule_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_search_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_search_24px.svg new file mode 100644 index 0000000..1244005 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_search_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_settings_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_settings_24px.svg new file mode 100644 index 0000000..a09d544 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_settings_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_settings_applications_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_settings_applications_24px.svg new file mode 100644 index 0000000..38d4313 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_settings_applications_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_settings_backup_restore_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_settings_backup_restore_24px.svg new file mode 100644 index 0000000..c5bb02b --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_settings_backup_restore_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_settings_bluetooth_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_settings_bluetooth_24px.svg new file mode 100644 index 0000000..e4b2766 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_settings_bluetooth_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_settings_brightness_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_settings_brightness_24px.svg new file mode 100644 index 0000000..d372055 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_settings_brightness_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_settings_cell_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_settings_cell_24px.svg new file mode 100644 index 0000000..3f833df --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_settings_cell_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_settings_ethernet_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_settings_ethernet_24px.svg new file mode 100644 index 0000000..8f9c077 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_settings_ethernet_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_settings_input_antenna_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_settings_input_antenna_24px.svg new file mode 100644 index 0000000..12500f6 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_settings_input_antenna_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_settings_input_component_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_settings_input_component_24px.svg new file mode 100644 index 0000000..df14aab --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_settings_input_component_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_settings_input_composite_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_settings_input_composite_24px.svg new file mode 100644 index 0000000..df14aab --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_settings_input_composite_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_settings_input_hdmi_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_settings_input_hdmi_24px.svg new file mode 100644 index 0000000..38b19d2 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_settings_input_hdmi_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_settings_input_svideo_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_settings_input_svideo_24px.svg new file mode 100644 index 0000000..94d1cc3 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_settings_input_svideo_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_settings_overscan_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_settings_overscan_24px.svg new file mode 100644 index 0000000..6befe39 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_settings_overscan_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_settings_phone_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_settings_phone_24px.svg new file mode 100644 index 0000000..dd68714 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_settings_phone_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_settings_power_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_settings_power_24px.svg new file mode 100644 index 0000000..e27fec1 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_settings_power_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_settings_remote_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_settings_remote_24px.svg new file mode 100644 index 0000000..37fd295 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_settings_remote_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_settings_voice_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_settings_voice_24px.svg new file mode 100644 index 0000000..c55b677 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_settings_voice_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_shop_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_shop_24px.svg new file mode 100644 index 0000000..0b4e499 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_shop_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_shop_two_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_shop_two_24px.svg new file mode 100644 index 0000000..534daf6 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_shop_two_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_shopping_basket_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_shopping_basket_24px.svg new file mode 100644 index 0000000..3706021 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_shopping_basket_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_shopping_cart_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_shopping_cart_24px.svg new file mode 100644 index 0000000..ee758e6 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_shopping_cart_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_speaker_notes_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_speaker_notes_24px.svg new file mode 100644 index 0000000..d21630c --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_speaker_notes_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_speaker_notes_off_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_speaker_notes_off_24px.svg new file mode 100644 index 0000000..185872f --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_speaker_notes_off_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_spellcheck_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_spellcheck_24px.svg new file mode 100644 index 0000000..3c1dd06 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_spellcheck_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_stars_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_stars_24px.svg new file mode 100644 index 0000000..ff48df4 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_stars_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_store_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_store_24px.svg new file mode 100644 index 0000000..2b06cc5 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_store_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_subject_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_subject_24px.svg new file mode 100644 index 0000000..3772a0b --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_subject_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_supervisor_account_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_supervisor_account_24px.svg new file mode 100644 index 0000000..004b4af --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_supervisor_account_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_swap_horiz_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_swap_horiz_24px.svg new file mode 100644 index 0000000..86e9cad --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_swap_horiz_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_swap_vert_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_swap_vert_24px.svg new file mode 100644 index 0000000..bcdee8d --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_swap_vert_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_swap_vertical_circle_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_swap_vertical_circle_24px.svg new file mode 100644 index 0000000..40e62a2 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_swap_vertical_circle_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_system_update_alt_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_system_update_alt_24px.svg new file mode 100644 index 0000000..4f3e4a2 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_system_update_alt_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_tab_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_tab_24px.svg new file mode 100644 index 0000000..f7e96a8 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_tab_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_tab_unselected_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_tab_unselected_24px.svg new file mode 100644 index 0000000..f5d8a3d --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_tab_unselected_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_theaters_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_theaters_24px.svg new file mode 100644 index 0000000..74652a6 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_theaters_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_thumb_down_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_thumb_down_24px.svg new file mode 100644 index 0000000..a27f6dc --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_thumb_down_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_thumb_up_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_thumb_up_24px.svg new file mode 100644 index 0000000..f64ad7b --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_thumb_up_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_thumbs_up_down_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_thumbs_up_down_24px.svg new file mode 100644 index 0000000..39e9a0e --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_thumbs_up_down_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_timeline_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_timeline_24px.svg new file mode 100644 index 0000000..9dc0ca3 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_timeline_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_toc_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_toc_24px.svg new file mode 100644 index 0000000..238110f --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_toc_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_today_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_today_24px.svg new file mode 100644 index 0000000..f99cddc --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_today_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_toll_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_toll_24px.svg new file mode 100644 index 0000000..a1b0cf1 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_toll_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_touch_app_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_touch_app_24px.svg new file mode 100644 index 0000000..18b65e1 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_touch_app_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_track_changes_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_track_changes_24px.svg new file mode 100644 index 0000000..ed9f2aa --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_track_changes_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_translate_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_translate_24px.svg new file mode 100644 index 0000000..0821ae1 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_translate_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_trending_down_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_trending_down_24px.svg new file mode 100644 index 0000000..7a49746 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_trending_down_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_trending_flat_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_trending_flat_24px.svg new file mode 100644 index 0000000..bc56f81 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_trending_flat_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_trending_up_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_trending_up_24px.svg new file mode 100644 index 0000000..4728d22 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_trending_up_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_turned_in_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_turned_in_24px.svg new file mode 100644 index 0000000..1d507a6 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_turned_in_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_turned_in_not_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_turned_in_not_24px.svg new file mode 100644 index 0000000..f178b05 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_turned_in_not_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_update_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_update_24px.svg new file mode 100644 index 0000000..d9576fd --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_update_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_verified_user_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_verified_user_24px.svg new file mode 100644 index 0000000..56460ee --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_verified_user_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_view_agenda_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_view_agenda_24px.svg new file mode 100644 index 0000000..b5258fe --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_view_agenda_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_view_array_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_view_array_24px.svg new file mode 100644 index 0000000..b969592 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_view_array_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_view_carousel_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_view_carousel_24px.svg new file mode 100644 index 0000000..27483c8 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_view_carousel_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_view_column_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_view_column_24px.svg new file mode 100644 index 0000000..3ef9eab --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_view_column_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_view_day_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_view_day_24px.svg new file mode 100644 index 0000000..34972e0 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_view_day_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_view_headline_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_view_headline_24px.svg new file mode 100644 index 0000000..1ee5f9a --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_view_headline_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_view_list_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_view_list_24px.svg new file mode 100644 index 0000000..3e82bad --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_view_list_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_view_module_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_view_module_24px.svg new file mode 100644 index 0000000..c5383b1 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_view_module_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_view_quilt_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_view_quilt_24px.svg new file mode 100644 index 0000000..545037a --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_view_quilt_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_view_stream_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_view_stream_24px.svg new file mode 100644 index 0000000..6c81f14 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_view_stream_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_view_week_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_view_week_24px.svg new file mode 100644 index 0000000..cc535ed --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_view_week_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_visibility_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_visibility_24px.svg new file mode 100644 index 0000000..5c700e3 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_visibility_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_visibility_off_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_visibility_off_24px.svg new file mode 100644 index 0000000..a09d176 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_visibility_off_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_watch_later_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_watch_later_24px.svg new file mode 100644 index 0000000..aad70b2 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_watch_later_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_work_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_work_24px.svg new file mode 100644 index 0000000..ac4f81c --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_work_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_youtube_searched_for_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_youtube_searched_for_24px.svg new file mode 100644 index 0000000..36e47e6 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_youtube_searched_for_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_zoom_in_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_zoom_in_24px.svg new file mode 100644 index 0000000..fd48a80 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_zoom_in_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/action/svg/production/ic_zoom_out_24px.svg b/qt-material-widgets/components/icons/action/svg/production/ic_zoom_out_24px.svg new file mode 100644 index 0000000..e70df37 --- /dev/null +++ b/qt-material-widgets/components/icons/action/svg/production/ic_zoom_out_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/alert/svg/production/ic_add_alert_24px.svg b/qt-material-widgets/components/icons/alert/svg/production/ic_add_alert_24px.svg new file mode 100644 index 0000000..53ee4ab --- /dev/null +++ b/qt-material-widgets/components/icons/alert/svg/production/ic_add_alert_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/alert/svg/production/ic_error_24px.svg b/qt-material-widgets/components/icons/alert/svg/production/ic_error_24px.svg new file mode 100644 index 0000000..d30cc3a --- /dev/null +++ b/qt-material-widgets/components/icons/alert/svg/production/ic_error_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/alert/svg/production/ic_error_outline_24px.svg b/qt-material-widgets/components/icons/alert/svg/production/ic_error_outline_24px.svg new file mode 100644 index 0000000..ad877f3 --- /dev/null +++ b/qt-material-widgets/components/icons/alert/svg/production/ic_error_outline_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/alert/svg/production/ic_warning_24px.svg b/qt-material-widgets/components/icons/alert/svg/production/ic_warning_24px.svg new file mode 100644 index 0000000..dfcf997 --- /dev/null +++ b/qt-material-widgets/components/icons/alert/svg/production/ic_warning_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_add_to_queue_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_add_to_queue_24px.svg new file mode 100644 index 0000000..1970312 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_add_to_queue_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_airplay_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_airplay_24px.svg new file mode 100644 index 0000000..15939cb --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_airplay_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_album_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_album_24px.svg new file mode 100644 index 0000000..e153be6 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_album_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_art_track_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_art_track_24px.svg new file mode 100644 index 0000000..88a17a6 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_art_track_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_av_timer_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_av_timer_24px.svg new file mode 100644 index 0000000..cc59272 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_av_timer_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_branding_watermark_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_branding_watermark_24px.svg new file mode 100644 index 0000000..1ea828b --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_branding_watermark_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_call_to_action_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_call_to_action_24px.svg new file mode 100644 index 0000000..dcf91db --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_call_to_action_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_closed_caption_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_closed_caption_24px.svg new file mode 100644 index 0000000..4df1e8f --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_closed_caption_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_equalizer_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_equalizer_24px.svg new file mode 100644 index 0000000..d6031c3 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_equalizer_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_explicit_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_explicit_24px.svg new file mode 100644 index 0000000..0eb1bb1 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_explicit_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_fast_forward_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_fast_forward_24px.svg new file mode 100644 index 0000000..e81f756 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_fast_forward_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_fast_rewind_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_fast_rewind_24px.svg new file mode 100644 index 0000000..cb82d8a --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_fast_rewind_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_featured_play_list_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_featured_play_list_24px.svg new file mode 100644 index 0000000..1aa2c53 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_featured_play_list_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_featured_video_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_featured_video_24px.svg new file mode 100644 index 0000000..b118b55 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_featured_video_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_fiber_dvr_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_fiber_dvr_24px.svg new file mode 100644 index 0000000..26b046f --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_fiber_dvr_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_fiber_manual_record_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_fiber_manual_record_24px.svg new file mode 100644 index 0000000..54da42f --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_fiber_manual_record_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_fiber_new_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_fiber_new_24px.svg new file mode 100644 index 0000000..943be16 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_fiber_new_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_fiber_pin_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_fiber_pin_24px.svg new file mode 100644 index 0000000..e4a5e0c --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_fiber_pin_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_fiber_smart_record_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_fiber_smart_record_24px.svg new file mode 100644 index 0000000..02602c4 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_fiber_smart_record_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_forward_10_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_forward_10_24px.svg new file mode 100644 index 0000000..9907f51 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_forward_10_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_forward_30_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_forward_30_24px.svg new file mode 100644 index 0000000..1903072 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_forward_30_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_forward_5_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_forward_5_24px.svg new file mode 100644 index 0000000..c604ca3 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_forward_5_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_games_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_games_24px.svg new file mode 100644 index 0000000..62a4c9b --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_games_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_hd_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_hd_24px.svg new file mode 100644 index 0000000..1fd7a76 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_hd_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_hearing_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_hearing_24px.svg new file mode 100644 index 0000000..1efd85f --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_hearing_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_high_quality_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_high_quality_24px.svg new file mode 100644 index 0000000..8d8a29d --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_high_quality_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_library_add_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_library_add_24px.svg new file mode 100644 index 0000000..baea3e9 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_library_add_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_library_books_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_library_books_24px.svg new file mode 100644 index 0000000..614c7bf --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_library_books_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_library_music_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_library_music_24px.svg new file mode 100644 index 0000000..357e6d4 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_library_music_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_loop_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_loop_24px.svg new file mode 100644 index 0000000..327ff63 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_loop_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_mic_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_mic_24px.svg new file mode 100644 index 0000000..e5691ca --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_mic_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_mic_none_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_mic_none_24px.svg new file mode 100644 index 0000000..d82849a --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_mic_none_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_mic_off_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_mic_off_24px.svg new file mode 100644 index 0000000..4c27fb5 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_mic_off_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_movie_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_movie_24px.svg new file mode 100644 index 0000000..8bbbb53 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_movie_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_music_video_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_music_video_24px.svg new file mode 100644 index 0000000..2fe246c --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_music_video_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_new_releases_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_new_releases_24px.svg new file mode 100644 index 0000000..37ed86f --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_new_releases_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_not_interested_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_not_interested_24px.svg new file mode 100644 index 0000000..065210c --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_not_interested_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_note_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_note_24px.svg new file mode 100644 index 0000000..76919c2 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_note_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_pause_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_pause_24px.svg new file mode 100644 index 0000000..c20e156 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_pause_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_pause_circle_filled_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_pause_circle_filled_24px.svg new file mode 100644 index 0000000..e4763b2 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_pause_circle_filled_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_pause_circle_outline_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_pause_circle_outline_24px.svg new file mode 100644 index 0000000..b1ea4fe --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_pause_circle_outline_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_play_arrow_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_play_arrow_24px.svg new file mode 100644 index 0000000..c5e1a4c --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_play_arrow_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_play_circle_filled_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_play_circle_filled_24px.svg new file mode 100644 index 0000000..dd022c5 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_play_circle_filled_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_play_circle_outline_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_play_circle_outline_24px.svg new file mode 100644 index 0000000..90b5a4e --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_play_circle_outline_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_playlist_add_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_playlist_add_24px.svg new file mode 100644 index 0000000..a0ee454 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_playlist_add_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_playlist_add_check_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_playlist_add_check_24px.svg new file mode 100644 index 0000000..c455dab --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_playlist_add_check_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_playlist_play_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_playlist_play_24px.svg new file mode 100644 index 0000000..4b049f7 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_playlist_play_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_queue_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_queue_24px.svg new file mode 100644 index 0000000..baea3e9 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_queue_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_queue_music_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_queue_music_24px.svg new file mode 100644 index 0000000..5fed92b --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_queue_music_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_queue_play_next_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_queue_play_next_24px.svg new file mode 100644 index 0000000..db90329 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_queue_play_next_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_radio_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_radio_24px.svg new file mode 100644 index 0000000..6729cf5 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_radio_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_recent_actors_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_recent_actors_24px.svg new file mode 100644 index 0000000..f1d8deb --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_recent_actors_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_remove_from_queue_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_remove_from_queue_24px.svg new file mode 100644 index 0000000..bbd2791 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_remove_from_queue_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_repeat_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_repeat_24px.svg new file mode 100644 index 0000000..6c58d4e --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_repeat_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_repeat_one_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_repeat_one_24px.svg new file mode 100644 index 0000000..fcc3d14 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_repeat_one_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_replay_10_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_replay_10_24px.svg new file mode 100644 index 0000000..6ddad5d --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_replay_10_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_replay_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_replay_24px.svg new file mode 100644 index 0000000..c3c75e7 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_replay_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_replay_30_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_replay_30_24px.svg new file mode 100644 index 0000000..7c98374 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_replay_30_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_replay_5_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_replay_5_24px.svg new file mode 100644 index 0000000..93d1b21 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_replay_5_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_shuffle_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_shuffle_24px.svg new file mode 100644 index 0000000..f5bcf6f --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_shuffle_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_skip_next_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_skip_next_24px.svg new file mode 100644 index 0000000..178eca3 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_skip_next_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_skip_previous_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_skip_previous_24px.svg new file mode 100644 index 0000000..e719ff5 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_skip_previous_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_slow_motion_video_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_slow_motion_video_24px.svg new file mode 100644 index 0000000..b28f886 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_slow_motion_video_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_snooze_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_snooze_24px.svg new file mode 100644 index 0000000..738bda8 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_snooze_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_sort_by_alpha_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_sort_by_alpha_24px.svg new file mode 100644 index 0000000..b9975f9 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_sort_by_alpha_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_stop_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_stop_24px.svg new file mode 100644 index 0000000..48d3f2d --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_stop_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_subscriptions_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_subscriptions_24px.svg new file mode 100644 index 0000000..b5b5250 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_subscriptions_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_subtitles_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_subtitles_24px.svg new file mode 100644 index 0000000..ea10bfd --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_subtitles_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_surround_sound_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_surround_sound_24px.svg new file mode 100644 index 0000000..675fd39 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_surround_sound_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_video_call_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_video_call_24px.svg new file mode 100644 index 0000000..e1a21e1 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_video_call_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_video_label_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_video_label_24px.svg new file mode 100644 index 0000000..cb90129 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_video_label_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_video_library_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_video_library_24px.svg new file mode 100644 index 0000000..f69f3cb --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_video_library_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_videocam_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_videocam_24px.svg new file mode 100644 index 0000000..a2606b1 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_videocam_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_videocam_off_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_videocam_off_24px.svg new file mode 100644 index 0000000..134c583 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_videocam_off_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_volume_down_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_volume_down_24px.svg new file mode 100644 index 0000000..b993e7c --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_volume_down_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_volume_mute_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_volume_mute_24px.svg new file mode 100644 index 0000000..66b7daf --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_volume_mute_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_volume_off_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_volume_off_24px.svg new file mode 100644 index 0000000..b10f2bf --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_volume_off_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_volume_up_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_volume_up_24px.svg new file mode 100644 index 0000000..fe7100e --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_volume_up_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_web_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_web_24px.svg new file mode 100644 index 0000000..2f2150c --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_web_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/av/svg/production/ic_web_asset_24px.svg b/qt-material-widgets/components/icons/av/svg/production/ic_web_asset_24px.svg new file mode 100644 index 0000000..74e61d3 --- /dev/null +++ b/qt-material-widgets/components/icons/av/svg/production/ic_web_asset_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_business_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_business_24px.svg new file mode 100644 index 0000000..bfaefa1 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_business_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_call_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_call_24px.svg new file mode 100644 index 0000000..5908b6a --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_call_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_call_end_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_call_end_24px.svg new file mode 100644 index 0000000..c3fe17b --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_call_end_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_call_made_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_call_made_24px.svg new file mode 100644 index 0000000..6a58bdf --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_call_made_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_call_merge_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_call_merge_24px.svg new file mode 100644 index 0000000..b10772d --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_call_merge_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_call_missed_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_call_missed_24px.svg new file mode 100644 index 0000000..db0f8cc --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_call_missed_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_call_missed_outgoing_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_call_missed_outgoing_24px.svg new file mode 100644 index 0000000..3385d42 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_call_missed_outgoing_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_call_received_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_call_received_24px.svg new file mode 100644 index 0000000..0516080 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_call_received_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_call_split_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_call_split_24px.svg new file mode 100644 index 0000000..9dd562c --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_call_split_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_chat_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_chat_24px.svg new file mode 100644 index 0000000..1c68f72 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_chat_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_chat_bubble_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_chat_bubble_24px.svg new file mode 100644 index 0000000..d447be3 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_chat_bubble_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_chat_bubble_outline_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_chat_bubble_outline_24px.svg new file mode 100644 index 0000000..e1a36ee --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_chat_bubble_outline_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_clear_all_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_clear_all_24px.svg new file mode 100644 index 0000000..82a7e3c --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_clear_all_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_comment_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_comment_24px.svg new file mode 100644 index 0000000..db645e8 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_comment_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_contact_mail_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_contact_mail_24px.svg new file mode 100644 index 0000000..ad23103 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_contact_mail_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_contact_phone_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_contact_phone_24px.svg new file mode 100644 index 0000000..6945887 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_contact_phone_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_contacts_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_contacts_24px.svg new file mode 100644 index 0000000..e9a0749 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_contacts_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_dialer_sip_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_dialer_sip_24px.svg new file mode 100644 index 0000000..247068a --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_dialer_sip_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_dialpad_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_dialpad_24px.svg new file mode 100644 index 0000000..1d82c79 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_dialpad_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_email_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_email_24px.svg new file mode 100644 index 0000000..f2c5b4f --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_email_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_forum_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_forum_24px.svg new file mode 100644 index 0000000..8c958d9 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_forum_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_import_contacts_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_import_contacts_24px.svg new file mode 100644 index 0000000..154d45b --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_import_contacts_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_import_export_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_import_export_24px.svg new file mode 100644 index 0000000..1af2dbf --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_import_export_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_invert_colors_off_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_invert_colors_off_24px.svg new file mode 100644 index 0000000..c880d9b --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_invert_colors_off_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_live_help_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_live_help_24px.svg new file mode 100644 index 0000000..abe3129 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_live_help_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_location_off_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_location_off_24px.svg new file mode 100644 index 0000000..270259b --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_location_off_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_location_on_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_location_on_24px.svg new file mode 100644 index 0000000..490afe9 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_location_on_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_mail_outline_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_mail_outline_24px.svg new file mode 100644 index 0000000..c8798e6 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_mail_outline_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_message_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_message_24px.svg new file mode 100644 index 0000000..0dfd671 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_message_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_no_sim_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_no_sim_24px.svg new file mode 100644 index 0000000..d6b8e22 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_no_sim_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_phone_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_phone_24px.svg new file mode 100644 index 0000000..5908b6a --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_phone_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_phonelink_erase_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_phonelink_erase_24px.svg new file mode 100644 index 0000000..6d99266 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_phonelink_erase_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_phonelink_lock_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_phonelink_lock_24px.svg new file mode 100644 index 0000000..cbf3606 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_phonelink_lock_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_phonelink_ring_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_phonelink_ring_24px.svg new file mode 100644 index 0000000..34cb3a8 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_phonelink_ring_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_phonelink_setup_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_phonelink_setup_24px.svg new file mode 100644 index 0000000..0aef7a0 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_phonelink_setup_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_portable_wifi_off_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_portable_wifi_off_24px.svg new file mode 100644 index 0000000..c7fc011 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_portable_wifi_off_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_present_to_all_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_present_to_all_24px.svg new file mode 100644 index 0000000..d63f7b9 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_present_to_all_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_ring_volume_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_ring_volume_24px.svg new file mode 100644 index 0000000..25f1b5d --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_ring_volume_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_rss_feed_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_rss_feed_24px.svg new file mode 100644 index 0000000..721872d --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_rss_feed_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_screen_share_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_screen_share_24px.svg new file mode 100644 index 0000000..4cb0976 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_screen_share_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_speaker_phone_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_speaker_phone_24px.svg new file mode 100644 index 0000000..e812da7 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_speaker_phone_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_stay_current_landscape_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_stay_current_landscape_24px.svg new file mode 100644 index 0000000..b6c98c2 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_stay_current_landscape_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_stay_current_portrait_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_stay_current_portrait_24px.svg new file mode 100644 index 0000000..fed6cce --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_stay_current_portrait_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_stay_primary_landscape_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_stay_primary_landscape_24px.svg new file mode 100644 index 0000000..b6c98c2 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_stay_primary_landscape_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_stay_primary_portrait_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_stay_primary_portrait_24px.svg new file mode 100644 index 0000000..fed6cce --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_stay_primary_portrait_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_stop_screen_share_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_stop_screen_share_24px.svg new file mode 100644 index 0000000..ec70b9b --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_stop_screen_share_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_swap_calls_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_swap_calls_24px.svg new file mode 100644 index 0000000..53ab208 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_swap_calls_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_textsms_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_textsms_24px.svg new file mode 100644 index 0000000..b427d45 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_textsms_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_voicemail_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_voicemail_24px.svg new file mode 100644 index 0000000..2b24059 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_voicemail_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/communication/svg/production/ic_vpn_key_24px.svg b/qt-material-widgets/components/icons/communication/svg/production/ic_vpn_key_24px.svg new file mode 100644 index 0000000..555d034 --- /dev/null +++ b/qt-material-widgets/components/icons/communication/svg/production/ic_vpn_key_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_add_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_add_24px.svg new file mode 100644 index 0000000..58f73e9 --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_add_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_add_box_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_add_box_24px.svg new file mode 100644 index 0000000..c091cfc --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_add_box_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_add_circle_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_add_circle_24px.svg new file mode 100644 index 0000000..60aaa95 --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_add_circle_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_add_circle_outline_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_add_circle_outline_24px.svg new file mode 100644 index 0000000..55c6b1b --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_add_circle_outline_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_archive_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_archive_24px.svg new file mode 100644 index 0000000..bab7497 --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_archive_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_backspace_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_backspace_24px.svg new file mode 100644 index 0000000..6ebbe51 --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_backspace_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_block_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_block_24px.svg new file mode 100644 index 0000000..661cdf1 --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_block_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_clear_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_clear_24px.svg new file mode 100644 index 0000000..865788b --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_clear_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_content_copy_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_content_copy_24px.svg new file mode 100644 index 0000000..7c6b60a --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_content_copy_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_content_cut_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_content_cut_24px.svg new file mode 100644 index 0000000..b89a0d0 --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_content_cut_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_content_paste_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_content_paste_24px.svg new file mode 100644 index 0000000..af63a64 --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_content_paste_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_create_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_create_24px.svg new file mode 100644 index 0000000..f5ddfe1 --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_create_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_delete_sweep_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_delete_sweep_24px.svg new file mode 100644 index 0000000..8aab88a --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_delete_sweep_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_drafts_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_drafts_24px.svg new file mode 100644 index 0000000..2d5456b --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_drafts_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_filter_list_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_filter_list_24px.svg new file mode 100644 index 0000000..972d401 --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_filter_list_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_flag_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_flag_24px.svg new file mode 100644 index 0000000..eaf3ff4 --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_flag_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_font_download_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_font_download_24px.svg new file mode 100644 index 0000000..60ea38d --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_font_download_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_forward_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_forward_24px.svg new file mode 100644 index 0000000..c9353ea --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_forward_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_gesture_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_gesture_24px.svg new file mode 100644 index 0000000..dac332c --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_gesture_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_inbox_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_inbox_24px.svg new file mode 100644 index 0000000..8297501 --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_inbox_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_link_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_link_24px.svg new file mode 100644 index 0000000..f39e2a7 --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_link_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_low_priority_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_low_priority_24px.svg new file mode 100644 index 0000000..b1ab04c --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_low_priority_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_mail_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_mail_24px.svg new file mode 100644 index 0000000..f2c5b4f --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_mail_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_markunread_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_markunread_24px.svg new file mode 100644 index 0000000..f2c5b4f --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_markunread_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_move_to_inbox_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_move_to_inbox_24px.svg new file mode 100644 index 0000000..cbc97ad --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_move_to_inbox_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_next_week_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_next_week_24px.svg new file mode 100644 index 0000000..6e52679 --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_next_week_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_redo_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_redo_24px.svg new file mode 100644 index 0000000..764ab77 --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_redo_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_remove_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_remove_24px.svg new file mode 100644 index 0000000..9128833 --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_remove_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_remove_circle_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_remove_circle_24px.svg new file mode 100644 index 0000000..0f978ec --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_remove_circle_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_remove_circle_outline_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_remove_circle_outline_24px.svg new file mode 100644 index 0000000..d35e183 --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_remove_circle_outline_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_reply_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_reply_24px.svg new file mode 100644 index 0000000..65c02ca --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_reply_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_reply_all_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_reply_all_24px.svg new file mode 100644 index 0000000..5c90b4b --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_reply_all_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_report_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_report_24px.svg new file mode 100644 index 0000000..d09adbb --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_report_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_save_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_save_24px.svg new file mode 100644 index 0000000..1d3c300 --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_save_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_select_all_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_select_all_24px.svg new file mode 100644 index 0000000..4614449 --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_select_all_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_send_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_send_24px.svg new file mode 100644 index 0000000..b679858 --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_send_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_sort_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_sort_24px.svg new file mode 100644 index 0000000..84efa53 --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_sort_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_text_format_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_text_format_24px.svg new file mode 100644 index 0000000..92ec329 --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_text_format_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_unarchive_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_unarchive_24px.svg new file mode 100644 index 0000000..6192fa7 --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_unarchive_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_undo_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_undo_24px.svg new file mode 100644 index 0000000..c37cf40 --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_undo_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/content/svg/production/ic_weekend_24px.svg b/qt-material-widgets/components/icons/content/svg/production/ic_weekend_24px.svg new file mode 100644 index 0000000..f4e56cc --- /dev/null +++ b/qt-material-widgets/components/icons/content/svg/production/ic_weekend_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_access_alarm_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_access_alarm_24px.svg new file mode 100644 index 0000000..edfa7a6 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_access_alarm_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_access_alarms_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_access_alarms_24px.svg new file mode 100644 index 0000000..a799163 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_access_alarms_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_access_time_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_access_time_24px.svg new file mode 100644 index 0000000..fac5f2e --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_access_time_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_add_alarm_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_add_alarm_24px.svg new file mode 100644 index 0000000..8bf2e6c --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_add_alarm_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_airplanemode_active_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_airplanemode_active_24px.svg new file mode 100644 index 0000000..240d1b6 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_airplanemode_active_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_airplanemode_inactive_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_airplanemode_inactive_24px.svg new file mode 100644 index 0000000..c2828d8 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_airplanemode_inactive_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_battery_20_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_battery_20_24px.svg new file mode 100644 index 0000000..db91e43 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_battery_20_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_battery_30_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_battery_30_24px.svg new file mode 100644 index 0000000..305e322 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_battery_30_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_battery_50_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_battery_50_24px.svg new file mode 100644 index 0000000..c8205f8 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_battery_50_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_battery_60_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_battery_60_24px.svg new file mode 100644 index 0000000..42d8bba --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_battery_60_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_battery_80_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_battery_80_24px.svg new file mode 100644 index 0000000..1633055 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_battery_80_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_battery_90_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_battery_90_24px.svg new file mode 100644 index 0000000..4a242c5 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_battery_90_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_battery_alert_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_battery_alert_24px.svg new file mode 100644 index 0000000..08d3008 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_battery_alert_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_battery_charging_20_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_battery_charging_20_24px.svg new file mode 100644 index 0000000..9b90d8c --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_battery_charging_20_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_battery_charging_30_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_battery_charging_30_24px.svg new file mode 100644 index 0000000..b21330f --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_battery_charging_30_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_battery_charging_50_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_battery_charging_50_24px.svg new file mode 100644 index 0000000..9958350 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_battery_charging_50_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_battery_charging_60_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_battery_charging_60_24px.svg new file mode 100644 index 0000000..a9e5d40 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_battery_charging_60_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_battery_charging_80_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_battery_charging_80_24px.svg new file mode 100644 index 0000000..1695004 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_battery_charging_80_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_battery_charging_90_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_battery_charging_90_24px.svg new file mode 100644 index 0000000..2fc050e --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_battery_charging_90_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_battery_charging_full_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_battery_charging_full_24px.svg new file mode 100644 index 0000000..1efa7d3 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_battery_charging_full_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_battery_full_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_battery_full_24px.svg new file mode 100644 index 0000000..122ea41 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_battery_full_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_battery_std_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_battery_std_24px.svg new file mode 100644 index 0000000..122ea41 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_battery_std_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_battery_unknown_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_battery_unknown_24px.svg new file mode 100644 index 0000000..7ef9a9a --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_battery_unknown_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_bluetooth_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_bluetooth_24px.svg new file mode 100644 index 0000000..ad1e4f2 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_bluetooth_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_bluetooth_connected_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_bluetooth_connected_24px.svg new file mode 100644 index 0000000..90b3a58 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_bluetooth_connected_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_bluetooth_disabled_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_bluetooth_disabled_24px.svg new file mode 100644 index 0000000..2974d2b --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_bluetooth_disabled_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_bluetooth_searching_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_bluetooth_searching_24px.svg new file mode 100644 index 0000000..8bb176e --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_bluetooth_searching_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_brightness_auto_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_brightness_auto_24px.svg new file mode 100644 index 0000000..074d7b1 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_brightness_auto_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_brightness_high_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_brightness_high_24px.svg new file mode 100644 index 0000000..f4a2b29 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_brightness_high_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_brightness_low_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_brightness_low_24px.svg new file mode 100644 index 0000000..2b6d29d --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_brightness_low_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_brightness_medium_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_brightness_medium_24px.svg new file mode 100644 index 0000000..dc29999 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_brightness_medium_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_data_usage_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_data_usage_24px.svg new file mode 100644 index 0000000..7f0786a --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_data_usage_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_developer_mode_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_developer_mode_24px.svg new file mode 100644 index 0000000..b64293b --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_developer_mode_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_devices_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_devices_24px.svg new file mode 100644 index 0000000..266e993 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_devices_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_dvr_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_dvr_24px.svg new file mode 100644 index 0000000..fd28af7 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_dvr_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_gps_fixed_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_gps_fixed_24px.svg new file mode 100644 index 0000000..394dc36 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_gps_fixed_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_gps_not_fixed_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_gps_not_fixed_24px.svg new file mode 100644 index 0000000..f05e9b0 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_gps_not_fixed_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_gps_off_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_gps_off_24px.svg new file mode 100644 index 0000000..c1435e3 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_gps_off_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_graphic_eq_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_graphic_eq_24px.svg new file mode 100644 index 0000000..e980427 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_graphic_eq_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_location_disabled_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_location_disabled_24px.svg new file mode 100644 index 0000000..c1435e3 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_location_disabled_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_location_searching_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_location_searching_24px.svg new file mode 100644 index 0000000..f05e9b0 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_location_searching_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_network_cell_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_network_cell_24px.svg new file mode 100644 index 0000000..0024136 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_network_cell_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_network_wifi_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_network_wifi_24px.svg new file mode 100644 index 0000000..6e03e50 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_network_wifi_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_nfc_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_nfc_24px.svg new file mode 100644 index 0000000..49cffc9 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_nfc_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_screen_lock_landscape_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_screen_lock_landscape_24px.svg new file mode 100644 index 0000000..1b0925d --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_screen_lock_landscape_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_screen_lock_portrait_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_screen_lock_portrait_24px.svg new file mode 100644 index 0000000..cd382ac --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_screen_lock_portrait_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_screen_lock_rotation_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_screen_lock_rotation_24px.svg new file mode 100644 index 0000000..30e015f --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_screen_lock_rotation_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_screen_rotation_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_screen_rotation_24px.svg new file mode 100644 index 0000000..3750ddc --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_screen_rotation_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_sd_storage_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_sd_storage_24px.svg new file mode 100644 index 0000000..15ab481 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_sd_storage_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_settings_system_daydream_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_settings_system_daydream_24px.svg new file mode 100644 index 0000000..6d35778 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_settings_system_daydream_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_0_bar_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_0_bar_24px.svg new file mode 100644 index 0000000..0f29463 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_0_bar_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_1_bar_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_1_bar_24px.svg new file mode 100644 index 0000000..8c785b4 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_1_bar_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_2_bar_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_2_bar_24px.svg new file mode 100644 index 0000000..22352ef --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_2_bar_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_3_bar_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_3_bar_24px.svg new file mode 100644 index 0000000..0024136 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_3_bar_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_4_bar_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_4_bar_24px.svg new file mode 100644 index 0000000..dc28eb7 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_4_bar_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_connected_no_internet_0_bar_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_connected_no_internet_0_bar_24px.svg new file mode 100644 index 0000000..fe6765f --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_connected_no_internet_0_bar_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_connected_no_internet_1_bar_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_connected_no_internet_1_bar_24px.svg new file mode 100644 index 0000000..de2550c --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_connected_no_internet_1_bar_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_connected_no_internet_2_bar_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_connected_no_internet_2_bar_24px.svg new file mode 100644 index 0000000..8bfeb23 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_connected_no_internet_2_bar_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_connected_no_internet_3_bar_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_connected_no_internet_3_bar_24px.svg new file mode 100644 index 0000000..fd79f00 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_connected_no_internet_3_bar_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_connected_no_internet_4_bar_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_connected_no_internet_4_bar_24px.svg new file mode 100644 index 0000000..0faee96 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_connected_no_internet_4_bar_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_no_sim_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_no_sim_24px.svg new file mode 100644 index 0000000..d6b8e22 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_no_sim_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_null_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_null_24px.svg new file mode 100644 index 0000000..f3293a5 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_null_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_off_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_off_24px.svg new file mode 100644 index 0000000..a8de8db --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_signal_cellular_off_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_0_bar_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_0_bar_24px.svg new file mode 100644 index 0000000..46a2cc6 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_0_bar_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_1_bar_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_1_bar_24px.svg new file mode 100644 index 0000000..19227d6 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_1_bar_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_1_bar_lock_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_1_bar_lock_24px.svg new file mode 100644 index 0000000..86e1b5d --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_1_bar_lock_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_2_bar_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_2_bar_24px.svg new file mode 100644 index 0000000..7f0f951 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_2_bar_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_2_bar_lock_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_2_bar_lock_24px.svg new file mode 100644 index 0000000..c96053c --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_2_bar_lock_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_3_bar_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_3_bar_24px.svg new file mode 100644 index 0000000..6e03e50 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_3_bar_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_3_bar_lock_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_3_bar_lock_24px.svg new file mode 100644 index 0000000..10ff8c0 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_3_bar_lock_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_4_bar_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_4_bar_24px.svg new file mode 100644 index 0000000..d013bfd --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_4_bar_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_4_bar_lock_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_4_bar_lock_24px.svg new file mode 100644 index 0000000..45a8294 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_4_bar_lock_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_off_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_off_24px.svg new file mode 100644 index 0000000..fcf92d0 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_signal_wifi_off_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_storage_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_storage_24px.svg new file mode 100644 index 0000000..8cae0c1 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_storage_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_usb_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_usb_24px.svg new file mode 100644 index 0000000..b08014a --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_usb_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_wallpaper_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_wallpaper_24px.svg new file mode 100644 index 0000000..74c082b --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_wallpaper_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_widgets_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_widgets_24px.svg new file mode 100644 index 0000000..fcc2293 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_widgets_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_wifi_lock_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_wifi_lock_24px.svg new file mode 100644 index 0000000..710d716 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_wifi_lock_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/device/svg/production/ic_wifi_tethering_24px.svg b/qt-material-widgets/components/icons/device/svg/production/ic_wifi_tethering_24px.svg new file mode 100644 index 0000000..f16f282 --- /dev/null +++ b/qt-material-widgets/components/icons/device/svg/production/ic_wifi_tethering_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_attach_file_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_attach_file_24px.svg new file mode 100644 index 0000000..471fb99 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_attach_file_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_attach_money_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_attach_money_24px.svg new file mode 100644 index 0000000..76e3e17 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_attach_money_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_border_all_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_border_all_24px.svg new file mode 100644 index 0000000..4537456 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_border_all_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_border_bottom_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_border_bottom_24px.svg new file mode 100644 index 0000000..61be129 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_border_bottom_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_border_clear_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_border_clear_24px.svg new file mode 100644 index 0000000..a585f80 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_border_clear_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_border_color_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_border_color_24px.svg new file mode 100644 index 0000000..4f6e788 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_border_color_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_border_horizontal_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_border_horizontal_24px.svg new file mode 100644 index 0000000..f84b852 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_border_horizontal_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_border_inner_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_border_inner_24px.svg new file mode 100644 index 0000000..a5a4677 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_border_inner_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_border_left_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_border_left_24px.svg new file mode 100644 index 0000000..894c809 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_border_left_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_border_outer_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_border_outer_24px.svg new file mode 100644 index 0000000..23fbba8 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_border_outer_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_border_right_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_border_right_24px.svg new file mode 100644 index 0000000..f8965e1 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_border_right_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_border_style_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_border_style_24px.svg new file mode 100644 index 0000000..179e8d6 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_border_style_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_border_top_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_border_top_24px.svg new file mode 100644 index 0000000..7f6795f --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_border_top_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_border_vertical_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_border_vertical_24px.svg new file mode 100644 index 0000000..719ddf6 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_border_vertical_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_bubble_chart_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_bubble_chart_24px.svg new file mode 100644 index 0000000..35d0fbb --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_bubble_chart_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_drag_handle_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_drag_handle_24px.svg new file mode 100644 index 0000000..a292338 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_drag_handle_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_format_align_center_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_format_align_center_24px.svg new file mode 100644 index 0000000..82214e6 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_format_align_center_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_format_align_justify_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_format_align_justify_24px.svg new file mode 100644 index 0000000..3dd6fed --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_format_align_justify_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_format_align_left_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_format_align_left_24px.svg new file mode 100644 index 0000000..77d7810 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_format_align_left_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_format_align_right_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_format_align_right_24px.svg new file mode 100644 index 0000000..a786d99 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_format_align_right_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_format_bold_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_format_bold_24px.svg new file mode 100644 index 0000000..2b7d0f1 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_format_bold_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_format_clear_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_format_clear_24px.svg new file mode 100644 index 0000000..bb78cd7 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_format_clear_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_format_color_fill_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_format_color_fill_24px.svg new file mode 100644 index 0000000..1cc9972 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_format_color_fill_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_format_color_reset_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_format_color_reset_24px.svg new file mode 100644 index 0000000..4027103 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_format_color_reset_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_format_color_text_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_format_color_text_24px.svg new file mode 100644 index 0000000..49858ad --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_format_color_text_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_format_indent_decrease_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_format_indent_decrease_24px.svg new file mode 100644 index 0000000..61dc59f --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_format_indent_decrease_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_format_indent_increase_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_format_indent_increase_24px.svg new file mode 100644 index 0000000..d46f676 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_format_indent_increase_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_format_italic_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_format_italic_24px.svg new file mode 100644 index 0000000..c8acbb8 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_format_italic_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_format_line_spacing_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_format_line_spacing_24px.svg new file mode 100644 index 0000000..ff11d3a --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_format_line_spacing_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_format_list_bulleted_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_format_list_bulleted_24px.svg new file mode 100644 index 0000000..4beb2cd --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_format_list_bulleted_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_format_list_numbered_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_format_list_numbered_24px.svg new file mode 100644 index 0000000..82f85bb --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_format_list_numbered_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_format_paint_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_format_paint_24px.svg new file mode 100644 index 0000000..6d988b3 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_format_paint_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_format_quote_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_format_quote_24px.svg new file mode 100644 index 0000000..9d8fa8b --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_format_quote_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_format_shapes_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_format_shapes_24px.svg new file mode 100644 index 0000000..a14bb86 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_format_shapes_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_format_size_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_format_size_24px.svg new file mode 100644 index 0000000..51d9371 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_format_size_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_format_strikethrough_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_format_strikethrough_24px.svg new file mode 100644 index 0000000..1ce6765 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_format_strikethrough_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_format_textdirection_l_to_r_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_format_textdirection_l_to_r_24px.svg new file mode 100644 index 0000000..f9e7290 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_format_textdirection_l_to_r_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_format_textdirection_r_to_l_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_format_textdirection_r_to_l_24px.svg new file mode 100644 index 0000000..7259c4e --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_format_textdirection_r_to_l_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_format_underlined_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_format_underlined_24px.svg new file mode 100644 index 0000000..24f0729 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_format_underlined_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_functions_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_functions_24px.svg new file mode 100644 index 0000000..003ef30 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_functions_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_highlight_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_highlight_24px.svg new file mode 100644 index 0000000..ac55df1 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_highlight_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_insert_chart_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_insert_chart_24px.svg new file mode 100644 index 0000000..cc7768b --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_insert_chart_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_insert_comment_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_insert_comment_24px.svg new file mode 100644 index 0000000..c82fbff --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_insert_comment_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_insert_drive_file_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_insert_drive_file_24px.svg new file mode 100644 index 0000000..6aa287e --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_insert_drive_file_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_insert_emoticon_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_insert_emoticon_24px.svg new file mode 100644 index 0000000..57bea0f --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_insert_emoticon_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_insert_invitation_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_insert_invitation_24px.svg new file mode 100644 index 0000000..1b084e8 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_insert_invitation_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_insert_link_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_insert_link_24px.svg new file mode 100644 index 0000000..f39e2a7 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_insert_link_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_insert_photo_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_insert_photo_24px.svg new file mode 100644 index 0000000..6ccc16a --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_insert_photo_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_linear_scale_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_linear_scale_24px.svg new file mode 100644 index 0000000..9b57080 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_linear_scale_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_merge_type_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_merge_type_24px.svg new file mode 100644 index 0000000..b10772d --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_merge_type_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_mode_comment_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_mode_comment_24px.svg new file mode 100644 index 0000000..912954d --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_mode_comment_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_mode_edit_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_mode_edit_24px.svg new file mode 100644 index 0000000..f5ddfe1 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_mode_edit_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_monetization_on_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_monetization_on_24px.svg new file mode 100644 index 0000000..fbd8735 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_monetization_on_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_money_off_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_money_off_24px.svg new file mode 100644 index 0000000..c48bc8c --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_money_off_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_multiline_chart_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_multiline_chart_24px.svg new file mode 100644 index 0000000..c2a1e0b --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_multiline_chart_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_pie_chart_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_pie_chart_24px.svg new file mode 100644 index 0000000..d6d96a4 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_pie_chart_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_pie_chart_outlined_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_pie_chart_outlined_24px.svg new file mode 100644 index 0000000..c8c8aa8 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_pie_chart_outlined_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_publish_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_publish_24px.svg new file mode 100644 index 0000000..88faf16 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_publish_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_short_text_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_short_text_24px.svg new file mode 100644 index 0000000..f73c4f8 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_short_text_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_show_chart_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_show_chart_24px.svg new file mode 100644 index 0000000..bc01b79 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_show_chart_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_space_bar_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_space_bar_24px.svg new file mode 100644 index 0000000..0f1e7c5 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_space_bar_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_strikethrough_s_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_strikethrough_s_24px.svg new file mode 100644 index 0000000..7f218d0 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_strikethrough_s_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_text_fields_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_text_fields_24px.svg new file mode 100644 index 0000000..705cd75 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_text_fields_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_title_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_title_24px.svg new file mode 100644 index 0000000..c09ac43 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_title_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_vertical_align_bottom_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_vertical_align_bottom_24px.svg new file mode 100644 index 0000000..070f193 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_vertical_align_bottom_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_vertical_align_center_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_vertical_align_center_24px.svg new file mode 100644 index 0000000..b0272c7 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_vertical_align_center_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_vertical_align_top_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_vertical_align_top_24px.svg new file mode 100644 index 0000000..7a1cadd --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_vertical_align_top_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/editor/svg/production/ic_wrap_text_24px.svg b/qt-material-widgets/components/icons/editor/svg/production/ic_wrap_text_24px.svg new file mode 100644 index 0000000..3e11084 --- /dev/null +++ b/qt-material-widgets/components/icons/editor/svg/production/ic_wrap_text_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/file/svg/production/ic_attachment_24px.svg b/qt-material-widgets/components/icons/file/svg/production/ic_attachment_24px.svg new file mode 100644 index 0000000..d244845 --- /dev/null +++ b/qt-material-widgets/components/icons/file/svg/production/ic_attachment_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/file/svg/production/ic_cloud_24px.svg b/qt-material-widgets/components/icons/file/svg/production/ic_cloud_24px.svg new file mode 100644 index 0000000..63f946c --- /dev/null +++ b/qt-material-widgets/components/icons/file/svg/production/ic_cloud_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/file/svg/production/ic_cloud_circle_24px.svg b/qt-material-widgets/components/icons/file/svg/production/ic_cloud_circle_24px.svg new file mode 100644 index 0000000..859be00 --- /dev/null +++ b/qt-material-widgets/components/icons/file/svg/production/ic_cloud_circle_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/file/svg/production/ic_cloud_done_24px.svg b/qt-material-widgets/components/icons/file/svg/production/ic_cloud_done_24px.svg new file mode 100644 index 0000000..96e49c4 --- /dev/null +++ b/qt-material-widgets/components/icons/file/svg/production/ic_cloud_done_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/file/svg/production/ic_cloud_download_24px.svg b/qt-material-widgets/components/icons/file/svg/production/ic_cloud_download_24px.svg new file mode 100644 index 0000000..25d4096 --- /dev/null +++ b/qt-material-widgets/components/icons/file/svg/production/ic_cloud_download_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/file/svg/production/ic_cloud_off_24px.svg b/qt-material-widgets/components/icons/file/svg/production/ic_cloud_off_24px.svg new file mode 100644 index 0000000..16e58c5 --- /dev/null +++ b/qt-material-widgets/components/icons/file/svg/production/ic_cloud_off_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/file/svg/production/ic_cloud_queue_24px.svg b/qt-material-widgets/components/icons/file/svg/production/ic_cloud_queue_24px.svg new file mode 100644 index 0000000..22ddd7d --- /dev/null +++ b/qt-material-widgets/components/icons/file/svg/production/ic_cloud_queue_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/file/svg/production/ic_cloud_upload_24px.svg b/qt-material-widgets/components/icons/file/svg/production/ic_cloud_upload_24px.svg new file mode 100644 index 0000000..69a9622 --- /dev/null +++ b/qt-material-widgets/components/icons/file/svg/production/ic_cloud_upload_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/file/svg/production/ic_create_new_folder_24px.svg b/qt-material-widgets/components/icons/file/svg/production/ic_create_new_folder_24px.svg new file mode 100644 index 0000000..3c9da3d --- /dev/null +++ b/qt-material-widgets/components/icons/file/svg/production/ic_create_new_folder_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/file/svg/production/ic_file_download_24px.svg b/qt-material-widgets/components/icons/file/svg/production/ic_file_download_24px.svg new file mode 100644 index 0000000..ef421c3 --- /dev/null +++ b/qt-material-widgets/components/icons/file/svg/production/ic_file_download_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/file/svg/production/ic_file_upload_24px.svg b/qt-material-widgets/components/icons/file/svg/production/ic_file_upload_24px.svg new file mode 100644 index 0000000..0fe9aad --- /dev/null +++ b/qt-material-widgets/components/icons/file/svg/production/ic_file_upload_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/file/svg/production/ic_folder_24px.svg b/qt-material-widgets/components/icons/file/svg/production/ic_folder_24px.svg new file mode 100644 index 0000000..e70b01c --- /dev/null +++ b/qt-material-widgets/components/icons/file/svg/production/ic_folder_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/file/svg/production/ic_folder_open_24px.svg b/qt-material-widgets/components/icons/file/svg/production/ic_folder_open_24px.svg new file mode 100644 index 0000000..0f59689 --- /dev/null +++ b/qt-material-widgets/components/icons/file/svg/production/ic_folder_open_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/file/svg/production/ic_folder_shared_24px.svg b/qt-material-widgets/components/icons/file/svg/production/ic_folder_shared_24px.svg new file mode 100644 index 0000000..348100e --- /dev/null +++ b/qt-material-widgets/components/icons/file/svg/production/ic_folder_shared_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_cast_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_cast_24px.svg new file mode 100644 index 0000000..5686cc4 --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_cast_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_cast_connected_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_cast_connected_24px.svg new file mode 100644 index 0000000..38ca2c7 --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_cast_connected_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_computer_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_computer_24px.svg new file mode 100644 index 0000000..6a0af7e --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_computer_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_desktop_mac_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_desktop_mac_24px.svg new file mode 100644 index 0000000..8e408af --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_desktop_mac_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_desktop_windows_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_desktop_windows_24px.svg new file mode 100644 index 0000000..56d3324 --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_desktop_windows_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_developer_board_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_developer_board_24px.svg new file mode 100644 index 0000000..4efcd93 --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_developer_board_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_device_hub_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_device_hub_24px.svg new file mode 100644 index 0000000..f1c8e73 --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_device_hub_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_devices_other_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_devices_other_24px.svg new file mode 100644 index 0000000..43768e8 --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_devices_other_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_dock_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_dock_24px.svg new file mode 100644 index 0000000..ee94230 --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_dock_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_gamepad_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_gamepad_24px.svg new file mode 100644 index 0000000..62a4c9b --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_gamepad_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_headset_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_headset_24px.svg new file mode 100644 index 0000000..bdeb1eb --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_headset_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_headset_mic_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_headset_mic_24px.svg new file mode 100644 index 0000000..dba0e66 --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_headset_mic_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_24px.svg new file mode 100644 index 0000000..acbf11c --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_arrow_down_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_arrow_down_24px.svg new file mode 100644 index 0000000..ed92639 --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_arrow_down_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_arrow_left_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_arrow_left_24px.svg new file mode 100644 index 0000000..7002d84 --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_arrow_left_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_arrow_right_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_arrow_right_24px.svg new file mode 100644 index 0000000..e74898b --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_arrow_right_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_arrow_up_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_arrow_up_24px.svg new file mode 100644 index 0000000..607eb15 --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_arrow_up_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_backspace_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_backspace_24px.svg new file mode 100644 index 0000000..26fc18e --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_backspace_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_capslock_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_capslock_24px.svg new file mode 100644 index 0000000..2420341 --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_capslock_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_hide_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_hide_24px.svg new file mode 100644 index 0000000..7f279fa --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_hide_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_return_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_return_24px.svg new file mode 100644 index 0000000..48b52b6 --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_return_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_tab_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_tab_24px.svg new file mode 100644 index 0000000..7348895 --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_tab_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_voice_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_voice_24px.svg new file mode 100644 index 0000000..513e0fd --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_keyboard_voice_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_laptop_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_laptop_24px.svg new file mode 100644 index 0000000..405ef0a --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_laptop_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_laptop_chromebook_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_laptop_chromebook_24px.svg new file mode 100644 index 0000000..0918cf8 --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_laptop_chromebook_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_laptop_mac_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_laptop_mac_24px.svg new file mode 100644 index 0000000..e630d7e --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_laptop_mac_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_laptop_windows_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_laptop_windows_24px.svg new file mode 100644 index 0000000..0522324 --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_laptop_windows_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_memory_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_memory_24px.svg new file mode 100644 index 0000000..b7fe44f --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_memory_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_mouse_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_mouse_24px.svg new file mode 100644 index 0000000..ff5184c --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_mouse_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_phone_android_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_phone_android_24px.svg new file mode 100644 index 0000000..b7a256b --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_phone_android_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_phone_iphone_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_phone_iphone_24px.svg new file mode 100644 index 0000000..91ad0e0 --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_phone_iphone_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_phonelink_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_phonelink_24px.svg new file mode 100644 index 0000000..266e993 --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_phonelink_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_phonelink_off_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_phonelink_off_24px.svg new file mode 100644 index 0000000..33b4771 --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_phonelink_off_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_power_input_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_power_input_24px.svg new file mode 100644 index 0000000..353d4ce --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_power_input_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_router_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_router_24px.svg new file mode 100644 index 0000000..0c38782 --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_router_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_scanner_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_scanner_24px.svg new file mode 100644 index 0000000..827c151 --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_scanner_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_security_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_security_24px.svg new file mode 100644 index 0000000..f855309 --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_security_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_sim_card_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_sim_card_24px.svg new file mode 100644 index 0000000..b717193 --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_sim_card_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_smartphone_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_smartphone_24px.svg new file mode 100644 index 0000000..db4537f --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_smartphone_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_speaker_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_speaker_24px.svg new file mode 100644 index 0000000..fe95bef --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_speaker_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_speaker_group_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_speaker_group_24px.svg new file mode 100644 index 0000000..5ea98a7 --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_speaker_group_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_tablet_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_tablet_24px.svg new file mode 100644 index 0000000..f5390cc --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_tablet_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_tablet_android_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_tablet_android_24px.svg new file mode 100644 index 0000000..9e4301b --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_tablet_android_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_tablet_mac_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_tablet_mac_24px.svg new file mode 100644 index 0000000..cb4ae22 --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_tablet_mac_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_toys_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_toys_24px.svg new file mode 100644 index 0000000..faef6a0 --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_toys_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_tv_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_tv_24px.svg new file mode 100644 index 0000000..6954135 --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_tv_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_videogame_asset_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_videogame_asset_24px.svg new file mode 100644 index 0000000..af4c4b0 --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_videogame_asset_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/hardware/svg/production/ic_watch_24px.svg b/qt-material-widgets/components/icons/hardware/svg/production/ic_watch_24px.svg new file mode 100644 index 0000000..a759e1b --- /dev/null +++ b/qt-material-widgets/components/icons/hardware/svg/production/ic_watch_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_add_a_photo_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_add_a_photo_24px.svg new file mode 100644 index 0000000..98c6d86 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_add_a_photo_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_add_to_photos_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_add_to_photos_24px.svg new file mode 100644 index 0000000..baea3e9 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_add_to_photos_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_adjust_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_adjust_24px.svg new file mode 100644 index 0000000..a096236 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_adjust_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_assistant_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_assistant_24px.svg new file mode 100644 index 0000000..a183f73 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_assistant_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_assistant_photo_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_assistant_photo_24px.svg new file mode 100644 index 0000000..eaf3ff4 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_assistant_photo_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_audiotrack_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_audiotrack_24px.svg new file mode 100644 index 0000000..0cda5dd --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_audiotrack_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_blur_circular_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_blur_circular_24px.svg new file mode 100644 index 0000000..3a91b1d --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_blur_circular_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_blur_linear_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_blur_linear_24px.svg new file mode 100644 index 0000000..1f2590f --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_blur_linear_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_blur_off_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_blur_off_24px.svg new file mode 100644 index 0000000..532ef8f --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_blur_off_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_blur_on_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_blur_on_24px.svg new file mode 100644 index 0000000..0983b48 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_blur_on_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_brightness_1_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_brightness_1_24px.svg new file mode 100644 index 0000000..575b111 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_brightness_1_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_brightness_2_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_brightness_2_24px.svg new file mode 100644 index 0000000..c963e0b --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_brightness_2_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_brightness_3_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_brightness_3_24px.svg new file mode 100644 index 0000000..3048e31 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_brightness_3_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_brightness_4_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_brightness_4_24px.svg new file mode 100644 index 0000000..2566874 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_brightness_4_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_brightness_5_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_brightness_5_24px.svg new file mode 100644 index 0000000..2b6d29d --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_brightness_5_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_brightness_6_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_brightness_6_24px.svg new file mode 100644 index 0000000..dc29999 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_brightness_6_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_brightness_7_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_brightness_7_24px.svg new file mode 100644 index 0000000..f4a2b29 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_brightness_7_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_broken_image_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_broken_image_24px.svg new file mode 100644 index 0000000..fe22b4b --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_broken_image_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_brush_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_brush_24px.svg new file mode 100644 index 0000000..5f79966 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_brush_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_burst_mode_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_burst_mode_24px.svg new file mode 100644 index 0000000..6923324 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_burst_mode_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_camera_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_camera_24px.svg new file mode 100644 index 0000000..e78e6b3 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_camera_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_camera_alt_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_camera_alt_24px.svg new file mode 100644 index 0000000..94960bf --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_camera_alt_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_camera_front_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_camera_front_24px.svg new file mode 100644 index 0000000..43ea4d2 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_camera_front_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_camera_rear_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_camera_rear_24px.svg new file mode 100644 index 0000000..3c6fbb1 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_camera_rear_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_camera_roll_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_camera_roll_24px.svg new file mode 100644 index 0000000..06c7023 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_camera_roll_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_center_focus_strong_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_center_focus_strong_24px.svg new file mode 100644 index 0000000..85b0d4b --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_center_focus_strong_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_center_focus_weak_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_center_focus_weak_24px.svg new file mode 100644 index 0000000..330a82f --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_center_focus_weak_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_collections_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_collections_24px.svg new file mode 100644 index 0000000..3af788b --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_collections_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_collections_bookmark_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_collections_bookmark_24px.svg new file mode 100644 index 0000000..7f7c541 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_collections_bookmark_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_color_lens_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_color_lens_24px.svg new file mode 100644 index 0000000..c5fc873 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_color_lens_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_colorize_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_colorize_24px.svg new file mode 100644 index 0000000..ccdd273 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_colorize_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_compare_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_compare_24px.svg new file mode 100644 index 0000000..131506b --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_compare_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_control_point_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_control_point_24px.svg new file mode 100644 index 0000000..9275b0e --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_control_point_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_control_point_duplicate_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_control_point_duplicate_24px.svg new file mode 100644 index 0000000..fe09988 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_control_point_duplicate_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_crop_16_9_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_crop_16_9_24px.svg new file mode 100644 index 0000000..7be7919 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_crop_16_9_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_crop_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_crop_24px.svg new file mode 100644 index 0000000..f508de3 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_crop_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_crop_3_2_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_crop_3_2_24px.svg new file mode 100644 index 0000000..3dee425 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_crop_3_2_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_crop_5_4_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_crop_5_4_24px.svg new file mode 100644 index 0000000..13c5050 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_crop_5_4_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_crop_7_5_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_crop_7_5_24px.svg new file mode 100644 index 0000000..8a48573 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_crop_7_5_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_crop_din_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_crop_din_24px.svg new file mode 100644 index 0000000..7a2362a --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_crop_din_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_crop_free_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_crop_free_24px.svg new file mode 100644 index 0000000..99f7183 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_crop_free_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_crop_landscape_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_crop_landscape_24px.svg new file mode 100644 index 0000000..13c5050 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_crop_landscape_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_crop_original_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_crop_original_24px.svg new file mode 100644 index 0000000..4084151 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_crop_original_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_crop_portrait_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_crop_portrait_24px.svg new file mode 100644 index 0000000..78a7fe1 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_crop_portrait_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_crop_rotate_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_crop_rotate_24px.svg new file mode 100644 index 0000000..3661fff --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_crop_rotate_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_crop_square_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_crop_square_24px.svg new file mode 100644 index 0000000..ac46175 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_crop_square_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_dehaze_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_dehaze_24px.svg new file mode 100644 index 0000000..bae2109 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_dehaze_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_details_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_details_24px.svg new file mode 100644 index 0000000..3eca3fb --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_details_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_edit_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_edit_24px.svg new file mode 100644 index 0000000..f5ddfe1 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_edit_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_exposure_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_exposure_24px.svg new file mode 100644 index 0000000..c5a3382 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_exposure_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_exposure_neg_1_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_exposure_neg_1_24px.svg new file mode 100644 index 0000000..71be874 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_exposure_neg_1_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_exposure_neg_2_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_exposure_neg_2_24px.svg new file mode 100644 index 0000000..b1f453d --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_exposure_neg_2_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_exposure_plus_1_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_exposure_plus_1_24px.svg new file mode 100644 index 0000000..f5921c2 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_exposure_plus_1_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_exposure_plus_2_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_exposure_plus_2_24px.svg new file mode 100644 index 0000000..14c3e09 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_exposure_plus_2_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_exposure_zero_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_exposure_zero_24px.svg new file mode 100644 index 0000000..cf710bb --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_exposure_zero_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_filter_1_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_filter_1_24px.svg new file mode 100644 index 0000000..0e81a46 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_filter_1_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_filter_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_filter_24px.svg new file mode 100644 index 0000000..40ccd8c --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_filter_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_filter_2_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_filter_2_24px.svg new file mode 100644 index 0000000..101c3b3 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_filter_2_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_filter_3_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_filter_3_24px.svg new file mode 100644 index 0000000..57d2cd7 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_filter_3_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_filter_4_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_filter_4_24px.svg new file mode 100644 index 0000000..2bb6ee7 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_filter_4_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_filter_5_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_filter_5_24px.svg new file mode 100644 index 0000000..6e4a763 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_filter_5_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_filter_6_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_filter_6_24px.svg new file mode 100644 index 0000000..e3f31f3 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_filter_6_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_filter_7_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_filter_7_24px.svg new file mode 100644 index 0000000..76e3aaf --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_filter_7_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_filter_8_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_filter_8_24px.svg new file mode 100644 index 0000000..fc7305d --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_filter_8_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_filter_9_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_filter_9_24px.svg new file mode 100644 index 0000000..636b205 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_filter_9_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_filter_9_plus_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_filter_9_plus_24px.svg new file mode 100644 index 0000000..5f30216 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_filter_9_plus_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_filter_b_and_w_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_filter_b_and_w_24px.svg new file mode 100644 index 0000000..1c97939 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_filter_b_and_w_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_filter_center_focus_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_filter_center_focus_24px.svg new file mode 100644 index 0000000..c501264 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_filter_center_focus_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_filter_drama_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_filter_drama_24px.svg new file mode 100644 index 0000000..6e12efc --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_filter_drama_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_filter_frames_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_filter_frames_24px.svg new file mode 100644 index 0000000..1332006 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_filter_frames_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_filter_hdr_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_filter_hdr_24px.svg new file mode 100644 index 0000000..b239af7 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_filter_hdr_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_filter_none_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_filter_none_24px.svg new file mode 100644 index 0000000..36f86a3 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_filter_none_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_filter_tilt_shift_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_filter_tilt_shift_24px.svg new file mode 100644 index 0000000..a2ce281 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_filter_tilt_shift_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_filter_vintage_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_filter_vintage_24px.svg new file mode 100644 index 0000000..a78b53b --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_filter_vintage_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_flare_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_flare_24px.svg new file mode 100644 index 0000000..198a483 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_flare_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_flash_auto_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_flash_auto_24px.svg new file mode 100644 index 0000000..beeccfd --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_flash_auto_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_flash_off_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_flash_off_24px.svg new file mode 100644 index 0000000..b0ec0ee --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_flash_off_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_flash_on_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_flash_on_24px.svg new file mode 100644 index 0000000..e948043 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_flash_on_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_flip_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_flip_24px.svg new file mode 100644 index 0000000..4131540 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_flip_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_gradient_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_gradient_24px.svg new file mode 100644 index 0000000..8320b4a --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_gradient_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_grain_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_grain_24px.svg new file mode 100644 index 0000000..66c0588 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_grain_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_grid_off_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_grid_off_24px.svg new file mode 100644 index 0000000..58702c8 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_grid_off_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_grid_on_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_grid_on_24px.svg new file mode 100644 index 0000000..3caf213 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_grid_on_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_hdr_off_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_hdr_off_24px.svg new file mode 100644 index 0000000..1232bbf --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_hdr_off_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_hdr_on_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_hdr_on_24px.svg new file mode 100644 index 0000000..9acaafa --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_hdr_on_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_hdr_strong_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_hdr_strong_24px.svg new file mode 100644 index 0000000..cf68b9e --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_hdr_strong_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_hdr_weak_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_hdr_weak_24px.svg new file mode 100644 index 0000000..1554922 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_hdr_weak_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_healing_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_healing_24px.svg new file mode 100644 index 0000000..cf4ec96 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_healing_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_image_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_image_24px.svg new file mode 100644 index 0000000..6ccc16a --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_image_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_image_aspect_ratio_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_image_aspect_ratio_24px.svg new file mode 100644 index 0000000..4a8b293 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_image_aspect_ratio_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_iso_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_iso_24px.svg new file mode 100644 index 0000000..873aaa2 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_iso_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_landscape_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_landscape_24px.svg new file mode 100644 index 0000000..b239af7 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_landscape_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_leak_add_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_leak_add_24px.svg new file mode 100644 index 0000000..9b861bc --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_leak_add_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_leak_remove_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_leak_remove_24px.svg new file mode 100644 index 0000000..546c3d8 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_leak_remove_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_lens_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_lens_24px.svg new file mode 100644 index 0000000..ced343a --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_lens_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_linked_camera_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_linked_camera_24px.svg new file mode 100644 index 0000000..ec78871 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_linked_camera_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_looks_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_looks_24px.svg new file mode 100644 index 0000000..b4ca971 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_looks_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_looks_3_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_looks_3_24px.svg new file mode 100644 index 0000000..114d59a --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_looks_3_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_looks_4_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_looks_4_24px.svg new file mode 100644 index 0000000..393b327 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_looks_4_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_looks_5_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_looks_5_24px.svg new file mode 100644 index 0000000..6a1d1ed --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_looks_5_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_looks_6_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_looks_6_24px.svg new file mode 100644 index 0000000..c323da8 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_looks_6_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_looks_one_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_looks_one_24px.svg new file mode 100644 index 0000000..b399d47 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_looks_one_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_looks_two_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_looks_two_24px.svg new file mode 100644 index 0000000..845b590 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_looks_two_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_loupe_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_loupe_24px.svg new file mode 100644 index 0000000..dcd1a4b --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_loupe_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_monochrome_photos_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_monochrome_photos_24px.svg new file mode 100644 index 0000000..2b72560 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_monochrome_photos_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_movie_creation_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_movie_creation_24px.svg new file mode 100644 index 0000000..8bbbb53 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_movie_creation_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_movie_filter_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_movie_filter_24px.svg new file mode 100644 index 0000000..8c6473d --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_movie_filter_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_music_note_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_music_note_24px.svg new file mode 100644 index 0000000..cdc42fc --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_music_note_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_nature_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_nature_24px.svg new file mode 100644 index 0000000..1d1e1c7 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_nature_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_nature_people_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_nature_people_24px.svg new file mode 100644 index 0000000..28a2e89 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_nature_people_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_navigate_before_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_navigate_before_24px.svg new file mode 100644 index 0000000..36e6e99 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_navigate_before_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_navigate_next_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_navigate_next_24px.svg new file mode 100644 index 0000000..47ed5fe --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_navigate_next_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_palette_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_palette_24px.svg new file mode 100644 index 0000000..c5fc873 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_palette_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_panorama_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_panorama_24px.svg new file mode 100644 index 0000000..312bb52 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_panorama_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_panorama_fish_eye_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_panorama_fish_eye_24px.svg new file mode 100644 index 0000000..81123c6 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_panorama_fish_eye_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_panorama_horizontal_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_panorama_horizontal_24px.svg new file mode 100644 index 0000000..56791f0 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_panorama_horizontal_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_panorama_vertical_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_panorama_vertical_24px.svg new file mode 100644 index 0000000..5f428f5 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_panorama_vertical_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_panorama_wide_angle_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_panorama_wide_angle_24px.svg new file mode 100644 index 0000000..45996f8 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_panorama_wide_angle_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_photo_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_photo_24px.svg new file mode 100644 index 0000000..6ccc16a --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_photo_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_photo_album_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_photo_album_24px.svg new file mode 100644 index 0000000..5da0d40 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_photo_album_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_photo_camera_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_photo_camera_24px.svg new file mode 100644 index 0000000..94960bf --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_photo_camera_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_photo_filter_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_photo_filter_24px.svg new file mode 100644 index 0000000..e627995 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_photo_filter_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_photo_library_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_photo_library_24px.svg new file mode 100644 index 0000000..3af788b --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_photo_library_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_photo_size_select_actual_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_photo_size_select_actual_24px.svg new file mode 100644 index 0000000..1102b34 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_photo_size_select_actual_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_photo_size_select_large_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_photo_size_select_large_24px.svg new file mode 100644 index 0000000..074d75a --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_photo_size_select_large_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_photo_size_select_small_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_photo_size_select_small_24px.svg new file mode 100644 index 0000000..7dbd961 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_photo_size_select_small_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_picture_as_pdf_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_picture_as_pdf_24px.svg new file mode 100644 index 0000000..e50f55f --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_picture_as_pdf_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_portrait_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_portrait_24px.svg new file mode 100644 index 0000000..685a339 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_portrait_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_remove_red_eye_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_remove_red_eye_24px.svg new file mode 100644 index 0000000..5c700e3 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_remove_red_eye_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_rotate_90_degrees_ccw_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_rotate_90_degrees_ccw_24px.svg new file mode 100644 index 0000000..4268bb7 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_rotate_90_degrees_ccw_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_rotate_left_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_rotate_left_24px.svg new file mode 100644 index 0000000..6766814 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_rotate_left_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_rotate_right_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_rotate_right_24px.svg new file mode 100644 index 0000000..0269224 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_rotate_right_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_slideshow_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_slideshow_24px.svg new file mode 100644 index 0000000..079a6be --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_slideshow_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_straighten_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_straighten_24px.svg new file mode 100644 index 0000000..d161c5e --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_straighten_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_style_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_style_24px.svg new file mode 100644 index 0000000..cce7564 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_style_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_switch_camera_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_switch_camera_24px.svg new file mode 100644 index 0000000..979b015 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_switch_camera_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_switch_video_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_switch_video_24px.svg new file mode 100644 index 0000000..821e50d --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_switch_video_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_tag_faces_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_tag_faces_24px.svg new file mode 100644 index 0000000..57bea0f --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_tag_faces_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_texture_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_texture_24px.svg new file mode 100644 index 0000000..b86bf95 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_texture_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_timelapse_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_timelapse_24px.svg new file mode 100644 index 0000000..6a3e4fe --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_timelapse_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_timer_10_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_timer_10_24px.svg new file mode 100644 index 0000000..95c3304 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_timer_10_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_timer_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_timer_24px.svg new file mode 100644 index 0000000..e113e76 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_timer_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_timer_3_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_timer_3_24px.svg new file mode 100644 index 0000000..88b7b90 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_timer_3_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_timer_off_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_timer_off_24px.svg new file mode 100644 index 0000000..aea789e --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_timer_off_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_tonality_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_tonality_24px.svg new file mode 100644 index 0000000..5a34a05 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_tonality_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_transform_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_transform_24px.svg new file mode 100644 index 0000000..b11ce4a --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_transform_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_tune_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_tune_24px.svg new file mode 100644 index 0000000..24dbcd6 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_tune_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_view_comfy_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_view_comfy_24px.svg new file mode 100644 index 0000000..07cefea --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_view_comfy_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_view_compact_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_view_compact_24px.svg new file mode 100644 index 0000000..77c2483 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_view_compact_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_vignette_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_vignette_24px.svg new file mode 100644 index 0000000..c54a045 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_vignette_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_wb_auto_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_wb_auto_24px.svg new file mode 100644 index 0000000..1b76925 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_wb_auto_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_wb_cloudy_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_wb_cloudy_24px.svg new file mode 100644 index 0000000..47f8947 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_wb_cloudy_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_wb_incandescent_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_wb_incandescent_24px.svg new file mode 100644 index 0000000..4cac930 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_wb_incandescent_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_wb_iridescent_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_wb_iridescent_24px.svg new file mode 100644 index 0000000..1a54d92 --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_wb_iridescent_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/image/svg/production/ic_wb_sunny_24px.svg b/qt-material-widgets/components/icons/image/svg/production/ic_wb_sunny_24px.svg new file mode 100644 index 0000000..d83b6ca --- /dev/null +++ b/qt-material-widgets/components/icons/image/svg/production/ic_wb_sunny_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_add_location_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_add_location_24px.svg new file mode 100644 index 0000000..6d2721b --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_add_location_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_beenhere_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_beenhere_24px.svg new file mode 100644 index 0000000..36264e3 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_beenhere_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_directions_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_directions_24px.svg new file mode 100644 index 0000000..dd924bf --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_directions_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_directions_bike_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_directions_bike_24px.svg new file mode 100644 index 0000000..025c7e2 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_directions_bike_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_directions_boat_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_directions_boat_24px.svg new file mode 100644 index 0000000..5226b67 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_directions_boat_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_directions_bus_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_directions_bus_24px.svg new file mode 100644 index 0000000..ade3c4d --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_directions_bus_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_directions_car_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_directions_car_24px.svg new file mode 100644 index 0000000..7cd866c --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_directions_car_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_directions_railway_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_directions_railway_24px.svg new file mode 100644 index 0000000..b7bdcba --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_directions_railway_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_directions_run_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_directions_run_24px.svg new file mode 100644 index 0000000..7296105 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_directions_run_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_directions_subway_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_directions_subway_24px.svg new file mode 100644 index 0000000..22a47ce --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_directions_subway_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_directions_transit_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_directions_transit_24px.svg new file mode 100644 index 0000000..22a47ce --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_directions_transit_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_directions_walk_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_directions_walk_24px.svg new file mode 100644 index 0000000..3572cb3 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_directions_walk_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_edit_location_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_edit_location_24px.svg new file mode 100644 index 0000000..b14fc61 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_edit_location_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_ev_station_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_ev_station_24px.svg new file mode 100644 index 0000000..fb06f9e --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_ev_station_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_flight_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_flight_24px.svg new file mode 100644 index 0000000..240d1b6 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_flight_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_hotel_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_hotel_24px.svg new file mode 100644 index 0000000..f1cca2c --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_hotel_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_layers_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_layers_24px.svg new file mode 100644 index 0000000..02160fa --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_layers_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_layers_clear_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_layers_clear_24px.svg new file mode 100644 index 0000000..b0a40d4 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_layers_clear_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_local_activity_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_local_activity_24px.svg new file mode 100644 index 0000000..cb28463 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_local_activity_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_local_airport_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_local_airport_24px.svg new file mode 100644 index 0000000..2fe1dea --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_local_airport_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_local_atm_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_local_atm_24px.svg new file mode 100644 index 0000000..a893448 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_local_atm_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_local_bar_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_local_bar_24px.svg new file mode 100644 index 0000000..9232c7d --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_local_bar_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_local_cafe_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_local_cafe_24px.svg new file mode 100644 index 0000000..dfdee9c --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_local_cafe_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_local_car_wash_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_local_car_wash_24px.svg new file mode 100644 index 0000000..611f73d --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_local_car_wash_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_local_convenience_store_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_local_convenience_store_24px.svg new file mode 100644 index 0000000..8070a89 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_local_convenience_store_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_local_dining_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_local_dining_24px.svg new file mode 100644 index 0000000..3be0060 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_local_dining_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_local_drink_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_local_drink_24px.svg new file mode 100644 index 0000000..4ba9152 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_local_drink_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_local_florist_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_local_florist_24px.svg new file mode 100644 index 0000000..bf9d45f --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_local_florist_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_local_gas_station_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_local_gas_station_24px.svg new file mode 100644 index 0000000..08cb670 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_local_gas_station_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_local_grocery_store_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_local_grocery_store_24px.svg new file mode 100644 index 0000000..ee758e6 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_local_grocery_store_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_local_hospital_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_local_hospital_24px.svg new file mode 100644 index 0000000..85da4ff --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_local_hospital_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_local_hotel_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_local_hotel_24px.svg new file mode 100644 index 0000000..f1cca2c --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_local_hotel_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_local_laundry_service_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_local_laundry_service_24px.svg new file mode 100644 index 0000000..a519c04 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_local_laundry_service_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_local_library_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_local_library_24px.svg new file mode 100644 index 0000000..5fa5109 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_local_library_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_local_mall_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_local_mall_24px.svg new file mode 100644 index 0000000..35683c7 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_local_mall_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_local_movies_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_local_movies_24px.svg new file mode 100644 index 0000000..74652a6 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_local_movies_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_local_offer_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_local_offer_24px.svg new file mode 100644 index 0000000..20ad1fe --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_local_offer_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_local_parking_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_local_parking_24px.svg new file mode 100644 index 0000000..0cc3198 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_local_parking_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_local_pharmacy_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_local_pharmacy_24px.svg new file mode 100644 index 0000000..7272010 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_local_pharmacy_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_local_phone_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_local_phone_24px.svg new file mode 100644 index 0000000..5908b6a --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_local_phone_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_local_pizza_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_local_pizza_24px.svg new file mode 100644 index 0000000..d67936e --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_local_pizza_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_local_play_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_local_play_24px.svg new file mode 100644 index 0000000..cb28463 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_local_play_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_local_post_office_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_local_post_office_24px.svg new file mode 100644 index 0000000..f2c5b4f --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_local_post_office_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_local_printshop_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_local_printshop_24px.svg new file mode 100644 index 0000000..6128bd8 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_local_printshop_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_local_see_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_local_see_24px.svg new file mode 100644 index 0000000..94960bf --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_local_see_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_local_shipping_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_local_shipping_24px.svg new file mode 100644 index 0000000..c928262 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_local_shipping_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_local_taxi_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_local_taxi_24px.svg new file mode 100644 index 0000000..e3559e9 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_local_taxi_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_map_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_map_24px.svg new file mode 100644 index 0000000..5fd9669 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_map_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_my_location_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_my_location_24px.svg new file mode 100644 index 0000000..394dc36 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_my_location_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_navigation_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_navigation_24px.svg new file mode 100644 index 0000000..2891c58 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_navigation_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_near_me_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_near_me_24px.svg new file mode 100644 index 0000000..33afbe0 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_near_me_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_person_pin_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_person_pin_24px.svg new file mode 100644 index 0000000..1955081 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_person_pin_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_person_pin_circle_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_person_pin_circle_24px.svg new file mode 100644 index 0000000..f21fb22 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_person_pin_circle_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_pin_drop_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_pin_drop_24px.svg new file mode 100644 index 0000000..498d663 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_pin_drop_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_place_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_place_24px.svg new file mode 100644 index 0000000..490afe9 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_place_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_rate_review_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_rate_review_24px.svg new file mode 100644 index 0000000..ce447b6 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_rate_review_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_restaurant_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_restaurant_24px.svg new file mode 100644 index 0000000..70830b0 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_restaurant_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_restaurant_menu_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_restaurant_menu_24px.svg new file mode 100644 index 0000000..3be0060 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_restaurant_menu_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_satellite_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_satellite_24px.svg new file mode 100644 index 0000000..ef3e5ff --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_satellite_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_store_mall_directory_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_store_mall_directory_24px.svg new file mode 100644 index 0000000..2b06cc5 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_store_mall_directory_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_streetview_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_streetview_24px.svg new file mode 100644 index 0000000..abd2294 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_streetview_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_subway_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_subway_24px.svg new file mode 100644 index 0000000..0d0f350 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_subway_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_terrain_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_terrain_24px.svg new file mode 100644 index 0000000..b239af7 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_terrain_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_traffic_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_traffic_24px.svg new file mode 100644 index 0000000..9560743 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_traffic_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_train_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_train_24px.svg new file mode 100644 index 0000000..e18c9ae --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_train_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_tram_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_tram_24px.svg new file mode 100644 index 0000000..69fe39c --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_tram_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_transfer_within_a_station_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_transfer_within_a_station_24px.svg new file mode 100644 index 0000000..3779847 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_transfer_within_a_station_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/maps/svg/production/ic_zoom_out_map_24px.svg b/qt-material-widgets/components/icons/maps/svg/production/ic_zoom_out_map_24px.svg new file mode 100644 index 0000000..587ef03 --- /dev/null +++ b/qt-material-widgets/components/icons/maps/svg/production/ic_zoom_out_map_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/navigation/svg/production/ic_apps_24px.svg b/qt-material-widgets/components/icons/navigation/svg/production/ic_apps_24px.svg new file mode 100644 index 0000000..b0ccb6c --- /dev/null +++ b/qt-material-widgets/components/icons/navigation/svg/production/ic_apps_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/navigation/svg/production/ic_arrow_back_24px.svg b/qt-material-widgets/components/icons/navigation/svg/production/ic_arrow_back_24px.svg new file mode 100644 index 0000000..00d44bf --- /dev/null +++ b/qt-material-widgets/components/icons/navigation/svg/production/ic_arrow_back_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/navigation/svg/production/ic_arrow_downward_24px.svg b/qt-material-widgets/components/icons/navigation/svg/production/ic_arrow_downward_24px.svg new file mode 100644 index 0000000..27ddfa1 --- /dev/null +++ b/qt-material-widgets/components/icons/navigation/svg/production/ic_arrow_downward_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/navigation/svg/production/ic_arrow_drop_down_24px.svg b/qt-material-widgets/components/icons/navigation/svg/production/ic_arrow_drop_down_24px.svg new file mode 100644 index 0000000..6e4510d --- /dev/null +++ b/qt-material-widgets/components/icons/navigation/svg/production/ic_arrow_drop_down_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/navigation/svg/production/ic_arrow_drop_down_circle_24px.svg b/qt-material-widgets/components/icons/navigation/svg/production/ic_arrow_drop_down_circle_24px.svg new file mode 100644 index 0000000..689107c --- /dev/null +++ b/qt-material-widgets/components/icons/navigation/svg/production/ic_arrow_drop_down_circle_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/navigation/svg/production/ic_arrow_drop_up_24px.svg b/qt-material-widgets/components/icons/navigation/svg/production/ic_arrow_drop_up_24px.svg new file mode 100644 index 0000000..b9aa2cc --- /dev/null +++ b/qt-material-widgets/components/icons/navigation/svg/production/ic_arrow_drop_up_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/navigation/svg/production/ic_arrow_forward_24px.svg b/qt-material-widgets/components/icons/navigation/svg/production/ic_arrow_forward_24px.svg new file mode 100644 index 0000000..c4a2c18 --- /dev/null +++ b/qt-material-widgets/components/icons/navigation/svg/production/ic_arrow_forward_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/navigation/svg/production/ic_arrow_upward_24px.svg b/qt-material-widgets/components/icons/navigation/svg/production/ic_arrow_upward_24px.svg new file mode 100644 index 0000000..e4d9a7e --- /dev/null +++ b/qt-material-widgets/components/icons/navigation/svg/production/ic_arrow_upward_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/navigation/svg/production/ic_cancel_24px.svg b/qt-material-widgets/components/icons/navigation/svg/production/ic_cancel_24px.svg new file mode 100644 index 0000000..d6e55da --- /dev/null +++ b/qt-material-widgets/components/icons/navigation/svg/production/ic_cancel_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/navigation/svg/production/ic_check_24px.svg b/qt-material-widgets/components/icons/navigation/svg/production/ic_check_24px.svg new file mode 100644 index 0000000..a608f7d --- /dev/null +++ b/qt-material-widgets/components/icons/navigation/svg/production/ic_check_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/navigation/svg/production/ic_chevron_left_24px.svg b/qt-material-widgets/components/icons/navigation/svg/production/ic_chevron_left_24px.svg new file mode 100644 index 0000000..36e6e99 --- /dev/null +++ b/qt-material-widgets/components/icons/navigation/svg/production/ic_chevron_left_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/navigation/svg/production/ic_chevron_right_24px.svg b/qt-material-widgets/components/icons/navigation/svg/production/ic_chevron_right_24px.svg new file mode 100644 index 0000000..47ed5fe --- /dev/null +++ b/qt-material-widgets/components/icons/navigation/svg/production/ic_chevron_right_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/navigation/svg/production/ic_close_24px.svg b/qt-material-widgets/components/icons/navigation/svg/production/ic_close_24px.svg new file mode 100644 index 0000000..865788b --- /dev/null +++ b/qt-material-widgets/components/icons/navigation/svg/production/ic_close_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/navigation/svg/production/ic_expand_less_24px.svg b/qt-material-widgets/components/icons/navigation/svg/production/ic_expand_less_24px.svg new file mode 100644 index 0000000..1b5a326 --- /dev/null +++ b/qt-material-widgets/components/icons/navigation/svg/production/ic_expand_less_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/navigation/svg/production/ic_expand_more_24px.svg b/qt-material-widgets/components/icons/navigation/svg/production/ic_expand_more_24px.svg new file mode 100644 index 0000000..e3e13c5 --- /dev/null +++ b/qt-material-widgets/components/icons/navigation/svg/production/ic_expand_more_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/navigation/svg/production/ic_first_page_24px.svg b/qt-material-widgets/components/icons/navigation/svg/production/ic_first_page_24px.svg new file mode 100644 index 0000000..9da64ba --- /dev/null +++ b/qt-material-widgets/components/icons/navigation/svg/production/ic_first_page_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/navigation/svg/production/ic_fullscreen_24px.svg b/qt-material-widgets/components/icons/navigation/svg/production/ic_fullscreen_24px.svg new file mode 100644 index 0000000..e5eb6a2 --- /dev/null +++ b/qt-material-widgets/components/icons/navigation/svg/production/ic_fullscreen_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/navigation/svg/production/ic_fullscreen_exit_24px.svg b/qt-material-widgets/components/icons/navigation/svg/production/ic_fullscreen_exit_24px.svg new file mode 100644 index 0000000..9d3ff86 --- /dev/null +++ b/qt-material-widgets/components/icons/navigation/svg/production/ic_fullscreen_exit_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/navigation/svg/production/ic_last_page_24px.svg b/qt-material-widgets/components/icons/navigation/svg/production/ic_last_page_24px.svg new file mode 100644 index 0000000..93cfd96 --- /dev/null +++ b/qt-material-widgets/components/icons/navigation/svg/production/ic_last_page_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/navigation/svg/production/ic_menu_24px.svg b/qt-material-widgets/components/icons/navigation/svg/production/ic_menu_24px.svg new file mode 100644 index 0000000..ae7c36c --- /dev/null +++ b/qt-material-widgets/components/icons/navigation/svg/production/ic_menu_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/navigation/svg/production/ic_more_horiz_24px.svg b/qt-material-widgets/components/icons/navigation/svg/production/ic_more_horiz_24px.svg new file mode 100644 index 0000000..afb392c --- /dev/null +++ b/qt-material-widgets/components/icons/navigation/svg/production/ic_more_horiz_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/navigation/svg/production/ic_more_vert_24px.svg b/qt-material-widgets/components/icons/navigation/svg/production/ic_more_vert_24px.svg new file mode 100644 index 0000000..f2427f8 --- /dev/null +++ b/qt-material-widgets/components/icons/navigation/svg/production/ic_more_vert_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/navigation/svg/production/ic_refresh_24px.svg b/qt-material-widgets/components/icons/navigation/svg/production/ic_refresh_24px.svg new file mode 100644 index 0000000..f5d626c --- /dev/null +++ b/qt-material-widgets/components/icons/navigation/svg/production/ic_refresh_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/navigation/svg/production/ic_subdirectory_arrow_left_24px.svg b/qt-material-widgets/components/icons/navigation/svg/production/ic_subdirectory_arrow_left_24px.svg new file mode 100644 index 0000000..a64ef9f --- /dev/null +++ b/qt-material-widgets/components/icons/navigation/svg/production/ic_subdirectory_arrow_left_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/navigation/svg/production/ic_subdirectory_arrow_right_24px.svg b/qt-material-widgets/components/icons/navigation/svg/production/ic_subdirectory_arrow_right_24px.svg new file mode 100644 index 0000000..dd10ac6 --- /dev/null +++ b/qt-material-widgets/components/icons/navigation/svg/production/ic_subdirectory_arrow_right_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/navigation/svg/production/ic_unfold_less_24px.svg b/qt-material-widgets/components/icons/navigation/svg/production/ic_unfold_less_24px.svg new file mode 100644 index 0000000..d84a82d --- /dev/null +++ b/qt-material-widgets/components/icons/navigation/svg/production/ic_unfold_less_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/navigation/svg/production/ic_unfold_more_24px.svg b/qt-material-widgets/components/icons/navigation/svg/production/ic_unfold_more_24px.svg new file mode 100644 index 0000000..5cb8b46 --- /dev/null +++ b/qt-material-widgets/components/icons/navigation/svg/production/ic_unfold_more_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_adb_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_adb_24px.svg new file mode 100644 index 0000000..ca94af5 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_adb_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_airline_seat_flat_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_airline_seat_flat_24px.svg new file mode 100644 index 0000000..a1bd66d --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_airline_seat_flat_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_airline_seat_flat_angled_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_airline_seat_flat_angled_24px.svg new file mode 100644 index 0000000..fa89cc0 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_airline_seat_flat_angled_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_airline_seat_individual_suite_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_airline_seat_individual_suite_24px.svg new file mode 100644 index 0000000..5539558 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_airline_seat_individual_suite_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_airline_seat_legroom_extra_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_airline_seat_legroom_extra_24px.svg new file mode 100644 index 0000000..dff07be --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_airline_seat_legroom_extra_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_airline_seat_legroom_normal_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_airline_seat_legroom_normal_24px.svg new file mode 100644 index 0000000..6ecb22b --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_airline_seat_legroom_normal_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_airline_seat_legroom_reduced_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_airline_seat_legroom_reduced_24px.svg new file mode 100644 index 0000000..a640230 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_airline_seat_legroom_reduced_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_airline_seat_recline_extra_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_airline_seat_recline_extra_24px.svg new file mode 100644 index 0000000..eaf3b35 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_airline_seat_recline_extra_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_airline_seat_recline_normal_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_airline_seat_recline_normal_24px.svg new file mode 100644 index 0000000..46d6d9b --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_airline_seat_recline_normal_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_bluetooth_audio_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_bluetooth_audio_24px.svg new file mode 100644 index 0000000..8bb176e --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_bluetooth_audio_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_confirmation_number_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_confirmation_number_24px.svg new file mode 100644 index 0000000..1206bad --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_confirmation_number_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_disc_full_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_disc_full_24px.svg new file mode 100644 index 0000000..fd462d8 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_disc_full_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_do_not_disturb_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_do_not_disturb_24px.svg new file mode 100644 index 0000000..065210c --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_do_not_disturb_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_do_not_disturb_alt_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_do_not_disturb_alt_24px.svg new file mode 100644 index 0000000..9f91150 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_do_not_disturb_alt_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_do_not_disturb_off_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_do_not_disturb_off_24px.svg new file mode 100644 index 0000000..e54f566 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_do_not_disturb_off_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_do_not_disturb_on_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_do_not_disturb_on_24px.svg new file mode 100644 index 0000000..0f978ec --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_do_not_disturb_on_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_drive_eta_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_drive_eta_24px.svg new file mode 100644 index 0000000..85b07ca --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_drive_eta_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_enhanced_encryption_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_enhanced_encryption_24px.svg new file mode 100644 index 0000000..2d0ddf8 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_enhanced_encryption_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_event_available_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_event_available_24px.svg new file mode 100644 index 0000000..035b5c8 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_event_available_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_event_busy_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_event_busy_24px.svg new file mode 100644 index 0000000..d3e6d7f --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_event_busy_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_event_note_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_event_note_24px.svg new file mode 100644 index 0000000..5beeb71 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_event_note_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_folder_special_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_folder_special_24px.svg new file mode 100644 index 0000000..adccedd --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_folder_special_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_live_tv_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_live_tv_24px.svg new file mode 100644 index 0000000..67e98e7 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_live_tv_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_mms_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_mms_24px.svg new file mode 100644 index 0000000..f15436c --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_mms_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_more_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_more_24px.svg new file mode 100644 index 0000000..ad5567a --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_more_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_network_check_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_network_check_24px.svg new file mode 100644 index 0000000..6b31ab9 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_network_check_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_network_locked_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_network_locked_24px.svg new file mode 100644 index 0000000..3a5c0d6 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_network_locked_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_no_encryption_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_no_encryption_24px.svg new file mode 100644 index 0000000..0528c12 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_no_encryption_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_ondemand_video_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_ondemand_video_24px.svg new file mode 100644 index 0000000..239690b --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_ondemand_video_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_personal_video_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_personal_video_24px.svg new file mode 100644 index 0000000..a4169e9 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_personal_video_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_phone_bluetooth_speaker_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_phone_bluetooth_speaker_24px.svg new file mode 100644 index 0000000..69f9398 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_phone_bluetooth_speaker_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_phone_forwarded_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_phone_forwarded_24px.svg new file mode 100644 index 0000000..c21cfc1 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_phone_forwarded_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_phone_in_talk_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_phone_in_talk_24px.svg new file mode 100644 index 0000000..c73964c --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_phone_in_talk_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_phone_locked_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_phone_locked_24px.svg new file mode 100644 index 0000000..aca754f --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_phone_locked_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_phone_missed_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_phone_missed_24px.svg new file mode 100644 index 0000000..bb68b75 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_phone_missed_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_phone_paused_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_phone_paused_24px.svg new file mode 100644 index 0000000..2aa7400 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_phone_paused_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_power_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_power_24px.svg new file mode 100644 index 0000000..3cb2846 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_power_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_priority_high_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_priority_high_24px.svg new file mode 100644 index 0000000..326d004 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_priority_high_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_rv_hookup_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_rv_hookup_24px.svg new file mode 100644 index 0000000..c261516 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_rv_hookup_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_sd_card_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_sd_card_24px.svg new file mode 100644 index 0000000..15ab481 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_sd_card_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_sim_card_alert_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_sim_card_alert_24px.svg new file mode 100644 index 0000000..f471892 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_sim_card_alert_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_sms_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_sms_24px.svg new file mode 100644 index 0000000..b427d45 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_sms_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_sms_failed_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_sms_failed_24px.svg new file mode 100644 index 0000000..72b0945 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_sms_failed_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_sync_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_sync_24px.svg new file mode 100644 index 0000000..327ff63 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_sync_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_sync_disabled_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_sync_disabled_24px.svg new file mode 100644 index 0000000..cb82f21 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_sync_disabled_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_sync_problem_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_sync_problem_24px.svg new file mode 100644 index 0000000..797674e --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_sync_problem_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_system_update_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_system_update_24px.svg new file mode 100644 index 0000000..1013886 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_system_update_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_tap_and_play_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_tap_and_play_24px.svg new file mode 100644 index 0000000..6951de4 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_tap_and_play_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_time_to_leave_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_time_to_leave_24px.svg new file mode 100644 index 0000000..85b07ca --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_time_to_leave_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_vibration_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_vibration_24px.svg new file mode 100644 index 0000000..789d044 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_vibration_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_voice_chat_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_voice_chat_24px.svg new file mode 100644 index 0000000..9e72309 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_voice_chat_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_vpn_lock_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_vpn_lock_24px.svg new file mode 100644 index 0000000..6c4c795 --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_vpn_lock_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_wc_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_wc_24px.svg new file mode 100644 index 0000000..022dcde --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_wc_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/notification/svg/production/ic_wifi_24px.svg b/qt-material-widgets/components/icons/notification/svg/production/ic_wifi_24px.svg new file mode 100644 index 0000000..cafae9c --- /dev/null +++ b/qt-material-widgets/components/icons/notification/svg/production/ic_wifi_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/places/svg/production/ic_ac_unit_24px.svg b/qt-material-widgets/components/icons/places/svg/production/ic_ac_unit_24px.svg new file mode 100644 index 0000000..c4cc71f --- /dev/null +++ b/qt-material-widgets/components/icons/places/svg/production/ic_ac_unit_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/places/svg/production/ic_airport_shuttle_24px.svg b/qt-material-widgets/components/icons/places/svg/production/ic_airport_shuttle_24px.svg new file mode 100644 index 0000000..392d651 --- /dev/null +++ b/qt-material-widgets/components/icons/places/svg/production/ic_airport_shuttle_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/places/svg/production/ic_all_inclusive_24px.svg b/qt-material-widgets/components/icons/places/svg/production/ic_all_inclusive_24px.svg new file mode 100644 index 0000000..090d242 --- /dev/null +++ b/qt-material-widgets/components/icons/places/svg/production/ic_all_inclusive_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/places/svg/production/ic_beach_access_24px.svg b/qt-material-widgets/components/icons/places/svg/production/ic_beach_access_24px.svg new file mode 100644 index 0000000..3c32044 --- /dev/null +++ b/qt-material-widgets/components/icons/places/svg/production/ic_beach_access_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/places/svg/production/ic_business_center_24px.svg b/qt-material-widgets/components/icons/places/svg/production/ic_business_center_24px.svg new file mode 100644 index 0000000..a979c93 --- /dev/null +++ b/qt-material-widgets/components/icons/places/svg/production/ic_business_center_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/places/svg/production/ic_casino_24px.svg b/qt-material-widgets/components/icons/places/svg/production/ic_casino_24px.svg new file mode 100644 index 0000000..ea9b900 --- /dev/null +++ b/qt-material-widgets/components/icons/places/svg/production/ic_casino_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/places/svg/production/ic_child_care_24px.svg b/qt-material-widgets/components/icons/places/svg/production/ic_child_care_24px.svg new file mode 100644 index 0000000..f73f9df --- /dev/null +++ b/qt-material-widgets/components/icons/places/svg/production/ic_child_care_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/places/svg/production/ic_child_friendly_24px.svg b/qt-material-widgets/components/icons/places/svg/production/ic_child_friendly_24px.svg new file mode 100644 index 0000000..ba51048 --- /dev/null +++ b/qt-material-widgets/components/icons/places/svg/production/ic_child_friendly_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/places/svg/production/ic_fitness_center_24px.svg b/qt-material-widgets/components/icons/places/svg/production/ic_fitness_center_24px.svg new file mode 100644 index 0000000..828dba8 --- /dev/null +++ b/qt-material-widgets/components/icons/places/svg/production/ic_fitness_center_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/places/svg/production/ic_free_breakfast_24px.svg b/qt-material-widgets/components/icons/places/svg/production/ic_free_breakfast_24px.svg new file mode 100644 index 0000000..c56a433 --- /dev/null +++ b/qt-material-widgets/components/icons/places/svg/production/ic_free_breakfast_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/places/svg/production/ic_golf_course_24px.svg b/qt-material-widgets/components/icons/places/svg/production/ic_golf_course_24px.svg new file mode 100644 index 0000000..500a00f --- /dev/null +++ b/qt-material-widgets/components/icons/places/svg/production/ic_golf_course_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/places/svg/production/ic_hot_tub_24px.svg b/qt-material-widgets/components/icons/places/svg/production/ic_hot_tub_24px.svg new file mode 100644 index 0000000..865ea75 --- /dev/null +++ b/qt-material-widgets/components/icons/places/svg/production/ic_hot_tub_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/places/svg/production/ic_kitchen_24px.svg b/qt-material-widgets/components/icons/places/svg/production/ic_kitchen_24px.svg new file mode 100644 index 0000000..aa0616a --- /dev/null +++ b/qt-material-widgets/components/icons/places/svg/production/ic_kitchen_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/places/svg/production/ic_pool_24px.svg b/qt-material-widgets/components/icons/places/svg/production/ic_pool_24px.svg new file mode 100644 index 0000000..b08944e --- /dev/null +++ b/qt-material-widgets/components/icons/places/svg/production/ic_pool_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/places/svg/production/ic_room_service_24px.svg b/qt-material-widgets/components/icons/places/svg/production/ic_room_service_24px.svg new file mode 100644 index 0000000..560f160 --- /dev/null +++ b/qt-material-widgets/components/icons/places/svg/production/ic_room_service_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/places/svg/production/ic_rv_hookup_24px.svg b/qt-material-widgets/components/icons/places/svg/production/ic_rv_hookup_24px.svg new file mode 100644 index 0000000..c261516 --- /dev/null +++ b/qt-material-widgets/components/icons/places/svg/production/ic_rv_hookup_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/places/svg/production/ic_smoke_free_24px.svg b/qt-material-widgets/components/icons/places/svg/production/ic_smoke_free_24px.svg new file mode 100644 index 0000000..0bed46f --- /dev/null +++ b/qt-material-widgets/components/icons/places/svg/production/ic_smoke_free_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/places/svg/production/ic_smoking_rooms_24px.svg b/qt-material-widgets/components/icons/places/svg/production/ic_smoking_rooms_24px.svg new file mode 100644 index 0000000..e8aec2d --- /dev/null +++ b/qt-material-widgets/components/icons/places/svg/production/ic_smoking_rooms_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/places/svg/production/ic_spa_24px.svg b/qt-material-widgets/components/icons/places/svg/production/ic_spa_24px.svg new file mode 100644 index 0000000..7300651 --- /dev/null +++ b/qt-material-widgets/components/icons/places/svg/production/ic_spa_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_cake_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_cake_24px.svg new file mode 100644 index 0000000..23dc09f --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_cake_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_domain_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_domain_24px.svg new file mode 100644 index 0000000..bfaefa1 --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_domain_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_group_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_group_24px.svg new file mode 100644 index 0000000..bd9a133 --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_group_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_group_add_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_group_add_24px.svg new file mode 100644 index 0000000..f863fa5 --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_group_add_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_location_city_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_location_city_24px.svg new file mode 100644 index 0000000..357849b --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_location_city_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_mood_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_mood_24px.svg new file mode 100644 index 0000000..57bea0f --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_mood_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_mood_bad_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_mood_bad_24px.svg new file mode 100644 index 0000000..400f4da --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_mood_bad_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_notifications_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_notifications_24px.svg new file mode 100644 index 0000000..cdb3331 --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_notifications_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_notifications_active_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_notifications_active_24px.svg new file mode 100644 index 0000000..6d72315 --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_notifications_active_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_notifications_none_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_notifications_none_24px.svg new file mode 100644 index 0000000..7509df6 --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_notifications_none_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_notifications_off_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_notifications_off_24px.svg new file mode 100644 index 0000000..0827f2a --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_notifications_off_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_notifications_paused_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_notifications_paused_24px.svg new file mode 100644 index 0000000..06ed575 --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_notifications_paused_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_pages_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_pages_24px.svg new file mode 100644 index 0000000..c8a0421 --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_pages_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_party_mode_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_party_mode_24px.svg new file mode 100644 index 0000000..12a8ee3 --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_party_mode_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_people_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_people_24px.svg new file mode 100644 index 0000000..bd9a133 --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_people_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_people_outline_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_people_outline_24px.svg new file mode 100644 index 0000000..901e72c --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_people_outline_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_person_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_person_24px.svg new file mode 100644 index 0000000..e22d151 --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_person_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_person_add_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_person_add_24px.svg new file mode 100644 index 0000000..97e4d3a --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_person_add_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_person_outline_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_person_outline_24px.svg new file mode 100644 index 0000000..a1ac943 --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_person_outline_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_plus_one_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_plus_one_24px.svg new file mode 100644 index 0000000..09b83d6 --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_plus_one_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_poll_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_poll_24px.svg new file mode 100644 index 0000000..cc7768b --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_poll_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_public_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_public_24px.svg new file mode 100644 index 0000000..6356e73 --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_public_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_school_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_school_24px.svg new file mode 100644 index 0000000..3a6524b --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_school_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_sentiment_dissatisfied_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_sentiment_dissatisfied_24px.svg new file mode 100644 index 0000000..7d4f065 --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_sentiment_dissatisfied_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_sentiment_neutral_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_sentiment_neutral_24px.svg new file mode 100644 index 0000000..f4e174b --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_sentiment_neutral_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_sentiment_satisfied_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_sentiment_satisfied_24px.svg new file mode 100644 index 0000000..ce09a92 --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_sentiment_satisfied_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_sentiment_very_dissatisfied_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_sentiment_very_dissatisfied_24px.svg new file mode 100644 index 0000000..59a5ee3 --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_sentiment_very_dissatisfied_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_sentiment_very_satisfied_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_sentiment_very_satisfied_24px.svg new file mode 100644 index 0000000..2d1f227 --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_sentiment_very_satisfied_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_share_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_share_24px.svg new file mode 100644 index 0000000..ed3e530 --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_share_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/social/svg/production/ic_whatshot_24px.svg b/qt-material-widgets/components/icons/social/svg/production/ic_whatshot_24px.svg new file mode 100644 index 0000000..d064899 --- /dev/null +++ b/qt-material-widgets/components/icons/social/svg/production/ic_whatshot_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/toggle/svg/production/ic_check_box_24px.svg b/qt-material-widgets/components/icons/toggle/svg/production/ic_check_box_24px.svg new file mode 100644 index 0000000..36658a4 --- /dev/null +++ b/qt-material-widgets/components/icons/toggle/svg/production/ic_check_box_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/toggle/svg/production/ic_check_box_outline_blank_24px.svg b/qt-material-widgets/components/icons/toggle/svg/production/ic_check_box_outline_blank_24px.svg new file mode 100644 index 0000000..03aea59 --- /dev/null +++ b/qt-material-widgets/components/icons/toggle/svg/production/ic_check_box_outline_blank_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/toggle/svg/production/ic_indeterminate_check_box_24px.svg b/qt-material-widgets/components/icons/toggle/svg/production/ic_indeterminate_check_box_24px.svg new file mode 100644 index 0000000..4a7533d --- /dev/null +++ b/qt-material-widgets/components/icons/toggle/svg/production/ic_indeterminate_check_box_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/toggle/svg/production/ic_radio_button_checked_24px.svg b/qt-material-widgets/components/icons/toggle/svg/production/ic_radio_button_checked_24px.svg new file mode 100644 index 0000000..2cb138b --- /dev/null +++ b/qt-material-widgets/components/icons/toggle/svg/production/ic_radio_button_checked_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/toggle/svg/production/ic_radio_button_unchecked_24px.svg b/qt-material-widgets/components/icons/toggle/svg/production/ic_radio_button_unchecked_24px.svg new file mode 100644 index 0000000..acce6d1 --- /dev/null +++ b/qt-material-widgets/components/icons/toggle/svg/production/ic_radio_button_unchecked_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/toggle/svg/production/ic_star_24px.svg b/qt-material-widgets/components/icons/toggle/svg/production/ic_star_24px.svg new file mode 100644 index 0000000..46d104b --- /dev/null +++ b/qt-material-widgets/components/icons/toggle/svg/production/ic_star_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/toggle/svg/production/ic_star_border_24px.svg b/qt-material-widgets/components/icons/toggle/svg/production/ic_star_border_24px.svg new file mode 100644 index 0000000..98e7040 --- /dev/null +++ b/qt-material-widgets/components/icons/toggle/svg/production/ic_star_border_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/icons/toggle/svg/production/ic_star_half_24px.svg b/qt-material-widgets/components/icons/toggle/svg/production/ic_star_half_24px.svg new file mode 100644 index 0000000..a07f7d0 --- /dev/null +++ b/qt-material-widgets/components/icons/toggle/svg/production/ic_star_half_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/components/layouts/qtmaterialsnackbarlayout.cpp b/qt-material-widgets/components/layouts/qtmaterialsnackbarlayout.cpp new file mode 100644 index 0000000..e69de29 diff --git a/qt-material-widgets/components/layouts/qtmaterialsnackbarlayout.h b/qt-material-widgets/components/layouts/qtmaterialsnackbarlayout.h new file mode 100644 index 0000000..c194fec --- /dev/null +++ b/qt-material-widgets/components/layouts/qtmaterialsnackbarlayout.h @@ -0,0 +1,4 @@ +#ifndef QTMATERIALSNACKBARLAYOUT_H +#define QTMATERIALSNACKBARLAYOUT_H + +#endif // QTMATERIALSNACKBARLAYOUT_H diff --git a/qt-material-widgets/components/layouts/qtmaterialsnackbarlayout_p.h b/qt-material-widgets/components/layouts/qtmaterialsnackbarlayout_p.h new file mode 100644 index 0000000..6c2dd5d --- /dev/null +++ b/qt-material-widgets/components/layouts/qtmaterialsnackbarlayout_p.h @@ -0,0 +1,4 @@ +#ifndef QTMATERIALSNACKBARLAYOUT_P_H +#define QTMATERIALSNACKBARLAYOUT_P_H + +#endif // QTMATERIALSNACKBARLAYOUT_P_H diff --git a/qt-material-widgets/components/lib/qtmaterialcheckable.cpp b/qt-material-widgets/components/lib/qtmaterialcheckable.cpp new file mode 100644 index 0000000..ee4e0bd --- /dev/null +++ b/qt-material-widgets/components/lib/qtmaterialcheckable.cpp @@ -0,0 +1,419 @@ +#include "lib/qtmaterialcheckable.h" +#include "lib/qtmaterialcheckable_p.h" +#include +#include +#include +#include +#include +#include +#include +#include "lib/qtmaterialrippleoverlay.h" +#include "lib/qtmaterialripple.h" +#include "lib/qtmaterialstyle.h" +#include "lib/qtmaterialcheckable_internal.h" + +/*! + * \class QtMaterialCheckablePrivate + * \internal + */ + +QtMaterialCheckablePrivate::QtMaterialCheckablePrivate(QtMaterialCheckable *q) + : q_ptr(q) +{ +} + +QtMaterialCheckablePrivate::~QtMaterialCheckablePrivate() +{ +} + +void QtMaterialCheckablePrivate::init() +{ + Q_Q(QtMaterialCheckable); + + rippleOverlay = new QtMaterialRippleOverlay; + checkedIcon = new QtMaterialCheckableIcon(QIcon(":/icons/icons/toggle/svg/production/ic_check_box_24px.svg"), q); + uncheckedIcon = new QtMaterialCheckableIcon(QIcon(":/icons/icons/toggle/svg/production/ic_check_box_outline_blank_24px.svg"), q); + stateMachine = new QStateMachine(q); + uncheckedState = new QState; + checkedState = new QState; + disabledUncheckedState = new QState; + disabledCheckedState = new QState; + uncheckedTransition = new QSignalTransition(q, SIGNAL(toggled(bool))); + checkedTransition = new QSignalTransition(q, SIGNAL(toggled(bool))); + labelPosition = QtMaterialCheckable::LabelPositionRight; + useThemeColors = true; + + rippleOverlay->setParent(q->parentWidget()); + rippleOverlay->installEventFilter(q); + + q->setCheckable(true); + q->setStyle(&QtMaterialStyle::instance()); + q->setFont(QFont("Roboto", 11, QFont::Normal)); + + stateMachine->addState(uncheckedState); + stateMachine->addState(checkedState); + stateMachine->addState(disabledUncheckedState); + stateMachine->addState(disabledCheckedState); + stateMachine->setInitialState(uncheckedState); + + // Transition to checked + + uncheckedTransition->setTargetState(checkedState); + uncheckedState->addTransition(uncheckedTransition); + + // Transition to unchecked + + checkedTransition->setTargetState(uncheckedState); + checkedState->addTransition(checkedTransition); + + QAbstractTransition *transition; + + // Transitions enabled <==> disabled + + transition = new QEventTransition(q, QEvent::EnabledChange); + transition->setTargetState(disabledUncheckedState); + uncheckedState->addTransition(transition); + + transition = new QEventTransition(q, QEvent::EnabledChange); + transition->setTargetState(uncheckedState); + disabledUncheckedState->addTransition(transition); + + transition = new QEventTransition(q, QEvent::EnabledChange); + transition->setTargetState(disabledCheckedState); + checkedState->addTransition(transition); + + transition = new QEventTransition(q, QEvent::EnabledChange); + transition->setTargetState(checkedState); + disabledCheckedState->addTransition(transition); + + transition = new QSignalTransition(q, SIGNAL(toggled(bool))); + transition->setTargetState(disabledCheckedState); + disabledUncheckedState->addTransition(transition); + + transition = new QSignalTransition(q, SIGNAL(toggled(bool))); + transition->setTargetState(disabledUncheckedState); + disabledCheckedState->addTransition(transition); + + // + + checkedState->assignProperty(checkedIcon, "opacity", 1); + checkedState->assignProperty(uncheckedIcon, "opacity", 0); + + uncheckedState->assignProperty(checkedIcon, "opacity", 0); + uncheckedState->assignProperty(uncheckedIcon, "opacity", 1); + + disabledCheckedState->assignProperty(checkedIcon, "opacity", 1); + disabledCheckedState->assignProperty(uncheckedIcon, "opacity", 0); + + disabledUncheckedState->assignProperty(checkedIcon, "opacity", 0); + disabledUncheckedState->assignProperty(uncheckedIcon, "opacity", 1); + + checkedState->assignProperty(checkedIcon, "color", q->checkedColor()); + checkedState->assignProperty(uncheckedIcon, "color", q->checkedColor()); + + uncheckedState->assignProperty(uncheckedIcon, "color", q->uncheckedColor()); + uncheckedState->assignProperty(uncheckedIcon, "color", q->uncheckedColor()); + + disabledUncheckedState->assignProperty(uncheckedIcon, "color", q->disabledColor()); + disabledCheckedState->assignProperty(checkedIcon, "color", q->disabledColor()); + + stateMachine->start(); + QCoreApplication::processEvents(); +} + +/*! + * \class QtMaterialCheckable + */ + +QtMaterialCheckable::QtMaterialCheckable(QWidget *parent) + : QAbstractButton(parent), + d_ptr(new QtMaterialCheckablePrivate(this)) +{ + d_func()->init(); +} + +QtMaterialCheckable::~QtMaterialCheckable() +{ +} + +void QtMaterialCheckable::setLabelPosition(LabelPosition placement) +{ + Q_D(QtMaterialCheckable); + + d->labelPosition = placement; + update(); +} + +QtMaterialCheckable::LabelPosition QtMaterialCheckable::labelPosition() const +{ + Q_D(const QtMaterialCheckable); + + return d->labelPosition; +} + +void QtMaterialCheckable::setUseThemeColors(bool value) +{ + Q_D(QtMaterialCheckable); + + if (d->useThemeColors == value) { + return; + } + + d->useThemeColors = value; + setupProperties(); +} + +bool QtMaterialCheckable::useThemeColors() const +{ + Q_D(const QtMaterialCheckable); + + return d->useThemeColors; +} + +void QtMaterialCheckable::setCheckedColor(const QColor &color) +{ + Q_D(QtMaterialCheckable); + + d->checkedColor = color; + + MATERIAL_DISABLE_THEME_COLORS + setupProperties(); +} + +QColor QtMaterialCheckable::checkedColor() const +{ + Q_D(const QtMaterialCheckable); + + if (d->useThemeColors || !d->checkedColor.isValid()) { + return QtMaterialStyle::instance().themeColor("primary1"); + } else { + return d->checkedColor; + } +} + +void QtMaterialCheckable::setUncheckedColor(const QColor &color) +{ + Q_D(QtMaterialCheckable); + + d->uncheckedColor = color; + + MATERIAL_DISABLE_THEME_COLORS + setupProperties(); +} + +QColor QtMaterialCheckable::uncheckedColor() const +{ + Q_D(const QtMaterialCheckable); + + if (d->useThemeColors || !d->uncheckedColor.isValid()) { + return QtMaterialStyle::instance().themeColor("text"); + } else { + return d->uncheckedColor; + } +} + +void QtMaterialCheckable::setTextColor(const QColor &color) +{ + Q_D(QtMaterialCheckable); + + d->textColor = color; + + MATERIAL_DISABLE_THEME_COLORS + setupProperties(); +} + +QColor QtMaterialCheckable::textColor() const +{ + Q_D(const QtMaterialCheckable); + + if (d->useThemeColors || !d->textColor.isValid()) { + return QtMaterialStyle::instance().themeColor("text"); + } else { + return d->textColor; + } +} + +void QtMaterialCheckable::setDisabledColor(const QColor &color) +{ + Q_D(QtMaterialCheckable); + + d->disabledColor = color; + + MATERIAL_DISABLE_THEME_COLORS + setupProperties(); +} + +QColor QtMaterialCheckable::disabledColor() const +{ + Q_D(const QtMaterialCheckable); + + if (d->useThemeColors || !d->disabledColor.isValid()) { + return QtMaterialStyle::instance().themeColor("accent3"); + } else { + return d->disabledColor; + } +} + +void QtMaterialCheckable::setCheckedIcon(const QIcon &icon) +{ + Q_D(QtMaterialCheckable); + + d->checkedIcon->setIcon(icon); + update(); +} + +QIcon QtMaterialCheckable::checkedIcon() const +{ + Q_D(const QtMaterialCheckable); + + return d->checkedIcon->icon(); +} + +void QtMaterialCheckable::setUncheckedIcon(const QIcon &icon) +{ + Q_D(QtMaterialCheckable); + + d->uncheckedIcon->setIcon(icon); + update(); +} + +QIcon QtMaterialCheckable::uncheckedIcon() const +{ + Q_D(const QtMaterialCheckable); + + return d->uncheckedIcon->icon(); +} + +/*! + * \reimp + */ +QSize QtMaterialCheckable::sizeHint() const +{ + if (text().isEmpty()) { + return QSize(40, 40); + } + return QSize(fontMetrics().size(Qt::TextShowMnemonic, text()).width()+52, 40); +} + +QtMaterialCheckable::QtMaterialCheckable(QtMaterialCheckablePrivate &d, QWidget *parent) + : QAbstractButton(parent), + d_ptr(&d) +{ + d_func()->init(); +} + +/*! + * \reimp + */ +bool QtMaterialCheckable::event(QEvent *event) +{ + Q_D(QtMaterialCheckable); + + switch (event->type()) + { + case QEvent::Resize: + case QEvent::Move: + d->checkedIcon->setGeometry(rect()); + d->uncheckedIcon->setGeometry(rect()); + d->rippleOverlay->setGeometry(geometry().adjusted(-8, -8, 8, 8)); + break; + case QEvent::ParentChange: + QWidget *widget; + if ((widget = parentWidget())) { + d->rippleOverlay->setParent(widget); + } + break; + default: + break; + } + return QAbstractButton::event(event); +} + +/*! + * \reimp + */ +bool QtMaterialCheckable::eventFilter(QObject *obj, QEvent *event) +{ + if (QEvent::Resize == event->type()) + { + Q_D(QtMaterialCheckable); + + d->rippleOverlay->setGeometry(geometry().adjusted(-8, -8, 8, 8)); + } + return QAbstractButton::eventFilter(obj, event); +} + +/*! + * \reimp + */ +void QtMaterialCheckable::mousePressEvent(QMouseEvent *event) +{ + Q_UNUSED(event) + + Q_D(QtMaterialCheckable); + + if (!isEnabled()) { + return; + } + + QtMaterialRipple *ripple; + if (QtMaterialCheckable::LabelPositionLeft == d->labelPosition) { + ripple = new QtMaterialRipple(QPoint(width()-14, 28)); + } else { + ripple = new QtMaterialRipple(QPoint(28, 28)); + } + ripple->setRadiusEndValue(22); + ripple->setColor(isChecked() ? checkedColor() : uncheckedColor()); + if (isChecked()) { + ripple->setOpacityStartValue(1); + } + d->rippleOverlay->addRipple(ripple); + + setChecked(!isChecked()); +} + +/*! + * \reimp + */ +void QtMaterialCheckable::paintEvent(QPaintEvent *event) +{ + Q_UNUSED(event) + + Q_D(QtMaterialCheckable); + + QPainter painter(this); + + QPen pen; + pen.setColor(isEnabled() ? textColor() : disabledColor()); + painter.setPen(pen); + + if (QtMaterialCheckable::LabelPositionLeft == d->labelPosition) { + painter.drawText(4, 25, text()); + } else { + painter.drawText(48, 25, text()); + } +} + +void QtMaterialCheckable::setupProperties() +{ + Q_D(QtMaterialCheckable); + + d->checkedState->assignProperty(d->checkedIcon, "color", checkedColor()); + d->checkedState->assignProperty(d->uncheckedIcon, "color", checkedColor()); + d->uncheckedState->assignProperty(d->uncheckedIcon, "color", uncheckedColor()); + d->disabledUncheckedState->assignProperty(d->uncheckedIcon, "color", disabledColor()); + d->disabledCheckedState->assignProperty(d->checkedIcon, "color", disabledColor()); + + if (isEnabled()) { + if (isChecked()) { + d->checkedIcon->setColor(checkedColor()); + } else { + d->uncheckedIcon->setColor(uncheckedColor()); + } + } else { + d->checkedIcon->setColor(disabledColor()); + d->uncheckedIcon->setColor(disabledColor()); + } + + update(); +} diff --git a/qt-material-widgets/components/lib/qtmaterialcheckable.h b/qt-material-widgets/components/lib/qtmaterialcheckable.h new file mode 100644 index 0000000..c4cc574 --- /dev/null +++ b/qt-material-widgets/components/lib/qtmaterialcheckable.h @@ -0,0 +1,64 @@ +#ifndef QTMATERIALCHECKABLE_H +#define QTMATERIALCHECKABLE_H + +#include + +class QtMaterialCheckablePrivate; + +class QtMaterialCheckable : public QAbstractButton +{ + Q_OBJECT + +public: + enum LabelPosition { + LabelPositionLeft, + LabelPositionRight, + }; + + explicit QtMaterialCheckable(QWidget *parent = 0); + ~QtMaterialCheckable(); + + void setLabelPosition(LabelPosition placement); + LabelPosition labelPosition() const; + + void setUseThemeColors(bool value); + bool useThemeColors() const; + + void setCheckedColor(const QColor &color); + QColor checkedColor() const; + + void setUncheckedColor(const QColor &color); + QColor uncheckedColor() const; + + void setTextColor(const QColor &color); + QColor textColor() const; + + void setDisabledColor(const QColor &color); + QColor disabledColor() const; + + void setCheckedIcon(const QIcon &icon); + QIcon checkedIcon() const; + + void setUncheckedIcon(const QIcon &icon); + QIcon uncheckedIcon() const; + + QSize sizeHint() const Q_DECL_OVERRIDE; + +protected: + QtMaterialCheckable(QtMaterialCheckablePrivate &d, QWidget *parent = 0); + + bool event(QEvent *event) Q_DECL_OVERRIDE; + bool eventFilter(QObject *obj, QEvent *event) Q_DECL_OVERRIDE; + void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE; + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; + + virtual void setupProperties(); + + const QScopedPointer d_ptr; + +private: + Q_DISABLE_COPY(QtMaterialCheckable) + Q_DECLARE_PRIVATE(QtMaterialCheckable) +}; + +#endif // QTMATERIALCHECKABLE_H diff --git a/qt-material-widgets/components/lib/qtmaterialcheckable_internal.cpp b/qt-material-widgets/components/lib/qtmaterialcheckable_internal.cpp new file mode 100644 index 0000000..4a7eb9a --- /dev/null +++ b/qt-material-widgets/components/lib/qtmaterialcheckable_internal.cpp @@ -0,0 +1,63 @@ +#include "lib/qtmaterialcheckable_internal.h" +#include +#include +#include +#include "lib/qtmaterialcheckable.h" + +/*! + * \class QtMaterialCheckableIcon + * \internal + */ + +QtMaterialCheckableIcon::QtMaterialCheckableIcon(const QIcon &icon, QtMaterialCheckable *parent) + : QWidget(parent), + m_checkable(parent), + m_color(Qt::black), + m_icon(icon), + m_iconSize(24), + m_opacity(1.0) +{ + Q_ASSERT(parent); + + setAttribute(Qt::WA_TransparentForMouseEvents); +} + +QtMaterialCheckableIcon::~QtMaterialCheckableIcon() +{ +} + +QSize QtMaterialCheckableIcon::sizeHint() const +{ + return QSize(m_iconSize, m_iconSize); +} + +void QtMaterialCheckableIcon::paintEvent(QPaintEvent *event) +{ + Q_UNUSED(event) + + QPainter painter(this); + painter.setRenderHint(QPainter::Antialiasing); + painter.setOpacity(m_opacity); + + QPixmap pixmap = icon().pixmap(24, 24); + + if (!pixmap.isNull()) + { + const qreal p = static_cast((height())-m_iconSize)/2; + const qreal z = m_iconSize/24; + + QTransform t; + if (QtMaterialCheckable::LabelPositionLeft == m_checkable->labelPosition()) { + t.translate(p+width()-42, p); + } else { + t.translate(p, p); + } + t.scale(z, z); + painter.setTransform(t); + + QPainter icon(&pixmap); + icon.setCompositionMode(QPainter::CompositionMode_SourceIn); + icon.fillRect(pixmap.rect(), color()); + painter.drawPixmap(0, 0, pixmap); + } +} diff --git a/qt-material-widgets/components/lib/qtmaterialcheckable_internal.h b/qt-material-widgets/components/lib/qtmaterialcheckable_internal.h new file mode 100644 index 0000000..3fb3d94 --- /dev/null +++ b/qt-material-widgets/components/lib/qtmaterialcheckable_internal.h @@ -0,0 +1,93 @@ +#ifndef QTMATERIALCHECKABLE_INTERNAL_H +#define QTMATERIALCHECKABLE_INTERNAL_H + +#include +#include +#include + +class QtMaterialCheckable; + +class QtMaterialCheckableIcon : public QWidget +{ + Q_OBJECT + + Q_PROPERTY(QColor color READ color WRITE setColor) + Q_PROPERTY(qreal iconSize READ iconSize WRITE setIconSize) + Q_PROPERTY(qreal opacity READ opacity WRITE setOpacity) + +public: + QtMaterialCheckableIcon(const QIcon &icon, QtMaterialCheckable *parent); + ~QtMaterialCheckableIcon(); + + QSize sizeHint() const Q_DECL_OVERRIDE; + + inline void setIcon(const QIcon &icon); + inline QIcon icon() const; + + inline void setColor(const QColor &color); + inline QColor color() const; + + inline void setIconSize(qreal size); + inline qreal iconSize() const; + + inline void setOpacity(qreal opacity); + inline qreal opacity() const; + +protected: + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; + +private: + Q_DISABLE_COPY(QtMaterialCheckableIcon) + + QtMaterialCheckable *const m_checkable; + QColor m_color; + QIcon m_icon; + qreal m_iconSize; + qreal m_opacity; +}; + +inline void QtMaterialCheckableIcon::setIcon(const QIcon &icon) +{ + m_icon = icon; + update(); +} + +inline QIcon QtMaterialCheckableIcon::icon() const +{ + return m_icon; +} + +inline void QtMaterialCheckableIcon::setColor(const QColor &color) +{ + m_color = color; + update(); +} + +inline QColor QtMaterialCheckableIcon::color() const +{ + return m_color; +} + +inline void QtMaterialCheckableIcon::setIconSize(qreal size) +{ + m_iconSize = size; + update(); +} + +inline qreal QtMaterialCheckableIcon::iconSize() const +{ + return m_iconSize; +} + +inline void QtMaterialCheckableIcon::setOpacity(qreal opacity) +{ + m_opacity = opacity; + update(); +} + +inline qreal QtMaterialCheckableIcon::opacity() const +{ + return m_opacity; +} + +#endif // QTMATERIALCHECKABLE_INTERNAL_H diff --git a/qt-material-widgets/components/lib/qtmaterialcheckable_p.h b/qt-material-widgets/components/lib/qtmaterialcheckable_p.h new file mode 100644 index 0000000..e678df7 --- /dev/null +++ b/qt-material-widgets/components/lib/qtmaterialcheckable_p.h @@ -0,0 +1,43 @@ +#ifndef QTMATERIALCHECKABLE_P_H +#define QTMATERIALCHECKABLE_P_H + +#include +#include "lib/qtmaterialcheckable.h" + +class QStateMachine; +class QState; +class QSignalTransition; +class QtMaterialRippleOverlay; +class QtMaterialCheckableIcon; + +class QtMaterialCheckablePrivate +{ + Q_DISABLE_COPY(QtMaterialCheckablePrivate) + Q_DECLARE_PUBLIC(QtMaterialCheckable) + +public: + QtMaterialCheckablePrivate(QtMaterialCheckable *q); + virtual ~QtMaterialCheckablePrivate(); + + void init(); + + QtMaterialCheckable *const q_ptr; + QtMaterialRippleOverlay *rippleOverlay; + QtMaterialCheckableIcon *checkedIcon; + QtMaterialCheckableIcon *uncheckedIcon; + QStateMachine *stateMachine; + QState *uncheckedState; + QState *checkedState; + QState *disabledUncheckedState; + QState *disabledCheckedState; + QSignalTransition *uncheckedTransition; + QSignalTransition *checkedTransition; + QtMaterialCheckable::LabelPosition labelPosition; + QColor checkedColor; + QColor uncheckedColor; + QColor textColor; + QColor disabledColor; + bool useThemeColors; +}; + +#endif // QTMATERIALCHECKABLE_P_H diff --git a/qt-material-widgets/components/lib/qtmaterialoverlaywidget.cpp b/qt-material-widgets/components/lib/qtmaterialoverlaywidget.cpp new file mode 100644 index 0000000..ec0e7fe --- /dev/null +++ b/qt-material-widgets/components/lib/qtmaterialoverlaywidget.cpp @@ -0,0 +1,72 @@ +#include "lib/qtmaterialoverlaywidget.h" +#include + +/*! + * \class QtMaterialOverlayWidget + * \internal + */ + +QtMaterialOverlayWidget::QtMaterialOverlayWidget(QWidget *parent) + : QWidget(parent) +{ + if (parent) { + parent->installEventFilter(this); + } +} + +QtMaterialOverlayWidget::~QtMaterialOverlayWidget() +{ +} + +/*! + * \reimp + */ +bool QtMaterialOverlayWidget::event(QEvent *event) +{ + if (!parent()) { + return QWidget::event(event); + } + switch (event->type()) + { + case QEvent::ParentChange: + { + parent()->installEventFilter(this); + setGeometry(overlayGeometry()); + break; + } + case QEvent::ParentAboutToChange: + { + parent()->removeEventFilter(this); + break; + } + default: + break; + } + return QWidget::event(event); +} + +/*! + * \reimp + */ +bool QtMaterialOverlayWidget::eventFilter(QObject *obj, QEvent *event) +{ + switch (event->type()) + { + case QEvent::Move: + case QEvent::Resize: + setGeometry(overlayGeometry()); + break; + default: + break; + } + return QWidget::eventFilter(obj, event); +} + +QRect QtMaterialOverlayWidget::overlayGeometry() const +{ + QWidget *widget = parentWidget(); + if (!widget) { + return QRect(); + } + return widget->rect(); +} diff --git a/qt-material-widgets/components/lib/qtmaterialoverlaywidget.h b/qt-material-widgets/components/lib/qtmaterialoverlaywidget.h new file mode 100644 index 0000000..11acba0 --- /dev/null +++ b/qt-material-widgets/components/lib/qtmaterialoverlaywidget.h @@ -0,0 +1,24 @@ +#ifndef QTMATERIALOVERLAYWIDGET_H +#define QTMATERIALOVERLAYWIDGET_H + +#include + +class QtMaterialOverlayWidget : public QWidget +{ + Q_OBJECT + +public: + explicit QtMaterialOverlayWidget(QWidget *parent = 0); + ~QtMaterialOverlayWidget(); + +protected: + bool event(QEvent *event) Q_DECL_OVERRIDE; + bool eventFilter(QObject *obj, QEvent *event) Q_DECL_OVERRIDE; + + virtual QRect overlayGeometry() const; + +private: + Q_DISABLE_COPY(QtMaterialOverlayWidget) +}; + +#endif // QTMATERIALOVERLAYWIDGET_H diff --git a/qt-material-widgets/components/lib/qtmaterialripple.cpp b/qt-material-widgets/components/lib/qtmaterialripple.cpp new file mode 100644 index 0000000..82125cb --- /dev/null +++ b/qt-material-widgets/components/lib/qtmaterialripple.cpp @@ -0,0 +1,119 @@ +#include "qtmaterialripple.h" +#include "lib/qtmaterialrippleoverlay.h" + +/*! + * \class QtMaterialRipple + * \internal + */ + +QtMaterialRipple::QtMaterialRipple(const QPoint ¢er, QObject *parent) + : QParallelAnimationGroup(parent), + m_overlay(0), + m_radiusAnimation(animate("radius")), + m_opacityAnimation(animate("opacity")), + m_radius(0), + m_opacity(0), + m_center(center) +{ + init(); +} + +QtMaterialRipple::QtMaterialRipple(const QPoint ¢er, + QtMaterialRippleOverlay *overlay, + QObject *parent) + : QParallelAnimationGroup(parent), + m_overlay(overlay), + m_radiusAnimation(animate("radius")), + m_opacityAnimation(animate("opacity")), + m_radius(0), + m_opacity(0), + m_center(center) +{ + init(); +} + +QtMaterialRipple::~QtMaterialRipple() +{ +} + +void QtMaterialRipple::setRadius(qreal radius) +{ + Q_ASSERT(m_overlay); + + if (m_radius == radius) { + return; + } + m_radius = radius; + m_overlay->update(); +} + +void QtMaterialRipple::setOpacity(qreal opacity) +{ + Q_ASSERT(m_overlay); + + if (m_opacity == opacity) { + return; + } + m_opacity = opacity; + m_overlay->update(); +} + +void QtMaterialRipple::setColor(const QColor &color) +{ + if (m_brush.color() == color) { + return; + } + m_brush.setColor(color); + + if (m_overlay) { + m_overlay->update(); + } +} + +void QtMaterialRipple::setBrush(const QBrush &brush) +{ + m_brush = brush; + + if (m_overlay) { + m_overlay->update(); + } +} + +void QtMaterialRipple::destroy() +{ + Q_ASSERT(m_overlay); + + m_overlay->removeRipple(this); +} + +/*! + * \internal + */ +QPropertyAnimation *QtMaterialRipple::animate(const QByteArray &property, + const QEasingCurve &easing, + int duration) +{ + QPropertyAnimation *animation = new QPropertyAnimation; + animation->setTargetObject(this); + animation->setPropertyName(property); + animation->setEasingCurve(easing); + animation->setDuration(duration); + addAnimation(animation); + return animation; +} + +/*! + * \internal + */ +void QtMaterialRipple::init() +{ + setOpacityStartValue(0.5); + setOpacityEndValue(0); + setRadiusStartValue(0); + setRadiusEndValue(300); + + m_brush.setColor(Qt::black); + m_brush.setStyle(Qt::SolidPattern); + + connect(this, SIGNAL(finished()), this, SLOT(destroy())); +} diff --git a/qt-material-widgets/components/lib/qtmaterialripple.h b/qt-material-widgets/components/lib/qtmaterialripple.h new file mode 100644 index 0000000..d263c76 --- /dev/null +++ b/qt-material-widgets/components/lib/qtmaterialripple.h @@ -0,0 +1,136 @@ +#ifndef QTMATERIALRIPPLE_H +#define QTMATERIALRIPPLE_H + +#include +#include +#include +#include +#include + +class QtMaterialRippleOverlay; + +class QtMaterialRipple : public QParallelAnimationGroup +{ + Q_OBJECT + + Q_PROPERTY(qreal radius WRITE setRadius READ radius) + Q_PROPERTY(qreal opacity WRITE setOpacity READ opacity) + +public: + explicit QtMaterialRipple(const QPoint ¢er, QObject *parent = 0); + QtMaterialRipple(const QPoint ¢er, QtMaterialRippleOverlay *overlay, QObject *parent = 0); + ~QtMaterialRipple(); + + inline void setOverlay(QtMaterialRippleOverlay *overlay); + + void setRadius(qreal radius); + inline qreal radius() const; + + void setOpacity(qreal opacity); + inline qreal opacity() const; + + void setColor(const QColor &color); + inline QColor color() const; + + void setBrush(const QBrush &brush); + inline QBrush brush() const; + + inline QPoint center() const; + + inline QPropertyAnimation *radiusAnimation() const; + inline QPropertyAnimation *opacityAnimation() const; + + inline void setOpacityStartValue(qreal value); + inline void setOpacityEndValue(qreal value); + inline void setRadiusStartValue(qreal value); + inline void setRadiusEndValue(qreal value); + inline void setDuration(int msecs); + +protected slots: + void destroy(); + +private: + Q_DISABLE_COPY(QtMaterialRipple) + + QPropertyAnimation *animate(const QByteArray &property, + const QEasingCurve &easing = QEasingCurve::OutQuad, + int duration = 800); + + void init(); + + QtMaterialRippleOverlay *m_overlay; + QPropertyAnimation *const m_radiusAnimation; + QPropertyAnimation *const m_opacityAnimation; + qreal m_radius; + qreal m_opacity; + QPoint m_center; + QBrush m_brush; +}; + +inline void QtMaterialRipple::setOverlay(QtMaterialRippleOverlay *overlay) +{ + m_overlay = overlay; +} + +inline qreal QtMaterialRipple::radius() const +{ + return m_radius; +} + +inline qreal QtMaterialRipple::opacity() const +{ + return m_opacity; +} + +inline QColor QtMaterialRipple::color() const +{ + return m_brush.color(); +} + +inline QBrush QtMaterialRipple::brush() const +{ + return m_brush; +} + +inline QPoint QtMaterialRipple::center() const +{ + return m_center; +} + +inline QPropertyAnimation *QtMaterialRipple::radiusAnimation() const +{ + return m_radiusAnimation; +} + +inline QPropertyAnimation *QtMaterialRipple::opacityAnimation() const +{ + return m_opacityAnimation; +} + +inline void QtMaterialRipple::setOpacityStartValue(qreal value) +{ + m_opacityAnimation->setStartValue(value); +} + +inline void QtMaterialRipple::setOpacityEndValue(qreal value) +{ + m_opacityAnimation->setEndValue(value); +} + +inline void QtMaterialRipple::setRadiusStartValue(qreal value) +{ + m_radiusAnimation->setStartValue(value); +} + +inline void QtMaterialRipple::setRadiusEndValue(qreal value) +{ + m_radiusAnimation->setEndValue(value); +} + +inline void QtMaterialRipple::setDuration(int msecs) +{ + m_radiusAnimation->setDuration(msecs); + m_opacityAnimation->setDuration(msecs); +} + +#endif // QTMATERIALRIPPLE_H diff --git a/qt-material-widgets/components/lib/qtmaterialrippleoverlay.cpp b/qt-material-widgets/components/lib/qtmaterialrippleoverlay.cpp new file mode 100644 index 0000000..062d215 --- /dev/null +++ b/qt-material-widgets/components/lib/qtmaterialrippleoverlay.cpp @@ -0,0 +1,75 @@ +#include "lib/qtmaterialrippleoverlay.h" +#include +#include "lib/qtmaterialripple.h" + +/*! + * \class QtMaterialRippleOverlay + * \internal + */ + +QtMaterialRippleOverlay::QtMaterialRippleOverlay(QWidget *parent) + : QtMaterialOverlayWidget(parent), + m_useClip(false) +{ + setAttribute(Qt::WA_TransparentForMouseEvents); + setAttribute(Qt::WA_NoSystemBackground); +} + +QtMaterialRippleOverlay::~QtMaterialRippleOverlay() +{ +} + +void QtMaterialRippleOverlay::addRipple(QtMaterialRipple *ripple) +{ + ripple->setOverlay(this); + m_ripples.push_back(ripple); + ripple->start(); + + connect(this, SIGNAL(destroyed(QObject*)), ripple, SLOT(stop())); + connect(this, SIGNAL(destroyed(QObject*)), ripple, SLOT(deleteLater())); +} + +void QtMaterialRippleOverlay::addRipple(const QPoint &position, qreal radius) +{ + QtMaterialRipple *ripple = new QtMaterialRipple(position); + ripple->setRadiusEndValue(radius); + addRipple(ripple); +} + +void QtMaterialRippleOverlay::removeRipple(QtMaterialRipple *ripple) +{ + if (m_ripples.removeOne(ripple)) { + delete ripple; + update(); + } +} + +/*! + * \reimp + */ +void QtMaterialRippleOverlay::paintEvent(QPaintEvent *event) +{ + Q_UNUSED(event) + + QPainter painter(this); + painter.setRenderHint(QPainter::Antialiasing); + painter.setPen(Qt::NoPen); + + if (m_useClip) { + painter.setClipPath(m_clipPath); + } + + QList::const_iterator i; + for (i = m_ripples.begin(); i != m_ripples.end(); ++i) { + paintRipple(&painter, *i); + } +} + +void QtMaterialRippleOverlay::paintRipple(QPainter *painter, QtMaterialRipple *ripple) +{ + const qreal radius = ripple->radius(); + const QPointF center = ripple->center(); + painter->setOpacity(ripple->opacity()); + painter->setBrush(ripple->brush()); + painter->drawEllipse(center, radius, radius); +} diff --git a/qt-material-widgets/components/lib/qtmaterialrippleoverlay.h b/qt-material-widgets/components/lib/qtmaterialrippleoverlay.h new file mode 100644 index 0000000..436c2b9 --- /dev/null +++ b/qt-material-widgets/components/lib/qtmaterialrippleoverlay.h @@ -0,0 +1,64 @@ +#ifndef QTMATERIALRIPPLEOVERLAY_H +#define QTMATERIALRIPPLEOVERLAY_H + +#include +#include "lib/qtmaterialoverlaywidget.h" + +class QtMaterialRipple; + +class QtMaterialRippleOverlay : public QtMaterialOverlayWidget +{ + Q_OBJECT + +public: + explicit QtMaterialRippleOverlay(QWidget *parent = 0); + ~QtMaterialRippleOverlay(); + + void addRipple(QtMaterialRipple *ripple); + void addRipple(const QPoint &position, qreal radius = 300); + + void removeRipple(QtMaterialRipple *ripple); + + inline void setClipping(bool enable); + inline bool hasClipping() const; + + inline void setClipPath(const QPainterPath &path); + +protected: + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; + + inline QList ripples() const; + +private: + Q_DISABLE_COPY(QtMaterialRippleOverlay) + + void paintRipple(QPainter *painter, QtMaterialRipple *ripple); + + QList m_ripples; + QPainterPath m_clipPath; + bool m_useClip; +}; + +inline void QtMaterialRippleOverlay::setClipping(bool enable) +{ + m_useClip = enable; + update(); +} + +inline bool QtMaterialRippleOverlay::hasClipping() const +{ + return m_useClip; +} + +inline void QtMaterialRippleOverlay::setClipPath(const QPainterPath &path) +{ + m_clipPath = path; + update(); +} + +inline QList QtMaterialRippleOverlay::ripples() const +{ + return m_ripples; +} + +#endif // QTMATERIALRIPPLEOVERLAY_H diff --git a/qt-material-widgets/components/lib/qtmaterialstatetransition.cpp b/qt-material-widgets/components/lib/qtmaterialstatetransition.cpp new file mode 100644 index 0000000..75f1faf --- /dev/null +++ b/qt-material-widgets/components/lib/qtmaterialstatetransition.cpp @@ -0,0 +1,19 @@ +#include "lib/qtmaterialstatetransition.h" + +QtMaterialStateTransition::QtMaterialStateTransition(QtMaterialStateTransitionType type) + : m_type(type) +{ +} + +bool QtMaterialStateTransition::eventTest(QEvent *event) +{ + if (event->type() != QEvent::Type(QEvent::User + 1)) { + return false; + } + QtMaterialStateTransitionEvent *transition = static_cast(event); + return (m_type == transition->type); +} + +void QtMaterialStateTransition::onTransition(QEvent *) +{ +} diff --git a/qt-material-widgets/components/lib/qtmaterialstatetransition.h b/qt-material-widgets/components/lib/qtmaterialstatetransition.h new file mode 100644 index 0000000..d501302 --- /dev/null +++ b/qt-material-widgets/components/lib/qtmaterialstatetransition.h @@ -0,0 +1,22 @@ +#ifndef QTMATERIALSTATETRANSITION_H +#define QTMATERIALSTATETRANSITION_H + +#include +#include "lib/qtmaterialstatetransitionevent.h" + +class QtMaterialStateTransition : public QAbstractTransition +{ + Q_OBJECT + +public: + QtMaterialStateTransition(QtMaterialStateTransitionType type); + +protected: + virtual bool eventTest(QEvent *event); + virtual void onTransition(QEvent *); + +private: + QtMaterialStateTransitionType m_type; +}; + +#endif // QTMATERIALSTATETRANSITION_H diff --git a/qt-material-widgets/components/lib/qtmaterialstatetransitionevent.h b/qt-material-widgets/components/lib/qtmaterialstatetransitionevent.h new file mode 100644 index 0000000..1c64ec6 --- /dev/null +++ b/qt-material-widgets/components/lib/qtmaterialstatetransitionevent.h @@ -0,0 +1,42 @@ +#ifndef QTMATERIALSTATETRANSITIONEVENT_H +#define QTMATERIALSTATETRANSITIONEVENT_H + +#include + +enum QtMaterialStateTransitionType { + // Snackbar + SnackbarShowTransition = 1, + SnackbarHideTransition, + SnackbarWaitTransition, + SnackbarNextTransition, + // FlatButton + FlatButtonPressedTransition, + FlatButtonCheckedTransition, + FlatButtonUncheckedTransition, + // CollapsibleMenu + CollapsibleMenuExpand, + CollapsibleMenuCollapse, + // Slider + SliderChangedToMinimum, + SliderChangedFromMinimum, + SliderNoFocusMouseEnter, + SliderNoFocusMouseLeave, + // Dialog + DialogShowTransition, + DialogHideTransition, + // + MaxTransitionType = 65535 +}; + +struct QtMaterialStateTransitionEvent : public QEvent +{ + QtMaterialStateTransitionEvent(QtMaterialStateTransitionType type) + : QEvent(QEvent::Type(QEvent::User + 1)), + type(type) + { + } + + QtMaterialStateTransitionType type; +}; + +#endif // QTMATERIALSTATETRANSITIONEVENT_H diff --git a/qt-material-widgets/components/lib/qtmaterialstyle.cpp b/qt-material-widgets/components/lib/qtmaterialstyle.cpp new file mode 100644 index 0000000..83bbab8 --- /dev/null +++ b/qt-material-widgets/components/lib/qtmaterialstyle.cpp @@ -0,0 +1,57 @@ +#include "lib/qtmaterialstyle.h" +#include +#include "lib/qtmaterialtheme.h" + +/*! + * \class QtMaterialStylePrivate + * \internal + */ + +QtMaterialStylePrivate::QtMaterialStylePrivate(QtMaterialStyle *q) + : q_ptr(q) +{ +} + +QtMaterialStylePrivate::~QtMaterialStylePrivate() +{ +} + +void QtMaterialStylePrivate::init() +{ + Q_Q(QtMaterialStyle); + + QFontDatabase::addApplicationFont(":/fonts/roboto_regular"); + QFontDatabase::addApplicationFont(":/fonts/roboto_medium"); + QFontDatabase::addApplicationFont(":/fonts/roboto_bold"); + + q->setTheme(new QtMaterialTheme); +} + +/*! + * \class QtMaterialStyle + * \internal + */ + +void QtMaterialStyle::setTheme(QtMaterialTheme *theme) +{ + Q_D(QtMaterialStyle); + + d->theme = theme; + theme->setParent(this); +} + +QColor QtMaterialStyle::themeColor(const QString &key) const +{ + Q_D(const QtMaterialStyle); + + Q_ASSERT(d->theme); + + return d->theme->getColor(key); +} + +QtMaterialStyle::QtMaterialStyle() + : QCommonStyle(), + d_ptr(new QtMaterialStylePrivate(this)) +{ + d_func()->init(); +} diff --git a/qt-material-widgets/components/lib/qtmaterialstyle.h b/qt-material-widgets/components/lib/qtmaterialstyle.h new file mode 100644 index 0000000..e16289b --- /dev/null +++ b/qt-material-widgets/components/lib/qtmaterialstyle.h @@ -0,0 +1,40 @@ +#ifndef QTMATERIALSTYLE_H +#define QTMATERIALSTYLE_H + +#include +#include "lib/qtmaterialstyle_p.h" + +#define MATERIAL_DISABLE_THEME_COLORS \ + if (d->useThemeColors == true) { d->useThemeColors = false; } + +class QtMaterialTheme; + +class QtMaterialStyle : public QCommonStyle +{ + Q_OBJECT + +public: + inline static QtMaterialStyle &instance(); + + void setTheme(QtMaterialTheme *theme); + QColor themeColor(const QString &key) const; + +protected: + const QScopedPointer d_ptr; + +private: + Q_DECLARE_PRIVATE(QtMaterialStyle) + + QtMaterialStyle(); + + QtMaterialStyle(QtMaterialStyle const &); + void operator=(QtMaterialStyle const &); +}; + +inline QtMaterialStyle &QtMaterialStyle::instance() +{ + static QtMaterialStyle instance; + return instance; +} + +#endif // QTMATERIALSTYLE_H diff --git a/qt-material-widgets/components/lib/qtmaterialstyle_p.h b/qt-material-widgets/components/lib/qtmaterialstyle_p.h new file mode 100644 index 0000000..d59ca41 --- /dev/null +++ b/qt-material-widgets/components/lib/qtmaterialstyle_p.h @@ -0,0 +1,24 @@ +#ifndef QTMATERIALSTYLE_P_H +#define QTMATERIALSTYLE_P_H + +#include + +class QtMaterialStyle; +class QtMaterialTheme; + +class QtMaterialStylePrivate +{ + Q_DISABLE_COPY(QtMaterialStylePrivate) + Q_DECLARE_PUBLIC(QtMaterialStyle) + +public: + QtMaterialStylePrivate(QtMaterialStyle *q); + ~QtMaterialStylePrivate(); + + void init(); + + QtMaterialStyle *const q_ptr; + QtMaterialTheme *theme; +}; + +#endif // QTMATERIALSTYLE_P_H diff --git a/qt-material-widgets/components/lib/qtmaterialtheme.cpp b/qt-material-widgets/components/lib/qtmaterialtheme.cpp new file mode 100644 index 0000000..725c954 --- /dev/null +++ b/qt-material-widgets/components/lib/qtmaterialtheme.cpp @@ -0,0 +1,159 @@ +#include "lib/qtmaterialtheme.h" +#include "lib/qtmaterialtheme_p.h" +#include +#include +#include + +/*!material + * \class QtMaterialThemePrivate + * \internal + */ + +QtMaterialThemePrivate::QtMaterialThemePrivate(QtMaterialTheme *q) + : q_ptr(q) +{ +} + +QtMaterialThemePrivate::~QtMaterialThemePrivate() +{ +} + +QColor QtMaterialThemePrivate::rgba(int r, int g, int b, qreal a) const +{ + QColor color(r, g, b); + color.setAlphaF(a); + return color; +} + +/*! + * \class QtMaterialTheme + */ + +QtMaterialTheme::QtMaterialTheme(QObject *parent) + : QObject(parent), + d_ptr(new QtMaterialThemePrivate(this)) +{ + setColor("primary1", Material::cyan500); + setColor("primary2", Material::cyan700); + setColor("primary3", Material::lightBlack); + setColor("accent1", Material::pinkA200); + setColor("accent2", Material::grey100); + setColor("accent3", Material::grey500); + setColor("text", Material::darkBlack); + setColor("alternateText", Material::white); + setColor("canvas", Material::white); + setColor("border", Material::grey300); + setColor("disabled", Material::minBlack); + setColor("disabled2", Material::faintBlack); + setColor("disabled3", Material::grey300); +} + +QtMaterialTheme::~QtMaterialTheme() +{ +} + +QColor QtMaterialTheme::getColor(const QString &key) const +{ + Q_D(const QtMaterialTheme); + + if (!d->colors.contains(key)) { + qWarning() << "A theme color matching the key '" << key << "' could not be found."; + return QColor(); + } + return d->colors.value(key); +} + +void QtMaterialTheme::setColor(const QString &key, const QColor &color) +{ + Q_D(QtMaterialTheme); + + d->colors.insert(key, color); +} + +void QtMaterialTheme::setColor(const QString &key, Material::Color color) +{ + Q_D(QtMaterialTheme); + + static const QColor palette[] = { + QColor("#ffebee"), QColor("#ffcdd2"), QColor("#ef9a9a"), QColor("#e57373"), + QColor("#ef5350"), QColor("#f44336"), QColor("#e53935"), QColor("#d32f2f"), + QColor("#c62828"), QColor("#b71c1c"), QColor("#ff8a80"), QColor("#ff5252"), + QColor("#ff1744"), QColor("#d50000"), QColor("#fce4ec"), QColor("#f8bbd0"), + QColor("#f48fb1"), QColor("#f06292"), QColor("#ec407a"), QColor("#e91e63"), + QColor("#d81b60"), QColor("#c2185b"), QColor("#ad1457"), QColor("#880e4f"), + QColor("#ff80ab"), QColor("#ff4081"), QColor("#f50057"), QColor("#c51162"), + QColor("#f3e5f5"), QColor("#e1bee7"), QColor("#ce93d8"), QColor("#ba68c8"), + QColor("#ab47bc"), QColor("#9c27b0"), QColor("#8e24aa"), QColor("#7b1fa2"), + QColor("#6a1b9a"), QColor("#4a148c"), QColor("#ea80fc"), QColor("#e040fb"), + QColor("#d500f9"), QColor("#aa00ff"), QColor("#ede7f6"), QColor("#d1c4e9"), + QColor("#b39ddb"), QColor("#9575cd"), QColor("#7e57c2"), QColor("#673ab7"), + QColor("#5e35b1"), QColor("#512da8"), QColor("#4527a0"), QColor("#311b92"), + QColor("#b388ff"), QColor("#7c4dff"), QColor("#651fff"), QColor("#6200ea"), + QColor("#e8eaf6"), QColor("#c5cae9"), QColor("#9fa8da"), QColor("#7986cb"), + QColor("#5c6bc0"), QColor("#3f51b5"), QColor("#3949ab"), QColor("#303f9f"), + QColor("#283593"), QColor("#1a237e"), QColor("#8c9eff"), QColor("#536dfe"), + QColor("#3d5afe"), QColor("#304ffe"), QColor("#e3f2fd"), QColor("#bbdefb"), + QColor("#90caf9"), QColor("#64b5f6"), QColor("#42a5f5"), QColor("#2196f3"), + QColor("#1e88e5"), QColor("#1976d2"), QColor("#1565c0"), QColor("#0d47a1"), + QColor("#82b1ff"), QColor("#448aff"), QColor("#2979ff"), QColor("#2962ff"), + QColor("#e1f5fe"), QColor("#b3e5fc"), QColor("#81d4fa"), QColor("#4fc3f7"), + QColor("#29b6f6"), QColor("#03a9f4"), QColor("#039be5"), QColor("#0288d1"), + QColor("#0277bd"), QColor("#01579b"), QColor("#80d8ff"), QColor("#40c4ff"), + QColor("#00b0ff"), QColor("#0091ea"), QColor("#e0f7fa"), QColor("#b2ebf2"), + QColor("#80deea"), QColor("#4dd0e1"), QColor("#26c6da"), QColor("#00bcd4"), + QColor("#00acc1"), QColor("#0097a7"), QColor("#00838f"), QColor("#006064"), + QColor("#84ffff"), QColor("#18ffff"), QColor("#00e5ff"), QColor("#00b8d4"), + QColor("#e0f2f1"), QColor("#b2dfdb"), QColor("#80cbc4"), QColor("#4db6ac"), + QColor("#26a69a"), QColor("#009688"), QColor("#00897b"), QColor("#00796b"), + QColor("#00695c"), QColor("#004d40"), QColor("#a7ffeb"), QColor("#64ffda"), + QColor("#1de9b6"), QColor("#00bfa5"), QColor("#e8f5e9"), QColor("#c8e6c9"), + QColor("#a5d6a7"), QColor("#81c784"), QColor("#66bb6a"), QColor("#4caf50"), + QColor("#43a047"), QColor("#388e3c"), QColor("#2e7d32"), QColor("#1b5e20"), + QColor("#b9f6ca"), QColor("#69f0ae"), QColor("#00e676"), QColor("#00c853"), + QColor("#f1f8e9"), QColor("#dcedc8"), QColor("#c5e1a5"), QColor("#aed581"), + QColor("#9ccc65"), QColor("#8bc34a"), QColor("#7cb342"), QColor("#689f38"), + QColor("#558b2f"), QColor("#33691e"), QColor("#ccff90"), QColor("#b2ff59"), + QColor("#76ff03"), QColor("#64dd17"), QColor("#f9fbe7"), QColor("#f0f4c3"), + QColor("#e6ee9c"), QColor("#dce775"), QColor("#d4e157"), QColor("#cddc39"), + QColor("#c0ca33"), QColor("#afb42b"), QColor("#9e9d24"), QColor("#827717"), + QColor("#f4ff81"), QColor("#eeff41"), QColor("#c6ff00"), QColor("#aeea00"), + QColor("#fffde7"), QColor("#fff9c4"), QColor("#fff59d"), QColor("#fff176"), + QColor("#ffee58"), QColor("#ffeb3b"), QColor("#fdd835"), QColor("#fbc02d"), + QColor("#f9a825"), QColor("#f57f17"), QColor("#ffff8d"), QColor("#ffff00"), + QColor("#ffea00"), QColor("#ffd600"), QColor("#fff8e1"), QColor("#ffecb3"), + QColor("#ffe082"), QColor("#ffd54f"), QColor("#ffca28"), QColor("#ffc107"), + QColor("#ffb300"), QColor("#ffa000"), QColor("#ff8f00"), QColor("#ff6f00"), + QColor("#ffe57f"), QColor("#ffd740"), QColor("#ffc400"), QColor("#ffab00"), + QColor("#fff3e0"), QColor("#ffe0b2"), QColor("#ffcc80"), QColor("#ffb74d"), + QColor("#ffa726"), QColor("#ff9800"), QColor("#fb8c00"), QColor("#f57c00"), + QColor("#ef6c00"), QColor("#e65100"), QColor("#ffd180"), QColor("#ffab40"), + QColor("#ff9100"), QColor("#ff6d00"), QColor("#fbe9e7"), QColor("#ffccbc"), + QColor("#ffab91"), QColor("#ff8a65"), QColor("#ff7043"), QColor("#ff5722"), + QColor("#f4511e"), QColor("#e64a19"), QColor("#d84315"), QColor("#bf360c"), + QColor("#ff9e80"), QColor("#ff6e40"), QColor("#ff3d00"), QColor("#dd2c00"), + QColor("#efebe9"), QColor("#d7ccc8"), QColor("#bcaaa4"), QColor("#a1887f"), + QColor("#8d6e63"), QColor("#795548"), QColor("#6d4c41"), QColor("#5d4037"), + QColor("#4e342e"), QColor("#3e2723"), QColor("#eceff1"), QColor("#cfd8dc"), + QColor("#b0bec5"), QColor("#90a4ae"), QColor("#78909c"), QColor("#607d8b"), + QColor("#546e7a"), QColor("#455a64"), QColor("#37474f"), QColor("#263238"), + QColor("#fafafa"), QColor("#f5f5f5"), QColor("#eeeeee"), QColor("#e0e0e0"), + QColor("#bdbdbd"), QColor("#9e9e9e"), QColor("#757575"), QColor("#616161"), + QColor("#424242"), QColor("#212121"), QColor("#000000"), QColor("#ffffff"), + d->rgba(0, 0, 0, 0), + d->rgba(0, 0, 0, 1), + d->rgba(0, 0, 0, 0.87), + d->rgba(0, 0, 0, 0.54), + d->rgba(0, 0, 0, 0.26), + d->rgba(0, 0, 0, 0.12), + d->rgba(255, 255, 255, 1), + d->rgba(255, 255, 255, 0.87), + d->rgba(255, 255, 255, 0.54) + }; + + d->colors.insert(key, palette[color]); +} + +QIcon QtMaterialTheme::icon(QString category, QString icon) +{ + return QIcon(":/icons/icons/" % category % "/svg/production/ic_" % icon % "_24px.svg"); +} diff --git a/qt-material-widgets/components/lib/qtmaterialtheme.h b/qt-material-widgets/components/lib/qtmaterialtheme.h new file mode 100644 index 0000000..fe4a11c --- /dev/null +++ b/qt-material-widgets/components/lib/qtmaterialtheme.h @@ -0,0 +1,344 @@ +#ifndef QTMATERIALTHEME_H +#define QTMATERIALTHEME_H + +#include +#include +#include +#include + +namespace Material +{ + enum ButtonPreset { + FlatPreset, + CheckablePreset + }; + + enum RippleStyle { + CenteredRipple, + PositionedRipple, + NoRipple + }; + + enum OverlayStyle { + NoOverlay, + TintedOverlay, + GrayOverlay + }; + + enum Role { + Default, + Primary, + Secondary + }; + + enum ButtonIconPlacement { + LeftIcon, + RightIcon + }; + + enum ProgressType { + DeterminateProgress, + IndeterminateProgress + }; + + enum AvatarType { + ImageAvatar, + IconAvatar, + LetterAvatar + }; + + enum Color { + red50, + red100, + red200, + red300, + red400, + red500, + red600, + red700, + red800, + red900, + redA100, + redA200, + redA400, + redA700, + pink50, + pink100, + pink200, + pink300, + pink400, + pink500, + pink600, + pink700, + pink800, + pink900, + pinkA100, + pinkA200, + pinkA400, + pinkA700, + purple50, + purple100, + purple200, + purple300, + purple400, + purple500, + purple600, + purple700, + purple800, + purple900, + purpleA100, + purpleA200, + purpleA400, + purpleA700, + deepPurple50, + deepPurple100, + deepPurple200, + deepPurple300, + deepPurple400, + deepPurple500, + deepPurple600, + deepPurple700, + deepPurple800, + deepPurple900, + deepPurpleA100, + deepPurpleA200, + deepPurpleA400, + deepPurpleA700, + indigo50, + indigo100, + indigo200, + indigo300, + indigo400, + indigo500, + indigo600, + indigo700, + indigo800, + indigo900, + indigoA100, + indigoA200, + indigoA400, + indigoA700, + blue50, + blue100, + blue200, + blue300, + blue400, + blue500, + blue600, + blue700, + blue800, + blue900, + blueA100, + blueA200, + blueA400, + blueA700, + lightBlue50, + lightBlue100, + lightBlue200, + lightBlue300, + lightBlue400, + lightBlue500, + lightBlue600, + lightBlue700, + lightBlue800, + lightBlue900, + lightBlueA100, + lightBlueA200, + lightBlueA400, + lightBlueA700, + cyan50, + cyan100, + cyan200, + cyan300, + cyan400, + cyan500, + cyan600, + cyan700, + cyan800, + cyan900, + cyanA100, + cyanA200, + cyanA400, + cyanA700, + teal50, + teal100, + teal200, + teal300, + teal400, + teal500, + teal600, + teal700, + teal800, + teal900, + tealA100, + tealA200, + tealA400, + tealA700, + green50, + green100, + green200, + green300, + green400, + green500, + green600, + green700, + green800, + green900, + greenA100, + greenA200, + greenA400, + greenA700, + lightGreen50, + lightGreen100, + lightGreen200, + lightGreen300, + lightGreen400, + lightGreen500, + lightGreen600, + lightGreen700, + lightGreen800, + lightGreen900, + lightGreenA100, + lightGreenA200, + lightGreenA400, + lightGreenA700, + lime50, + lime100, + lime200, + lime300, + lime400, + lime500, + lime600, + lime700, + lime800, + lime900, + limeA100, + limeA200, + limeA400, + limeA700, + yellow50, + yellow100, + yellow200, + yellow300, + yellow400, + yellow500, + yellow600, + yellow700, + yellow800, + yellow900, + yellowA100, + yellowA200, + yellowA400, + yellowA700, + amber50, + amber100, + amber200, + amber300, + amber400, + amber500, + amber600, + amber700, + amber800, + amber900, + amberA100, + amberA200, + amberA400, + amberA700, + orange50, + orange100, + orange200, + orange300, + orange400, + orange500, + orange600, + orange700, + orange800, + orange900, + orangeA100, + orangeA200, + orangeA400, + orangeA700, + deepOrange50, + deepOrange100, + deepOrange200, + deepOrange300, + deepOrange400, + deepOrange500, + deepOrange600, + deepOrange700, + deepOrange800, + deepOrange900, + deepOrangeA100, + deepOrangeA200, + deepOrangeA400, + deepOrangeA700, + brown50, + brown100, + brown200, + brown300, + brown400, + brown500, + brown600, + brown700, + brown800, + brown900, + blueGrey50, + blueGrey100, + blueGrey200, + blueGrey300, + blueGrey400, + blueGrey500, + blueGrey600, + blueGrey700, + blueGrey800, + blueGrey900, + grey50, + grey100, + grey200, + grey300, + grey400, + grey500, + grey600, + grey700, + grey800, + grey900, + black, + white, + transparent, + fullBlack, + darkBlack, + lightBlack, + minBlack, + faintBlack, + fullWhite, + darkWhite, + lightWhite + }; +} + +class QtMaterialThemePrivate; + +class QtMaterialTheme : public QObject +{ + Q_OBJECT + +public: + explicit QtMaterialTheme(QObject *parent = 0); + ~QtMaterialTheme(); + + QColor getColor(const QString &key) const; + + void setColor(const QString &key, const QColor &color); + void setColor(const QString &key, Material::Color color); + + static QIcon icon(QString category, QString icon); + +protected: + const QScopedPointer d_ptr; + +private: + Q_DISABLE_COPY(QtMaterialTheme) + Q_DECLARE_PRIVATE(QtMaterialTheme) +}; + +#endif // QTMATERIALTHEME_H diff --git a/qt-material-widgets/components/lib/qtmaterialtheme_p.h b/qt-material-widgets/components/lib/qtmaterialtheme_p.h new file mode 100644 index 0000000..d0ef178 --- /dev/null +++ b/qt-material-widgets/components/lib/qtmaterialtheme_p.h @@ -0,0 +1,24 @@ +#ifndef QTMATERIALTHEME_P_H +#define QTMATERIALTHEME_P_H + +#include +#include + +class QtMaterialTheme; + +class QtMaterialThemePrivate +{ + Q_DISABLE_COPY(QtMaterialThemePrivate) + Q_DECLARE_PUBLIC(QtMaterialTheme) + +public: + QtMaterialThemePrivate(QtMaterialTheme *q); + ~QtMaterialThemePrivate(); + + QColor rgba(int r, int g, int b, qreal a) const; + + QtMaterialTheme *const q_ptr; + QHash colors; +}; + +#endif // QTMATERIALTHEME_P_H diff --git a/qt-material-widgets/components/qtmaterialappbar.cpp b/qt-material-widgets/components/qtmaterialappbar.cpp new file mode 100644 index 0000000..2170ca4 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialappbar.cpp @@ -0,0 +1,139 @@ +#include "qtmaterialappbar.h" +#include "qtmaterialappbar_p.h" +#include +#include +#include "lib/qtmaterialstyle.h" + +/*! + * \class QtMaterialAppBarPrivate + * \internal + */ + +/*! + * \internal + */ +QtMaterialAppBarPrivate::QtMaterialAppBarPrivate(QtMaterialAppBar *q) + : q_ptr(q) +{ +} + +/*! + * \internal + */ +QtMaterialAppBarPrivate::~QtMaterialAppBarPrivate() +{ +} + +/*! + * \internal + */ +void QtMaterialAppBarPrivate::init() +{ + Q_Q(QtMaterialAppBar); + + useThemeColors = true; + + QGraphicsDropShadowEffect *effect = new QGraphicsDropShadowEffect; + effect->setBlurRadius(11); + effect->setColor(QColor(0, 0, 0, 50)); + effect->setOffset(0, 3); + + q->setGraphicsEffect(effect); + + QHBoxLayout *layout = new QHBoxLayout; + q->setLayout(layout); +} + +/*! + * \class QtMaterialAppBar + */ + +QtMaterialAppBar::QtMaterialAppBar(QWidget *parent) + : QWidget(parent), + d_ptr(new QtMaterialAppBarPrivate(this)) +{ + d_func()->init(); +} + +QtMaterialAppBar::~QtMaterialAppBar() +{ +} + +QSize QtMaterialAppBar::sizeHint() const +{ + return QSize(-1, 64); +} + +void QtMaterialAppBar::paintEvent(QPaintEvent *event) +{ + Q_UNUSED(event) + + QPainter painter(this); + + painter.fillRect(rect(), backgroundColor()); +} + +void QtMaterialAppBar::setUseThemeColors(bool value) +{ + Q_D(QtMaterialAppBar); + + if (d->useThemeColors == value) { + return; + } + + d->useThemeColors = value; + update(); +} + +bool QtMaterialAppBar::useThemeColors() const +{ + Q_D(const QtMaterialAppBar); + + return d->useThemeColors; +} + +void QtMaterialAppBar::setForegroundColor(const QColor &color) +{ + Q_D(QtMaterialAppBar); + + d->foregroundColor = color; + + if (d->useThemeColors == true) { + d->useThemeColors = false; + } + update(); +} + +QColor QtMaterialAppBar::foregroundColor() const +{ + Q_D(const QtMaterialAppBar); + + if (d->useThemeColors || !d->foregroundColor.isValid()) { + return QtMaterialStyle::instance().themeColor("primary1"); + } else { + return d->foregroundColor; + } +} + +void QtMaterialAppBar::setBackgroundColor(const QColor &color) +{ + Q_D(QtMaterialAppBar); + + d->backgroundColor = color; + + if (d->useThemeColors == true) { + d->useThemeColors = false; + } + update(); +} + +QColor QtMaterialAppBar::backgroundColor() const +{ + Q_D(const QtMaterialAppBar); + + if (d->useThemeColors || !d->backgroundColor.isValid()) { + return QtMaterialStyle::instance().themeColor("primary1"); + } else { + return d->backgroundColor; + } +} diff --git a/qt-material-widgets/components/qtmaterialappbar.h b/qt-material-widgets/components/qtmaterialappbar.h new file mode 100644 index 0000000..4c60564 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialappbar.h @@ -0,0 +1,48 @@ +#ifndef QTMATERIALAPPBAR_H +#define QTMATERIALAPPBAR_H + +#include +#include + +class QtMaterialAppBarPrivate; + +class QtMaterialAppBar : public QWidget +{ + Q_OBJECT + + Q_PROPERTY(QColor foregroundColor WRITE setForegroundColor READ foregroundColor) + Q_PROPERTY(QColor backgroundColor WRITE setBackgroundColor READ backgroundColor) + +public: + explicit QtMaterialAppBar(QWidget *parent = 0); + ~QtMaterialAppBar(); + + QSize sizeHint() const Q_DECL_OVERRIDE; + + void setUseThemeColors(bool value); + bool useThemeColors() const; + + void setForegroundColor(const QColor &color); + QColor foregroundColor() const; + + void setBackgroundColor(const QColor &color); + QColor backgroundColor() const; + + inline QHBoxLayout *appBarLayout() const; + +protected: + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; + + const QScopedPointer d_ptr; + +private: + Q_DISABLE_COPY(QtMaterialAppBar) + Q_DECLARE_PRIVATE(QtMaterialAppBar) +}; + +inline QHBoxLayout *QtMaterialAppBar::appBarLayout() const +{ + return static_cast(layout()); +} + +#endif // QTMATERIALAPPBAR_H diff --git a/qt-material-widgets/components/qtmaterialappbar_p.h b/qt-material-widgets/components/qtmaterialappbar_p.h new file mode 100644 index 0000000..0586556 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialappbar_p.h @@ -0,0 +1,26 @@ +#ifndef QTMATERIALAPPBAR_P_H +#define QTMATERIALAPPBAR_P_H + +#include +#include + +class QtMaterialAppBar; + +class QtMaterialAppBarPrivate +{ + Q_DISABLE_COPY(QtMaterialAppBarPrivate) + Q_DECLARE_PUBLIC(QtMaterialAppBar) + +public: + QtMaterialAppBarPrivate(QtMaterialAppBar *q); + ~QtMaterialAppBarPrivate(); + + void init(); + + QtMaterialAppBar *const q_ptr; + bool useThemeColors; + QColor foregroundColor; + QColor backgroundColor; +}; + +#endif // QTMATERIALAPPBAR_P_H diff --git a/qt-material-widgets/components/qtmaterialautocomplete.cpp b/qt-material-widgets/components/qtmaterialautocomplete.cpp new file mode 100644 index 0000000..df006a6 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialautocomplete.cpp @@ -0,0 +1,242 @@ +#include "qtmaterialautocomplete.h" +#include "qtmaterialautocomplete_p.h" +#include +#include +#include +#include +#include +#include +#include "qtmaterialautocomplete_internal.h" +#include "qtmaterialflatbutton.h" + +/*! + * \class QtMaterialAutoCompletePrivate + * \internal + */ + +/*! + * \internal + */ +QtMaterialAutoCompletePrivate::QtMaterialAutoCompletePrivate(QtMaterialAutoComplete *q) + : QtMaterialTextFieldPrivate(q) +{ +} + +/*! + * \internal + */ +QtMaterialAutoCompletePrivate::~QtMaterialAutoCompletePrivate() +{ +} + +/*! + * \internal + */ +void QtMaterialAutoCompletePrivate::init() +{ + Q_Q(QtMaterialAutoComplete); + + menu = new QWidget; + frame = new QWidget; + stateMachine = new QtMaterialAutoCompleteStateMachine(menu); + menuLayout = new QVBoxLayout; + maxWidth = 0; + + menu->setParent(q->parentWidget()); + frame->setParent(q->parentWidget()); + + menu->installEventFilter(q); + frame->installEventFilter(q); + + QGraphicsDropShadowEffect *effect = new QGraphicsDropShadowEffect; + effect->setBlurRadius(11); + effect->setColor(QColor(0, 0, 0, 50)); + effect->setOffset(0, 3); + + frame->setGraphicsEffect(effect); + frame->setVisible(false); + + menu->setLayout(menuLayout); + menu->setVisible(false); + + menuLayout->setContentsMargins(0, 0, 0, 0); + menuLayout->setSpacing(0); + + QObject::connect(q, SIGNAL(textEdited(QString)), q, SLOT(updateResults(QString))); + + stateMachine->start(); +} + +/*! + * \class QtMaterialAutoComplete + */ + +QtMaterialAutoComplete::QtMaterialAutoComplete(QWidget *parent) + : QtMaterialTextField(*new QtMaterialAutoCompletePrivate(this), parent) +{ + d_func()->init(); +} + +QtMaterialAutoComplete::~QtMaterialAutoComplete() +{ +} + +void QtMaterialAutoComplete::setDataSource(const QStringList &data) +{ + Q_D(QtMaterialAutoComplete); + + d->dataSource = data; + update(); +} + +void QtMaterialAutoComplete::updateResults(QString text) +{ + Q_D(QtMaterialAutoComplete); + + QStringList results; + QString trimmed(text.trimmed()); + + if (!trimmed.isEmpty()) { + QString lookup(trimmed.toLower()); + QStringList::iterator i; + for (i = d->dataSource.begin(); i != d->dataSource.end(); ++i) { + if (i->toLower().indexOf(lookup) != -1) { + results.push_back(*i); + } + } + } + + const int diff = results.length() - d->menuLayout->count(); + QFont font("Roboto", 12, QFont::Normal); + + if (diff > 0) { + for (int c = 0; c < diff; c++) { + QtMaterialFlatButton *item = new QtMaterialFlatButton; + item->setFont(font); + item->setTextAlignment(Qt::AlignLeft); + item->setCornerRadius(0); + item->setHaloVisible(false); + item->setFixedHeight(50); + item->setOverlayStyle(Material::TintedOverlay); + d->menuLayout->addWidget(item); + item->installEventFilter(this); + } + } else if (diff < 0) { + for (int c = 0; c < -diff; c++) { + QWidget *widget = d->menuLayout->itemAt(0)->widget(); + if (widget) { + d->menuLayout->removeWidget(widget); + delete widget; + } + } + } + + QFontMetrics *fm = new QFontMetrics(font); + d->maxWidth = 0; + + for (int i = 0; i < results.count(); ++i) { + QWidget *widget = d->menuLayout->itemAt(i)->widget(); + QtMaterialFlatButton *item; + if ((item = static_cast(widget))) { + QString text = results.at(i); + QRect rect = fm->boundingRect(text); + d->maxWidth = qMax(d->maxWidth, rect.width()); + item->setText(text); + } + } + + if (!results.count()) { + emit d->stateMachine->shouldClose(); + } else { + emit d->stateMachine->shouldOpen(); + } + + d->menu->setFixedHeight(results.length()*50); + d->menu->setFixedWidth(qMax(d->maxWidth + 24, width())); + d->menu->update(); +} + +bool QtMaterialAutoComplete::QtMaterialAutoComplete::event(QEvent *event) +{ + Q_D(QtMaterialAutoComplete); + + switch (event->type()) + { + case QEvent::Move: + case QEvent::Resize: { + d->menu->move(pos() + QPoint(0, height() + 6)); + break; + } + case QEvent::ParentChange: { + QWidget *widget = static_cast(parent()); + if (widget) { + d->menu->setParent(widget); + d->frame->setParent(widget); + } + break; + } + default: + break; + } + return QtMaterialTextField::event(event); +} + +bool QtMaterialAutoComplete::eventFilter(QObject *watched, QEvent *event) +{ + Q_D(QtMaterialAutoComplete); + + if (d->frame == watched) + { + switch (event->type()) + { + case QEvent::Paint: { + QPainter painter(d->frame); + painter.fillRect(d->frame->rect(), Qt::white); + break; + } + default: + break; + } + } + else if (d->menu == watched) + { + switch (event->type()) + { + case QEvent::Resize: + case QEvent::Move: { + d->frame->setGeometry(d->menu->geometry()); + break; + } + case QEvent::Show: { + d->frame->show(); + d->menu->raise(); + break; + } + case QEvent::Hide: { + d->frame->hide(); + break; + } + default: + break; + } + } + else + { + switch (event->type()) + { + case QEvent::MouseButtonPress: { + emit d->stateMachine->shouldFade(); + QtMaterialFlatButton *widget; + if ((widget = static_cast(watched))) { + QString text(widget->text()); + setText(text); + emit itemSelected(text); + } + break; + } + default: + break; + } + } + return QtMaterialTextField::eventFilter(watched, event); +} diff --git a/qt-material-widgets/components/qtmaterialautocomplete.h b/qt-material-widgets/components/qtmaterialautocomplete.h new file mode 100644 index 0000000..8b46861 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialautocomplete.h @@ -0,0 +1,33 @@ +#ifndef QTMATERIALAUTOCOMPLETE_H +#define QTMATERIALAUTOCOMPLETE_H + +#include "qtmaterialtextfield.h" + +class QtMaterialAutoCompletePrivate; + +class QtMaterialAutoComplete : public QtMaterialTextField +{ + Q_OBJECT + +public: + explicit QtMaterialAutoComplete(QWidget *parent = 0); + ~QtMaterialAutoComplete(); + + void setDataSource(const QStringList &data); + +signals: + void itemSelected(QString); + +protected slots: + void updateResults(QString text); + +protected: + bool event(QEvent *event) Q_DECL_OVERRIDE; + bool eventFilter(QObject *watched, QEvent *event) Q_DECL_OVERRIDE; + +private: + Q_DISABLE_COPY(QtMaterialAutoComplete) + Q_DECLARE_PRIVATE(QtMaterialAutoComplete) +}; + +#endif // QTMATERIALAUTOCOMPLETE_H diff --git a/qt-material-widgets/components/qtmaterialautocomplete_internal.cpp b/qt-material-widgets/components/qtmaterialautocomplete_internal.cpp new file mode 100644 index 0000000..e01848d --- /dev/null +++ b/qt-material-widgets/components/qtmaterialautocomplete_internal.cpp @@ -0,0 +1,69 @@ +#include "qtmaterialautocomplete_internal.h" +#include +#include +#include +#include + +/*! + * \class QtMaterialAutoCompleteStateMachine + * \internal + */ + +/*! + * \internal + */ +QtMaterialAutoCompleteStateMachine::QtMaterialAutoCompleteStateMachine(QWidget *menu) + : QStateMachine(menu), + m_menu(menu), + m_closedState(new QState), + m_openState(new QState), + m_closingState(new QState) +{ + Q_ASSERT(menu); + + addState(m_closedState); + addState(m_openState); + addState(m_closingState); + setInitialState(m_closedState); + + QSignalTransition *transition; + + transition = new QSignalTransition(this, SIGNAL(shouldOpen())); + transition->setTargetState(m_openState); + m_closedState->addTransition(transition); + + transition = new QSignalTransition(this, SIGNAL(shouldClose())); + transition->setTargetState(m_closedState); + m_openState->addTransition(transition); + + transition = new QSignalTransition(this, SIGNAL(shouldFade())); + transition->setTargetState(m_closingState); + m_openState->addTransition(transition); + + m_closedState->assignProperty(menu, "visible", false); + m_openState->assignProperty(menu, "visible", true); + + QGraphicsOpacityEffect *effect = new QGraphicsOpacityEffect; + menu->setGraphicsEffect(effect); + + m_openState->assignProperty(effect, "opacity", 1); + m_closingState->assignProperty(effect, "opacity", 0); + m_closedState->assignProperty(effect, "opacity", 0); + + QPropertyAnimation *animation; + + animation = new QPropertyAnimation(effect, "opacity", this); + animation->setDuration(240); + addDefaultAnimation(animation); + + transition = new QSignalTransition(animation, SIGNAL(finished())); + transition->setTargetState(m_closedState); + m_closingState->addTransition(transition); +} + +/*! + * \internal + */ +QtMaterialAutoCompleteStateMachine::~QtMaterialAutoCompleteStateMachine() +{ +} diff --git a/qt-material-widgets/components/qtmaterialautocomplete_internal.h b/qt-material-widgets/components/qtmaterialautocomplete_internal.h new file mode 100644 index 0000000..7e76bd5 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialautocomplete_internal.h @@ -0,0 +1,29 @@ +#ifndef QTMATERIALAUTOCOMPLETESTATEMACHINE_H +#define QTMATERIALAUTOCOMPLETESTATEMACHINE_H + +#include +#include "qtmaterialautocomplete.h" + +class QtMaterialAutoCompleteStateMachine : public QStateMachine +{ + Q_OBJECT + +public: + explicit QtMaterialAutoCompleteStateMachine(QWidget *menu); + ~QtMaterialAutoCompleteStateMachine(); + +signals: + void shouldOpen(); + void shouldClose(); + void shouldFade(); + +private: + Q_DISABLE_COPY(QtMaterialAutoCompleteStateMachine) + + QWidget *const m_menu; + QState *const m_closedState; + QState *const m_openState; + QState *const m_closingState; +}; + +#endif // QTMATERIALAUTOCOMPLETESTATEMACHINE_H diff --git a/qt-material-widgets/components/qtmaterialautocomplete_p.h b/qt-material-widgets/components/qtmaterialautocomplete_p.h new file mode 100644 index 0000000..4fd405b --- /dev/null +++ b/qt-material-widgets/components/qtmaterialautocomplete_p.h @@ -0,0 +1,30 @@ +#ifndef QTMATERIALAUTOCOMPLETE_P_H +#define QTMATERIALAUTOCOMPLETE_P_H + +#include "qtmaterialtextfield_p.h" + +class QWidget; +class QVBoxLayout; +class QtMaterialAutoCompleteOverlay; +class QtMaterialAutoCompleteStateMachine; + +class QtMaterialAutoCompletePrivate : public QtMaterialTextFieldPrivate +{ + Q_DISABLE_COPY(QtMaterialAutoCompletePrivate) + Q_DECLARE_PUBLIC(QtMaterialAutoComplete) + +public: + QtMaterialAutoCompletePrivate(QtMaterialAutoComplete *q); + virtual ~QtMaterialAutoCompletePrivate(); + + void init(); + + QWidget *menu; + QWidget *frame; + QtMaterialAutoCompleteStateMachine *stateMachine; + QVBoxLayout *menuLayout; + QStringList dataSource; + int maxWidth; +}; + +#endif // QTMATERIALAUTOCOMPLETE_P_H diff --git a/qt-material-widgets/components/qtmaterialavatar.cpp b/qt-material-widgets/components/qtmaterialavatar.cpp new file mode 100644 index 0000000..e769f8f --- /dev/null +++ b/qt-material-widgets/components/qtmaterialavatar.cpp @@ -0,0 +1,294 @@ +#include "qtmaterialavatar.h" +#include "qtmaterialavatar_p.h" +#include +#include +#include "lib/qtmaterialstyle.h" + +/*! + * \class QtMaterialAvatarPrivate + * \internal + */ + +/*! + * \internal + */ +QtMaterialAvatarPrivate::QtMaterialAvatarPrivate(QtMaterialAvatar *q) + : q_ptr(q) +{ +} + +/*! + * \internal + */ +QtMaterialAvatarPrivate::~QtMaterialAvatarPrivate() +{ +} + +/*! + * \internal + */ +void QtMaterialAvatarPrivate::init() +{ + Q_Q(QtMaterialAvatar); + + size = 40; + type = Material::LetterAvatar; + useThemeColors = true; + + QFont font(q->font()); + font.setPointSizeF(16); + q->setFont(font); + + QSizePolicy policy(QSizePolicy::MinimumExpanding, + QSizePolicy::MinimumExpanding); + q->setSizePolicy(policy); +} + +/*! + * \class QtMaterialAvatar + */ + +QtMaterialAvatar::QtMaterialAvatar(QWidget *parent) + : QWidget(parent), + d_ptr(new QtMaterialAvatarPrivate(this)) +{ + d_func()->init(); +} + +QtMaterialAvatar::QtMaterialAvatar(const QIcon &icon, QWidget *parent) + : QWidget(parent), + d_ptr(new QtMaterialAvatarPrivate(this)) +{ + d_func()->init(); + + setIcon(icon); +} + +QtMaterialAvatar::QtMaterialAvatar(const QChar &letter, QWidget *parent) + : QWidget(parent), + d_ptr(new QtMaterialAvatarPrivate(this)) +{ + d_func()->init(); + + setLetter(letter); +} + +QtMaterialAvatar::QtMaterialAvatar(const QImage &image, QWidget *parent) + : QWidget(parent), + d_ptr(new QtMaterialAvatarPrivate(this)) +{ + d_func()->init(); + + setImage(image); +} + +QtMaterialAvatar::~QtMaterialAvatar() +{ +} + +void QtMaterialAvatar::setUseThemeColors(bool value) +{ + Q_D(QtMaterialAvatar); + + if (d->useThemeColors == value) { + return; + } + + d->useThemeColors = value; + update(); +} + +bool QtMaterialAvatar::useThemeColors() const +{ + Q_D(const QtMaterialAvatar); + + return d->useThemeColors; +} + +void QtMaterialAvatar::setTextColor(const QColor &color) +{ + Q_D(QtMaterialAvatar); + + d->textColor = color; + + MATERIAL_DISABLE_THEME_COLORS + update(); +} + +QColor QtMaterialAvatar::textColor() const +{ + Q_D(const QtMaterialAvatar); + + if (d->useThemeColors || !d->textColor.isValid()) { + return QtMaterialStyle::instance().themeColor("canvas"); + } else { + return d->textColor; + } +} + +void QtMaterialAvatar::setBackgroundColor(const QColor &color) +{ + Q_D(QtMaterialAvatar); + + d->backgroundColor = color; + + MATERIAL_DISABLE_THEME_COLORS + update(); +} + +QColor QtMaterialAvatar::backgroundColor() const +{ + Q_D(const QtMaterialAvatar); + + if (d->useThemeColors || !d->backgroundColor.isValid()) { + return QtMaterialStyle::instance().themeColor("primary1"); + } else { + return d->backgroundColor; + } +} + +/*! + * \reimp + */ +QSize QtMaterialAvatar::sizeHint() const +{ + Q_D(const QtMaterialAvatar); + + return QSize(d->size+2, d->size+2); +} + +void QtMaterialAvatar::setSize(int size) +{ + Q_D(QtMaterialAvatar); + + d->size = size; + + if (!d->image.isNull()) { + d->pixmap = QPixmap::fromImage(d->image.scaled(d->size, d->size, + Qt::IgnoreAspectRatio, + Qt::SmoothTransformation)); + } + + QFont f(font()); + f.setPointSizeF(size*16/40); + setFont(f); + + update(); +} + +int QtMaterialAvatar::size() const +{ + Q_D(const QtMaterialAvatar); + + return d->size; +} + +void QtMaterialAvatar::setLetter(const QChar &letter) +{ + Q_D(QtMaterialAvatar); + + d->letter = letter; + d->type = Material::LetterAvatar; + update(); +} + +void QtMaterialAvatar::setImage(const QImage &image) +{ + Q_D(QtMaterialAvatar); + + d->image = image; + d->type = Material::ImageAvatar; + + d->pixmap = QPixmap::fromImage(image.scaled(d->size, d->size, + Qt::IgnoreAspectRatio, + Qt::SmoothTransformation)); + update(); +} + +void QtMaterialAvatar::setIcon(const QIcon &icon) +{ + Q_D(QtMaterialAvatar); + + d->icon = icon; + d->type = Material::IconAvatar; + update(); +} + +Material::AvatarType QtMaterialAvatar::type() const +{ + Q_D(const QtMaterialAvatar); + + return d->type; +} + +/*! + * \reimp + */ +void QtMaterialAvatar::paintEvent(QPaintEvent *event) +{ + Q_UNUSED(event) + + Q_D(QtMaterialAvatar); + + QPainter painter(this); + painter.setRenderHint(QPainter::Antialiasing); + + QRect r = rect(); + const qreal hs = d->size/2; + + if (!isEnabled()) + { + QBrush brush; + brush.setStyle(Qt::SolidPattern); + brush.setColor(QtMaterialStyle::instance().themeColor("disabled")); + painter.setPen(Qt::NoPen); + painter.setBrush(brush); + painter.drawEllipse(QRectF((width()-d->size)/2, (height()-d->size)/2, + d->size, d->size)); + return; + } + + if (Material::ImageAvatar != d->type) + { + QBrush brush; + brush.setStyle(Qt::SolidPattern); + brush.setColor(backgroundColor()); + painter.setPen(Qt::NoPen); + painter.setBrush(brush); + painter.drawEllipse(QRectF((width()-d->size)/2, (height()-d->size)/2, + d->size, d->size)); + } + + switch (d->type) + { + case Material::ImageAvatar: + { + QPainterPath path; + path.addEllipse(width()/2-hs, height()/2-hs, d->size, d->size); + painter.setClipPath(path); + + painter.drawPixmap(QRect(width()/2-hs, height()/2-hs, d->size, d->size), + d->pixmap); + break; + } + case Material::IconAvatar: + { + QRect iconGeometry((width()-hs)/2, (height()-hs)/2, hs, hs); + QPixmap pixmap = d->icon.pixmap(hs, hs); + QPainter icon(&pixmap); + icon.setCompositionMode(QPainter::CompositionMode_SourceIn); + icon.fillRect(pixmap.rect(), textColor()); + painter.drawPixmap(iconGeometry, pixmap); + break; + } + case Material::LetterAvatar: + { + painter.setPen(textColor()); + painter.setBrush(Qt::NoBrush); + painter.drawText(r, Qt::AlignCenter, QString(d->letter)); + break; + } + default: + break; + } +} diff --git a/qt-material-widgets/components/qtmaterialavatar.h b/qt-material-widgets/components/qtmaterialavatar.h new file mode 100644 index 0000000..9b99ef2 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialavatar.h @@ -0,0 +1,50 @@ +#ifndef QTMATERIALAVATAR_H +#define QTMATERIALAVATAR_H + +#include +#include "lib/qtmaterialtheme.h" + +class QtMaterialAvatarPrivate; + +class QtMaterialAvatar : public QWidget +{ + Q_OBJECT + +public: + explicit QtMaterialAvatar(QWidget *parent = 0); + explicit QtMaterialAvatar(const QIcon &icon, QWidget *parent = 0); + explicit QtMaterialAvatar(const QChar &letter, QWidget *parent = 0); + explicit QtMaterialAvatar(const QImage &image, QWidget *parent = 0); + ~QtMaterialAvatar(); + + void setUseThemeColors(bool value); + bool useThemeColors() const; + + void setTextColor(const QColor &color); + QColor textColor() const; + + void setBackgroundColor(const QColor &color); + QColor backgroundColor() const; + + QSize sizeHint() const Q_DECL_OVERRIDE; + + void setSize(int size); + int size() const; + + void setLetter(const QChar &letter); + void setImage(const QImage &image); + void setIcon(const QIcon &icon); + + Material::AvatarType type() const; + +protected: + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; + + const QScopedPointer d_ptr; + +private: + Q_DISABLE_COPY(QtMaterialAvatar) + Q_DECLARE_PRIVATE(QtMaterialAvatar) +}; + +#endif // QTMATERIALAVATAR_H diff --git a/qt-material-widgets/components/qtmaterialavatar_p.h b/qt-material-widgets/components/qtmaterialavatar_p.h new file mode 100644 index 0000000..44b378e --- /dev/null +++ b/qt-material-widgets/components/qtmaterialavatar_p.h @@ -0,0 +1,37 @@ +#ifndef QTMATERIALAVATAR_P_H +#define QTMATERIALAVATAR_P_H + +#include +#include +#include +#include +#include +#include +#include "lib/qtmaterialtheme.h" + +class QtMaterialAvatar; + +class QtMaterialAvatarPrivate +{ + Q_DISABLE_COPY(QtMaterialAvatarPrivate) + Q_DECLARE_PUBLIC(QtMaterialAvatar) + +public: + QtMaterialAvatarPrivate(QtMaterialAvatar *q); + ~QtMaterialAvatarPrivate(); + + void init(); + + QtMaterialAvatar *const q_ptr; + int size; + Material::AvatarType type; + QChar letter; + QImage image; + QIcon icon; + QPixmap pixmap; + bool useThemeColors; + QColor textColor; + QColor backgroundColor; +}; + +#endif // QTMATERIALAVATAR_P_H diff --git a/qt-material-widgets/components/qtmaterialbadge.cpp b/qt-material-widgets/components/qtmaterialbadge.cpp new file mode 100644 index 0000000..b30aa95 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialbadge.cpp @@ -0,0 +1,294 @@ +#include "qtmaterialbadge.h" +#include "qtmaterialbadge_p.h" +#include +#include "lib/qtmaterialstyle.h" + +/*! + * \class QtMaterialBadgePrivate + * \internal + */ + +/*! + * \internal + */ +QtMaterialBadgePrivate::QtMaterialBadgePrivate(QtMaterialBadge *q) + : q_ptr(q) +{ +} + +/*! + * \internal + */ +QtMaterialBadgePrivate::~QtMaterialBadgePrivate() +{ +} + +/*! + * \internal + */ +void QtMaterialBadgePrivate::init() +{ + Q_Q(QtMaterialBadge); + + x = 0; + y = 0; + padding = 10; + useThemeColors = true; + + q->setAttribute(Qt::WA_TransparentForMouseEvents); + + QFont font(q->font()); + font.setPointSizeF(10); + font.setStyleName("Bold"); + q->setFont(font); + + q->setText("+1"); +} + +/*! + * \class QtMaterialBadge + */ + +QtMaterialBadge::QtMaterialBadge(QWidget *parent) + : QtMaterialOverlayWidget(parent), + d_ptr(new QtMaterialBadgePrivate(this)) +{ + d_func()->init(); +} + +QtMaterialBadge::QtMaterialBadge(const QIcon &icon, QWidget *parent) + : QtMaterialOverlayWidget(parent), + d_ptr(new QtMaterialBadgePrivate(this)) +{ + d_func()->init(); + + setIcon(icon); +} + +QtMaterialBadge::QtMaterialBadge(const QString &text, QWidget *parent) + : QtMaterialOverlayWidget(parent), + d_ptr(new QtMaterialBadgePrivate(this)) +{ + d_func()->init(); + + setText(text); +} + +QtMaterialBadge::~QtMaterialBadge() +{ +} + +void QtMaterialBadge::setUseThemeColors(bool value) +{ + Q_D(QtMaterialBadge); + + if (d->useThemeColors == value) { + return; + } + + d->useThemeColors = value; + update(); +} + +bool QtMaterialBadge::useThemeColors() const +{ + Q_D(const QtMaterialBadge); + + return d->useThemeColors; +} + +void QtMaterialBadge::setTextColor(const QColor &color) +{ + Q_D(QtMaterialBadge); + + d->textColor = color; + + MATERIAL_DISABLE_THEME_COLORS + update(); +} + +QColor QtMaterialBadge::textColor() const +{ + Q_D(const QtMaterialBadge); + + if (d->useThemeColors || !d->textColor.isValid()) { + return QtMaterialStyle::instance().themeColor("canvas"); + } else { + return d->textColor; + } +} + +void QtMaterialBadge::setBackgroundColor(const QColor &color) +{ + Q_D(QtMaterialBadge); + + d->backgroundColor = color; + + MATERIAL_DISABLE_THEME_COLORS + update(); +} + +QColor QtMaterialBadge::backgroundColor() const +{ + Q_D(const QtMaterialBadge); + + if (d->useThemeColors || !d->backgroundColor.isValid()) { + return QtMaterialStyle::instance().themeColor("accent1"); + } else { + return d->backgroundColor; + } +} + +void QtMaterialBadge::setRelativePosition(const QPointF &pos) +{ + setRelativePosition(pos.x(), pos.y()); +} + +void QtMaterialBadge::setRelativePosition(qreal x, qreal y) +{ + Q_D(QtMaterialBadge); + + d->x = x; + d->y = y; + update(); +} + +QPointF QtMaterialBadge::relativePosition() const +{ + Q_D(const QtMaterialBadge); + + return QPointF(d->x, d->y); +} + +void QtMaterialBadge::setRelativeXPosition(qreal x) +{ + Q_D(QtMaterialBadge); + + d->x = x; + update(); +} + +qreal QtMaterialBadge::relativeXPosition() const +{ + Q_D(const QtMaterialBadge); + + return d->x; +} + +void QtMaterialBadge::setRelativeYPosition(qreal y) +{ + Q_D(QtMaterialBadge); + + d->y = y; + update(); +} + +qreal QtMaterialBadge::relativeYPosition() const +{ + Q_D(const QtMaterialBadge); + + return d->y; +} + +/*! + * \reimp + */ +QSize QtMaterialBadge::sizeHint() const +{ + const int s = getDiameter(); + return QSize(s+4, s+4); +} + +void QtMaterialBadge::setIcon(const QIcon &icon) +{ + Q_D(QtMaterialBadge); + + d->icon = icon; + update(); +} + +QIcon QtMaterialBadge::icon() const +{ + Q_D(const QtMaterialBadge); + + return d->icon; +} + +void QtMaterialBadge::setText(const QString &text) +{ + Q_D(QtMaterialBadge); + + d->text = text; + + if (!d->icon.isNull()) { + d->icon = QIcon(); + } + + d->size = fontMetrics().size(Qt::TextShowMnemonic, text); + + update(); +} + +QString QtMaterialBadge::text() const +{ + Q_D(const QtMaterialBadge); + + return d->text; +} + +/*! + * \reimp + */ +void QtMaterialBadge::paintEvent(QPaintEvent *event) +{ + Q_UNUSED(event) + + Q_D(QtMaterialBadge); + + QPainter painter(this); + painter.setRenderHint(QPainter::Antialiasing); + + painter.translate(d->x, d->y); + + QBrush brush; + brush.setStyle(Qt::SolidPattern); + brush.setColor(isEnabled() ? backgroundColor() + : QtMaterialStyle::instance().themeColor("disabled")); + painter.setBrush(brush); + painter.setPen(Qt::NoPen); + + const int s = getDiameter(); + + QRectF r(0, 0, s, s); + r.translate(QPointF((width()-s), (height()-s))/2); + + if (d->icon.isNull()) + { + painter.drawEllipse(r); + painter.setPen(textColor()); + painter.setBrush(Qt::NoBrush); + painter.drawText(r.translated(0, -0.5), Qt::AlignCenter, d->text); + } + else + { + painter.drawEllipse(r); + QRectF q(0, 0, 16, 16); + q.moveCenter(r.center()); + QPixmap pixmap = icon().pixmap(16, 16); + QPainter icon(&pixmap); + icon.setCompositionMode(QPainter::CompositionMode_SourceIn); + icon.fillRect(pixmap.rect(), textColor()); + painter.drawPixmap(q.toRect(), pixmap); + } +} + +int QtMaterialBadge::getDiameter() const +{ + Q_D(const QtMaterialBadge); + + if (d->icon.isNull()) { + return qMax(d->size.width(), d->size.height()) + d->padding; + } else { + return 24; + } +} diff --git a/qt-material-widgets/components/qtmaterialbadge.h b/qt-material-widgets/components/qtmaterialbadge.h new file mode 100644 index 0000000..deac3ab --- /dev/null +++ b/qt-material-widgets/components/qtmaterialbadge.h @@ -0,0 +1,61 @@ +#ifndef QTMATERIALBADGE_H +#define QTMATERIALBADGE_H + +#include "lib/qtmaterialoverlaywidget.h" + +class QtMaterialBadgePrivate; + +class QtMaterialBadge : public QtMaterialOverlayWidget +{ + Q_OBJECT + + Q_PROPERTY(QColor textColor WRITE setTextColor READ textColor) + Q_PROPERTY(QColor backgroundColor WRITE setBackgroundColor READ backgroundColor) + Q_PROPERTY(QPointF relativePosition WRITE setRelativePosition READ relativePosition) + +public: + explicit QtMaterialBadge(QWidget *parent = 0); + explicit QtMaterialBadge(const QIcon &icon, QWidget *parent = 0); + explicit QtMaterialBadge(const QString &text, QWidget *parent = 0); + ~QtMaterialBadge(); + + void setUseThemeColors(bool value); + bool useThemeColors() const; + + void setTextColor(const QColor &color); + QColor textColor() const; + + void setBackgroundColor(const QColor &color); + QColor backgroundColor() const; + + void setRelativePosition(const QPointF &pos); + void setRelativePosition(qreal x, qreal y); + QPointF relativePosition() const; + + void setRelativeXPosition(qreal x); + qreal relativeXPosition() const; + + void setRelativeYPosition(qreal y); + qreal relativeYPosition() const; + + QSize sizeHint() const Q_DECL_OVERRIDE; + + void setIcon(const QIcon &icon); + QIcon icon() const; + + void setText(const QString &text); + QString text() const; + +protected: + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; + + int getDiameter() const; + + const QScopedPointer d_ptr; + +private: + Q_DISABLE_COPY(QtMaterialBadge) + Q_DECLARE_PRIVATE(QtMaterialBadge) +}; + +#endif // QTMATERIALBADGE_H diff --git a/qt-material-widgets/components/qtmaterialbadge_p.h b/qt-material-widgets/components/qtmaterialbadge_p.h new file mode 100644 index 0000000..19757e7 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialbadge_p.h @@ -0,0 +1,34 @@ +#ifndef QTMATERIALBADGE_P_H +#define QTMATERIALBADGE_P_H + +#include +#include +#include +#include + +class QtMaterialBadge; + +class QtMaterialBadgePrivate +{ + Q_DISABLE_COPY(QtMaterialBadgePrivate) + Q_DECLARE_PUBLIC(QtMaterialBadge) + +public: + QtMaterialBadgePrivate(QtMaterialBadge *q); + ~QtMaterialBadgePrivate(); + + void init(); + + QtMaterialBadge *const q_ptr; + QString text; + QColor textColor; + QColor backgroundColor; + QSize size; + QIcon icon; + qreal x; + qreal y; + int padding; + bool useThemeColors; +}; + +#endif // QTMATERIALBADGE_P_H diff --git a/qt-material-widgets/components/qtmaterialcheckbox.cpp b/qt-material-widgets/components/qtmaterialcheckbox.cpp new file mode 100644 index 0000000..b693a90 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialcheckbox.cpp @@ -0,0 +1,85 @@ +#include "qtmaterialcheckbox.h" +#include "qtmaterialcheckbox_p.h" +#include +#include +#include +#include "lib/qtmaterialcheckable_internal.h" + +/*! + * \class QtMaterialCheckBoxPrivate + * \internal + */ + +/*! + * \internal + */ +QtMaterialCheckBoxPrivate::QtMaterialCheckBoxPrivate(QtMaterialCheckBox *q) + : QtMaterialCheckablePrivate(q) +{ +} + +/*! + * \internal + */ +QtMaterialCheckBoxPrivate::~QtMaterialCheckBoxPrivate() +{ +} + +/*! + * \internal + */ +void QtMaterialCheckBoxPrivate::init() +{ + Q_Q(QtMaterialCheckBox); + + checkedState->assignProperty(checkedIcon, "iconSize", 24); + uncheckedState->assignProperty(checkedIcon, "iconSize", 0); + + QPropertyAnimation *animation; + + animation = new QPropertyAnimation(checkedIcon, "iconSize", q); + animation->setDuration(300); + uncheckedTransition->addAnimation(animation); + + animation = new QPropertyAnimation(checkedIcon, "iconSize", q); + animation->setDuration(1300); + checkedTransition->addAnimation(animation); + + animation = new QPropertyAnimation(checkedIcon, "opacity", q); + animation->setDuration(440); + checkedTransition->addAnimation(animation); + + animation = new QPropertyAnimation(checkedIcon, "opacity", q); + animation->setDuration(440); + uncheckedTransition->addAnimation(animation); + + animation = new QPropertyAnimation(uncheckedIcon, "opacity", q); + animation->setDuration(440); + checkedTransition->addAnimation(animation); + + animation = new QPropertyAnimation(uncheckedIcon, "opacity", q); + animation->setDuration(440); + uncheckedTransition->addAnimation(animation); + + animation = new QPropertyAnimation(uncheckedIcon, "color", q); + animation->setDuration(440); + checkedTransition->addAnimation(animation); + + animation = new QPropertyAnimation(uncheckedIcon, "color", q); + animation->setDuration(440); + uncheckedTransition->addAnimation(animation); +} + +/*! + * \class QtMaterialCheckBox + */ + +QtMaterialCheckBox::QtMaterialCheckBox(QWidget *parent) + : QtMaterialCheckable(*new QtMaterialCheckBoxPrivate(this), parent) +{ + d_func()->init(); +} + +QtMaterialCheckBox::~QtMaterialCheckBox() +{ +} diff --git a/qt-material-widgets/components/qtmaterialcheckbox.h b/qt-material-widgets/components/qtmaterialcheckbox.h new file mode 100644 index 0000000..5aaa8f4 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialcheckbox.h @@ -0,0 +1,21 @@ +#ifndef QTMATERIALCHECKBOX_H +#define QTMATERIALCHECKBOX_H + +#include "lib/qtmaterialcheckable.h" + +class QtMaterialCheckBoxPrivate; + +class QtMaterialCheckBox : public QtMaterialCheckable +{ + Q_OBJECT + +public: + explicit QtMaterialCheckBox(QWidget *parent = 0); + ~QtMaterialCheckBox(); + +private: + Q_DISABLE_COPY(QtMaterialCheckBox) + Q_DECLARE_PRIVATE(QtMaterialCheckBox) +}; + +#endif // QTMATERIALCHECKBOX_H diff --git a/qt-material-widgets/components/qtmaterialcheckbox_p.h b/qt-material-widgets/components/qtmaterialcheckbox_p.h new file mode 100644 index 0000000..daa62d7 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialcheckbox_p.h @@ -0,0 +1,20 @@ +#ifndef QTMATERIALCHECKBOX_P_H +#define QTMATERIALCHECKBOX_P_H + +#include "lib/qtmaterialcheckable_p.h" + +class QtMaterialCheckBox; + +class QtMaterialCheckBoxPrivate : public QtMaterialCheckablePrivate +{ + Q_DISABLE_COPY(QtMaterialCheckBoxPrivate) + Q_DECLARE_PUBLIC(QtMaterialCheckBox) + +public: + QtMaterialCheckBoxPrivate(QtMaterialCheckBox *q); + ~QtMaterialCheckBoxPrivate(); + + void init(); +}; + +#endif // QTMATERIALCHECKBOX_P_H diff --git a/qt-material-widgets/components/qtmaterialcircularprogress.cpp b/qt-material-widgets/components/qtmaterialcircularprogress.cpp new file mode 100644 index 0000000..f38ef01 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialcircularprogress.cpp @@ -0,0 +1,255 @@ +#include "qtmaterialcircularprogress.h" +#include "qtmaterialcircularprogress_p.h" +#include +#include +#include +#include +#include "qtmaterialcircularprogress_internal.h" +#include "lib/qtmaterialstyle.h" + +/*! + * \class QtMaterialCircularProgressPrivate + * \internal + */ + +QtMaterialCircularProgressPrivate::QtMaterialCircularProgressPrivate(QtMaterialCircularProgress *q) + : q_ptr(q) +{ +} + +QtMaterialCircularProgressPrivate::~QtMaterialCircularProgressPrivate() +{ +} + +void QtMaterialCircularProgressPrivate::init() +{ + Q_Q(QtMaterialCircularProgress); + + delegate = new QtMaterialCircularProgressDelegate(q); + progressType = Material::IndeterminateProgress; + penWidth = 6.25; + size = 64; + useThemeColors = true; + + q->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, + QSizePolicy::MinimumExpanding)); + + QParallelAnimationGroup *group = new QParallelAnimationGroup(q); + group->setLoopCount(-1); + + QPropertyAnimation *animation; + + animation = new QPropertyAnimation(q); + animation->setPropertyName("dashLength"); + animation->setTargetObject(delegate); + animation->setEasingCurve(QEasingCurve::InOutQuad); + animation->setStartValue(0.1); + animation->setKeyValueAt(0.15, 0.2); + animation->setKeyValueAt(0.6, 20); + animation->setKeyValueAt(0.7, 20); + animation->setEndValue(20); + animation->setDuration(2050); + + group->addAnimation(animation); + + animation = new QPropertyAnimation(q); + animation->setPropertyName("dashOffset"); + animation->setTargetObject(delegate); + animation->setEasingCurve(QEasingCurve::InOutSine); + animation->setStartValue(0); + animation->setKeyValueAt(0.15, 0); + animation->setKeyValueAt(0.6, -7); + animation->setKeyValueAt(0.7, -7); + animation->setEndValue(-25); + animation->setDuration(2050); + + group->addAnimation(animation); + + animation = new QPropertyAnimation(q); + animation->setPropertyName("angle"); + animation->setTargetObject(delegate); + animation->setStartValue(0); + animation->setEndValue(719); + animation->setDuration(2050); + + group->addAnimation(animation); + + group->start(); +} + +/*! + * \class QtMaterialCircularProgress + */ + +QtMaterialCircularProgress::QtMaterialCircularProgress(QWidget *parent) + : QProgressBar(parent), + d_ptr(new QtMaterialCircularProgressPrivate(this)) +{ + d_func()->init(); +} + +QtMaterialCircularProgress::~QtMaterialCircularProgress() +{ +} + +void QtMaterialCircularProgress::setProgressType(Material::ProgressType type) +{ + Q_D(QtMaterialCircularProgress); + + d->progressType = type; + update(); +} + +Material::ProgressType QtMaterialCircularProgress::progressType() const +{ + Q_D(const QtMaterialCircularProgress); + + return d->progressType; +} + +void QtMaterialCircularProgress::setUseThemeColors(bool value) +{ + Q_D(QtMaterialCircularProgress); + + if (d->useThemeColors == value) { + return; + } + + d->useThemeColors = value; + update(); +} + +bool QtMaterialCircularProgress::useThemeColors() const +{ + Q_D(const QtMaterialCircularProgress); + + return d->useThemeColors; +} + +void QtMaterialCircularProgress::setLineWidth(qreal width) +{ + Q_D(QtMaterialCircularProgress); + + d->penWidth = width; + update(); + updateGeometry(); +} + +qreal QtMaterialCircularProgress::lineWidth() const +{ + Q_D(const QtMaterialCircularProgress); + + return d->penWidth; +} + +void QtMaterialCircularProgress::setSize(int size) +{ + Q_D(QtMaterialCircularProgress); + + d->size = size; + update(); + updateGeometry(); +} + +int QtMaterialCircularProgress::size() const +{ + Q_D(const QtMaterialCircularProgress); + + return d->size; +} + +void QtMaterialCircularProgress::setColor(const QColor &color) +{ + Q_D(QtMaterialCircularProgress); + + d->color = color; + + MATERIAL_DISABLE_THEME_COLORS + update(); +} + +QColor QtMaterialCircularProgress::color() const +{ + Q_D(const QtMaterialCircularProgress); + + if (d->useThemeColors || !d->color.isValid()) { + return QtMaterialStyle::instance().themeColor("primary1"); + } else { + return d->color; + } +} + +/*! + * \reimp + */ +QSize QtMaterialCircularProgress::sizeHint() const +{ + Q_D(const QtMaterialCircularProgress); + + const qreal s = d->size+d->penWidth+8; + return QSize(s, s); +} + +/*! + * \reimp + */ +void QtMaterialCircularProgress::paintEvent(QPaintEvent *event) +{ + Q_UNUSED(event) + + Q_D(QtMaterialCircularProgress); + + QPainter painter(this); + painter.setRenderHint(QPainter::Antialiasing); + + if (!isEnabled()) + { + QPen pen; + pen.setCapStyle(Qt::RoundCap); + pen.setWidthF(d->penWidth); + pen.setColor(QtMaterialStyle::instance().themeColor("border")); + painter.setPen(pen); + painter.drawLine(rect().center()-QPointF(20, 20), rect().center()+QPointF(20, 20)); + painter.drawLine(rect().center()+QPointF(20, -20), rect().center()-QPointF(20, -20)); + return; + } + + if (Material::IndeterminateProgress == d->progressType) + { + painter.translate(width()/2, height()/2); + painter.rotate(d->delegate->angle()); + } + + QPen pen; + pen.setCapStyle(Qt::RoundCap); + pen.setWidthF(d->penWidth); + pen.setColor(color()); + + if (Material::IndeterminateProgress == d->progressType) + { + QVector pattern; + pattern << d->delegate->dashLength()*d->size/50 << 30*d->size/50; + + pen.setDashOffset(d->delegate->dashOffset()*d->size/50); + pen.setDashPattern(pattern); + + painter.setPen(pen); + + painter.drawEllipse(QPoint(0, 0), d->size/2, d->size/2); + } + else + { + painter.setPen(pen); + + const qreal x = (width()-d->size)/2; + const qreal y = (height()-d->size)/2; + + const qreal a = 360*(value()-minimum())/(maximum()-minimum()); + + QPainterPath path; + path.arcMoveTo(x, y, d->size, d->size, 0); + path.arcTo(x, y, d->size, d->size, 0, a); + + painter.drawPath(path); + } +} diff --git a/qt-material-widgets/components/qtmaterialcircularprogress.h b/qt-material-widgets/components/qtmaterialcircularprogress.h new file mode 100644 index 0000000..dfc306e --- /dev/null +++ b/qt-material-widgets/components/qtmaterialcircularprogress.h @@ -0,0 +1,48 @@ +#ifndef QTMATERIALCIRCULARPROGRESS_H +#define QTMATERIALCIRCULARPROGRESS_H + +#include +#include "lib/qtmaterialtheme.h" + +class QtMaterialCircularProgressPrivate; + +class QtMaterialCircularProgress : public QProgressBar +{ + Q_OBJECT + + Q_PROPERTY(qreal lineWidth WRITE setLineWidth READ lineWidth) + Q_PROPERTY(qreal size WRITE setSize READ size) + Q_PROPERTY(QColor color WRITE setColor READ color) + +public: + explicit QtMaterialCircularProgress(QWidget *parent = 0); + ~QtMaterialCircularProgress(); + + void setProgressType(Material::ProgressType type); + Material::ProgressType progressType() const; + + void setUseThemeColors(bool value); + bool useThemeColors() const; + + void setLineWidth(qreal width); + qreal lineWidth() const; + + void setSize(int size); + int size() const; + + void setColor(const QColor &color); + QColor color() const; + + QSize sizeHint() const Q_DECL_OVERRIDE; + +protected: + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; + + const QScopedPointer d_ptr; + +private: + Q_DISABLE_COPY(QtMaterialCircularProgress) + Q_DECLARE_PRIVATE(QtMaterialCircularProgress) +}; + +#endif // QTMATERIALCIRCULARPROGRESS_H diff --git a/qt-material-widgets/components/qtmaterialcircularprogress_internal.cpp b/qt-material-widgets/components/qtmaterialcircularprogress_internal.cpp new file mode 100644 index 0000000..b11a25f --- /dev/null +++ b/qt-material-widgets/components/qtmaterialcircularprogress_internal.cpp @@ -0,0 +1,20 @@ +#include "qtmaterialcircularprogress_internal.h" + +/*! + * \class QtMaterialCircularProgressDelegate + * \internal + */ + +QtMaterialCircularProgressDelegate::QtMaterialCircularProgressDelegate(QtMaterialCircularProgress *parent) + : QObject(parent), + m_progress(parent), + m_dashOffset(0), + m_dashLength(89), + m_angle(0) +{ + Q_ASSERT(parent); +} + +QtMaterialCircularProgressDelegate::~QtMaterialCircularProgressDelegate() +{ +} diff --git a/qt-material-widgets/components/qtmaterialcircularprogress_internal.h b/qt-material-widgets/components/qtmaterialcircularprogress_internal.h new file mode 100644 index 0000000..a05bd63 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialcircularprogress_internal.h @@ -0,0 +1,70 @@ +#ifndef QTMATERIALCIRCULARPROGRESS_INTERNAL_H +#define QTMATERIALCIRCULARPROGRESS_INTERNAL_H + +#include +#include "qtmaterialcircularprogress.h" + +class QtMaterialCircularProgressDelegate : public QObject +{ + Q_OBJECT + + Q_PROPERTY(qreal dashOffset WRITE setDashOffset READ dashOffset) + Q_PROPERTY(qreal dashLength WRITE setDashLength READ dashLength) + Q_PROPERTY(int angle WRITE setAngle READ angle) + +public: + QtMaterialCircularProgressDelegate(QtMaterialCircularProgress *parent); + ~QtMaterialCircularProgressDelegate(); + + inline void setDashOffset(qreal offset); + inline qreal dashOffset() const; + + inline void setDashLength(qreal length); + inline qreal dashLength() const; + + inline void setAngle(int angle); + inline int angle() const; + +private: + Q_DISABLE_COPY(QtMaterialCircularProgressDelegate) + + QtMaterialCircularProgress *const m_progress; + qreal m_dashOffset; + qreal m_dashLength; + int m_angle; +}; + +inline void QtMaterialCircularProgressDelegate::setDashOffset(qreal offset) +{ + m_dashOffset = offset; + m_progress->update(); +} + +inline qreal QtMaterialCircularProgressDelegate::dashOffset() const +{ + return m_dashOffset; +} + +inline void QtMaterialCircularProgressDelegate::setDashLength(qreal length) +{ + m_dashLength = length; + m_progress->update(); +} + +inline qreal QtMaterialCircularProgressDelegate::dashLength() const +{ + return m_dashLength; +} + +inline void QtMaterialCircularProgressDelegate::setAngle(int angle) +{ + m_angle = angle; + m_progress->update(); +} + +inline int QtMaterialCircularProgressDelegate::angle() const +{ + return m_angle; +} + +#endif // QTMATERIALCIRCULARPROGRESS_INTERNAL_H diff --git a/qt-material-widgets/components/qtmaterialcircularprogress_p.h b/qt-material-widgets/components/qtmaterialcircularprogress_p.h new file mode 100644 index 0000000..451bc9c --- /dev/null +++ b/qt-material-widgets/components/qtmaterialcircularprogress_p.h @@ -0,0 +1,30 @@ +#ifndef QTMATERIALCIRCULARPROGRESS_P_H +#define QTMATERIALCIRCULARPROGRESS_P_H + +#include +#include "lib/qtmaterialtheme.h" + +class QtMaterialCircularProgress; +class QtMaterialCircularProgressDelegate; + +class QtMaterialCircularProgressPrivate +{ + Q_DISABLE_COPY(QtMaterialCircularProgressPrivate) + Q_DECLARE_PUBLIC(QtMaterialCircularProgress) + +public: + QtMaterialCircularProgressPrivate(QtMaterialCircularProgress *q); + ~QtMaterialCircularProgressPrivate(); + + void init(); + + QtMaterialCircularProgress *const q_ptr; + QtMaterialCircularProgressDelegate *delegate; + Material::ProgressType progressType; + QColor color; + qreal penWidth; + int size; + bool useThemeColors; +}; + +#endif // QTMATERIALCIRCULARPROGRESS_P_H diff --git a/qt-material-widgets/components/qtmaterialdialog.cpp b/qt-material-widgets/components/qtmaterialdialog.cpp new file mode 100644 index 0000000..82afc89 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialdialog.cpp @@ -0,0 +1,167 @@ +#include "qtmaterialdialog.h" +#include "qtmaterialdialog_p.h" +#include +#include +#include +#include +#include +#include +#include +#include "qtmaterialdialog_internal.h" +#include "lib/qtmaterialstatetransition.h" + +/*! + * \class QtMaterialDialogPrivate + * \internal + */ + +QtMaterialDialogPrivate::QtMaterialDialogPrivate(QtMaterialDialog *q) + : q_ptr(q) +{ +} + +QtMaterialDialogPrivate::~QtMaterialDialogPrivate() +{ +} + +void QtMaterialDialogPrivate::init() +{ + Q_Q(QtMaterialDialog); + + dialogWindow = new QtMaterialDialogWindow(q); + proxyStack = new QStackedLayout; + stateMachine = new QStateMachine(q); + proxy = new QtMaterialDialogProxy(dialogWindow, proxyStack, q); + + QVBoxLayout *layout = new QVBoxLayout; + q->setLayout(layout); + + QWidget *widget = new QWidget; + widget->setLayout(proxyStack); + widget->setMinimumWidth(400); + + QGraphicsDropShadowEffect *effect = new QGraphicsDropShadowEffect; + effect->setColor(QColor(0, 0, 0, 200)); + effect->setBlurRadius(64); + effect->setOffset(0, 13); + widget->setGraphicsEffect(effect); + + layout->addWidget(widget); + layout->setAlignment(widget, Qt::AlignCenter); + + proxyStack->addWidget(dialogWindow); + proxyStack->addWidget(proxy); + proxyStack->setCurrentIndex(1); + + q->setAttribute(Qt::WA_TransparentForMouseEvents); + + QState *hiddenState = new QState; + QState *visibleState = new QState; + + stateMachine->addState(hiddenState); + stateMachine->addState(visibleState); + stateMachine->setInitialState(hiddenState); + + QtMaterialStateTransition *transition; + + transition = new QtMaterialStateTransition(DialogShowTransition); + transition->setTargetState(visibleState); + hiddenState->addTransition(transition); + + transition = new QtMaterialStateTransition(DialogHideTransition); + transition->setTargetState(hiddenState); + visibleState->addTransition(transition); + + visibleState->assignProperty(proxy, "opacity", 1); + visibleState->assignProperty(effect, "color", QColor(0, 0, 0, 200)); + visibleState->assignProperty(dialogWindow, "offset", 0); + hiddenState->assignProperty(proxy, "opacity", 0); + hiddenState->assignProperty(effect, "color", QColor(0, 0, 0, 0)); + hiddenState->assignProperty(dialogWindow, "offset", 200); + + QPropertyAnimation *animation; + + animation = new QPropertyAnimation(proxy, "opacity", q); + animation->setDuration(280); + stateMachine->addDefaultAnimation(animation); + + animation = new QPropertyAnimation(effect, "color", q); + animation->setDuration(280); + stateMachine->addDefaultAnimation(animation); + + animation = new QPropertyAnimation(dialogWindow, "offset", q); + animation->setDuration(280); + animation->setEasingCurve(QEasingCurve::OutCirc); + stateMachine->addDefaultAnimation(animation); + + QObject::connect(visibleState, SIGNAL(propertiesAssigned()), + proxy, SLOT(makeOpaque())); + QObject::connect(hiddenState, SIGNAL(propertiesAssigned()), + proxy, SLOT(makeTransparent())); + + stateMachine->start(); + QCoreApplication::processEvents(); +} + +/*! + * \class QtMaterialDialog + */ + +QtMaterialDialog::QtMaterialDialog(QWidget *parent) + : QtMaterialOverlayWidget(parent), + d_ptr(new QtMaterialDialogPrivate(this)) +{ + d_func()->init(); +} + +QtMaterialDialog::~QtMaterialDialog() +{ +} + +QLayout *QtMaterialDialog::windowLayout() const +{ + Q_D(const QtMaterialDialog); + + return d->dialogWindow->layout(); +} + +void QtMaterialDialog::setWindowLayout(QLayout *layout) +{ + Q_D(QtMaterialDialog); + + d->dialogWindow->setLayout(layout); +} + +void QtMaterialDialog::showDialog() +{ + Q_D(QtMaterialDialog); + + d->stateMachine->postEvent(new QtMaterialStateTransitionEvent(DialogShowTransition)); + raise(); +} + +void QtMaterialDialog::hideDialog() +{ + Q_D(QtMaterialDialog); + + d->stateMachine->postEvent(new QtMaterialStateTransitionEvent(DialogHideTransition)); + setAttribute(Qt::WA_TransparentForMouseEvents); + d->proxyStack->setCurrentIndex(1); +} + +void QtMaterialDialog::paintEvent(QPaintEvent *event) +{ + Q_UNUSED(event) + + Q_D(QtMaterialDialog); + + QPainter painter(this); + + QBrush brush; + brush.setStyle(Qt::SolidPattern); + brush.setColor(Qt::black); + painter.setBrush(brush); + painter.setPen(Qt::NoPen); + painter.setOpacity(d->proxy->opacity()/2.4); + painter.drawRect(rect()); +} diff --git a/qt-material-widgets/components/qtmaterialdialog.h b/qt-material-widgets/components/qtmaterialdialog.h new file mode 100644 index 0000000..822a5d9 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialdialog.h @@ -0,0 +1,35 @@ +#ifndef QTMATERIALDIALOG_H +#define QTMATERIALDIALOG_H + +#include +#include "lib/qtmaterialoverlaywidget.h" + +class QLayout; +class QtMaterialDialogPrivate; + +class QtMaterialDialog : public QtMaterialOverlayWidget +{ + Q_OBJECT + +public: + explicit QtMaterialDialog(QWidget *parent = 0); + ~QtMaterialDialog(); + + QLayout *windowLayout() const; + void setWindowLayout(QLayout *layout); + +public slots: + void showDialog(); + void hideDialog(); + +protected: + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; + + const QScopedPointer d_ptr; + +private: + Q_DISABLE_COPY(QtMaterialDialog) + Q_DECLARE_PRIVATE(QtMaterialDialog) +}; + +#endif // QTMATERIALDIALOG_H diff --git a/qt-material-widgets/components/qtmaterialdialog_internal.cpp b/qt-material-widgets/components/qtmaterialdialog_internal.cpp new file mode 100644 index 0000000..6cac9b8 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialdialog_internal.cpp @@ -0,0 +1,127 @@ +#include "qtmaterialdialog_internal.h" +#include +#include +#include +#include +#include "qtmaterialdialog.h" + +/*! + * \class QtMaterialDialogProxy + * \internal + */ + +QtMaterialDialogProxy::QtMaterialDialogProxy( + QtMaterialDialogWindow *source, + QStackedLayout *layout, + QtMaterialDialog *dialog, + QWidget *parent) + : QWidget(parent), + m_source(source), + m_layout(layout), + m_dialog(dialog), + m_opacity(0), + m_mode(Transparent) +{ +} + +QtMaterialDialogProxy::~QtMaterialDialogProxy() +{ +} + +void QtMaterialDialogProxy::setOpacity(qreal opacity) +{ + m_opacity = opacity; + m_mode = SemiTransparent; + update(); + m_dialog->update(); +} + + +void QtMaterialDialogProxy::makeOpaque() +{ + m_dialog->setAttribute(Qt::WA_TransparentForMouseEvents, false); + m_layout->setCurrentIndex(0); + m_opacity = 1.0; + m_mode = Opaque; + update(); +} + +void QtMaterialDialogProxy::makeTransparent() +{ + m_opacity = 0.0; + m_mode = Transparent; + update(); +} + +QSize QtMaterialDialogProxy::sizeHint() const +{ + return m_source->sizeHint(); +} + +bool QtMaterialDialogProxy::event(QEvent *event) +{ + const QEvent::Type type = event->type(); + + if (QEvent::Move == type || QEvent::Resize == type) { + m_source->setGeometry(geometry()); + } + return QWidget::event(event); +} + +void QtMaterialDialogProxy::paintEvent(QPaintEvent *event) +{ + Q_UNUSED(event) + + QPainter painter(this); + + if (Transparent == m_mode) { + return; + } else if (Opaque != m_mode) { + painter.setOpacity(m_opacity); + } + QPixmap pm = m_source->grab(m_source->rect()); + painter.drawPixmap(0, 0, pm); +} + +/*! + * \class QtMaterialDialogWindow + * \internal + */ + +QtMaterialDialogWindow::QtMaterialDialogWindow( + QtMaterialDialog *dialog, + QWidget *parent) + : QWidget(parent), + m_dialog(dialog) +{ +} + +QtMaterialDialogWindow::~QtMaterialDialogWindow() +{ +} + +void QtMaterialDialogWindow::setOffset(int offset) +{ + QMargins margins = m_dialog->layout()->contentsMargins(); + margins.setBottom(offset); + m_dialog->layout()->setContentsMargins(margins); +} + +int QtMaterialDialogWindow::offset() const +{ + return m_dialog->layout()->contentsMargins().bottom(); +} + +void QtMaterialDialogWindow::paintEvent(QPaintEvent *event) +{ + Q_UNUSED(event) + + QPainter painter(this); + + QBrush brush; + brush.setStyle(Qt::SolidPattern); + brush.setColor(Qt::white); + painter.setPen(Qt::NoPen); + painter.setBrush(brush); + painter.drawRect(rect()); +} diff --git a/qt-material-widgets/components/qtmaterialdialog_internal.h b/qt-material-widgets/components/qtmaterialdialog_internal.h new file mode 100644 index 0000000..52f5a05 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialdialog_internal.h @@ -0,0 +1,79 @@ +#ifndef QTMATERIALDIALOG_INTERNAL_H +#define QTMATERIALDIALOG_INTERNAL_H + +#include + +class QStackedLayout; +class QtMaterialDialog; +class QtMaterialDialogWindow; + +class QtMaterialDialogProxy : public QWidget +{ + Q_OBJECT + + Q_PROPERTY(qreal opacity WRITE setOpacity READ opacity) + + enum TransparencyMode { + Transparent, + SemiTransparent, + Opaque, + }; + +public: + QtMaterialDialogProxy(QtMaterialDialogWindow *source, + QStackedLayout *layout, + QtMaterialDialog *dialog, + QWidget *parent = 0); + ~QtMaterialDialogProxy(); + + void setOpacity(qreal opacity); + inline qreal opacity() const; + +protected slots: + void makeOpaque(); + void makeTransparent(); + + QSize sizeHint() const Q_DECL_OVERRIDE; + +protected: + bool event(QEvent *event) Q_DECL_OVERRIDE; + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; + +private: + Q_DISABLE_COPY(QtMaterialDialogProxy) + + QtMaterialDialogWindow *const m_source; + QStackedLayout *const m_layout; + QtMaterialDialog *const m_dialog; + qreal m_opacity; + TransparencyMode m_mode; +}; + +inline qreal QtMaterialDialogProxy::opacity() const +{ + return m_opacity; +} + +class QtMaterialDialogWindow : public QWidget +{ + Q_OBJECT + + Q_PROPERTY(int offset WRITE setOffset READ offset) + +public: + explicit QtMaterialDialogWindow(QtMaterialDialog *dialog, QWidget *parent = 0); + ~QtMaterialDialogWindow(); + + void setOffset(int offset); + int offset() const; + +protected: + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; + +private: + Q_DISABLE_COPY(QtMaterialDialogWindow) + + QtMaterialDialog *const m_dialog; +}; + +#endif // QTMATERIALDIALOG_INTERNAL_H diff --git a/qt-material-widgets/components/qtmaterialdialog_p.h b/qt-material-widgets/components/qtmaterialdialog_p.h new file mode 100644 index 0000000..b10088e --- /dev/null +++ b/qt-material-widgets/components/qtmaterialdialog_p.h @@ -0,0 +1,30 @@ +#ifndef QTMATERIALDIALOG_P_H +#define QTMATERIALDIALOG_P_H + +#include + +class QStateMachine; +class QtMaterialDialog; +class QStackedLayout; +class QtMaterialDialogWindow; +class QtMaterialDialogProxy; + +class QtMaterialDialogPrivate +{ + Q_DISABLE_COPY(QtMaterialDialogPrivate) + Q_DECLARE_PUBLIC(QtMaterialDialog) + +public: + QtMaterialDialogPrivate(QtMaterialDialog *q); + ~QtMaterialDialogPrivate(); + + void init(); + + QtMaterialDialog *const q_ptr; + QtMaterialDialogWindow *dialogWindow; + QStackedLayout *proxyStack; + QStateMachine *stateMachine; + QtMaterialDialogProxy *proxy; +}; + +#endif // QTMATERIALDIALOG_P_H diff --git a/qt-material-widgets/components/qtmaterialdrawer.cpp b/qt-material-widgets/components/qtmaterialdrawer.cpp new file mode 100644 index 0000000..1bddd47 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialdrawer.cpp @@ -0,0 +1,234 @@ +#include "qtmaterialdrawer.h" +#include "qtmaterialdrawer_p.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include "qtmaterialdrawer_internal.h" + +/*! + * \class QtMaterialDrawerPrivate + * \internal + */ + +/*! + * \internal + */ +QtMaterialDrawerPrivate::QtMaterialDrawerPrivate(QtMaterialDrawer *q) + : q_ptr(q) +{ +} + +/*! + * \internal + */ +QtMaterialDrawerPrivate::~QtMaterialDrawerPrivate() +{ +} + +/*! + * \internal + */ +void QtMaterialDrawerPrivate::init() +{ + Q_Q(QtMaterialDrawer); + + widget = new QtMaterialDrawerWidget; + stateMachine = new QtMaterialDrawerStateMachine(widget, q); + window = new QWidget; + width = 250; + clickToClose = false; + autoRaise = true; + closed = true; + overlay = false; + + QVBoxLayout *layout = new QVBoxLayout; + layout->addWidget(window); + + widget->setLayout(layout); + widget->setFixedWidth(width+16); + + widget->setParent(q); + + stateMachine->start(); + QCoreApplication::processEvents(); +} + +/*! + * \class QtMaterialDrawer + */ + +QtMaterialDrawer::QtMaterialDrawer(QWidget *parent) + : QtMaterialOverlayWidget(parent), + d_ptr(new QtMaterialDrawerPrivate(this)) +{ + d_func()->init(); +} + +QtMaterialDrawer::~QtMaterialDrawer() +{ +} + +void QtMaterialDrawer::setDrawerWidth(int width) +{ + Q_D(QtMaterialDrawer); + + d->width = width; + d->stateMachine->updatePropertyAssignments(); + d->widget->setFixedWidth(width+16); +} + +int QtMaterialDrawer::drawerWidth() const +{ + Q_D(const QtMaterialDrawer); + + return d->width; +} + +void QtMaterialDrawer::setDrawerLayout(QLayout *layout) +{ + Q_D(QtMaterialDrawer); + + d->window->setLayout(layout); +} + +QLayout *QtMaterialDrawer::drawerLayout() const +{ + Q_D(const QtMaterialDrawer); + + return d->window->layout(); +} + +void QtMaterialDrawer::setClickOutsideToClose(bool state) +{ + Q_D(QtMaterialDrawer); + + d->clickToClose = state; +} + +bool QtMaterialDrawer::clickOutsideToClose() const +{ + Q_D(const QtMaterialDrawer); + + return d->clickToClose; +} + +void QtMaterialDrawer::setAutoRaise(bool state) +{ + Q_D(QtMaterialDrawer); + + d->autoRaise = state; +} + +bool QtMaterialDrawer::autoRaise() const +{ + Q_D(const QtMaterialDrawer); + + return d->autoRaise; +} + +void QtMaterialDrawer::setOverlayMode(bool value) +{ + Q_D(QtMaterialDrawer); + + d->overlay = value; + update(); +} + +bool QtMaterialDrawer::overlayMode() const +{ + Q_D(const QtMaterialDrawer); + + return d->overlay; +} + +void QtMaterialDrawer::openDrawer() +{ + Q_D(QtMaterialDrawer); + + emit d->stateMachine->signalOpen(); + + if (d->autoRaise) { + raise(); + } + setAttribute(Qt::WA_TransparentForMouseEvents, false); + setAttribute(Qt::WA_NoSystemBackground, false); +} + +void QtMaterialDrawer::closeDrawer() +{ + Q_D(QtMaterialDrawer); + + emit d->stateMachine->signalClose(); + + if (d->overlay) { + setAttribute(Qt::WA_TransparentForMouseEvents); + setAttribute(Qt::WA_NoSystemBackground); + } +} + +bool QtMaterialDrawer::event(QEvent *event) +{ + Q_D(QtMaterialDrawer); + + switch (event->type()) + { + case QEvent::Move: + case QEvent::Resize: + if (!d->overlay) { + setMask(QRegion(d->widget->rect())); + } + break; + default: + break; + } + return QtMaterialOverlayWidget::event(event); +} + +bool QtMaterialDrawer::eventFilter(QObject *obj, QEvent *event) +{ + Q_D(QtMaterialDrawer); + + switch (event->type()) + { + case QEvent::MouseButtonPress: { + QMouseEvent *mouseEvent; + if ((mouseEvent = static_cast(event))) { + const bool canClose = d->clickToClose || d->overlay; + if (!d->widget->geometry().contains(mouseEvent->pos()) && canClose) { + closeDrawer(); + } + } + break; + } + case QEvent::Move: + case QEvent::Resize: { + QLayout *lw = d->widget->layout(); + if (lw && 16 != lw->contentsMargins().right()) { + lw->setContentsMargins(0, 0, 16, 0); + } + break; + } + default: + break; + } + return QtMaterialOverlayWidget::eventFilter(obj, event); +} + +void QtMaterialDrawer::paintEvent(QPaintEvent *event) +{ + Q_UNUSED(event) + + Q_D(QtMaterialDrawer); + + if (!d->overlay || d->stateMachine->isInClosedState()) { + return; + } + QPainter painter(this); + painter.setOpacity(d->stateMachine->opacity()); + painter.fillRect(rect(), Qt::SolidPattern); +} diff --git a/qt-material-widgets/components/qtmaterialdrawer.h b/qt-material-widgets/components/qtmaterialdrawer.h new file mode 100644 index 0000000..7bf3219 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialdrawer.h @@ -0,0 +1,48 @@ +#ifndef QTMATERIALDRAWER_H +#define QTMATERIALDRAWER_H + +#include "lib/qtmaterialoverlaywidget.h" + +class QtMaterialDrawerPrivate; +class QtMaterialDrawerStateMachine; + +class QtMaterialDrawer : public QtMaterialOverlayWidget +{ + Q_OBJECT + +public: + explicit QtMaterialDrawer(QWidget *parent = 0); + ~QtMaterialDrawer(); + + void setDrawerWidth(int width); + int drawerWidth() const; + + void setDrawerLayout(QLayout *layout); + QLayout *drawerLayout() const; + + void setClickOutsideToClose(bool state); + bool clickOutsideToClose() const; + + void setAutoRaise(bool state); + bool autoRaise() const; + + void setOverlayMode(bool value); + bool overlayMode() const; + +public slots: + void openDrawer(); + void closeDrawer(); + +protected: + bool event(QEvent *event) Q_DECL_OVERRIDE; + bool eventFilter(QObject *obj, QEvent *event) Q_DECL_OVERRIDE; + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; + + const QScopedPointer d_ptr; + +private: + Q_DISABLE_COPY(QtMaterialDrawer) + Q_DECLARE_PRIVATE(QtMaterialDrawer) +}; + +#endif // QTMATERIALDRAWER_H diff --git a/qt-material-widgets/components/qtmaterialdrawer_internal.cpp b/qt-material-widgets/components/qtmaterialdrawer_internal.cpp new file mode 100644 index 0000000..7f32700 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialdrawer_internal.cpp @@ -0,0 +1,169 @@ +#include "qtmaterialdrawer_internal.h" +#include +#include +#include +#include +#include +#include "qtmaterialdrawer.h" + +/*! + * \class QtMaterialDrawerStateMachine + * \internal + */ + +QtMaterialDrawerStateMachine::QtMaterialDrawerStateMachine(QtMaterialDrawerWidget *drawer, QtMaterialDrawer *parent) + : QStateMachine(parent), + m_drawer(drawer), + m_main(parent), + m_openingState(new QState), + m_openedState(new QState), + m_closingState(new QState), + m_closedState(new QState), + m_opacity(0) +{ + addState(m_openingState); + addState(m_openedState); + addState(m_closingState); + addState(m_closedState); + + setInitialState(m_closedState); + + QSignalTransition *transition; + QPropertyAnimation *animation; + + transition = new QSignalTransition(this, SIGNAL(signalOpen())); + transition->setTargetState(m_openingState); + m_closedState->addTransition(transition); + + animation = new QPropertyAnimation(drawer, "offset", this); + animation->setDuration(220); + animation->setEasingCurve(QEasingCurve::OutCirc); + transition->addAnimation(animation); + + animation = new QPropertyAnimation(this, "opacity", this); + animation->setDuration(220); + transition->addAnimation(animation); + + transition = new QSignalTransition(animation, SIGNAL(finished())); + transition->setTargetState(m_openedState); + m_openingState->addTransition(transition); + + transition = new QSignalTransition(this, SIGNAL(signalClose())); + transition->setTargetState(m_closingState); + m_openingState->addTransition(transition); + + animation = new QPropertyAnimation(this, "opacity", this); + animation->setDuration(220); + transition->addAnimation(animation); + + animation = new QPropertyAnimation(drawer, "offset", this); + animation->setDuration(220); + animation->setEasingCurve(QEasingCurve::InCirc); + transition->addAnimation(animation); + + transition = new QSignalTransition(animation, SIGNAL(finished())); + transition->setTargetState(m_closedState); + m_closingState->addTransition(transition); + + transition = new QSignalTransition(this, SIGNAL(signalClose())); + transition->setTargetState(m_closingState); + m_openedState->addTransition(transition); + + animation = new QPropertyAnimation(drawer, "offset", this); + animation->setDuration(220); + animation->setEasingCurve(QEasingCurve::InCirc); + transition->addAnimation(animation); + + animation = new QPropertyAnimation(this, "opacity", this); + animation->setDuration(220); + transition->addAnimation(animation); + + transition = new QSignalTransition(animation, SIGNAL(finished())); + transition->setTargetState(m_closedState); + m_closingState->addTransition(transition); + + updatePropertyAssignments(); +} + +QtMaterialDrawerStateMachine::~QtMaterialDrawerStateMachine() +{ +} + +void QtMaterialDrawerStateMachine::setOpacity(qreal opacity) +{ + m_opacity = opacity; + m_main->update(); +} + +bool QtMaterialDrawerStateMachine::isInClosedState() const +{ + return m_closedState->active(); +} + +void QtMaterialDrawerStateMachine::updatePropertyAssignments() +{ + const qreal closedOffset = -(m_drawer->width()+32); + + m_closingState->assignProperty(m_drawer, "offset", closedOffset); + m_closedState->assignProperty(m_drawer, "offset", closedOffset); + + m_closingState->assignProperty(this, "opacity", 0); + m_closedState->assignProperty(this, "opacity", 0); + + m_openingState->assignProperty(m_drawer, "offset", 0); + m_openingState->assignProperty(this, "opacity", 0.4); +} + +/*! + * \class QtMaterialDrawerWidget + * \internal + */ + +QtMaterialDrawerWidget::QtMaterialDrawerWidget(QWidget *parent) + : QtMaterialOverlayWidget(parent), + m_offset(0) +{ +} + +QtMaterialDrawerWidget::~QtMaterialDrawerWidget() +{ +} + +void QtMaterialDrawerWidget::setOffset(int offset) +{ + m_offset = offset; + + QWidget *widget = parentWidget(); + if (widget) { + setGeometry(widget->rect().translated(offset, 0)); + } + update(); +} + +void QtMaterialDrawerWidget::paintEvent(QPaintEvent *event) +{ + Q_UNUSED(event) + + QPainter painter(this); + + QBrush brush; + brush.setStyle(Qt::SolidPattern); + brush.setColor(Qt::white); + painter.setBrush(brush); + painter.setPen(Qt::NoPen); + + painter.drawRect(rect().adjusted(0, 0, -16, 0)); + + QLinearGradient gradient(QPointF(width()-16, 0), QPointF(width(), 0)); + gradient.setColorAt(0, QColor(0, 0, 0, 80)); + gradient.setColorAt(0.5, QColor(0, 0, 0, 20)); + gradient.setColorAt(1, QColor(0, 0, 0, 0)); + painter.setBrush(QBrush(gradient)); + + painter.drawRect(width()-16, 0, 16, height()); +} + +QRect QtMaterialDrawerWidget::overlayGeometry() const +{ + return QtMaterialOverlayWidget::overlayGeometry().translated(m_offset, 0); +} diff --git a/qt-material-widgets/components/qtmaterialdrawer_internal.h b/qt-material-widgets/components/qtmaterialdrawer_internal.h new file mode 100644 index 0000000..76d219d --- /dev/null +++ b/qt-material-widgets/components/qtmaterialdrawer_internal.h @@ -0,0 +1,76 @@ +#ifndef DRAWER_INTERNAL_H +#define DRAWER_INTERNAL_H + +#include +#include "lib/qtmaterialoverlaywidget.h" + +class QtMaterialDrawer; +class QtMaterialDrawerWidget; + +class QtMaterialDrawerStateMachine : public QStateMachine +{ + Q_OBJECT + + Q_PROPERTY(qreal opacity WRITE setOpacity READ opacity) + +public: + explicit QtMaterialDrawerStateMachine(QtMaterialDrawerWidget *drawer, + QtMaterialDrawer *parent); + ~QtMaterialDrawerStateMachine(); + + void setOpacity(qreal opacity); + inline qreal opacity() const; + + bool isInClosedState() const; + + void updatePropertyAssignments(); + +signals: + void signalOpen(); + void signalClose(); + +private: + Q_DISABLE_COPY(QtMaterialDrawerStateMachine) + + QtMaterialDrawerWidget *const m_drawer; + QtMaterialDrawer *const m_main; + QState *const m_openingState; + QState *const m_openedState; + QState *const m_closingState; + QState *const m_closedState; + qreal m_opacity; +}; + +inline qreal QtMaterialDrawerStateMachine::opacity() const +{ + return m_opacity; +} + +class QtMaterialDrawerWidget : public QtMaterialOverlayWidget +{ + Q_OBJECT + + Q_PROPERTY(int offset WRITE setOffset READ offset) + +public: + explicit QtMaterialDrawerWidget(QWidget *parent = 0); + ~QtMaterialDrawerWidget(); + + void setOffset(int offset); + inline int offset() const; + +protected: + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; + + QRect overlayGeometry() const Q_DECL_OVERRIDE; + +private: + int m_offset; +}; + +inline int QtMaterialDrawerWidget::offset() const +{ + return m_offset; +} + +#endif // DRAWER_INTERNAL_H diff --git a/qt-material-widgets/components/qtmaterialdrawer_p.h b/qt-material-widgets/components/qtmaterialdrawer_p.h new file mode 100644 index 0000000..cdd064d --- /dev/null +++ b/qt-material-widgets/components/qtmaterialdrawer_p.h @@ -0,0 +1,33 @@ +#ifndef DRAWER_P_H +#define DRAWER_P_H + +#include + +class QtMaterialDrawer; +class QtMaterialDrawerWidget; +class QtMaterialDrawerStateMachine; + +class QtMaterialDrawerPrivate +{ + Q_DISABLE_COPY(QtMaterialDrawerPrivate) + Q_DECLARE_PUBLIC(QtMaterialDrawer) + +public: + QtMaterialDrawerPrivate(QtMaterialDrawer *q); + ~QtMaterialDrawerPrivate(); + + void init(); + void setClosed(bool value = true); + + QtMaterialDrawer *const q_ptr; + QtMaterialDrawerWidget *widget; + QtMaterialDrawerStateMachine *stateMachine; + QWidget *window; + int width; + bool clickToClose; + bool autoRaise; + bool closed; + bool overlay; +}; + +#endif // DRAWER_P_H diff --git a/qt-material-widgets/components/qtmaterialfab.cpp b/qt-material-widgets/components/qtmaterialfab.cpp new file mode 100644 index 0000000..3c3de8a --- /dev/null +++ b/qt-material-widgets/components/qtmaterialfab.cpp @@ -0,0 +1,321 @@ +#include "qtmaterialfab.h" +#include "qtmaterialfab_p.h" +#include +#include +#include +#include +#include "lib/qtmaterialrippleoverlay.h" + +/*! + * \class QtMaterialFloatingActionButtonPrivate + * \internal + */ + +/*! + * \internal + */ +QtMaterialFloatingActionButtonPrivate::QtMaterialFloatingActionButtonPrivate(QtMaterialFloatingActionButton *q) + : QtMaterialRaisedButtonPrivate(q) +{ +} + +/*! + * \internal + */ +QtMaterialFloatingActionButtonPrivate::~QtMaterialFloatingActionButtonPrivate() +{ +} + +/*! + * \internal + */ +void QtMaterialFloatingActionButtonPrivate::init() +{ + Q_Q(QtMaterialFloatingActionButton); + + corner = Qt::BottomRightCorner; + mini = false; + offsX = 34; + offsY = 36; + + q->setRole(Material::Primary); + q->setFixedSize(DefaultDiameter, DefaultDiameter); + q->setGeometry(fabGeometry()); + + setupProperties(); + + if (q->parentWidget()) { + q->parentWidget()->installEventFilter(q); + } + + q->setFixedRippleRadius(50); +} + +/*! + * \internal + */ +QRect QtMaterialFloatingActionButtonPrivate::fabGeometry() const +{ + Q_Q(const QtMaterialFloatingActionButton); + + QWidget *parent = q->parentWidget(); + if (!parent) { + return QRect(); + } + + const int s = mini ? MiniDiameter : DefaultDiameter; + + switch (corner) + { + case Qt::TopLeftCorner: + return QRect(offsX, offsY, s, s); + case Qt::TopRightCorner: + return QRect(parent->width()-(offsX+s), offsY, s, s); + case Qt::BottomLeftCorner: + return QRect(offsX, parent->height()-(offsY+s), s, s); + case Qt::BottomRightCorner: + default: + break; + } + return QRect(parent->width()-(offsX+s), parent->height()-(offsY+s), s, s); +} + +/*! + * \internal + */ +void QtMaterialFloatingActionButtonPrivate::setupProperties() +{ + if (mini) { + effect->setColor(QColor(0, 0, 0, 80)); + normalState->assignProperty(effect, "offset", QPointF(0, 3)); + normalState->assignProperty(effect, "blurRadius", 13); + pressedState->assignProperty(effect, "offset", QPointF(0, 7)); + pressedState->assignProperty(effect, "blurRadius", 20); + } else { + effect->setColor(QColor(0, 0, 0, 105)); + normalState->assignProperty(effect, "offset", QPointF(0, 6)); + normalState->assignProperty(effect, "blurRadius", 16); + pressedState->assignProperty(effect, "offset", QPointF(0, 11)); + pressedState->assignProperty(effect, "blurRadius", 28); + } +} + +/*! + * \class QtMaterialFloatingActionButton + */ + +QtMaterialFloatingActionButton::QtMaterialFloatingActionButton(const QIcon &icon, QWidget *parent) + : QtMaterialRaisedButton(*new QtMaterialFloatingActionButtonPrivate(this), parent) +{ + d_func()->init(); + + setIcon(icon); +} + +QtMaterialFloatingActionButton::~QtMaterialFloatingActionButton() +{ +} + +/*! + * \reimp + */ +QSize QtMaterialFloatingActionButton::sizeHint() const +{ + Q_D(const QtMaterialFloatingActionButton); + + if (d->mini) { + return QSize(QtMaterialFloatingActionButtonPrivate::MiniDiameter, + QtMaterialFloatingActionButtonPrivate::MiniDiameter); + } else { + return QSize(QtMaterialFloatingActionButtonPrivate::DefaultDiameter, + QtMaterialFloatingActionButtonPrivate::DefaultDiameter); + } +} + +void QtMaterialFloatingActionButton::setMini(bool state) +{ + Q_D(QtMaterialFloatingActionButton); + + if (d->mini == state) { + return; + } + + d->mini = state; + + setFixedSize(d->diameter(), d->diameter()); + setFixedRippleRadius(state ? 30 : 50); + + d->setupProperties(); + updateClipPath(); + setGeometry(d->fabGeometry()); + update(); +} + +bool QtMaterialFloatingActionButton::isMini() const +{ + Q_D(const QtMaterialFloatingActionButton); + + return d->mini; +} + +void QtMaterialFloatingActionButton::setCorner(Qt::Corner corner) +{ + Q_D(QtMaterialFloatingActionButton); + + if (d->corner == corner) { + return; + } + + d->corner = corner; + setGeometry(d->fabGeometry()); + update(); +} + +Qt::Corner QtMaterialFloatingActionButton::corner() const +{ + Q_D(const QtMaterialFloatingActionButton); + + return d->corner; +} + +void QtMaterialFloatingActionButton::setOffset(int x, int y) +{ + Q_D(QtMaterialFloatingActionButton); + + d->offsX = x; + d->offsY = y; + setGeometry(d->fabGeometry()); + update(); +} + +QSize QtMaterialFloatingActionButton::offset() const +{ + Q_D(const QtMaterialFloatingActionButton); + + return QSize(d->offsX, d->offsY); +} + +void QtMaterialFloatingActionButton::setXOffset(int x) +{ + Q_D(QtMaterialFloatingActionButton); + + d->offsX = x; + setGeometry(d->fabGeometry()); + update(); +} + +int QtMaterialFloatingActionButton::xOffset() const +{ + Q_D(const QtMaterialFloatingActionButton); + + return d->offsX; +} + +void QtMaterialFloatingActionButton::setYOffset(int y) +{ + Q_D(QtMaterialFloatingActionButton); + + d->offsY = y; + setGeometry(d->fabGeometry()); + update(); +} + +int QtMaterialFloatingActionButton::yOffset() const +{ + Q_D(const QtMaterialFloatingActionButton); + + return d->offsY; +} + +/*! + * \reimp + */ +bool QtMaterialFloatingActionButton::event(QEvent *event) +{ + Q_D(QtMaterialFloatingActionButton); + + if (!parent()) { + return QtMaterialRaisedButton::event(event); + } + switch (event->type()) + { + case QEvent::ParentChange: + { + parent()->installEventFilter(this); + setGeometry(d->fabGeometry()); + break; + } + case QEvent::ParentAboutToChange: + { + parent()->removeEventFilter(this); + break; + } + default: + break; + } + return QtMaterialRaisedButton::event(event); +} + +/*! + * \reimp + */ +bool QtMaterialFloatingActionButton::eventFilter(QObject *obj, QEvent *event) +{ + const QEvent::Type type = event->type(); + + if (QEvent::Move == type || QEvent::Resize == type) + { + Q_D(QtMaterialFloatingActionButton); + setGeometry(d->fabGeometry()); + } + + return QtMaterialRaisedButton::eventFilter(obj, event); +} + +/*! + * \reimp + */ +void QtMaterialFloatingActionButton::paintEvent(QPaintEvent *event) +{ + Q_UNUSED(event) + + Q_D(QtMaterialFloatingActionButton); + + QRect square = QRect(0, 0, d->diameter(), d->diameter()); + square.moveCenter(rect().center()); + + QPainter painter(this); + painter.setRenderHints(QPainter::Antialiasing); + + QBrush brush; + brush.setStyle(Qt::SolidPattern); + + if (isEnabled()) { + brush.setColor(backgroundColor()); + } else { + brush.setColor(disabledBackgroundColor()); + } + + painter.setBrush(brush); + painter.setPen(Qt::NoPen); + painter.drawEllipse(square); + + QRect iconGeometry(0, 0, d->iconSize(), d->iconSize()); + iconGeometry.moveCenter(square.center()); + + QPixmap pixmap = icon().pixmap(QSize(d->iconSize(), d->iconSize())); + QPainter icon(&pixmap); + icon.setCompositionMode(QPainter::CompositionMode_SourceIn); + icon.fillRect(pixmap.rect(), isEnabled() ? foregroundColor() + : disabledForegroundColor()); + painter.drawPixmap(iconGeometry, pixmap); +} + +void QtMaterialFloatingActionButton::updateClipPath() +{ + Q_D(QtMaterialFloatingActionButton); + + QPainterPath path; + path.addEllipse(0, 0, d->diameter(), d->diameter()); + d->rippleOverlay->setClipPath(path); +} diff --git a/qt-material-widgets/components/qtmaterialfab.h b/qt-material-widgets/components/qtmaterialfab.h new file mode 100644 index 0000000..78838b1 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialfab.h @@ -0,0 +1,46 @@ +#ifndef QTMATERIALFAB_H +#define QTMATERIALFAB_H + +#include "qtmaterialraisedbutton.h" + +class QtMaterialFloatingActionButtonPrivate; + +class QtMaterialFloatingActionButton : public QtMaterialRaisedButton +{ + Q_OBJECT + +public: + explicit QtMaterialFloatingActionButton(const QIcon &icon, QWidget *parent = 0); + ~QtMaterialFloatingActionButton(); + + QSize sizeHint() const Q_DECL_OVERRIDE; + + void setMini(bool state); + bool isMini() const; + + void setCorner(Qt::Corner corner); + Qt::Corner corner() const; + + void setOffset(int x, int y); + QSize offset() const; + + void setXOffset(int x); + int xOffset() const; + + void setYOffset(int y); + int yOffset() const; + +protected: + bool event(QEvent *event) Q_DECL_OVERRIDE; + bool eventFilter(QObject *obj, QEvent *event) Q_DECL_OVERRIDE; + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; + + void updateClipPath() Q_DECL_OVERRIDE; + +private: + Q_DISABLE_COPY(QtMaterialFloatingActionButton) + Q_DECLARE_PRIVATE(QtMaterialFloatingActionButton) + +}; + +#endif // QTMATERIALFAB_H diff --git a/qt-material-widgets/components/qtmaterialfab_p.h b/qt-material-widgets/components/qtmaterialfab_p.h new file mode 100644 index 0000000..fae2d3a --- /dev/null +++ b/qt-material-widgets/components/qtmaterialfab_p.h @@ -0,0 +1,50 @@ +#ifndef QTMATERIALFAB_P_H +#define QTMATERIALFAB_P_H + +#include "qtmaterialraisedbutton_p.h" + +class QtMaterialFloatingActionButton; + +class QtMaterialFloatingActionButtonPrivate : public QtMaterialRaisedButtonPrivate +{ + Q_DISABLE_COPY(QtMaterialFloatingActionButtonPrivate) + Q_DECLARE_PUBLIC(QtMaterialFloatingActionButton) + +public: + enum { + DefaultDiameter = 56, + MiniDiameter = 40 + }; + + enum { + DefaultIconSize = 24, + MiniIconSize = 18 + }; + + QtMaterialFloatingActionButtonPrivate(QtMaterialFloatingActionButton *q); + ~QtMaterialFloatingActionButtonPrivate(); + + void init(); + QRect fabGeometry() const; + void setupProperties(); + + inline int diameter() const; + inline int iconSize() const; + + Qt::Corner corner; + bool mini; + int offsX; + int offsY; +}; + +inline int QtMaterialFloatingActionButtonPrivate::diameter() const +{ + return mini ? MiniDiameter : DefaultDiameter; +} + +inline int QtMaterialFloatingActionButtonPrivate::iconSize() const +{ + return mini ? MiniIconSize : DefaultIconSize; +} + +#endif // QTMATERIALFAB_P_H diff --git a/qt-material-widgets/components/qtmaterialflatbutton.cpp b/qt-material-widgets/components/qtmaterialflatbutton.cpp new file mode 100644 index 0000000..b9d84d7 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialflatbutton.cpp @@ -0,0 +1,741 @@ +#include "qtmaterialflatbutton.h" +#include "qtmaterialflatbutton_p.h" +#include +#include +#include +#include +#include +#include +#include "lib/qtmaterialrippleoverlay.h" +#include "lib/qtmaterialripple.h" +#include "lib/qtmaterialstyle.h" +#include "qtmaterialflatbutton_internal.h" + +/*! + * \class QtMaterialFlatButtonPrivate + * \internal + */ + +/*! + * \internal + */ +QtMaterialFlatButtonPrivate::QtMaterialFlatButtonPrivate(QtMaterialFlatButton *q) + : q_ptr(q) +{ +} + +/*! + * \internal + */ +QtMaterialFlatButtonPrivate::~QtMaterialFlatButtonPrivate() +{ +} + +/*! + * \internal + */ +void QtMaterialFlatButtonPrivate::init() +{ + Q_Q(QtMaterialFlatButton); + + rippleOverlay = new QtMaterialRippleOverlay(q); + stateMachine = new QtMaterialFlatButtonStateMachine(q); + role = Material::Default; + rippleStyle = Material::PositionedRipple; + iconPlacement = Material::LeftIcon; + overlayStyle = Material::GrayOverlay; + bgMode = Qt::TransparentMode; + textAlignment = Qt::AlignHCenter; + fixedRippleRadius = 64; + cornerRadius = 3; + baseOpacity = 0.13; + fontSize = 10; // 10.5; + useThemeColors = true; + useFixedRippleRadius = false; + haloVisible = true; + + q->setStyle(&QtMaterialStyle::instance()); + q->setAttribute(Qt::WA_Hover); + q->setMouseTracking(true); + + QFont font("Roboto", fontSize, QFont::Medium); + font.setCapitalization(QFont::AllUppercase); + q->setFont(font); + + QPainterPath path; + path.addRoundedRect(q->rect(), cornerRadius, cornerRadius); + rippleOverlay->setClipPath(path); + rippleOverlay->setClipping(true); + + stateMachine->setupProperties(); + stateMachine->startAnimations(); +} + +/*! + * \class QtMaterialFlatButton + */ + +QtMaterialFlatButton::QtMaterialFlatButton(QWidget *parent, Material::ButtonPreset preset) + : QPushButton(parent), + d_ptr(new QtMaterialFlatButtonPrivate(this)) +{ + d_func()->init(); + + applyPreset(preset); +} + +QtMaterialFlatButton::QtMaterialFlatButton(const QString &text, QWidget *parent, Material::ButtonPreset preset) + : QPushButton(text, parent), + d_ptr(new QtMaterialFlatButtonPrivate(this)) +{ + d_func()->init(); + + applyPreset(preset); +} + +QtMaterialFlatButton::QtMaterialFlatButton(const QString &text, Material::Role role, QWidget *parent, Material::ButtonPreset preset) + : QPushButton(text, parent), + d_ptr(new QtMaterialFlatButtonPrivate(this)) +{ + d_func()->init(); + + applyPreset(preset); + setRole(role); +} + +QtMaterialFlatButton::~QtMaterialFlatButton() +{ +} + +void QtMaterialFlatButton::applyPreset(Material::ButtonPreset preset) +{ + switch (preset) + { + case Material::FlatPreset: + setOverlayStyle(Material::NoOverlay); + break; + case Material::CheckablePreset: + setOverlayStyle(Material::NoOverlay); + setCheckable(true); + setHaloVisible(false); + break; + default: + break; + } +} + +void QtMaterialFlatButton::setUseThemeColors(bool value) +{ + Q_D(QtMaterialFlatButton); + + if (d->useThemeColors == value) { + return; + } + + d->useThemeColors = value; + d->stateMachine->setupProperties(); +} + +bool QtMaterialFlatButton::useThemeColors() const +{ + Q_D(const QtMaterialFlatButton); + + return d->useThemeColors; +} + +void QtMaterialFlatButton::setRole(Material::Role role) +{ + Q_D(QtMaterialFlatButton); + + d->role = role; + d->stateMachine->setupProperties(); +} + +Material::Role QtMaterialFlatButton::role() const +{ + Q_D(const QtMaterialFlatButton); + + return d->role; +} + +void QtMaterialFlatButton::setForegroundColor(const QColor &color) +{ + Q_D(QtMaterialFlatButton); + + d->foregroundColor = color; + + MATERIAL_DISABLE_THEME_COLORS + update(); +} + +QColor QtMaterialFlatButton::foregroundColor() const +{ + Q_D(const QtMaterialFlatButton); + + if (d->useThemeColors || !d->foregroundColor.isValid()) + { + if (Qt::OpaqueMode == d->bgMode) { + return QtMaterialStyle::instance().themeColor("canvas"); + } + switch (d->role) + { + case Material::Primary: + return QtMaterialStyle::instance().themeColor("primary1"); + case Material::Secondary: + return QtMaterialStyle::instance().themeColor("accent1"); + case Material::Default: + default: + return QtMaterialStyle::instance().themeColor("text"); + } + } + return d->foregroundColor; +} + +void QtMaterialFlatButton::setBackgroundColor(const QColor &color) +{ + Q_D(QtMaterialFlatButton); + + d->backgroundColor = color; + + MATERIAL_DISABLE_THEME_COLORS + update(); +} + +QColor QtMaterialFlatButton::backgroundColor() const +{ + Q_D(const QtMaterialFlatButton); + + if (d->useThemeColors || !d->backgroundColor.isValid()) + { + switch (d->role) + { + case Material::Primary: + return QtMaterialStyle::instance().themeColor("primary1"); + case Material::Secondary: + return QtMaterialStyle::instance().themeColor("accent1"); + case Material::Default: + default: + return QtMaterialStyle::instance().themeColor("text"); + } + } + return d->backgroundColor; +} + +void QtMaterialFlatButton::setOverlayColor(const QColor &color) +{ + Q_D(QtMaterialFlatButton); + + d->overlayColor = color; + + MATERIAL_DISABLE_THEME_COLORS + + setOverlayStyle(Material::TintedOverlay); + update(); +} + +QColor QtMaterialFlatButton::overlayColor() const +{ + Q_D(const QtMaterialFlatButton); + + if (d->useThemeColors || !d->overlayColor.isValid()) { + return foregroundColor(); + } + return d->overlayColor; +} + +void QtMaterialFlatButton::setDisabledForegroundColor(const QColor &color) +{ + Q_D(QtMaterialFlatButton); + + d->disabledColor = color; + + MATERIAL_DISABLE_THEME_COLORS + update(); +} + +QColor QtMaterialFlatButton::disabledForegroundColor() const +{ + Q_D(const QtMaterialFlatButton); + + if (d->useThemeColors || !d->disabledColor.isValid()) { + return QtMaterialStyle::instance().themeColor("disabled"); + } else { + return d->disabledColor; + } +} + +void QtMaterialFlatButton::setDisabledBackgroundColor(const QColor &color) +{ + Q_D(QtMaterialFlatButton); + + d->disabledBackgroundColor = color; + + MATERIAL_DISABLE_THEME_COLORS + update(); +} + +QColor QtMaterialFlatButton::disabledBackgroundColor() const +{ + Q_D(const QtMaterialFlatButton); + + if (d->useThemeColors || !d->disabledBackgroundColor.isValid()) { + return QtMaterialStyle::instance().themeColor("disabled3"); + } else { + return d->disabledBackgroundColor; + } +} + +void QtMaterialFlatButton::setFontSize(qreal size) +{ + Q_D(QtMaterialFlatButton); + + d->fontSize = size; + + QFont f(font()); + f.setPointSizeF(size); + setFont(f); + + update(); +} + +qreal QtMaterialFlatButton::fontSize() const +{ + Q_D(const QtMaterialFlatButton); + + return d->fontSize; +} + +void QtMaterialFlatButton::setHaloVisible(bool visible) +{ + Q_D(QtMaterialFlatButton); + + d->haloVisible = visible; + update(); +} + +bool QtMaterialFlatButton::isHaloVisible() const +{ + Q_D(const QtMaterialFlatButton); + + return d->haloVisible; +} + +void QtMaterialFlatButton::setOverlayStyle(Material::OverlayStyle style) +{ + Q_D(QtMaterialFlatButton); + + d->overlayStyle = style; + update(); +} + +Material::OverlayStyle QtMaterialFlatButton::overlayStyle() const +{ + Q_D(const QtMaterialFlatButton); + + return d->overlayStyle; +} + +void QtMaterialFlatButton::setRippleStyle(Material::RippleStyle style) +{ + Q_D(QtMaterialFlatButton); + + d->rippleStyle = style; +} + +Material::RippleStyle QtMaterialFlatButton::rippleStyle() const +{ + Q_D(const QtMaterialFlatButton); + + return d->rippleStyle; +} + +void QtMaterialFlatButton::setIconPlacement(Material::ButtonIconPlacement placement) +{ + Q_D(QtMaterialFlatButton); + + d->iconPlacement = placement; + update(); +} + +Material::ButtonIconPlacement QtMaterialFlatButton::iconPlacement() const +{ + Q_D(const QtMaterialFlatButton); + + return d->iconPlacement; +} + +void QtMaterialFlatButton::setCornerRadius(qreal radius) +{ + Q_D(QtMaterialFlatButton); + + d->cornerRadius = radius; + updateClipPath(); + update(); +} + +qreal QtMaterialFlatButton::cornerRadius() const +{ + Q_D(const QtMaterialFlatButton); + + return d->cornerRadius; +} + +void QtMaterialFlatButton::setBackgroundMode(Qt::BGMode mode) +{ + Q_D(QtMaterialFlatButton); + + d->bgMode = mode; + d->stateMachine->setupProperties(); +} + +Qt::BGMode QtMaterialFlatButton::backgroundMode() const +{ + Q_D(const QtMaterialFlatButton); + + return d->bgMode; +} + +void QtMaterialFlatButton::setBaseOpacity(qreal opacity) +{ + Q_D(QtMaterialFlatButton); + + d->baseOpacity = opacity; + d->stateMachine->setupProperties(); +} + +qreal QtMaterialFlatButton::baseOpacity() const +{ + Q_D(const QtMaterialFlatButton); + + return d->baseOpacity; +} + +void QtMaterialFlatButton::setCheckable(bool value) +{ + Q_D(QtMaterialFlatButton); + + d->stateMachine->updateCheckedStatus(); + + QPushButton::setCheckable(value); +} + +void QtMaterialFlatButton::setHasFixedRippleRadius(bool value) +{ + Q_D(QtMaterialFlatButton); + + d->useFixedRippleRadius = value; +} + +bool QtMaterialFlatButton::hasFixedRippleRadius() const +{ + Q_D(const QtMaterialFlatButton); + + return d->useFixedRippleRadius; +} + +void QtMaterialFlatButton::setFixedRippleRadius(qreal radius) +{ + Q_D(QtMaterialFlatButton); + + d->fixedRippleRadius = radius; + setHasFixedRippleRadius(true); +} + +void QtMaterialFlatButton::setTextAlignment(Qt::Alignment alignment) +{ + Q_D(QtMaterialFlatButton); + + d->textAlignment = alignment; +} + +Qt::Alignment QtMaterialFlatButton::textAlignment() const +{ + Q_D(const QtMaterialFlatButton); + + return d->textAlignment; +} + +/*! + * \reimp + */ +QSize QtMaterialFlatButton::sizeHint() const +{ + ensurePolished(); + + QSize label(fontMetrics().size(Qt::TextSingleLine, text())); + + int w = 20 + label.width(); + int h = label.height(); + if (!icon().isNull()) { + w += iconSize().width() + QtMaterialFlatButton::IconPadding; + h = qMax(h, iconSize().height()); + } + return QSize(w, 20 + h); +} + +QtMaterialFlatButton::QtMaterialFlatButton(QtMaterialFlatButtonPrivate &d,QWidget *parent, Material::ButtonPreset preset) + : QPushButton(parent), + d_ptr(&d) +{ + d_func()->init(); + + applyPreset(preset); +} + +/*! + * \reimp + */ +void QtMaterialFlatButton::checkStateSet() +{ + Q_D(QtMaterialFlatButton); + + d->stateMachine->updateCheckedStatus(); + + QPushButton::checkStateSet(); +} + +/*! + * \reimp + */ +void QtMaterialFlatButton::mousePressEvent(QMouseEvent *event) +{ + Q_D(QtMaterialFlatButton); + + if (Material::NoRipple != d->rippleStyle) + { + QPoint pos; + qreal radiusEndValue; + + if (Material::CenteredRipple == d->rippleStyle) { + pos = rect().center(); + } else { + pos = event->pos(); + } + + if (d->useFixedRippleRadius) { + radiusEndValue = d->fixedRippleRadius; + } else { + radiusEndValue = static_cast(width())/2; + } + + QtMaterialRipple *ripple = new QtMaterialRipple(pos); + + ripple->setRadiusEndValue(radiusEndValue); + ripple->setOpacityStartValue(0.35); + ripple->setColor(foregroundColor()); + ripple->radiusAnimation()->setDuration(600); + ripple->opacityAnimation()->setDuration(1300); + + d->rippleOverlay->addRipple(ripple); + } + + QPushButton::mousePressEvent(event); +} + +/*! + * \reimp + */ +void QtMaterialFlatButton::mouseReleaseEvent(QMouseEvent *event) +{ + Q_D(QtMaterialFlatButton); + + QPushButton::mouseReleaseEvent(event); + + d->stateMachine->updateCheckedStatus(); +} + +void QtMaterialFlatButton::resizeEvent(QResizeEvent *event) +{ + QPushButton::resizeEvent(event); + + updateClipPath(); +} + +/*! + * \reimp + */ +void QtMaterialFlatButton::paintEvent(QPaintEvent *event) +{ + Q_UNUSED(event) + + Q_D(QtMaterialFlatButton); + + QPainter painter(this); + painter.setRenderHint(QPainter::Antialiasing); + + const qreal cr = d->cornerRadius; + + if (cr > 0) + { + QPainterPath path; + path.addRoundedRect(rect(), cr, cr); + + painter.setClipPath(path); + painter.setClipping(true); + } + + paintBackground(&painter); + paintHalo(&painter); + + painter.setOpacity(1); + painter.setClipping(false); + + paintForeground(&painter); +} + +/*! + * \internal + */ +void QtMaterialFlatButton::paintBackground(QPainter *painter) +{ + Q_D(QtMaterialFlatButton); + + const qreal overlayOpacity = d->stateMachine->overlayOpacity(); + const qreal checkedProgress = d->stateMachine->checkedOverlayProgress(); + + if (Qt::OpaqueMode == d->bgMode) { + QBrush brush; + brush.setStyle(Qt::SolidPattern); + if (isEnabled()) { + brush.setColor(backgroundColor()); + } else { + brush.setColor(disabledBackgroundColor()); + } + painter->setOpacity(1); + painter->setBrush(brush); + painter->setPen(Qt::NoPen); + painter->drawRect(rect()); + } + + QBrush brush; + brush.setStyle(Qt::SolidPattern); + painter->setPen(Qt::NoPen); + + if (!isEnabled()) { + return; + } + + if ((Material::NoOverlay != d->overlayStyle) && (overlayOpacity > 0)) { + if (Material::TintedOverlay == d->overlayStyle) { + brush.setColor(overlayColor()); + } else { + brush.setColor(Qt::gray); + } + painter->setOpacity(overlayOpacity); + painter->setBrush(brush); + painter->drawRect(rect()); + } + + if (isCheckable() && checkedProgress > 0) { + const qreal q = Qt::TransparentMode == d->bgMode ? 0.45 : 0.7; + brush.setColor(foregroundColor()); + painter->setOpacity(q*checkedProgress); + painter->setBrush(brush); + QRect r(rect()); + r.setHeight(static_cast(r.height())*checkedProgress); + painter->drawRect(r); + } +} + +/*! + * \internal + */ +void QtMaterialFlatButton::paintHalo(QPainter *painter) +{ + Q_D(QtMaterialFlatButton); + + if (!d->haloVisible) { + return; + } + + const qreal opacity = d->stateMachine->haloOpacity(); + const qreal s = d->stateMachine->haloScaleFactor()*d->stateMachine->haloSize(); + const qreal radius = static_cast(width())*s; + + if (isEnabled() && opacity > 0) { + QBrush brush; + brush.setStyle(Qt::SolidPattern); + brush.setColor(foregroundColor()); + painter->setOpacity(opacity); + painter->setBrush(brush); + painter->setPen(Qt::NoPen); + const QPointF center = rect().center(); + painter->drawEllipse(center, radius, radius); + } +} + +#define COLOR_INTERPOLATE(CH) (1-progress)*source.CH() + progress*dest.CH() + +/*! + * \internal + */ +void QtMaterialFlatButton::paintForeground(QPainter *painter) +{ + Q_D(QtMaterialFlatButton); + + if (isEnabled()) { + painter->setPen(foregroundColor()); + const qreal progress = d->stateMachine->checkedOverlayProgress(); + if (isCheckable() && progress > 0) { + QColor source = foregroundColor(); + QColor dest = Qt::TransparentMode == d->bgMode ? Qt::white + : backgroundColor(); + if (qFuzzyCompare(1, progress)) { + painter->setPen(dest); + } else { + painter->setPen(QColor(COLOR_INTERPOLATE(red), + COLOR_INTERPOLATE(green), + COLOR_INTERPOLATE(blue), + COLOR_INTERPOLATE(alpha))); + } + } + } else { + painter->setPen(disabledForegroundColor()); + } + + if (icon().isNull()) { + if (Qt::AlignLeft == d->textAlignment) { + painter->drawText(rect().adjusted(12, 0, 0, 0), Qt::AlignLeft | Qt::AlignVCenter, text()); + } else { + painter->drawText(rect(), Qt::AlignCenter, text()); + } + return; + } + + QSize textSize(fontMetrics().size(Qt::TextSingleLine, text())); + QSize base(size()-textSize); + + const int iw = iconSize().width() + IconPadding; + QPoint pos(Qt::AlignLeft == d->textAlignment ? 12 : (base.width()-iw)/2, 0); + + QRect textGeometry(pos + QPoint(0, base.height()/2), textSize); + QRect iconGeometry(pos + QPoint(0, (height()-iconSize().height())/2), iconSize()); + + if (Material::LeftIcon == d->iconPlacement) { + textGeometry.translate(iw, 0); + } else { + iconGeometry.translate(textSize.width() + IconPadding, 0); + } + + painter->drawText(textGeometry, Qt::AlignCenter, text()); + + QPixmap pixmap = icon().pixmap(iconSize()); + QPainter icon(&pixmap); + icon.setCompositionMode(QPainter::CompositionMode_SourceIn); + icon.fillRect(pixmap.rect(), painter->pen().color()); + painter->drawPixmap(iconGeometry, pixmap); +} + +/*! + * \internal + */ +void QtMaterialFlatButton::updateClipPath() +{ + Q_D(QtMaterialFlatButton); + + const qreal radius = d->cornerRadius; + + QPainterPath path; + path.addRoundedRect(rect(), radius, radius); + d->rippleOverlay->setClipPath(path); +} diff --git a/qt-material-widgets/components/qtmaterialflatbutton.h b/qt-material-widgets/components/qtmaterialflatbutton.h new file mode 100644 index 0000000..a74ab6a --- /dev/null +++ b/qt-material-widgets/components/qtmaterialflatbutton.h @@ -0,0 +1,112 @@ +#ifndef QTMATERIALFLATBUTTON_H +#define QTMATERIALFLATBUTTON_H + +#include +#include +#include "lib/qtmaterialtheme.h" + +class QtMaterialFlatButtonPrivate; + +class QtMaterialFlatButton : public QPushButton +{ + Q_OBJECT + + Q_PROPERTY(QColor foregroundColor WRITE setForegroundColor READ foregroundColor) + Q_PROPERTY(QColor backgroundColor WRITE setBackgroundColor READ backgroundColor) + Q_PROPERTY(QColor overlayColor WRITE setOverlayColor READ overlayColor) + Q_PROPERTY(QColor disabledForegroundColor WRITE setDisabledForegroundColor READ disabledForegroundColor) + Q_PROPERTY(QColor disabledBackgroundColor WRITE setDisabledBackgroundColor READ disabledBackgroundColor) + Q_PROPERTY(qreal fontSize WRITE setFontSize READ fontSize) + +public: + explicit QtMaterialFlatButton(QWidget *parent = 0, Material::ButtonPreset preset = Material::FlatPreset); + explicit QtMaterialFlatButton(const QString &text, QWidget *parent = 0, Material::ButtonPreset preset = Material::FlatPreset); + QtMaterialFlatButton(const QString &text, Material::Role role, QWidget *parent = 0, Material::ButtonPreset preset = Material::FlatPreset); + ~QtMaterialFlatButton(); + + void applyPreset(Material::ButtonPreset preset); + + void setUseThemeColors(bool value); + bool useThemeColors() const; + + void setRole(Material::Role role); + Material::Role role() const; + + void setForegroundColor(const QColor &color); + QColor foregroundColor() const; + + void setBackgroundColor(const QColor &color); + QColor backgroundColor() const; + + void setOverlayColor(const QColor &color); + QColor overlayColor() const; + + void setDisabledForegroundColor(const QColor &color); + QColor disabledForegroundColor() const; + + void setDisabledBackgroundColor(const QColor &color); + QColor disabledBackgroundColor() const; + + void setFontSize(qreal size); + qreal fontSize() const; + + void setHaloVisible(bool visible); + bool isHaloVisible() const; + + void setOverlayStyle(Material::OverlayStyle style); + Material::OverlayStyle overlayStyle() const; + + void setRippleStyle(Material::RippleStyle style); + Material::RippleStyle rippleStyle() const; + + void setIconPlacement(Material::ButtonIconPlacement placement); + Material::ButtonIconPlacement iconPlacement() const; + + void setCornerRadius(qreal radius); + qreal cornerRadius() const; + + void setBackgroundMode(Qt::BGMode mode); + Qt::BGMode backgroundMode() const; + + void setBaseOpacity(qreal opacity); + qreal baseOpacity() const; + + void setCheckable(bool value); + + void setHasFixedRippleRadius(bool value); + bool hasFixedRippleRadius() const; + + void setFixedRippleRadius(qreal radius); + + void setTextAlignment(Qt::Alignment alignment); + Qt::Alignment textAlignment() const; + + QSize sizeHint() const Q_DECL_OVERRIDE; + +protected: + enum { + IconPadding = 12 + }; + + QtMaterialFlatButton(QtMaterialFlatButtonPrivate &d, QWidget *parent = 0, Material::ButtonPreset preset = Material::FlatPreset); + + void checkStateSet() Q_DECL_OVERRIDE; + void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE; + void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE; + void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE; + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; + + virtual void paintBackground(QPainter *painter); + virtual void paintHalo(QPainter *painter); + virtual void paintForeground(QPainter *painter); + + virtual void updateClipPath(); + + const QScopedPointer d_ptr; + +private: + Q_DISABLE_COPY(QtMaterialFlatButton) + Q_DECLARE_PRIVATE(QtMaterialFlatButton) +}; + +#endif // QTMATERIALFLATBUTTON_H diff --git a/qt-material-widgets/components/qtmaterialflatbutton_internal.cpp b/qt-material-widgets/components/qtmaterialflatbutton_internal.cpp new file mode 100644 index 0000000..0709a45 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialflatbutton_internal.cpp @@ -0,0 +1,232 @@ +#include "qtmaterialflatbutton_internal.h" +#include +#include +#include +#include +#include "qtmaterialflatbutton.h" +#include "lib/qtmaterialstatetransition.h" + +/*! + * \class QtMaterialFlatButtonStateMachine + * \internal + */ + +QtMaterialFlatButtonStateMachine::QtMaterialFlatButtonStateMachine(QtMaterialFlatButton *parent) + : QStateMachine(parent), + m_button(parent), + m_topLevelState(new QState(QState::ParallelStates)), + m_configState(new QState(m_topLevelState)), + m_checkableState(new QState(m_topLevelState)), + m_checkedState(new QState(m_checkableState)), + m_uncheckedState(new QState(m_checkableState)), + m_neutralState(new QState(m_configState)), + m_neutralFocusedState(new QState(m_configState)), + m_hoveredState(new QState(m_configState)), + m_hoveredFocusedState(new QState(m_configState)), + m_pressedState(new QState(m_configState)), + m_haloAnimation(new QSequentialAnimationGroup(this)), + m_overlayOpacity(0), + m_checkedOverlayProgress(parent->isChecked() ? 1 : 0), + m_haloOpacity(0), + m_haloSize(0.8), + m_haloScaleFactor(1), + m_wasChecked(false) +{ + Q_ASSERT(parent); + + parent->installEventFilter(this); + + m_configState->setInitialState(m_neutralState); + addState(m_topLevelState); + setInitialState(m_topLevelState); + + m_checkableState->setInitialState(parent->isChecked() ? m_checkedState + : m_uncheckedState); + QtMaterialStateTransition *transition; + QPropertyAnimation *animation; + + transition = new QtMaterialStateTransition(FlatButtonCheckedTransition); + transition->setTargetState(m_checkedState); + m_uncheckedState->addTransition(transition); + + animation = new QPropertyAnimation(this, "checkedOverlayProgress", this); + animation->setDuration(200); + transition->addAnimation(animation); + + transition = new QtMaterialStateTransition(FlatButtonUncheckedTransition); + transition->setTargetState(m_uncheckedState); + m_checkedState->addTransition(transition); + + animation = new QPropertyAnimation(this, "checkedOverlayProgress", this); + animation->setDuration(200); + transition->addAnimation(animation); + + addTransition(m_button, QEvent::FocusIn, m_neutralState, m_neutralFocusedState); + addTransition(m_button, QEvent::FocusOut, m_neutralFocusedState, m_neutralState); + addTransition(m_button, QEvent::Enter, m_neutralState, m_hoveredState); + addTransition(m_button, QEvent::Leave, m_hoveredState, m_neutralState); + addTransition(m_button, QEvent::Enter, m_neutralFocusedState, m_hoveredFocusedState); + addTransition(m_button, QEvent::Leave, m_hoveredFocusedState, m_neutralFocusedState); + addTransition(m_button, QEvent::FocusIn, m_hoveredState, m_hoveredFocusedState); + addTransition(m_button, QEvent::FocusOut, m_hoveredFocusedState, m_hoveredState); + + transition = new QtMaterialStateTransition(FlatButtonPressedTransition); + transition->setTargetState(m_pressedState); + m_hoveredState->addTransition(transition); + + addTransition(m_button, QEvent::Leave, m_pressedState, m_neutralFocusedState); + addTransition(m_button, QEvent::FocusOut, m_pressedState, m_hoveredState); + + m_neutralState->assignProperty(this, "haloSize", 0); + m_neutralFocusedState->assignProperty(this, "haloSize", 0.7); + m_hoveredState->assignProperty(this, "haloSize", 0); + m_pressedState->assignProperty(this, "haloSize", 4); + m_hoveredFocusedState->assignProperty(this, "haloSize", 0.7); + + QPropertyAnimation *grow = new QPropertyAnimation(this); + QPropertyAnimation *shrink = new QPropertyAnimation(this); + + grow->setTargetObject(this); + grow->setPropertyName("haloScaleFactor"); + grow->setStartValue(0.56); + grow->setEndValue(0.63); + grow->setEasingCurve(QEasingCurve::InOutSine); + grow->setDuration(840); + + shrink->setTargetObject(this); + shrink->setPropertyName("haloScaleFactor"); + shrink->setStartValue(0.63); + shrink->setEndValue(0.56); + shrink->setEasingCurve(QEasingCurve::InOutSine); + shrink->setDuration(840); + + m_haloAnimation->addAnimation(grow); + m_haloAnimation->addAnimation(shrink); + m_haloAnimation->setLoopCount(-1); +} + +QtMaterialFlatButtonStateMachine::~QtMaterialFlatButtonStateMachine() +{ +} + +void QtMaterialFlatButtonStateMachine::setOverlayOpacity(qreal opacity) +{ + m_overlayOpacity = opacity; + m_button->update(); +} + +void QtMaterialFlatButtonStateMachine::setCheckedOverlayProgress(qreal progress) +{ + m_checkedOverlayProgress = progress; + m_button->update(); +} + +void QtMaterialFlatButtonStateMachine::setHaloOpacity(qreal opacity) +{ + m_haloOpacity = opacity; + m_button->update(); +} + +void QtMaterialFlatButtonStateMachine::setHaloSize(qreal size) +{ + m_haloSize = size; + m_button->update(); +} + +void QtMaterialFlatButtonStateMachine::setHaloScaleFactor(qreal factor) +{ + m_haloScaleFactor = factor; + m_button->update(); +} + +void QtMaterialFlatButtonStateMachine::startAnimations() +{ + m_haloAnimation->start(); + start(); +} + +void QtMaterialFlatButtonStateMachine::setupProperties() +{ + QColor overlayColor; + + if (Qt::TransparentMode == m_button->backgroundMode()) { + overlayColor = m_button->backgroundColor(); + } else { + overlayColor = m_button->foregroundColor(); + } + + const qreal baseOpacity = m_button->baseOpacity(); + + m_neutralState->assignProperty(this, "overlayOpacity", 0); + m_neutralState->assignProperty(this, "haloOpacity", 0); + m_neutralFocusedState->assignProperty(this, "overlayOpacity", 0); + m_neutralFocusedState->assignProperty(this, "haloOpacity", baseOpacity); + m_hoveredState->assignProperty(this, "overlayOpacity", baseOpacity); + m_hoveredState->assignProperty(this, "haloOpacity", 0); + m_hoveredFocusedState->assignProperty(this, "overlayOpacity", baseOpacity); + m_hoveredFocusedState->assignProperty(this, "haloOpacity", baseOpacity); + m_pressedState->assignProperty(this, "overlayOpacity", baseOpacity); + m_pressedState->assignProperty(this, "haloOpacity", 0); + m_checkedState->assignProperty(this, "checkedOverlayProgress", 1); + m_uncheckedState->assignProperty(this, "checkedOverlayProgress", 0); + + m_button->update(); +} + +void QtMaterialFlatButtonStateMachine::updateCheckedStatus() +{ + const bool checked = m_button->isChecked(); + if (m_wasChecked != checked) { + m_wasChecked = checked; + if (checked) { + postEvent(new QtMaterialStateTransitionEvent(FlatButtonCheckedTransition)); + } else { + postEvent(new QtMaterialStateTransitionEvent(FlatButtonUncheckedTransition)); + } + } +} + +bool QtMaterialFlatButtonStateMachine::eventFilter(QObject *watched, + QEvent *event) +{ + if (QEvent::FocusIn == event->type()) { + QFocusEvent *focusEvent = static_cast(event); + if (focusEvent && Qt::MouseFocusReason == focusEvent->reason()) { + postEvent(new QtMaterialStateTransitionEvent(FlatButtonPressedTransition)); + return true; + } + } + return QStateMachine::eventFilter(watched, event); +} + +void QtMaterialFlatButtonStateMachine::addTransition(QObject *object, + QEvent::Type eventType, + QState *fromState, + QState *toState) +{ + addTransition(new QEventTransition(object, eventType), fromState, toState); +} + +void QtMaterialFlatButtonStateMachine::addTransition(QAbstractTransition *transition, + QState *fromState, + QState *toState) +{ + transition->setTargetState(toState); + + QPropertyAnimation *animation; + + animation = new QPropertyAnimation(this, "overlayOpacity", this); + animation->setDuration(150); + transition->addAnimation(animation); + + animation = new QPropertyAnimation(this, "haloOpacity", this); + animation->setDuration(170); + transition->addAnimation(animation); + + animation = new QPropertyAnimation(this, "haloSize", this); + animation->setDuration(350); + animation->setEasingCurve(QEasingCurve::OutCubic); + transition->addAnimation(animation); + + fromState->addTransition(transition); +} diff --git a/qt-material-widgets/components/qtmaterialflatbutton_internal.h b/qt-material-widgets/components/qtmaterialflatbutton_internal.h new file mode 100644 index 0000000..ff93972 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialflatbutton_internal.h @@ -0,0 +1,103 @@ +#ifndef QTMATERIALFLATBUTTON_INTERNAL_H +#define QTMATERIALFLATBUTTON_INTERNAL_H + +#include +#include + +class QtMaterialFlatButton; +class QSequentialAnimationGroup; + +class QtMaterialFlatButtonStateMachine : public QStateMachine +{ + Q_OBJECT + + Q_PROPERTY(qreal overlayOpacity WRITE setOverlayOpacity READ overlayOpacity) + Q_PROPERTY(qreal checkedOverlayProgress WRITE setCheckedOverlayProgress READ checkedOverlayProgress) + Q_PROPERTY(qreal haloOpacity WRITE setHaloOpacity READ haloOpacity) + Q_PROPERTY(qreal haloSize WRITE setHaloSize READ haloSize) + Q_PROPERTY(qreal haloScaleFactor WRITE setHaloScaleFactor READ haloScaleFactor) + +public: + explicit QtMaterialFlatButtonStateMachine(QtMaterialFlatButton *parent); + ~QtMaterialFlatButtonStateMachine(); + + void setOverlayOpacity(qreal opacity); + inline qreal overlayOpacity() const; + + void setCheckedOverlayProgress(qreal progress); + inline qreal checkedOverlayProgress() const; + + void setHaloOpacity(qreal opacity); + inline qreal haloOpacity() const; + + void setHaloSize(qreal size); + inline qreal haloSize() const; + + void setHaloScaleFactor(qreal factor); + inline qreal haloScaleFactor() const; + + void startAnimations(); + void setupProperties(); + void updateCheckedStatus(); + +signals: + void buttonPressed(); + void buttonChecked(); + void buttonUnchecked(); + +protected: + bool eventFilter(QObject *watched, QEvent *event) Q_DECL_OVERRIDE; + +private: + Q_DISABLE_COPY(QtMaterialFlatButtonStateMachine) + + void addTransition(QObject *object, QEvent::Type eventType, QState *fromState, QState *toState); + void addTransition(QAbstractTransition *transition, QState *fromState, QState *toState); + + QtMaterialFlatButton *const m_button; + QState *const m_topLevelState; + QState *const m_configState; + QState *const m_checkableState; + QState *const m_checkedState; + QState *const m_uncheckedState; + QState *const m_neutralState; + QState *const m_neutralFocusedState; + QState *const m_hoveredState; + QState *const m_hoveredFocusedState; + QState *const m_pressedState; + QSequentialAnimationGroup + *const m_haloAnimation; + qreal m_overlayOpacity; + qreal m_checkedOverlayProgress; + qreal m_haloOpacity; + qreal m_haloSize; + qreal m_haloScaleFactor; + bool m_wasChecked; +}; + +inline qreal QtMaterialFlatButtonStateMachine::overlayOpacity() const +{ + return m_overlayOpacity; +} + +inline qreal QtMaterialFlatButtonStateMachine::checkedOverlayProgress() const +{ + return m_checkedOverlayProgress; +} + +inline qreal QtMaterialFlatButtonStateMachine::haloOpacity() const +{ + return m_haloOpacity; +} + +inline qreal QtMaterialFlatButtonStateMachine::haloSize() const +{ + return m_haloSize; +} + +inline qreal QtMaterialFlatButtonStateMachine::haloScaleFactor() const +{ + return m_haloScaleFactor; +} + +#endif // QTMATERIALFLATBUTTON_INTERNAL_H diff --git a/qt-material-widgets/components/qtmaterialflatbutton_p.h b/qt-material-widgets/components/qtmaterialflatbutton_p.h new file mode 100644 index 0000000..1ab3d22 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialflatbutton_p.h @@ -0,0 +1,46 @@ +#ifndef QTMATERIALFLATBUTTON_P_H +#define QTMATERIALFLATBUTTON_P_H + +#include +#include +#include "lib/qtmaterialtheme.h" + +class QtMaterialFlatButton; +class QtMaterialRippleOverlay; +class QtMaterialFlatButtonStateMachine; + +class QtMaterialFlatButtonPrivate +{ + Q_DISABLE_COPY(QtMaterialFlatButtonPrivate) + Q_DECLARE_PUBLIC(QtMaterialFlatButton) + +public: + QtMaterialFlatButtonPrivate(QtMaterialFlatButton *q); + virtual ~QtMaterialFlatButtonPrivate(); + + void init(); + + QtMaterialFlatButton *const q_ptr; + QtMaterialRippleOverlay *rippleOverlay; + QtMaterialFlatButtonStateMachine *stateMachine; + Material::Role role; + Material::RippleStyle rippleStyle; + Material::ButtonIconPlacement iconPlacement; + Material::OverlayStyle overlayStyle; + Qt::BGMode bgMode; + Qt::Alignment textAlignment; + QColor backgroundColor; + QColor foregroundColor; + QColor overlayColor; + QColor disabledColor; + QColor disabledBackgroundColor; + qreal fixedRippleRadius; + qreal cornerRadius; + qreal baseOpacity; + qreal fontSize; + bool useThemeColors; + bool useFixedRippleRadius; + bool haloVisible; +}; + +#endif // QTMATERIALFLATBUTTON_P_H diff --git a/qt-material-widgets/components/qtmaterialiconbutton.cpp b/qt-material-widgets/components/qtmaterialiconbutton.cpp new file mode 100644 index 0000000..525d6b2 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialiconbutton.cpp @@ -0,0 +1,212 @@ +#include "qtmaterialiconbutton.h" +#include "qtmaterialiconbutton_p.h" +#include +#include +#include "lib/qtmaterialstyle.h" +#include "lib/qtmaterialrippleoverlay.h" + +/*! + * \class QtMaterialIconButtonPrivate + * \internal + */ + +QtMaterialIconButtonPrivate::QtMaterialIconButtonPrivate(QtMaterialIconButton *q) + : q_ptr(q) +{ +} + +QtMaterialIconButtonPrivate::~QtMaterialIconButtonPrivate() +{ +} + +void QtMaterialIconButtonPrivate::init() +{ + Q_Q(QtMaterialIconButton); + + rippleOverlay = new QtMaterialRippleOverlay(q->parentWidget()); + useThemeColors = true; + + rippleOverlay->installEventFilter(q); + + q->setStyle(&QtMaterialStyle::instance()); + + QSizePolicy policy; + policy.setWidthForHeight(true); + q->setSizePolicy(policy); +} + +void QtMaterialIconButtonPrivate::updateRipple() +{ + Q_Q(QtMaterialIconButton); + + QRect r(q->rect()); + r.setSize(QSize(q->width()*2, q->height()*2)); + r.moveCenter(q->geometry().center()); + rippleOverlay->setGeometry(r); +} + +/*! + * \class QtMaterialIconButton + */ + +QtMaterialIconButton::QtMaterialIconButton(const QIcon &icon, QWidget *parent) + : QAbstractButton(parent), + d_ptr(new QtMaterialIconButtonPrivate(this)) +{ + d_func()->init(); + + setIcon(icon); +} + +QtMaterialIconButton::~QtMaterialIconButton() +{ +} + +/*! + * \reimp + */ +QSize QtMaterialIconButton::sizeHint() const +{ + return iconSize(); +} + +void QtMaterialIconButton::setUseThemeColors(bool value) +{ + Q_D(QtMaterialIconButton); + + if (d->useThemeColors == value) { + return; + } + + d->useThemeColors = value; + update(); +} + +bool QtMaterialIconButton::useThemeColors() const +{ + Q_D(const QtMaterialIconButton); + + return d->useThemeColors; +} + +void QtMaterialIconButton::setColor(const QColor &color) +{ + Q_D(QtMaterialIconButton); + + d->color = color; + + MATERIAL_DISABLE_THEME_COLORS + update(); +} + +QColor QtMaterialIconButton::color() const +{ + Q_D(const QtMaterialIconButton); + + if (d->useThemeColors || !d->color.isValid()) { + return QtMaterialStyle::instance().themeColor("text"); + } + return d->color; +} + +void QtMaterialIconButton::setDisabledColor(const QColor &color) +{ + Q_D(QtMaterialIconButton); + + d->disabledColor = color; + + MATERIAL_DISABLE_THEME_COLORS + update(); +} + +QColor QtMaterialIconButton::disabledColor() const +{ + Q_D(const QtMaterialIconButton); + + if (d->useThemeColors || !d->disabledColor.isValid()) { + return QtMaterialStyle::instance().themeColor("disabled"); + } + return d->disabledColor; +} + +QtMaterialIconButton::QtMaterialIconButton(QtMaterialIconButtonPrivate &d, QWidget *parent) + : QAbstractButton(parent), + d_ptr(&d) +{ + d_func()->init(); +} + +/*! + * \reimp + */ +bool QtMaterialIconButton::event(QEvent *event) +{ + Q_D(QtMaterialIconButton); + + switch (event->type()) + { + case QEvent::Move: + case QEvent::Resize: + d->updateRipple(); + break; + case QEvent::ParentChange: { + QWidget *widget; + if ((widget = parentWidget())) { + d->rippleOverlay->setParent(widget); + } + break; + } + default: + break; + } + return QAbstractButton::event(event); +} + +/*! + * \reimp + */ +bool QtMaterialIconButton::eventFilter(QObject *obj, QEvent *event) +{ + if (QEvent::Resize == event->type()) + { + Q_D(QtMaterialIconButton); + + d->updateRipple(); + } + return QAbstractButton::eventFilter(obj, event); +} + +/*! + * \reimp + */ +void QtMaterialIconButton::mousePressEvent(QMouseEvent *event) +{ + Q_D(QtMaterialIconButton); + + d->rippleOverlay->addRipple(QPoint(d->rippleOverlay->width(), + d->rippleOverlay->height())/2, + iconSize().width()); + emit clicked(); + + QAbstractButton::mousePressEvent(event); +} + +/*! + * \reimp + */ +void QtMaterialIconButton::paintEvent(QPaintEvent *event) +{ + Q_UNUSED(event) + + QPainter painter(this); + + QPixmap pixmap = icon().pixmap(iconSize()); + QPainter icon(&pixmap); + icon.setCompositionMode(QPainter::CompositionMode_SourceIn); + icon.fillRect(pixmap.rect(), isEnabled() ? color() : disabledColor()); + + QRect r(rect()); + const qreal w = pixmap.width(); + const qreal h = pixmap.height(); + painter.drawPixmap(QRect((r.width()-w)/2, (r.height()-h)/2, w, h), pixmap); +} diff --git a/qt-material-widgets/components/qtmaterialiconbutton.h b/qt-material-widgets/components/qtmaterialiconbutton.h new file mode 100644 index 0000000..5c2afc4 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialiconbutton.h @@ -0,0 +1,42 @@ +#ifndef QTMATERIALICONBUTTON_H +#define QTMATERIALICONBUTTON_H + +#include + +class QtMaterialIconButtonPrivate; + +class QtMaterialIconButton : public QAbstractButton +{ + Q_OBJECT + +public: + explicit QtMaterialIconButton(const QIcon &icon, QWidget *parent = 0); + ~QtMaterialIconButton(); + + QSize sizeHint() const Q_DECL_OVERRIDE; + + void setUseThemeColors(bool value); + bool useThemeColors() const; + + void setColor(const QColor &color); + QColor color() const; + + void setDisabledColor(const QColor &color); + QColor disabledColor() const; + +protected: + QtMaterialIconButton(QtMaterialIconButtonPrivate &d, QWidget *parent = 0); + + bool event(QEvent *event) Q_DECL_OVERRIDE; + bool eventFilter(QObject *obj, QEvent *event) Q_DECL_OVERRIDE; + void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE; + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; + + const QScopedPointer d_ptr; + +private: + Q_DISABLE_COPY(QtMaterialIconButton) + Q_DECLARE_PRIVATE(QtMaterialIconButton) +}; + +#endif // QTMATERIALICONBUTTON_H diff --git a/qt-material-widgets/components/qtmaterialiconbutton_p.h b/qt-material-widgets/components/qtmaterialiconbutton_p.h new file mode 100644 index 0000000..a532abc --- /dev/null +++ b/qt-material-widgets/components/qtmaterialiconbutton_p.h @@ -0,0 +1,29 @@ +#ifndef QTMATERIALICONBUTTON_P_H +#define QTMATERIALICONBUTTON_P_H + +#include + +class QtMaterialIconButton; +class QtMaterialRippleOverlay; +class QColor; + +class QtMaterialIconButtonPrivate +{ + Q_DISABLE_COPY(QtMaterialIconButtonPrivate) + Q_DECLARE_PUBLIC(QtMaterialIconButton) + +public: + QtMaterialIconButtonPrivate(QtMaterialIconButton *q); + virtual ~QtMaterialIconButtonPrivate(); + + void init(); + void updateRipple(); + + QtMaterialIconButton *const q_ptr; + QtMaterialRippleOverlay *rippleOverlay; + QColor color; + QColor disabledColor; + bool useThemeColors; +}; + +#endif // QTMATERIALICONBUTTON_P_H diff --git a/qt-material-widgets/components/qtmateriallist.cpp b/qt-material-widgets/components/qtmateriallist.cpp new file mode 100644 index 0000000..e6b1aee --- /dev/null +++ b/qt-material-widgets/components/qtmateriallist.cpp @@ -0,0 +1,2 @@ +#include "qtmateriallist.h" +#include "qtmateriallist_p.h" diff --git a/qt-material-widgets/components/qtmateriallist.h b/qt-material-widgets/components/qtmateriallist.h new file mode 100644 index 0000000..7ace66a --- /dev/null +++ b/qt-material-widgets/components/qtmateriallist.h @@ -0,0 +1,4 @@ +#ifndef QTMATERIALLIST_H +#define QTMATERIALLIST_H + +#endif // QTMATERIALLIST_H diff --git a/qt-material-widgets/components/qtmateriallist_p.h b/qt-material-widgets/components/qtmateriallist_p.h new file mode 100644 index 0000000..c92b2d6 --- /dev/null +++ b/qt-material-widgets/components/qtmateriallist_p.h @@ -0,0 +1,4 @@ +#ifndef QTMATERIALLIST_P_H +#define QTMATERIALLIST_P_H + +#endif // QTMATERIALLIST_P_H diff --git a/qt-material-widgets/components/qtmateriallistitem.cpp b/qt-material-widgets/components/qtmateriallistitem.cpp new file mode 100644 index 0000000..67a7cd8 --- /dev/null +++ b/qt-material-widgets/components/qtmateriallistitem.cpp @@ -0,0 +1,2 @@ +#include "qtmateriallistitem.h" +#include "qtmateriallistitem_p.h" diff --git a/qt-material-widgets/components/qtmateriallistitem.h b/qt-material-widgets/components/qtmateriallistitem.h new file mode 100644 index 0000000..9abc65b --- /dev/null +++ b/qt-material-widgets/components/qtmateriallistitem.h @@ -0,0 +1,4 @@ +#ifndef QTMATERIALLISTITEM_H +#define QTMATERIALLISTITEM_H + +#endif // QTMATERIALLISTITEM_H diff --git a/qt-material-widgets/components/qtmateriallistitem_p.h b/qt-material-widgets/components/qtmateriallistitem_p.h new file mode 100644 index 0000000..fb7ebd4 --- /dev/null +++ b/qt-material-widgets/components/qtmateriallistitem_p.h @@ -0,0 +1,4 @@ +#ifndef QTMATERIALLISTITEM_P_H +#define QTMATERIALLISTITEM_P_H + +#endif // QTMATERIALLISTITEM_P_H diff --git a/qt-material-widgets/components/qtmaterialmenu.cpp b/qt-material-widgets/components/qtmaterialmenu.cpp new file mode 100644 index 0000000..5808a99 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialmenu.cpp @@ -0,0 +1,11 @@ +#include "qtmaterialmenu.h" +#include "qtmaterialmenu_p.h" + +QtMaterialMenu::QtMaterialMenu(QWidget *parent) + : QWidget(parent) +{ +} + +QtMaterialMenu::~QtMaterialMenu() +{ +} diff --git a/qt-material-widgets/components/qtmaterialmenu.h b/qt-material-widgets/components/qtmaterialmenu.h new file mode 100644 index 0000000..beb01b5 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialmenu.h @@ -0,0 +1,15 @@ +#ifndef QTMATERIALMENU_H +#define QTMATERIALMENU_H + +#include + +class QtMaterialMenu : public QWidget +{ + Q_OBJECT + +public: + explicit QtMaterialMenu(QWidget *parent = 0); + ~QtMaterialMenu(); +}; + +#endif // QTMATERIALMENU_H diff --git a/qt-material-widgets/components/qtmaterialmenu_internal.cpp b/qt-material-widgets/components/qtmaterialmenu_internal.cpp new file mode 100644 index 0000000..e69de29 diff --git a/qt-material-widgets/components/qtmaterialmenu_internal.h b/qt-material-widgets/components/qtmaterialmenu_internal.h new file mode 100644 index 0000000..fb79235 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialmenu_internal.h @@ -0,0 +1,4 @@ +#ifndef QTMATERIALMENU_INTERNAL_H +#define QTMATERIALMENU_INTERNAL_H + +#endif // QTMATERIALMENU_INTERNAL_H diff --git a/qt-material-widgets/components/qtmaterialmenu_p.h b/qt-material-widgets/components/qtmaterialmenu_p.h new file mode 100644 index 0000000..1328bdc --- /dev/null +++ b/qt-material-widgets/components/qtmaterialmenu_p.h @@ -0,0 +1,4 @@ +#ifndef QTMATERIALMENU_P_H +#define QTMATERIALMENU_P_H + +#endif // QTMATERIALMENU_P_H diff --git a/qt-material-widgets/components/qtmaterialpaper.cpp b/qt-material-widgets/components/qtmaterialpaper.cpp new file mode 100644 index 0000000..ad7dfa0 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialpaper.cpp @@ -0,0 +1,2 @@ +#include "qtmaterialpaper.h" +#include "qtmaterialpaper_p.h" diff --git a/qt-material-widgets/components/qtmaterialpaper.h b/qt-material-widgets/components/qtmaterialpaper.h new file mode 100644 index 0000000..f305836 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialpaper.h @@ -0,0 +1,4 @@ +#ifndef QTMATERIALPAPER_H +#define QTMATERIALPAPER_H + +#endif // QTMATERIALPAPER_H diff --git a/qt-material-widgets/components/qtmaterialpaper_p.h b/qt-material-widgets/components/qtmaterialpaper_p.h new file mode 100644 index 0000000..65972a6 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialpaper_p.h @@ -0,0 +1,4 @@ +#ifndef QTMATERIALPAPER_P_H +#define QTMATERIALPAPER_P_H + +#endif // QTMATERIALPAPER_P_H diff --git a/qt-material-widgets/components/qtmaterialprogress.cpp b/qt-material-widgets/components/qtmaterialprogress.cpp new file mode 100644 index 0000000..03b15b2 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialprogress.cpp @@ -0,0 +1,173 @@ +#include "qtmaterialprogress.h" +#include "qtmaterialprogress_p.h" +#include +#include +#include +#include "qtmaterialprogress_internal.h" +#include "lib/qtmaterialstyle.h" + +/*! + * \class QtMaterialProgressPrivate + * \internal + */ + +QtMaterialProgressPrivate::QtMaterialProgressPrivate(QtMaterialProgress *q) + : q_ptr(q) +{ +} + +QtMaterialProgressPrivate::~QtMaterialProgressPrivate() +{ +} + +void QtMaterialProgressPrivate::init() +{ + Q_Q(QtMaterialProgress); + + delegate = new QtMaterialProgressDelegate(q); + progressType = Material::IndeterminateProgress; + useThemeColors = true; + + QPropertyAnimation *animation; + + animation = new QPropertyAnimation(q); + animation->setPropertyName("offset"); + animation->setTargetObject(delegate); + animation->setStartValue(0); + animation->setEndValue(1); + animation->setDuration(1000); + + animation->setLoopCount(-1); + + animation->start(); +} + +/*! + * \class QtMaterialProgress + */ + +QtMaterialProgress::QtMaterialProgress(QWidget *parent) + : QProgressBar(parent), + d_ptr(new QtMaterialProgressPrivate(this)) +{ + d_func()->init(); +} + +QtMaterialProgress::~QtMaterialProgress() +{ +} + +void QtMaterialProgress::setProgressType(Material::ProgressType type) +{ + Q_D(QtMaterialProgress); + + d->progressType = type; + update(); +} + +Material::ProgressType QtMaterialProgress::progressType() const +{ + Q_D(const QtMaterialProgress); + + return d->progressType; +} + +void QtMaterialProgress::setUseThemeColors(bool state) +{ + Q_D(QtMaterialProgress); + + if (d->useThemeColors == state) { + return; + } + + d->useThemeColors = state; + update(); +} + +bool QtMaterialProgress::useThemeColors() const +{ + Q_D(const QtMaterialProgress); + + return d->useThemeColors; +} + +void QtMaterialProgress::setProgressColor(const QColor &color) +{ + Q_D(QtMaterialProgress); + + d->progressColor = color; + + MATERIAL_DISABLE_THEME_COLORS + update(); +} + +QColor QtMaterialProgress::progressColor() const +{ + Q_D(const QtMaterialProgress); + + if (d->useThemeColors || !d->progressColor.isValid()) { + return QtMaterialStyle::instance().themeColor("primary1"); + } else { + return d->progressColor; + } +} + +void QtMaterialProgress::setBackgroundColor(const QColor &color) +{ + Q_D(QtMaterialProgress); + + d->backgroundColor = color; + + MATERIAL_DISABLE_THEME_COLORS + update(); +} + +QColor QtMaterialProgress::backgroundColor() const +{ + Q_D(const QtMaterialProgress); + + if (d->useThemeColors || !d->backgroundColor.isValid()) { + return QtMaterialStyle::instance().themeColor("border"); + } else { + return d->backgroundColor; + } +} + +/*! + * \reimp + */ +void QtMaterialProgress::paintEvent(QPaintEvent *event) +{ + Q_UNUSED(event) + + Q_D(QtMaterialProgress); + + QPainter painter(this); + painter.setRenderHint(QPainter::Antialiasing); + + QBrush brush; + brush.setStyle(Qt::SolidPattern); + brush.setColor(isEnabled() ? backgroundColor() + : QtMaterialStyle::instance().themeColor("disabled")); + painter.setBrush(brush); + painter.setPen(Qt::NoPen); + + QPainterPath path; + path.addRoundedRect(0, height()/2-3, width(), 6, 3, 3); + painter.setClipPath(path); + + painter.drawRect(0, 0, width(), height()); + + if (isEnabled()) + { + brush.setColor(progressColor()); + painter.setBrush(brush); + + if (Material::IndeterminateProgress == d->progressType) { + painter.drawRect(d->delegate->offset()*width()*2-width(), 0, width(), height()); + } else { + qreal p = static_cast(width())*(value()-minimum())/(maximum()-minimum()); + painter.drawRect(0, 0, p, height()); + } + } +} diff --git a/qt-material-widgets/components/qtmaterialprogress.h b/qt-material-widgets/components/qtmaterialprogress.h new file mode 100644 index 0000000..0e69b1d --- /dev/null +++ b/qt-material-widgets/components/qtmaterialprogress.h @@ -0,0 +1,42 @@ +#ifndef QTMATERIALPROGRESS_H +#define QTMATERIALPROGRESS_H + +#include +#include "lib/qtmaterialtheme.h" + +class QtMaterialProgressPrivate; + +class QtMaterialProgress : public QProgressBar +{ + Q_OBJECT + + Q_PROPERTY(QColor progressColor WRITE setProgressColor READ progressColor) + Q_PROPERTY(QColor backgroundColor WRITE setProgressColor READ backgroundColor) + +public: + explicit QtMaterialProgress(QWidget *parent = 0); + ~QtMaterialProgress(); + + void setProgressType(Material::ProgressType type); + Material::ProgressType progressType() const; + + void setUseThemeColors(bool state); + bool useThemeColors() const; + + void setProgressColor(const QColor &color); + QColor progressColor() const; + + void setBackgroundColor(const QColor &color); + QColor backgroundColor() const; + +protected: + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; + + const QScopedPointer d_ptr; + +private: + Q_DISABLE_COPY(QtMaterialProgress) + Q_DECLARE_PRIVATE(QtMaterialProgress) +}; + +#endif // QTMATERIALPROGRESS_H diff --git a/qt-material-widgets/components/qtmaterialprogress_internal.cpp b/qt-material-widgets/components/qtmaterialprogress_internal.cpp new file mode 100644 index 0000000..0544bae --- /dev/null +++ b/qt-material-widgets/components/qtmaterialprogress_internal.cpp @@ -0,0 +1,18 @@ +#include "qtmaterialprogress_internal.h" + +/*! + * \class QtMaterialProgressDelegate + * \internal + */ + +QtMaterialProgressDelegate::QtMaterialProgressDelegate(QtMaterialProgress *parent) + : QObject(parent), + m_progress(parent), + m_offset(0) +{ + Q_ASSERT(parent); +} + +QtMaterialProgressDelegate::~QtMaterialProgressDelegate() +{ +} diff --git a/qt-material-widgets/components/qtmaterialprogress_internal.h b/qt-material-widgets/components/qtmaterialprogress_internal.h new file mode 100644 index 0000000..811e3d6 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialprogress_internal.h @@ -0,0 +1,38 @@ +#ifndef QTMATERIALPROGRESS_INTERNAL_H +#define QTMATERIALPROGRESS_INTERNAL_H + +#include +#include "qtmaterialprogress.h" + +class QtMaterialProgressDelegate : public QObject +{ + Q_OBJECT + + Q_PROPERTY(qreal offset WRITE setOffset READ offset) + +public: + QtMaterialProgressDelegate(QtMaterialProgress *parent); + ~QtMaterialProgressDelegate(); + + inline void setOffset(qreal offset); + inline qreal offset() const; + +private: + Q_DISABLE_COPY(QtMaterialProgressDelegate) + + QtMaterialProgress *const m_progress; + qreal m_offset; +}; + +inline void QtMaterialProgressDelegate::setOffset(qreal offset) +{ + m_offset = offset; + m_progress->update(); +} + +inline qreal QtMaterialProgressDelegate::offset() const +{ + return m_offset; +} + +#endif // QTMATERIALPROGRESS_INTERNAL_H diff --git a/qt-material-widgets/components/qtmaterialprogress_p.h b/qt-material-widgets/components/qtmaterialprogress_p.h new file mode 100644 index 0000000..b55fb02 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialprogress_p.h @@ -0,0 +1,30 @@ +#ifndef QTMATERIALPROGRESS_P_H +#define QTMATERIALPROGRESS_P_H + +#include +#include +#include "lib/qtmaterialtheme.h" + +class QtMaterialProgress; +class QtMaterialProgressDelegate; + +class QtMaterialProgressPrivate +{ + Q_DISABLE_COPY(QtMaterialProgressPrivate) + Q_DECLARE_PUBLIC(QtMaterialProgress) + +public: + QtMaterialProgressPrivate(QtMaterialProgress *q); + ~QtMaterialProgressPrivate(); + + void init(); + + QtMaterialProgress *const q_ptr; + QtMaterialProgressDelegate *delegate; + Material::ProgressType progressType; + QColor progressColor; + QColor backgroundColor; + bool useThemeColors; +}; + +#endif // QTMATERIALPROGRESS_P_H diff --git a/qt-material-widgets/components/qtmaterialradiobutton.cpp b/qt-material-widgets/components/qtmaterialradiobutton.cpp new file mode 100644 index 0000000..86427c7 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialradiobutton.cpp @@ -0,0 +1,100 @@ +#include "qtmaterialradiobutton.h" +#include "qtmaterialradiobutton_p.h" +#include +#include +#include +#include +#include "lib/qtmaterialcheckable_internal.h" + +/*! + * \class QtMaterialRadioButtonPrivate + * \internal + */ + +QtMaterialRadioButtonPrivate::QtMaterialRadioButtonPrivate(QtMaterialRadioButton *q) + : QtMaterialCheckablePrivate(q) +{ +} + +QtMaterialRadioButtonPrivate::~QtMaterialRadioButtonPrivate() +{ +} + +void QtMaterialRadioButtonPrivate::init() +{ + Q_Q(QtMaterialRadioButton); + + q->setAutoExclusive(true); + + q->setCheckedIcon(QIcon(":/icons/icons/toggle/svg/production/ic_radio_button_checked_24px.svg")); + q->setUncheckedIcon(QIcon(":/icons/icons/toggle/svg/production/ic_radio_button_unchecked_24px.svg")); + + uncheckedState->assignProperty(checkedIcon, "iconSize", 0); + uncheckedState->assignProperty(uncheckedIcon, "iconSize", 24); + + disabledUncheckedState->assignProperty(checkedIcon, "iconSize", 0); + disabledUncheckedState->assignProperty(uncheckedIcon, "iconSize", 24); + + checkedState->assignProperty(uncheckedIcon, "iconSize", 0); + checkedState->assignProperty(checkedIcon, "iconSize", 24); + + disabledCheckedState->assignProperty(uncheckedIcon, "iconSize", 0); + disabledCheckedState->assignProperty(checkedIcon, "iconSize", 24); + + uncheckedState->assignProperty(checkedIcon, "opacity", 0); + uncheckedState->assignProperty(uncheckedIcon, "opacity", 1); + + checkedState->assignProperty(uncheckedIcon, "opacity", 0); + checkedState->assignProperty(checkedIcon, "opacity", 1); + + checkedIcon->setIconSize(0); + + // + + checkedState->assignProperty(checkedIcon, "color", q->checkedColor()); + checkedState->assignProperty(uncheckedIcon, "color", q->uncheckedColor()); + uncheckedState->assignProperty(uncheckedIcon, "color", q->uncheckedColor()); + + QPropertyAnimation *animation; + + animation = new QPropertyAnimation(checkedIcon, "iconSize", q); + animation->setDuration(250); + stateMachine->addDefaultAnimation(animation); + + animation = new QPropertyAnimation(uncheckedIcon, "iconSize", q); + animation->setDuration(250); + stateMachine->addDefaultAnimation(animation); + + animation = new QPropertyAnimation(uncheckedIcon, "opacity", q); + animation->setDuration(250); + stateMachine->addDefaultAnimation(animation); + + animation = new QPropertyAnimation(checkedIcon, "opacity", q); + animation->setDuration(250); + stateMachine->addDefaultAnimation(animation); +} + +/*! + * \class QtMaterialRadioButton + */ + +QtMaterialRadioButton::QtMaterialRadioButton(QWidget *parent) + : QtMaterialCheckable(*new QtMaterialRadioButtonPrivate(this), parent) +{ + d_func()->init(); +} + +QtMaterialRadioButton::~QtMaterialRadioButton() +{ +} + +void QtMaterialRadioButton::setupProperties() +{ + QtMaterialCheckable::setupProperties(); + + Q_D(QtMaterialRadioButton); + + d->checkedState->assignProperty(d->checkedIcon, "color", checkedColor()); + d->checkedState->assignProperty(d->uncheckedIcon, "color", uncheckedColor()); + d->uncheckedState->assignProperty(d->uncheckedIcon, "color", uncheckedColor()); +} diff --git a/qt-material-widgets/components/qtmaterialradiobutton.h b/qt-material-widgets/components/qtmaterialradiobutton.h new file mode 100644 index 0000000..adc535c --- /dev/null +++ b/qt-material-widgets/components/qtmaterialradiobutton.h @@ -0,0 +1,24 @@ +#ifndef QTMATERIALRADIOBUTTON_H +#define QTMATERIALRADIOBUTTON_H + +#include "lib/qtmaterialcheckable.h" + +class QtMaterialRadioButtonPrivate; + +class QtMaterialRadioButton : public QtMaterialCheckable +{ + Q_OBJECT + +public: + explicit QtMaterialRadioButton(QWidget *parent = 0); + ~QtMaterialRadioButton(); + +protected: + void setupProperties(); + +private: + Q_DISABLE_COPY(QtMaterialRadioButton) + Q_DECLARE_PRIVATE(QtMaterialRadioButton) +}; + +#endif // QTMATERIALRADIOBUTTON_H diff --git a/qt-material-widgets/components/qtmaterialradiobutton_p.h b/qt-material-widgets/components/qtmaterialradiobutton_p.h new file mode 100644 index 0000000..6bb954a --- /dev/null +++ b/qt-material-widgets/components/qtmaterialradiobutton_p.h @@ -0,0 +1,20 @@ +#ifndef QTMATERIALRADIOBUTTON_P_H +#define QTMATERIALRADIOBUTTON_P_H + +#include "lib/qtmaterialcheckable_p.h" + +class QtMaterialRadioButton; + +class QtMaterialRadioButtonPrivate : public QtMaterialCheckablePrivate +{ + Q_DISABLE_COPY(QtMaterialRadioButtonPrivate) + Q_DECLARE_PUBLIC(QtMaterialRadioButton) + +public: + QtMaterialRadioButtonPrivate(QtMaterialRadioButton *q); + ~QtMaterialRadioButtonPrivate(); + + void init(); +}; + +#endif // QTMATERIALRADIOBUTTON_P_H diff --git a/qt-material-widgets/components/qtmaterialraisedbutton.cpp b/qt-material-widgets/components/qtmaterialraisedbutton.cpp new file mode 100644 index 0000000..1607c70 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialraisedbutton.cpp @@ -0,0 +1,128 @@ +#include "qtmaterialraisedbutton.h" +#include "qtmaterialraisedbutton_p.h" +#include +#include +#include +#include + +/*! + * \class QtMaterialRaisedButtonPrivate + * \internal + */ + +/*! + * \internal + */ +QtMaterialRaisedButtonPrivate::QtMaterialRaisedButtonPrivate(QtMaterialRaisedButton *q) + : QtMaterialFlatButtonPrivate(q) +{ +} + +/*! + * \internal + */ +QtMaterialRaisedButtonPrivate::~QtMaterialRaisedButtonPrivate() +{ +} + +/*! + * \internal + */ +void QtMaterialRaisedButtonPrivate::init() +{ + Q_Q(QtMaterialRaisedButton); + + shadowStateMachine = new QStateMachine(q); + normalState = new QState; + pressedState = new QState; + effect = new QGraphicsDropShadowEffect; + + effect->setBlurRadius(7); + effect->setOffset(QPointF(0, 2)); + effect->setColor(QColor(0, 0, 0, 75)); + + q->setBackgroundMode(Qt::OpaqueMode); + q->setMinimumHeight(42); + q->setGraphicsEffect(effect); + q->setBaseOpacity(0.3); + + shadowStateMachine->addState(normalState); + shadowStateMachine->addState(pressedState); + + normalState->assignProperty(effect, "offset", QPointF(0, 2)); + normalState->assignProperty(effect, "blurRadius", 7); + + pressedState->assignProperty(effect, "offset", QPointF(0, 5)); + pressedState->assignProperty(effect, "blurRadius", 29); + + QAbstractTransition *transition; + + transition = new QEventTransition(q, QEvent::MouseButtonPress); + transition->setTargetState(pressedState); + normalState->addTransition(transition); + + transition = new QEventTransition(q, QEvent::MouseButtonDblClick); + transition->setTargetState(pressedState); + normalState->addTransition(transition); + + transition = new QEventTransition(q, QEvent::MouseButtonRelease); + transition->setTargetState(normalState); + pressedState->addTransition(transition); + + QPropertyAnimation *animation; + + animation = new QPropertyAnimation(effect, "offset", q); + animation->setDuration(100); + shadowStateMachine->addDefaultAnimation(animation); + + animation = new QPropertyAnimation(effect, "blurRadius", q); + animation->setDuration(100); + shadowStateMachine->addDefaultAnimation(animation); + + shadowStateMachine->setInitialState(normalState); + shadowStateMachine->start(); +} + +/*! + * \class QtMaterialRaisedButton + */ + +QtMaterialRaisedButton::QtMaterialRaisedButton(QWidget *parent) + : QtMaterialFlatButton(*new QtMaterialRaisedButtonPrivate(this), parent) +{ + d_func()->init(); +} + +QtMaterialRaisedButton::QtMaterialRaisedButton(const QString &text, QWidget *parent) + : QtMaterialFlatButton(*new QtMaterialRaisedButtonPrivate(this), parent) +{ + d_func()->init(); + + setText(text); +} + +QtMaterialRaisedButton::~QtMaterialRaisedButton() +{ +} + +QtMaterialRaisedButton::QtMaterialRaisedButton(QtMaterialRaisedButtonPrivate &d, QWidget *parent) + : QtMaterialFlatButton(d, parent) +{ + d_func()->init(); +} + +bool QtMaterialRaisedButton::event(QEvent *event) +{ + Q_D(QtMaterialRaisedButton); + + if (QEvent::EnabledChange == event->type()) { + if (isEnabled()) { + d->shadowStateMachine->start(); + d->effect->setEnabled(true); + } else { + d->shadowStateMachine->stop(); + d->effect->setEnabled(false); + } + } + return QtMaterialFlatButton::event(event); +} diff --git a/qt-material-widgets/components/qtmaterialraisedbutton.h b/qt-material-widgets/components/qtmaterialraisedbutton.h new file mode 100644 index 0000000..d8b4ef9 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialraisedbutton.h @@ -0,0 +1,27 @@ +#ifndef QTMATERIALRAISEDBUTTON_H +#define QTMATERIALRAISEDBUTTON_H + +#include "qtmaterialflatbutton.h" + +class QtMaterialRaisedButtonPrivate; + +class QtMaterialRaisedButton : public QtMaterialFlatButton +{ + Q_OBJECT + +public: + explicit QtMaterialRaisedButton(QWidget *parent = 0); + explicit QtMaterialRaisedButton(const QString &text, QWidget *parent = 0); + ~QtMaterialRaisedButton(); + +protected: + QtMaterialRaisedButton(QtMaterialRaisedButtonPrivate &d, QWidget *parent = 0); + + bool event(QEvent *event) Q_DECL_OVERRIDE; + +private: + Q_DISABLE_COPY(QtMaterialRaisedButton) + Q_DECLARE_PRIVATE(QtMaterialRaisedButton) +}; + +#endif // QTMATERIALRAISEDBUTTON_H diff --git a/qt-material-widgets/components/qtmaterialraisedbutton_p.h b/qt-material-widgets/components/qtmaterialraisedbutton_p.h new file mode 100644 index 0000000..12df43c --- /dev/null +++ b/qt-material-widgets/components/qtmaterialraisedbutton_p.h @@ -0,0 +1,28 @@ +#ifndef QTMATERIALRAISEDBUTTON_P_H +#define QTMATERIALRAISEDBUTTON_P_H + +#include "qtmaterialflatbutton_p.h" + +class QStateMachine; +class QState; +class QGraphicsDropShadowEffect; +class QtMaterialRaisedButton; + +class QtMaterialRaisedButtonPrivate : public QtMaterialFlatButtonPrivate +{ + Q_DISABLE_COPY(QtMaterialRaisedButtonPrivate) + Q_DECLARE_PUBLIC(QtMaterialRaisedButton) + +public: + QtMaterialRaisedButtonPrivate(QtMaterialRaisedButton *q); + ~QtMaterialRaisedButtonPrivate(); + + void init(); + + QStateMachine *shadowStateMachine; + QState *normalState; + QState *pressedState; + QGraphicsDropShadowEffect *effect; +}; + +#endif // QTMATERIALRAISEDBUTTON_P_H diff --git a/qt-material-widgets/components/qtmaterialscrollbar.cpp b/qt-material-widgets/components/qtmaterialscrollbar.cpp new file mode 100644 index 0000000..bb44820 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialscrollbar.cpp @@ -0,0 +1,212 @@ +#include "qtmaterialscrollbar.h" +#include "qtmaterialscrollbar_p.h" +#include +#include +#include +#include "qtmaterialscrollbar_internal.h" +#include "lib/qtmaterialstyle.h" + +/*! + * \class QtMaterialScrollBarPrivate + * \internal + */ + +QtMaterialScrollBarPrivate::QtMaterialScrollBarPrivate(QtMaterialScrollBar *q) + : q_ptr(q) +{ +} + +QtMaterialScrollBarPrivate::~QtMaterialScrollBarPrivate() +{ +} + +void QtMaterialScrollBarPrivate::init() +{ + Q_Q(QtMaterialScrollBar); + + stateMachine = new QtMaterialScrollBarStateMachine(q); + hideOnMouseOut = true; + useThemeColors = true; + + q->setMouseTracking(true); + q->setStyle(&QtMaterialStyle::instance()); + q->setStyleSheet("QScrollBar:vertical { margin: 0; }" + "QScrollBar::add-line:vertical { height: 0; margin: 0; }" + "QScrollBar::sub-line:vertical { height: 0; margin: 0; }"); + + stateMachine->start(); +} + +/*! + * \class QtMaterialScrollBar + */ + +QtMaterialScrollBar::QtMaterialScrollBar(QWidget *parent) + : QScrollBar(parent), + d_ptr(new QtMaterialScrollBarPrivate(this)) +{ + d_func()->init(); +} + +QtMaterialScrollBar::~QtMaterialScrollBar() +{ +} + +/*! + * \reimp + */ +QSize QtMaterialScrollBar::sizeHint() const +{ + if (Qt::Horizontal == orientation()) { + return QSize(1, 10); + } else { + return QSize(10, 1); + } +} + +void QtMaterialScrollBar::setUseThemeColors(bool value) +{ + Q_D(QtMaterialScrollBar); + + if (d->useThemeColors == value) { + return; + } + + d->useThemeColors = value; + update(); +} + +bool QtMaterialScrollBar::useThemeColors() const +{ + Q_D(const QtMaterialScrollBar); + + return d->useThemeColors; +} + +void QtMaterialScrollBar::setCanvasColor(const QColor &color) +{ + Q_D(QtMaterialScrollBar); + + d->canvasColor = color; + + MATERIAL_DISABLE_THEME_COLORS + update(); +} + +QColor QtMaterialScrollBar::canvasColor() const +{ + Q_D(const QtMaterialScrollBar); + + if (d->useThemeColors || !d->canvasColor.isValid()) { + return parentWidget()->palette().color(backgroundRole()); + } else { + return d->canvasColor; + } +} + +void QtMaterialScrollBar::setBackgroundColor(const QColor &color) +{ + Q_D(QtMaterialScrollBar); + + d->backgroundColor = color; + + MATERIAL_DISABLE_THEME_COLORS + update(); +} + +QColor QtMaterialScrollBar::backgroundColor() const +{ + Q_D(const QtMaterialScrollBar); + + if (d->useThemeColors || !d->backgroundColor.isValid()) { + return QtMaterialStyle::instance().themeColor("border"); + } else { + return d->backgroundColor; + } +} + +void QtMaterialScrollBar::setSliderColor(const QColor &color) +{ + Q_D(QtMaterialScrollBar); + + d->sliderColor = color; + + MATERIAL_DISABLE_THEME_COLORS + update(); +} + +QColor QtMaterialScrollBar::sliderColor() const +{ + Q_D(const QtMaterialScrollBar); + + if (d->useThemeColors || !d->sliderColor.isValid()) { + return QtMaterialStyle::instance().themeColor("primary1"); + } else { + return d->sliderColor; + } +} + +void QtMaterialScrollBar::setHideOnMouseOut(bool value) +{ + Q_D(QtMaterialScrollBar); + + d->hideOnMouseOut = value; + update(); +} + +bool QtMaterialScrollBar::hideOnMouseOut() const +{ + Q_D(const QtMaterialScrollBar); + + return d->hideOnMouseOut; +} + +/*! + * \reimp + */ +void QtMaterialScrollBar::paintEvent(QPaintEvent *event) +{ + Q_UNUSED(event) + + Q_D(QtMaterialScrollBar); + + QPainter painter(this); + painter.setRenderHint(QPainter::Antialiasing); + + painter.fillRect(rect(), canvasColor()); + + int x, y, w, h; + rect().getRect(&x, &y, &w, &h); + + QMargins margins(2, 2, 2, 2); + + QBrush brush; + brush.setStyle(Qt::SolidPattern); + brush.setColor(backgroundColor()); + painter.setBrush(brush); + painter.setPen(Qt::NoPen); + + if (d->hideOnMouseOut) { + painter.setOpacity(d->stateMachine->opacity()); + } + + QRect trimmed(rect().marginsRemoved(margins)); + + QPainterPath path; + path.addRoundedRect(trimmed, 3, 3); + painter.setClipPath(path); + + painter.drawRect(trimmed); + + const qreal q = (Qt::Horizontal == orientation() ? w : h) / + static_cast(maximum()-minimum()+pageStep()-1); + + QRect handle = Qt::Horizontal == orientation() + ? QRect(sliderPosition()*q, y, pageStep()*q, h) + : QRect(x, sliderPosition()*q, w, pageStep()*q); + + brush.setColor(sliderColor()); + painter.setBrush(brush); + + painter.drawRoundedRect(handle, 9, 9); +} diff --git a/qt-material-widgets/components/qtmaterialscrollbar.h b/qt-material-widgets/components/qtmaterialscrollbar.h new file mode 100644 index 0000000..591c9f1 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialscrollbar.h @@ -0,0 +1,47 @@ +#ifndef QTMATERIALSCROLLBAR_H +#define QTMATERIALSCROLLBAR_H + +#include + +class QtMaterialScrollBarPrivate; + +class QtMaterialScrollBar : public QScrollBar +{ + Q_OBJECT + + Q_PROPERTY(QColor canvasColor WRITE setCanvasColor READ canvasColor) + Q_PROPERTY(QColor backgroundColor WRITE setBackgroundColor READ backgroundColor) + Q_PROPERTY(QColor sliderColor WRITE setSliderColor READ sliderColor) + +public: + explicit QtMaterialScrollBar(QWidget *parent = 0); + ~QtMaterialScrollBar(); + + QSize sizeHint() const Q_DECL_OVERRIDE; + + void setUseThemeColors(bool value); + bool useThemeColors() const; + + void setCanvasColor(const QColor &color); + QColor canvasColor() const; + + void setBackgroundColor(const QColor &color); + QColor backgroundColor() const; + + void setSliderColor(const QColor &color); + QColor sliderColor() const; + + void setHideOnMouseOut(bool value); + bool hideOnMouseOut() const; + +protected: + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; + + const QScopedPointer d_ptr; + +private: + Q_DISABLE_COPY(QtMaterialScrollBar) + Q_DECLARE_PRIVATE(QtMaterialScrollBar) +}; + +#endif // QTMATERIALSCROLLBAR_H diff --git a/qt-material-widgets/components/qtmaterialscrollbar_internal.cpp b/qt-material-widgets/components/qtmaterialscrollbar_internal.cpp new file mode 100644 index 0000000..248d91a --- /dev/null +++ b/qt-material-widgets/components/qtmaterialscrollbar_internal.cpp @@ -0,0 +1,51 @@ +#include "qtmaterialscrollbar_internal.h" +#include +#include + +/*! + * \class QtMaterialScrollBarStateMachine + * \internal + */ + +/*! + * \internal + */ +QtMaterialScrollBarStateMachine::QtMaterialScrollBarStateMachine(QtMaterialScrollBar *parent) + : QStateMachine(parent), + m_scrollBar(parent), + m_focusState(new QState), + m_blurState(new QState), + m_opacity(0) +{ + Q_ASSERT(parent); + + addState(m_focusState); + addState(m_blurState); + setInitialState(m_blurState); + + QEventTransition *transition; + + transition = new QEventTransition(parent, QEvent::Enter); + transition->setTargetState(m_focusState); + m_blurState->addTransition(transition); + + transition = new QEventTransition(parent, QEvent::Leave); + transition->setTargetState(m_blurState); + m_focusState->addTransition(transition); + + m_focusState->assignProperty(this, "opacity", 1); + m_blurState->assignProperty(this, "opacity", 0); + + QPropertyAnimation *animation; + + animation = new QPropertyAnimation(this, "opacity", this); + animation->setDuration(340); + addDefaultAnimation(animation); +} + +/*! + * \internal + */ +QtMaterialScrollBarStateMachine::~QtMaterialScrollBarStateMachine() +{ +} diff --git a/qt-material-widgets/components/qtmaterialscrollbar_internal.h b/qt-material-widgets/components/qtmaterialscrollbar_internal.h new file mode 100644 index 0000000..7b1cc92 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialscrollbar_internal.h @@ -0,0 +1,40 @@ +#ifndef QTMATERIALSCROLLBAR_INTERNAL_H +#define QTMATERIALSCROLLBAR_INTERNAL_H + +#include +#include "qtmaterialscrollbar.h" + +class QtMaterialScrollBarStateMachine : public QStateMachine +{ + Q_OBJECT + + Q_PROPERTY(qreal opacity WRITE setOpacity READ opacity) + +public: + QtMaterialScrollBarStateMachine(QtMaterialScrollBar *parent); + ~QtMaterialScrollBarStateMachine(); + + inline void setOpacity(qreal opacity); + inline qreal opacity() const; + +private: + Q_DISABLE_COPY(QtMaterialScrollBarStateMachine) + + QtMaterialScrollBar *const m_scrollBar; + QState *const m_focusState; + QState *const m_blurState; + qreal m_opacity; +}; + +inline void QtMaterialScrollBarStateMachine::setOpacity(qreal opacity) +{ + m_opacity = opacity; + m_scrollBar->update(); +} + +inline qreal QtMaterialScrollBarStateMachine::opacity() const +{ + return m_opacity; +} + +#endif // QTMATERIALSCROLLBAR_INTERNAL_H diff --git a/qt-material-widgets/components/qtmaterialscrollbar_p.h b/qt-material-widgets/components/qtmaterialscrollbar_p.h new file mode 100644 index 0000000..1d22cc0 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialscrollbar_p.h @@ -0,0 +1,30 @@ +#ifndef QTMATERIALSCROLLBAR_P_H +#define QTMATERIALSCROLLBAR_P_H + +#include +#include + +class QtMaterialScrollBar; +class QtMaterialScrollBarStateMachine; + +class QtMaterialScrollBarPrivate +{ + Q_DISABLE_COPY(QtMaterialScrollBarPrivate) + Q_DECLARE_PUBLIC(QtMaterialScrollBar) + +public: + QtMaterialScrollBarPrivate(QtMaterialScrollBar *q); + ~QtMaterialScrollBarPrivate(); + + void init(); + + QtMaterialScrollBar *const q_ptr; + QtMaterialScrollBarStateMachine *stateMachine; + QColor backgroundColor; + QColor sliderColor; + QColor canvasColor; + bool hideOnMouseOut; + bool useThemeColors; +}; + +#endif // QTMATERIALSCROLLBAR_P_H diff --git a/qt-material-widgets/components/qtmaterialslider.cpp b/qt-material-widgets/components/qtmaterialslider.cpp new file mode 100644 index 0000000..a0d17dc --- /dev/null +++ b/qt-material-widgets/components/qtmaterialslider.cpp @@ -0,0 +1,407 @@ +#include "qtmaterialslider.h" +#include "qtmaterialslider_p.h" +#include +#include +#include "qtmaterialslider_internal.h" +#include "lib/qtmaterialstyle.h" +#include "lib/qtmaterialstatetransitionevent.h" + +/*! + * \class QtMaterialSliderPrivate + * \internal + */ + +QtMaterialSliderPrivate::QtMaterialSliderPrivate(QtMaterialSlider *q) + : q_ptr(q) +{ +} + +QtMaterialSliderPrivate::~QtMaterialSliderPrivate() +{ +} + +void QtMaterialSliderPrivate::init() +{ + Q_Q(QtMaterialSlider); + + thumb = new QtMaterialSliderThumb(q); + track = new QtMaterialSliderTrack(thumb, q); + stateMachine = new QtMaterialSliderStateMachine(q, thumb, track); + stepTo = 0; + oldValue = q->value(); + trackWidth = 2; + hoverTrack = false; + hoverThumb = false; + hover = false; + step = false; + pageStepMode = true; + useThemeColors = true; + + q->setMouseTracking(true); + q->setFocusPolicy(Qt::StrongFocus); + q->setPageStep(1); + + QSizePolicy sp(QSizePolicy::Expanding, + QSizePolicy::Fixed); + + if (q->orientation() == Qt::Vertical) { + sp.transpose(); + } + + q->setSizePolicy(sp); + q->setAttribute(Qt::WA_WState_OwnSizePolicy, false); + + stateMachine->start(); + QCoreApplication::processEvents(); +} + +QRectF QtMaterialSliderPrivate::trackBoundingRect() const +{ + Q_Q(const QtMaterialSlider); + + qreal hw = static_cast(trackWidth)/2; + + return Qt::Horizontal == q->orientation() + ? QRectF(QT_MATERIAL_SLIDER_MARGIN, q->height()/2 - hw, + q->width() - QT_MATERIAL_SLIDER_MARGIN*2, hw*2) + : QRectF(q->width()/2 - hw, QT_MATERIAL_SLIDER_MARGIN, hw*2, + q->height() - QT_MATERIAL_SLIDER_MARGIN*2); +} + +QRectF QtMaterialSliderPrivate::thumbBoundingRect() const +{ + Q_Q(const QtMaterialSlider); + + return Qt::Horizontal == q->orientation() + ? QRectF(thumb->offset(), q->height()/2 - QT_MATERIAL_SLIDER_MARGIN, + QT_MATERIAL_SLIDER_MARGIN*2, QT_MATERIAL_SLIDER_MARGIN*2) + : QRectF(q->width()/2 - QT_MATERIAL_SLIDER_MARGIN, thumb->offset(), + QT_MATERIAL_SLIDER_MARGIN*2, QT_MATERIAL_SLIDER_MARGIN*2); +} + +int QtMaterialSliderPrivate::valueFromPosition(const QPoint &pos) const +{ + Q_Q(const QtMaterialSlider); + + const int position = Qt::Horizontal == q->orientation() ? pos.x() : pos.y(); + + const int span = Qt::Horizontal == q->orientation() + ? q->width() - QT_MATERIAL_SLIDER_MARGIN*2 + : q->height() - QT_MATERIAL_SLIDER_MARGIN*2; + + return QtMaterialStyle::sliderValueFromPosition( + q->minimum(), + q->maximum(), + position - QT_MATERIAL_SLIDER_MARGIN, + span, + q->invertedAppearance()); +} + +void QtMaterialSliderPrivate::setHovered(bool status) +{ + Q_Q(QtMaterialSlider); + + if (hover == status) { + return; + } + + hover = status; + + if (!q->hasFocus()) { + if (status) { + stateMachine->postEvent(new QtMaterialStateTransitionEvent(SliderNoFocusMouseEnter)); + } else { + stateMachine->postEvent(new QtMaterialStateTransitionEvent(SliderNoFocusMouseLeave)); + } + } + + q->update(); +} + +/*! + * \class QtMaterialSlider + */ + +QtMaterialSlider::QtMaterialSlider(QWidget *parent) + : QAbstractSlider(parent), + d_ptr(new QtMaterialSliderPrivate(this)) +{ + d_func()->init(); +} + +QtMaterialSlider::~QtMaterialSlider() +{ +} + +void QtMaterialSlider::setUseThemeColors(bool value) +{ + Q_D(QtMaterialSlider); + + if (d->useThemeColors == value) { + return; + } + + d->useThemeColors = value; + d->stateMachine->setupProperties(); +} + +bool QtMaterialSlider::useThemeColors() const +{ + Q_D(const QtMaterialSlider); + + return d->useThemeColors; +} + +void QtMaterialSlider::setThumbColor(const QColor &color) +{ + Q_D(QtMaterialSlider); + + d->thumbColor = color; + + MATERIAL_DISABLE_THEME_COLORS + d->stateMachine->setupProperties(); + update(); +} + +QColor QtMaterialSlider::thumbColor() const +{ + Q_D(const QtMaterialSlider); + + if (d->useThemeColors || !d->thumbColor.isValid()) { + return QtMaterialStyle::instance().themeColor("primary1"); + } else { + return d->thumbColor; + } +} + +void QtMaterialSlider::setTrackColor(const QColor &color) +{ + Q_D(QtMaterialSlider); + + d->trackColor = color; + + MATERIAL_DISABLE_THEME_COLORS + d->stateMachine->setupProperties(); + update(); +} + +QColor QtMaterialSlider::trackColor() const +{ + Q_D(const QtMaterialSlider); + + if (d->useThemeColors || !d->trackColor.isValid()) { + return QtMaterialStyle::instance().themeColor("accent3"); + } else { + return d->trackColor; + } +} + +void QtMaterialSlider::setDisabledColor(const QColor &color) +{ + Q_D(QtMaterialSlider); + + d->disabledColor = color; + + MATERIAL_DISABLE_THEME_COLORS + d->stateMachine->setupProperties(); + update(); +} + +QColor QtMaterialSlider::disabledColor() const +{ + Q_D(const QtMaterialSlider); + + if (d->useThemeColors || !d->disabledColor.isValid()) { + return QtMaterialStyle::instance().themeColor("disabled"); + } else { + return d->disabledColor; + } +} + +void QtMaterialSlider::setPageStepMode(bool pageStep) +{ + Q_D(QtMaterialSlider); + + d->pageStepMode = pageStep; +} + +bool QtMaterialSlider::pageStepMode() const +{ + Q_D(const QtMaterialSlider); + + return d->pageStepMode; +} + +/*! + * \remip + */ +QSize QtMaterialSlider::minimumSizeHint() const +{ + return Qt::Horizontal == orientation() + ? QSize(130, 34) + : QSize(34, 130); +} + +void QtMaterialSlider::setInvertedAppearance(bool value) +{ + QAbstractSlider::setInvertedAppearance(value); + + updateThumbOffset(); +} + +/*! + * \remip + */ +void QtMaterialSlider::sliderChange(SliderChange change) +{ + Q_D(QtMaterialSlider); + + if (SliderOrientationChange == change) + { + QSizePolicy sp(QSizePolicy::Expanding, QSizePolicy::Fixed); + if (orientation() == Qt::Vertical) { + sp.transpose(); + } + setSizePolicy(sp); + } + else if (SliderValueChange == change) + { + if (minimum() == value()) { + triggerAction(SliderToMinimum); + d->stateMachine->postEvent(new QtMaterialStateTransitionEvent(SliderChangedToMinimum)); + } else if (maximum() == value()) { + triggerAction(SliderToMaximum); + } + if (minimum() == d->oldValue) { + d->stateMachine->postEvent(new QtMaterialStateTransitionEvent(SliderChangedFromMinimum)); + } + d->oldValue = value(); + } + + updateThumbOffset(); + + QAbstractSlider::sliderChange(change); +} + +/*! + * \remip + */ +void QtMaterialSlider::mouseMoveEvent(QMouseEvent *event) +{ + Q_D(QtMaterialSlider); + + if (isSliderDown()) + { + setSliderPosition(d->valueFromPosition(event->pos())); + } + else + { + QRectF track(d->trackBoundingRect().adjusted(-2, -2, 2, 2)); + + if (track.contains(event->pos()) != d->hoverTrack) { + d->hoverTrack = !d->hoverTrack; + update(); + } + + QRectF thumb(0, 0, 16, 16); + thumb.moveCenter(d->thumbBoundingRect().center()); + + if (thumb.contains(event->pos()) != d->hoverThumb) { + d->hoverThumb = !d->hoverThumb; + update(); + } + + d->setHovered(d->hoverTrack || d->hoverThumb); + } + + QAbstractSlider::mouseMoveEvent(event); +} + +/*! + * \remip + */ +void QtMaterialSlider::mousePressEvent(QMouseEvent *event) +{ + Q_D(QtMaterialSlider); + + const QPoint pos = event->pos(); + + QRectF thumb(0, 0, 16, 16); + thumb.moveCenter(d->thumbBoundingRect().center()); + + if (thumb.contains(pos)) { + setSliderDown(true); + return; + } + + if (!d->pageStepMode) { + setSliderPosition(d->valueFromPosition(event->pos())); + d->thumb->setHaloSize(0); + setSliderDown(true); + return; + } + + d->step = true; + d->stepTo = d->valueFromPosition(pos); + + SliderAction action = d->stepTo > sliderPosition() + ? SliderPageStepAdd + : SliderPageStepSub; + + triggerAction(action); + setRepeatAction(action, 400, 8); +} + +/*! + * \remip + */ +void QtMaterialSlider::mouseReleaseEvent(QMouseEvent *event) +{ + Q_D(QtMaterialSlider); + + if (isSliderDown()) { + setSliderDown(false); + } else if (d->step) { + d->step = false; + setRepeatAction(SliderNoAction, 0); + } + + QAbstractSlider::mouseReleaseEvent(event); +} + +/*! + * \remip + */ +void QtMaterialSlider::leaveEvent(QEvent *event) +{ + Q_D(QtMaterialSlider); + + if (d->hoverTrack) { + d->hoverTrack = false; + update(); + } + if (d->hoverThumb) { + d->hoverThumb = false; + update(); + } + + d->setHovered(false); + + QAbstractSlider::leaveEvent(event); +} + +void QtMaterialSlider::updateThumbOffset() +{ + Q_D(QtMaterialSlider); + + const int offset = QtMaterialStyle::sliderPositionFromValue( + minimum(), + maximum(), + sliderPosition(), + Qt::Horizontal == orientation() + ? width() - QT_MATERIAL_SLIDER_MARGIN*2 + : height() - QT_MATERIAL_SLIDER_MARGIN*2, + invertedAppearance()); + + d->thumb->setOffset(offset); +} diff --git a/qt-material-widgets/components/qtmaterialslider.h b/qt-material-widgets/components/qtmaterialslider.h new file mode 100644 index 0000000..f8e642d --- /dev/null +++ b/qt-material-widgets/components/qtmaterialslider.h @@ -0,0 +1,58 @@ +#ifndef QTMATERIALSLIDER_H +#define QTMATERIALSLIDER_H + +#include +#include + +#define QT_MATERIAL_SLIDER_MARGIN 30 + +class QtMaterialSliderPrivate; + +class QtMaterialSlider : public QAbstractSlider +{ + Q_OBJECT + + Q_PROPERTY(QColor thumbColor WRITE setThumbColor READ thumbColor) + Q_PROPERTY(QColor trackColor WRITE setTrackColor READ trackColor) + Q_PROPERTY(QColor disabledColor WRITE setDisabledColor READ disabledColor) + +public: + explicit QtMaterialSlider(QWidget *parent = 0); + ~QtMaterialSlider(); + + void setUseThemeColors(bool value); + bool useThemeColors() const; + + void setThumbColor(const QColor &color); + QColor thumbColor() const; + + void setTrackColor(const QColor &color); + QColor trackColor() const; + + void setDisabledColor(const QColor &color); + QColor disabledColor() const; + + void setPageStepMode(bool pageStep); + bool pageStepMode() const; + + QSize minimumSizeHint() const Q_DECL_OVERRIDE; + + void setInvertedAppearance(bool value); + +protected: + void sliderChange(SliderChange change) Q_DECL_OVERRIDE; + void mouseMoveEvent(QMouseEvent *event) Q_DECL_OVERRIDE; + void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE; + void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE; + void leaveEvent(QEvent *event) Q_DECL_OVERRIDE; + + void updateThumbOffset(); + + const QScopedPointer d_ptr; + +private: + Q_DISABLE_COPY(QtMaterialSlider) + Q_DECLARE_PRIVATE(QtMaterialSlider) +}; + +#endif // QTMATERIALSLIDER_H diff --git a/qt-material-widgets/components/qtmaterialslider_internal.cpp b/qt-material-widgets/components/qtmaterialslider_internal.cpp new file mode 100644 index 0000000..fd2d50b --- /dev/null +++ b/qt-material-widgets/components/qtmaterialslider_internal.cpp @@ -0,0 +1,408 @@ +#include "qtmaterialslider_internal.h" +#include +#include +#include +#include +#include +#include +#include "qtmaterialslider.h" +#include "lib/qtmaterialstyle.h" +#include "lib/qtmaterialstatetransition.h" + +/*! + * \class QtMaterialSliderStateMachine + * \internal + */ + +QtMaterialSliderStateMachine::QtMaterialSliderStateMachine( + QtMaterialSlider *slider, + QtMaterialSliderThumb *thumb, + QtMaterialSliderTrack *track) + : QStateMachine(slider), + m_slider(slider), + m_thumb(thumb), + m_track(track), + m_topState(new QState(QState::ParallelStates)), + m_fstState(new QState(m_topState)), + m_sndState(new QState(m_topState)), + m_inactiveState(new QState(m_fstState)), + m_focusState(new QState(m_fstState)), + m_slidingState(new QState(m_fstState)), + m_pulseOutState(new QState(m_focusState)), + m_pulseInState(new QState(m_focusState)), + m_minState(new QState(m_sndState)), + m_normalState(new QState(m_sndState)) +{ + addState(m_topState); + setInitialState(m_topState); + + m_fstState->setInitialState(m_inactiveState); + m_focusState->setInitialState(m_pulseOutState); + + m_inactiveState->assignProperty(thumb, "haloSize", 0); + m_slidingState->assignProperty(thumb, "haloSize", 0); + + m_pulseOutState->assignProperty(thumb, "haloSize", 35); + m_pulseInState->assignProperty(thumb, "haloSize", 28); + + m_inactiveState->assignProperty(thumb, "diameter", 11); + m_focusState->assignProperty(thumb, "diameter", 11); + m_slidingState->assignProperty(thumb, "diameter", 17); + + QAbstractTransition *transition; + QtMaterialStateTransition *customTransition; + QPropertyAnimation *animation; + + // Show halo on mouse enter + + customTransition = new QtMaterialStateTransition(SliderNoFocusMouseEnter); + customTransition->setTargetState(m_focusState); + + animation = new QPropertyAnimation(thumb, "haloSize", this); + animation->setEasingCurve(QEasingCurve::InOutSine); + customTransition->addAnimation(animation); + customTransition->addAnimation(new QPropertyAnimation(track, "fillColor", this)); + m_inactiveState->addTransition(customTransition); + + // Show halo on focus in + + transition = new QEventTransition(slider, QEvent::FocusIn); + transition->setTargetState(m_focusState); + + animation = new QPropertyAnimation(thumb, "haloSize", this); + animation->setEasingCurve(QEasingCurve::InOutSine); + transition->addAnimation(animation); + transition->addAnimation(new QPropertyAnimation(track, "fillColor", this)); + m_inactiveState->addTransition(transition); + + // Hide halo on focus out + + transition = new QEventTransition(slider, QEvent::FocusOut); + transition->setTargetState(m_inactiveState); + + animation = new QPropertyAnimation(thumb, "haloSize", this); + animation->setEasingCurve(QEasingCurve::InOutSine); + transition->addAnimation(animation); + transition->addAnimation(new QPropertyAnimation(track, "fillColor", this)); + m_focusState->addTransition(transition); + + // Hide halo on mouse leave, except if widget has focus + + customTransition = new QtMaterialStateTransition(SliderNoFocusMouseLeave); + customTransition->setTargetState(m_inactiveState); + + animation = new QPropertyAnimation(thumb, "haloSize", this); + animation->setEasingCurve(QEasingCurve::InOutSine); + customTransition->addAnimation(animation); + customTransition->addAnimation(new QPropertyAnimation(track, "fillColor", this)); + m_focusState->addTransition(customTransition); + + // Pulse in + + transition = new QSignalTransition(m_pulseOutState, SIGNAL(propertiesAssigned())); + transition->setTargetState(m_pulseInState); + + animation = new QPropertyAnimation(thumb, "haloSize", this); + animation->setEasingCurve(QEasingCurve::InOutSine); + animation->setDuration(1000); + transition->addAnimation(animation); + m_pulseOutState->addTransition(transition); + + // Pulse out + + transition = new QSignalTransition(m_pulseInState, SIGNAL(propertiesAssigned())); + transition->setTargetState(m_pulseOutState); + + animation = new QPropertyAnimation(thumb, "haloSize", this); + animation->setEasingCurve(QEasingCurve::InOutSine); + animation->setDuration(1000); + transition->addAnimation(animation); + m_pulseInState->addTransition(transition); + + // Slider pressed + + transition = new QSignalTransition(slider, SIGNAL(sliderPressed())); + transition->setTargetState(m_slidingState); + animation = new QPropertyAnimation(thumb, "diameter", this); + animation->setDuration(70); + transition->addAnimation(animation); + + animation = new QPropertyAnimation(thumb, "haloSize", this); + animation->setEasingCurve(QEasingCurve::InOutSine); + transition->addAnimation(animation); + m_focusState->addTransition(transition); + + // Slider released + + transition = new QSignalTransition(slider, SIGNAL(sliderReleased())); + transition->setTargetState(m_focusState); + animation = new QPropertyAnimation(thumb, "diameter", this); + animation->setDuration(70); + transition->addAnimation(animation); + + animation = new QPropertyAnimation(thumb, "haloSize", this); + animation->setEasingCurve(QEasingCurve::InOutSine); + transition->addAnimation(animation); + m_slidingState->addTransition(transition); + + // Min. value transitions + + m_minState->assignProperty(thumb, "borderWidth", 2); + m_normalState->assignProperty(thumb, "borderWidth", 0); + + m_sndState->setInitialState(m_minState); + + customTransition = new QtMaterialStateTransition(SliderChangedFromMinimum); + customTransition->setTargetState(m_normalState); + + animation = new QPropertyAnimation(thumb, "fillColor", this); + animation->setDuration(200); + customTransition->addAnimation(animation); + + animation = new QPropertyAnimation(thumb, "haloColor", this); + animation->setDuration(300); + customTransition->addAnimation(animation); + + animation = new QPropertyAnimation(thumb, "borderColor", this); + animation->setDuration(200); + customTransition->addAnimation(animation); + + animation = new QPropertyAnimation(thumb, "borderWidth", this); + animation->setDuration(200); + customTransition->addAnimation(animation); + + m_minState->addTransition(customTransition); + + customTransition = new QtMaterialStateTransition(SliderChangedToMinimum); + customTransition->setTargetState(m_minState); + + animation = new QPropertyAnimation(thumb, "fillColor", this); + animation->setDuration(200); + customTransition->addAnimation(animation); + + animation = new QPropertyAnimation(thumb, "haloColor", this); + animation->setDuration(300); + customTransition->addAnimation(animation); + + animation = new QPropertyAnimation(thumb, "borderColor", this); + animation->setDuration(200); + customTransition->addAnimation(animation); + + animation = new QPropertyAnimation(thumb, "borderWidth", this); + animation->setDuration(200); + customTransition->addAnimation(animation); + + m_normalState->addTransition(customTransition); + + setupProperties(); +} + +QtMaterialSliderStateMachine::~QtMaterialSliderStateMachine() +{ +} + +void QtMaterialSliderStateMachine::setupProperties() +{ + QColor trackColor = m_slider->trackColor(); + QColor thumbColor = m_slider->thumbColor(); + + m_inactiveState->assignProperty(m_track, "fillColor", trackColor.lighter(130)); + m_slidingState->assignProperty(m_track, "fillColor", trackColor); + m_focusState->assignProperty(m_track, "fillColor", trackColor); + + QColor holeColor = m_slider->palette().color(QPalette::Base); + + if (m_slider->parentWidget()) { + holeColor = m_slider->parentWidget()->palette().color(m_slider->backgroundRole()); + } + + m_minState->assignProperty(m_thumb, "fillColor", holeColor); + + m_minState->assignProperty(m_thumb, "haloColor", trackColor); + m_minState->assignProperty(m_thumb, "borderColor", trackColor); + + m_normalState->assignProperty(m_thumb, "fillColor", thumbColor); + m_normalState->assignProperty(m_thumb, "haloColor", thumbColor); + m_normalState->assignProperty(m_thumb, "borderColor", thumbColor); + + m_slider->update(); +} + +/*! + * \class QtMaterialSliderThumb + * \internal + */ + +QtMaterialSliderThumb::QtMaterialSliderThumb(QtMaterialSlider *slider) + : QtMaterialOverlayWidget(slider->parentWidget()), + m_slider(slider), + m_diameter(11), + m_borderWidth(2), + m_haloSize(0), + m_offset(0) +{ + slider->installEventFilter(this); + + setAttribute(Qt::WA_TransparentForMouseEvents, true); +} + +QtMaterialSliderThumb::~QtMaterialSliderThumb() +{ +} + +bool QtMaterialSliderThumb::eventFilter(QObject *obj, QEvent *event) +{ + if (QEvent::ParentChange == event->type()) { + setParent(m_slider->parentWidget()); + } + + return QtMaterialOverlayWidget::eventFilter(obj, event); +} + +void QtMaterialSliderThumb::paintEvent(QPaintEvent *event) +{ + Q_UNUSED(event) + + QPainter painter(this); + painter.setRenderHint(QPainter::Antialiasing); + + // Halo + + QBrush brush; + brush.setStyle(Qt::SolidPattern); + brush.setColor(m_haloColor); + painter.setBrush(brush); + painter.setPen(Qt::NoPen); + + QPointF disp = Qt::Horizontal == m_slider->orientation() + ? QPointF(QT_MATERIAL_SLIDER_MARGIN + m_offset, m_slider->height()/2) + : QPointF(m_slider->width()/2, QT_MATERIAL_SLIDER_MARGIN + m_offset); + + QRectF halo((m_slider->pos() - QPointF(m_haloSize, m_haloSize)/2) + disp, + QSizeF(m_haloSize, m_haloSize)); + + painter.setOpacity(0.15); + painter.drawEllipse(halo); + + // Knob + + const bool isMin = m_slider->value() == m_slider->minimum(); + + brush.setColor(m_slider->isEnabled() + ? m_fillColor + : m_slider->disabledColor()); + painter.setBrush(!m_slider->isEnabled() && isMin + ? Qt::NoBrush + : brush); + + if (m_slider->isEnabled() || isMin) { + QPen pen; + pen.setColor(m_borderColor); + pen.setWidthF((isMin && !m_slider->isEnabled()) ? 1.7 : m_borderWidth); + painter.setPen(pen); + } else { + painter.setPen(Qt::NoPen); + } + + QRectF geometry = Qt::Horizontal == m_slider->orientation() + ? QRectF(m_offset, m_slider->height()/2 - QT_MATERIAL_SLIDER_MARGIN, + QT_MATERIAL_SLIDER_MARGIN*2, QT_MATERIAL_SLIDER_MARGIN*2).translated(m_slider->pos()) + : QRectF(m_slider->width()/2 - QT_MATERIAL_SLIDER_MARGIN, m_offset, + QT_MATERIAL_SLIDER_MARGIN*2, QT_MATERIAL_SLIDER_MARGIN*2).translated(m_slider->pos()); + + qreal s = m_slider->isEnabled() ? m_diameter : 7; + + QRectF thumb(0, 0, s, s); + + thumb.moveCenter(geometry.center()); + + painter.setOpacity(1); + painter.drawEllipse(thumb); +} + +/*! + * \class QtMaterialSliderTrack + * \internal + */ + +QtMaterialSliderTrack::QtMaterialSliderTrack(QtMaterialSliderThumb *thumb, QtMaterialSlider *slider) + : QtMaterialOverlayWidget(slider->parentWidget()), + m_slider(slider), + m_thumb(thumb), + m_trackWidth(2) +{ + slider->installEventFilter(this); + + setAttribute(Qt::WA_TransparentForMouseEvents, true); + + connect(slider, SIGNAL(sliderMoved(int)), this, SLOT(update())); +} + +QtMaterialSliderTrack::~QtMaterialSliderTrack() +{ +} + +bool QtMaterialSliderTrack::eventFilter(QObject *obj, QEvent *event) +{ + if (QEvent::ParentChange == event->type()) { + setParent(m_slider->parentWidget()); + } + + return QtMaterialOverlayWidget::eventFilter(obj, event); +} + +void QtMaterialSliderTrack::paintEvent(QPaintEvent *event) +{ + Q_UNUSED(event) + + QPainter painter(this); + painter.setRenderHint(QPainter::Antialiasing); + + QBrush fg; + fg.setStyle(Qt::SolidPattern); + fg.setColor(m_slider->isEnabled() ? m_slider->thumbColor() + : m_slider->disabledColor()); + QBrush bg; + bg.setStyle(Qt::SolidPattern); + bg.setColor(m_slider->isEnabled() ? m_fillColor + : m_slider->disabledColor()); + + qreal offset = m_thumb->offset(); + + if (Qt::Horizontal == m_slider->orientation()) { + painter.translate(m_slider->x() + QT_MATERIAL_SLIDER_MARGIN, + m_slider->y() + m_slider->height()/2 + - static_cast(m_trackWidth)/2); + } else { + painter.translate(m_slider->x() + m_slider->width()/2 + - static_cast(m_trackWidth)/2, + m_slider->y() + QT_MATERIAL_SLIDER_MARGIN); + } + + QRectF geometry = Qt::Horizontal == m_slider->orientation() + ? QRectF(0, 0, m_slider->width() - QT_MATERIAL_SLIDER_MARGIN*2, m_trackWidth) + : QRectF(0, 0, m_trackWidth, m_slider->height() - QT_MATERIAL_SLIDER_MARGIN*2); + + QRectF bgRect; + QRectF fgRect; + + if (Qt::Horizontal == m_slider->orientation()) { + fgRect = QRectF(0, 0, offset, m_trackWidth); + bgRect = QRectF(offset, 0, m_slider->width(), m_trackWidth).intersected(geometry); + } else { + fgRect = QRectF(0, 0, m_trackWidth, offset); + bgRect = QRectF(0, offset, m_trackWidth, m_slider->height()).intersected(geometry); + } + + if (!m_slider->isEnabled()) { + fgRect = fgRect.width() < 9 ? QRectF() : fgRect.adjusted(0, 0, -6, 0); + bgRect = bgRect.width() < 9 ? QRectF() : bgRect.adjusted(6, 0, 0, 0); + } + + if (m_slider->invertedAppearance()) { + qSwap(bgRect, fgRect); + } + + painter.fillRect(bgRect, bg); + painter.fillRect(fgRect, fg); +} diff --git a/qt-material-widgets/components/qtmaterialslider_internal.h b/qt-material-widgets/components/qtmaterialslider_internal.h new file mode 100644 index 0000000..6f2649e --- /dev/null +++ b/qt-material-widgets/components/qtmaterialslider_internal.h @@ -0,0 +1,222 @@ +#ifndef QTMATERIALSLIDER_INTERNAL_H +#define QTMATERIALSLIDER_INTERNAL_H + +#include +#include "lib/qtmaterialoverlaywidget.h" + +class QtMaterialSlider; +class QtMaterialSliderThumb; +class QtMaterialSliderTrack; + +class QtMaterialSliderStateMachine : public QStateMachine +{ + Q_OBJECT + +public: + QtMaterialSliderStateMachine(QtMaterialSlider *slider, + QtMaterialSliderThumb *thumb, + QtMaterialSliderTrack *track); + ~QtMaterialSliderStateMachine(); + + void setupProperties(); + +private: + Q_DISABLE_COPY(QtMaterialSliderStateMachine) + + QtMaterialSlider *const m_slider; + QtMaterialSliderThumb *const m_thumb; + QtMaterialSliderTrack *const m_track; + QState *const m_topState; + QState *const m_fstState; + QState *const m_sndState; + QState *const m_inactiveState; + QState *const m_focusState; + QState *const m_slidingState; + QState *const m_pulseOutState; + QState *const m_pulseInState; + QState *const m_minState; + QState *const m_normalState; +}; + +class QtMaterialSliderThumb : public QtMaterialOverlayWidget +{ + Q_OBJECT + + Q_PROPERTY(qreal diameter WRITE setDiameter READ diameter) + Q_PROPERTY(qreal borderWidth WRITE setBorderWidth READ borderWidth) + Q_PROPERTY(QColor borderColor WRITE setBorderColor READ borderColor) + Q_PROPERTY(QColor fillColor WRITE setFillColor READ fillColor) + Q_PROPERTY(qreal haloSize WRITE setHaloSize READ haloSize) + Q_PROPERTY(QColor haloColor WRITE setHaloColor READ haloColor) + +public: + explicit QtMaterialSliderThumb(QtMaterialSlider *slider); + ~QtMaterialSliderThumb(); + + inline void setDiameter(qreal diameter); + inline qreal diameter() const; + + inline void setBorderWidth(qreal width); + inline qreal borderWidth() const; + + inline void setBorderColor(const QColor &color); + inline QColor borderColor() const; + + inline void setFillColor(const QColor &color); + inline QColor fillColor() const; + + inline void setHaloSize(qreal size); + inline qreal haloSize() const; + + inline void setHaloColor(const QColor &color); + inline QColor haloColor() const; + + inline void setOffset(int offset); + inline int offset() const; + +protected: + bool eventFilter(QObject *obj, QEvent *event) Q_DECL_OVERRIDE; + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; + +private: + Q_DISABLE_COPY(QtMaterialSliderThumb) + + const QtMaterialSlider *const m_slider; + QColor m_borderColor; + QColor m_fillColor; + QColor m_haloColor; + qreal m_diameter; + qreal m_borderWidth; + qreal m_haloSize; + int m_offset; +}; + +inline void QtMaterialSliderThumb::setDiameter(qreal diameter) +{ + m_diameter = diameter; + update(); +} + +inline qreal QtMaterialSliderThumb::diameter() const +{ + return m_diameter; +} + +inline void QtMaterialSliderThumb::setBorderWidth(qreal width) +{ + m_borderWidth = width; + update(); +} + +inline qreal QtMaterialSliderThumb::borderWidth() const +{ + return m_borderWidth; +} + +inline void QtMaterialSliderThumb::setBorderColor(const QColor &color) +{ + m_borderColor = color; + update(); +} + +inline QColor QtMaterialSliderThumb::borderColor() const +{ + return m_borderColor; +} + +inline void QtMaterialSliderThumb::setFillColor(const QColor &color) +{ + m_fillColor = color; + update(); +} + +inline QColor QtMaterialSliderThumb::fillColor() const +{ + return m_fillColor; +} + +inline void QtMaterialSliderThumb::setHaloSize(qreal size) +{ + m_haloSize = size; + update(); +} + +inline qreal QtMaterialSliderThumb::haloSize() const +{ + return m_haloSize; +} + +inline void QtMaterialSliderThumb::setHaloColor(const QColor &color) +{ + m_haloColor = color; + update(); +} + +inline QColor QtMaterialSliderThumb::haloColor() const +{ + return m_haloColor; +} + +inline void QtMaterialSliderThumb::setOffset(int offset) +{ + m_offset = offset; + update(); +} + +inline int QtMaterialSliderThumb::offset() const +{ + return m_offset; +} + +class QtMaterialSliderTrack : public QtMaterialOverlayWidget +{ + Q_OBJECT + + Q_PROPERTY(QColor fillColor WRITE setFillColor READ fillColor) + +public: + explicit QtMaterialSliderTrack(QtMaterialSliderThumb *thumb, QtMaterialSlider *slider); + ~QtMaterialSliderTrack(); + + inline void setFillColor(const QColor &color); + inline QColor fillColor() const; + + inline void setTrackWidth(int width); + inline int trackWidth() const; + +protected: + bool eventFilter(QObject *obj, QEvent *event) Q_DECL_OVERRIDE; + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; + +private: + Q_DISABLE_COPY(QtMaterialSliderTrack) + + const QtMaterialSlider *const m_slider; + QtMaterialSliderThumb *const m_thumb; + QColor m_fillColor; + int m_trackWidth; +}; + +inline void QtMaterialSliderTrack::setFillColor(const QColor &color) +{ + m_fillColor = color; + update(); +} + +inline QColor QtMaterialSliderTrack::fillColor() const +{ + return m_fillColor; +} + +void QtMaterialSliderTrack::setTrackWidth(int width) +{ + m_trackWidth = width; + update(); +} + +int QtMaterialSliderTrack::trackWidth() const +{ + return m_trackWidth; +} + +#endif // QTMATERIALSLIDER_INTERNAL_H diff --git a/qt-material-widgets/components/qtmaterialslider_p.h b/qt-material-widgets/components/qtmaterialslider_p.h new file mode 100644 index 0000000..ff6b7ca --- /dev/null +++ b/qt-material-widgets/components/qtmaterialslider_p.h @@ -0,0 +1,49 @@ +#ifndef QTMATERIALSLIDER_P_H +#define QTMATERIALSLIDER_P_H + +#include +#include +#include + +class QtMaterialSlider; +class QtMaterialSliderThumb; +class QtMaterialSliderTrack; +class QtMaterialSliderStateMachine; + +class QtMaterialSliderPrivate +{ + Q_DISABLE_COPY(QtMaterialSliderPrivate) + Q_DECLARE_PUBLIC(QtMaterialSlider) + +public: + QtMaterialSliderPrivate(QtMaterialSlider *q); + ~QtMaterialSliderPrivate(); + + void init(); + + QRectF trackBoundingRect() const; + QRectF thumbBoundingRect() const; + + int valueFromPosition(const QPoint &pos) const; + + void setHovered(bool status); + + QtMaterialSlider *const q_ptr; + QtMaterialSliderThumb *thumb; + QtMaterialSliderTrack *track; + QtMaterialSliderStateMachine *stateMachine; + QColor thumbColor; + QColor trackColor; + QColor disabledColor; + int stepTo; + int oldValue; + int trackWidth; + bool hoverTrack; + bool hoverThumb; + bool hover; + bool step; + bool pageStepMode; + bool useThemeColors; +}; + +#endif // QTMATERIALSLIDER_P_H diff --git a/qt-material-widgets/components/qtmaterialsnackbar.cpp b/qt-material-widgets/components/qtmaterialsnackbar.cpp new file mode 100644 index 0000000..323ff20 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialsnackbar.cpp @@ -0,0 +1,270 @@ +#include "qtmaterialsnackbar.h" +#include "qtmaterialsnackbar_p.h" +#include +#include +#include "qtmaterialsnackbar_internal.h" +#include "lib/qtmaterialstyle.h" +#include "lib/qtmaterialstatetransition.h" +#include + +/*! + * \class QtMaterialSnackbarPrivate + * \internal + */ + +QtMaterialSnackbarPrivate::QtMaterialSnackbarPrivate(QtMaterialSnackbar *q) + : q_ptr(q) +{ +} + +QtMaterialSnackbarPrivate::~QtMaterialSnackbarPrivate() +{ +} + +void QtMaterialSnackbarPrivate::init() +{ + Q_Q(QtMaterialSnackbar); + + stateMachine = new QtMaterialSnackbarStateMachine(q); + bgOpacity = 0.9; + duration = 3000; + boxWidth = 300; + clickDismiss = false; + useThemeColors = true; + + q->setAttribute(Qt::WA_TransparentForMouseEvents); + + QFont font("Roboto", 10, QFont::Medium); + font.setCapitalization(QFont::AllUppercase); + q->setFont(font); + + stateMachine->start(); + QCoreApplication::processEvents(); +} + +/*! + * \class QtMaterialSnackbar + */ + +QtMaterialSnackbar::QtMaterialSnackbar(QWidget *parent) + : QtMaterialOverlayWidget(parent), + d_ptr(new QtMaterialSnackbarPrivate(this)) +{ + d_func()->init(); +} + +QtMaterialSnackbar::~QtMaterialSnackbar() +{ +} + +void QtMaterialSnackbar::setAutoHideDuration(int duration) +{ + Q_D(QtMaterialSnackbar); + + d->duration = duration; +} + +int QtMaterialSnackbar::autoHideDuration() const +{ + Q_D(const QtMaterialSnackbar); + + return d->duration; +} + +void QtMaterialSnackbar::setUseThemeColors(bool value) +{ + Q_D(QtMaterialSnackbar); + + if (d->useThemeColors == value) { + return; + } + + d->useThemeColors = value; + update(); +} + +bool QtMaterialSnackbar::useThemeColors() const +{ + Q_D(const QtMaterialSnackbar); + + return d->useThemeColors; +} + +void QtMaterialSnackbar::setBackgroundColor(const QColor &color) +{ + Q_D(QtMaterialSnackbar); + + d->backgroundColor = color; + + MATERIAL_DISABLE_THEME_COLORS + update(); +} + +QColor QtMaterialSnackbar::backgroundColor() const +{ + Q_D(const QtMaterialSnackbar); + + if (d->useThemeColors || !d->backgroundColor.isValid()) { + return QtMaterialStyle::instance().themeColor("text"); + } else { + return d->backgroundColor; + } +} + +void QtMaterialSnackbar::setBackgroundOpacity(qreal opacity) +{ + Q_D(QtMaterialSnackbar); + + d->bgOpacity = opacity; + update(); +} + +qreal QtMaterialSnackbar::backgroundOpacity() const +{ + Q_D(const QtMaterialSnackbar); + + return d->bgOpacity; +} + +void QtMaterialSnackbar::setTextColor(const QColor &color) +{ + Q_D(QtMaterialSnackbar); + + d->textColor = color; + + MATERIAL_DISABLE_THEME_COLORS + update(); +} + +QColor QtMaterialSnackbar::textColor() const +{ + Q_D(const QtMaterialSnackbar); + + if (d->useThemeColors || !d->textColor.isValid()) { + return QtMaterialStyle::instance().themeColor("canvas"); + } else { + return d->textColor; + } +} + +void QtMaterialSnackbar::setFontSize(qreal size) +{ + QFont f(font()); + f.setPointSizeF(size); + setFont(f); + + update(); +} + +qreal QtMaterialSnackbar::fontSize() const +{ + return font().pointSizeF(); +} + +void QtMaterialSnackbar::setBoxWidth(int width) +{ + Q_D(QtMaterialSnackbar); + + d->boxWidth = width; + update(); +} + +int QtMaterialSnackbar::boxWidth() const +{ + Q_D(const QtMaterialSnackbar); + + return d->boxWidth; +} + +void QtMaterialSnackbar::setClickToDismissMode(bool value) +{ + Q_D(QtMaterialSnackbar); + + d->clickDismiss = value; +} + +bool QtMaterialSnackbar::clickToDismissMode() const +{ + Q_D(const QtMaterialSnackbar); + + return d->clickDismiss; +} + +void QtMaterialSnackbar::addMessage(const QString &message) +{ + Q_D(QtMaterialSnackbar); + + d->messages.push_back(message); + d->stateMachine->postEvent(new QtMaterialStateTransitionEvent(SnackbarShowTransition)); + raise(); +} + +void QtMaterialSnackbar::addInstantMessage(const QString &message) +{ + Q_D(QtMaterialSnackbar); + + if (d->messages.isEmpty()) { + d->messages.push_back(message); + } else { + d->messages.insert(1, message); + } + + d->stateMachine->progress(); +} + +void QtMaterialSnackbar::dequeue() +{ + Q_D(QtMaterialSnackbar); + + if (d->messages.isEmpty()) { + return; + } + + d->messages.removeFirst(); + + if (!d->messages.isEmpty()) { + d->stateMachine->postEvent(new QtMaterialStateTransitionEvent(SnackbarNextTransition)); + } else { + d->stateMachine->postEvent(new QtMaterialStateTransitionEvent(SnackbarWaitTransition)); + } +} + +void QtMaterialSnackbar::paintEvent(QPaintEvent *event) +{ + Q_UNUSED(event) + + Q_D(QtMaterialSnackbar); + + if (d->messages.isEmpty()) { + return; + } + + QString message = d->messages.first(); + + QPainter painter(this); + painter.setRenderHint(QPainter::Antialiasing); + + QBrush brush; + brush.setStyle(Qt::SolidPattern); + brush.setColor(backgroundColor()); + painter.setBrush(brush); + painter.setOpacity(d->bgOpacity); + + QRect r(0, 0, d->boxWidth, 40); + + painter.setPen(Qt::white); + QRect br = painter.boundingRect(r, Qt::AlignHCenter | Qt::AlignTop | Qt::TextWordWrap, message); + + painter.setPen(Qt::NoPen); + r = br.united(r).adjusted(-10, -10, 10, 20); + + const qreal s = 1-d->stateMachine->offset(); + + painter.translate((width()-(r.width()-20))/2, + height()+10-s*(r.height())); + + br.moveCenter(r.center()); + painter.drawRoundedRect(r.adjusted(0, 0, 0, 3), 3, 3); + painter.setPen(textColor()); + painter.drawText(br, Qt::AlignHCenter | Qt::AlignTop | Qt::TextWordWrap, message); +} diff --git a/qt-material-widgets/components/qtmaterialsnackbar.h b/qt-material-widgets/components/qtmaterialsnackbar.h new file mode 100644 index 0000000..6d94740 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialsnackbar.h @@ -0,0 +1,57 @@ +#ifndef QTMATERIALSNACKBAR_H +#define QTMATERIALSNACKBAR_H + +#include "lib/qtmaterialoverlaywidget.h" + +class QtMaterialSnackbarPrivate; + +class QtMaterialSnackbar : public QtMaterialOverlayWidget +{ + Q_OBJECT + +public: + explicit QtMaterialSnackbar(QWidget *parent = 0); + ~QtMaterialSnackbar(); + + void setAutoHideDuration(int duration); + int autoHideDuration() const; + + void setUseThemeColors(bool value); + bool useThemeColors() const; + + void setBackgroundColor(const QColor &color); + QColor backgroundColor() const; + + void setBackgroundOpacity(qreal opacity); + qreal backgroundOpacity() const; + + void setTextColor(const QColor &color); + QColor textColor() const; + + void setFontSize(qreal size); + qreal fontSize() const; + + void setBoxWidth(int width); + int boxWidth() const; + + void setClickToDismissMode(bool value); + bool clickToDismissMode() const; + +public slots: + void addMessage(const QString &message); + void addInstantMessage(const QString &message); + +protected slots: + void dequeue(); + +protected: + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; + + const QScopedPointer d_ptr; + +private: + Q_DISABLE_COPY(QtMaterialSnackbar) + Q_DECLARE_PRIVATE(QtMaterialSnackbar) +}; + +#endif // QTMATERIALSNACKBAR_H diff --git a/qt-material-widgets/components/qtmaterialsnackbar_internal.cpp b/qt-material-widgets/components/qtmaterialsnackbar_internal.cpp new file mode 100644 index 0000000..9e6167d --- /dev/null +++ b/qt-material-widgets/components/qtmaterialsnackbar_internal.cpp @@ -0,0 +1,99 @@ +#include "qtmaterialsnackbar_internal.h" +#include +#include "qtmaterialsnackbar.h" +#include "lib/qtmaterialstatetransition.h" +#include + +QtMaterialSnackbarStateMachine::QtMaterialSnackbarStateMachine(QtMaterialSnackbar *parent) + : QStateMachine(parent), + m_snackbar(parent) +{ + m_timer.setSingleShot(true); + + QState *hiddenState = new QState; + QState *visibleState = new QState; + QState *finalState = new QState; + + addState(hiddenState); + addState(visibleState); + addState(finalState); + + setInitialState(hiddenState); + + QtMaterialStateTransition *transition; + + transition = new QtMaterialStateTransition(SnackbarShowTransition); + transition->setTargetState(visibleState); + hiddenState->addTransition(transition); + + transition = new QtMaterialStateTransition(SnackbarHideTransition); + transition->setTargetState(visibleState); + hiddenState->addTransition(transition); + + transition = new QtMaterialStateTransition(SnackbarHideTransition); + transition->setTargetState(finalState); + visibleState->addTransition(transition); + + transition = new QtMaterialStateTransition(SnackbarWaitTransition); + transition->setTargetState(hiddenState); + finalState->addTransition(transition); + + transition = new QtMaterialStateTransition(SnackbarNextTransition); + transition->setTargetState(visibleState); + finalState->addTransition(transition); + + connect(visibleState, SIGNAL(propertiesAssigned()), + this, SLOT(snackbarShown())); + connect(finalState, SIGNAL(propertiesAssigned()), + m_snackbar, SLOT(dequeue())); + + QPropertyAnimation *animation; + + animation = new QPropertyAnimation(this, "offset", this); + animation->setEasingCurve(QEasingCurve::OutCubic); + animation->setDuration(300); + addDefaultAnimation(animation); + + hiddenState->assignProperty(this, "offset", 1); + visibleState->assignProperty(this, "offset", 0); + finalState->assignProperty(this, "offset", 1); + + connect(&m_timer, SIGNAL(timeout()), this, SLOT(progress())); + + m_snackbar->installEventFilter(this); +} + +QtMaterialSnackbarStateMachine::~QtMaterialSnackbarStateMachine() +{ +} + +bool QtMaterialSnackbarStateMachine::eventFilter(QObject *watched, QEvent *event) +{ + if (QEvent::MouseButtonPress == event->type() && m_snackbar->clickToDismissMode()) { + progress(); + } + return QStateMachine::eventFilter(watched, event); +} + +void QtMaterialSnackbarStateMachine::setOffset(qreal offset) +{ + m_offset = offset; + m_snackbar->update(); +} + +void QtMaterialSnackbarStateMachine::progress() +{ + m_timer.stop(); + postEvent(new QtMaterialStateTransitionEvent(SnackbarHideTransition)); + if (m_snackbar->clickToDismissMode()) { + m_snackbar->setAttribute(Qt::WA_TransparentForMouseEvents, true); + } +} + +void QtMaterialSnackbarStateMachine::snackbarShown() +{ + m_timer.start(m_snackbar->autoHideDuration()); + if (m_snackbar->clickToDismissMode()) { + m_snackbar->setAttribute(Qt::WA_TransparentForMouseEvents, false); + } +} diff --git a/qt-material-widgets/components/qtmaterialsnackbar_internal.h b/qt-material-widgets/components/qtmaterialsnackbar_internal.h new file mode 100644 index 0000000..117a8e5 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialsnackbar_internal.h @@ -0,0 +1,44 @@ +#ifndef QTMATERIALSNACKBAR_INTERNAL_H +#define QTMATERIALSNACKBAR_INTERNAL_H + +#include +#include + +class QtMaterialSnackbar; + +class QtMaterialSnackbarStateMachine : public QStateMachine +{ + Q_OBJECT + + Q_PROPERTY(qreal offset WRITE setOffset READ offset) + +public: + QtMaterialSnackbarStateMachine(QtMaterialSnackbar *parent); + ~QtMaterialSnackbarStateMachine(); + + void setOffset(qreal offset); + inline qreal offset() const; + +public slots: + void progress(); + +protected slots: + void snackbarShown(); + +protected: + bool eventFilter(QObject *watched, QEvent *event) Q_DECL_OVERRIDE; + +private: + Q_DISABLE_COPY(QtMaterialSnackbarStateMachine) + + QtMaterialSnackbar *const m_snackbar; + QTimer m_timer; + qreal m_offset; +}; + +inline qreal QtMaterialSnackbarStateMachine::offset() const +{ + return m_offset; +} + +#endif // QTMATERIALSNACKBAR_INTERNAL_H diff --git a/qt-material-widgets/components/qtmaterialsnackbar_p.h b/qt-material-widgets/components/qtmaterialsnackbar_p.h new file mode 100644 index 0000000..39501fd --- /dev/null +++ b/qt-material-widgets/components/qtmaterialsnackbar_p.h @@ -0,0 +1,33 @@ +#ifndef QTMATERIALSNACKBAR_P_H +#define QTMATERIALSNACKBAR_P_H + +#include +#include + +class QtMaterialSnackbar; +class QtMaterialSnackbarStateMachine; + +class QtMaterialSnackbarPrivate +{ + Q_DISABLE_COPY(QtMaterialSnackbarPrivate) + Q_DECLARE_PUBLIC(QtMaterialSnackbar) + +public: + QtMaterialSnackbarPrivate(QtMaterialSnackbar *q); + ~QtMaterialSnackbarPrivate(); + + void init(); + + QtMaterialSnackbar *const q_ptr; + QtMaterialSnackbarStateMachine *stateMachine; + QColor backgroundColor; + QColor textColor; + qreal bgOpacity; + QList messages; + int duration; + int boxWidth; + bool clickDismiss; + bool useThemeColors; +}; + +#endif // QTMATERIALSNACKBAR_P_H diff --git a/qt-material-widgets/components/qtmaterialtable.cpp b/qt-material-widgets/components/qtmaterialtable.cpp new file mode 100644 index 0000000..171c04a --- /dev/null +++ b/qt-material-widgets/components/qtmaterialtable.cpp @@ -0,0 +1,2 @@ +#include "qtmaterialtable.h" +#include "qtmaterialtable_p.h" diff --git a/qt-material-widgets/components/qtmaterialtable.h b/qt-material-widgets/components/qtmaterialtable.h new file mode 100644 index 0000000..b8953fa --- /dev/null +++ b/qt-material-widgets/components/qtmaterialtable.h @@ -0,0 +1,4 @@ +#ifndef QTMATERIALTABLE_H +#define QTMATERIALTABLE_H + +#endif // QTMATERIALTABLE_H diff --git a/qt-material-widgets/components/qtmaterialtable_p.h b/qt-material-widgets/components/qtmaterialtable_p.h new file mode 100644 index 0000000..d3232a0 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialtable_p.h @@ -0,0 +1,4 @@ +#ifndef QTMATERIALTABLE_P_H +#define QTMATERIALTABLE_P_H + +#endif // QTMATERIALTABLE_P_H diff --git a/qt-material-widgets/components/qtmaterialtabs.cpp b/qt-material-widgets/components/qtmaterialtabs.cpp new file mode 100644 index 0000000..dbc55bd --- /dev/null +++ b/qt-material-widgets/components/qtmaterialtabs.cpp @@ -0,0 +1,242 @@ +#include "qtmaterialtabs.h" +#include "qtmaterialtabs_p.h" +#include +#include "qtmaterialtabs_internal.h" +#include "lib/qtmaterialstyle.h" + +/*! + * \QtMaterialTabsPrivate + * \internal + */ + +QtMaterialTabsPrivate::QtMaterialTabsPrivate(QtMaterialTabs *q) + : q_ptr(q) +{ +} + +QtMaterialTabsPrivate::~QtMaterialTabsPrivate() +{ +} + +void QtMaterialTabsPrivate::QtMaterialTabsPrivate::init() +{ + Q_Q(QtMaterialTabs); + + inkBar = new QtMaterialTabsInkBar(q); + tabLayout = new QHBoxLayout; + rippleStyle = Material::CenteredRipple; + tab = -1; + showHalo = true; + useThemeColors = true; + + q->setLayout(tabLayout); + q->setStyle(&QtMaterialStyle::instance()); + + tabLayout->setSpacing(0); + tabLayout->setMargin(0); +} + +/*! + * \QtMaterialTabs + */ + +QtMaterialTabs::QtMaterialTabs(QWidget *parent) + : QWidget(parent), + d_ptr(new QtMaterialTabsPrivate(this)) +{ + d_func()->init(); +} + +QtMaterialTabs::~QtMaterialTabs() +{ +} + +void QtMaterialTabs::setUseThemeColors(bool value) +{ + Q_D(QtMaterialTabs); + + d->useThemeColors = value; +} + +bool QtMaterialTabs::useThemeColors() const +{ + Q_D(const QtMaterialTabs); + + return d->useThemeColors; +} + +void QtMaterialTabs::setHaloVisible(bool value) +{ + Q_D(QtMaterialTabs); + + d->showHalo = value; + updateTabs(); +} + +bool QtMaterialTabs::isHaloVisible() const +{ + Q_D(const QtMaterialTabs); + + return d->showHalo; +} + +void QtMaterialTabs::setRippleStyle(Material::RippleStyle style) +{ + Q_D(QtMaterialTabs); + + d->rippleStyle = style; + updateTabs(); +} + +Material::RippleStyle QtMaterialTabs::rippleStyle() const +{ + Q_D(const QtMaterialTabs); + + return d->rippleStyle; +} + +void QtMaterialTabs::setInkColor(const QColor &color) +{ + Q_D(QtMaterialTabs); + + d->inkColor = color; + + MATERIAL_DISABLE_THEME_COLORS + d->inkBar->update(); + update(); +} + +QColor QtMaterialTabs::inkColor() const +{ + Q_D(const QtMaterialTabs); + + if (d->useThemeColors || !d->inkColor.isValid()) { + return QtMaterialStyle::instance().themeColor("accent1"); + } else { + return d->inkColor; + } +} + +void QtMaterialTabs::setBackgroundColor(const QColor &color) +{ + Q_D(QtMaterialTabs); + + d->backgroundColor = color; + + MATERIAL_DISABLE_THEME_COLORS + updateTabs(); + update(); +} + +QColor QtMaterialTabs::backgroundColor() const +{ + Q_D(const QtMaterialTabs); + + if (d->useThemeColors || !d->backgroundColor.isValid()) { + return QtMaterialStyle::instance().themeColor("primary1"); + } else { + return d->backgroundColor; + } +} + +void QtMaterialTabs::setTextColor(const QColor &color) +{ + Q_D(QtMaterialTabs); + + d->textColor = color; + + MATERIAL_DISABLE_THEME_COLORS + updateTabs(); + update(); +} + +QColor QtMaterialTabs::textColor() const +{ + Q_D(const QtMaterialTabs); + + if (d->useThemeColors || !d->textColor.isValid()) { + return QtMaterialStyle::instance().themeColor("canvas"); + } else { + return d->textColor; + } +} + +void QtMaterialTabs::setCurrentTab(QtMaterialTab *tab) +{ + Q_D(QtMaterialTabs); + + setCurrentTab(d->tabLayout->indexOf(tab)); +} + +void QtMaterialTabs::setCurrentTab(int index) +{ + Q_D(QtMaterialTabs); + + setTabActive(d->tab, false); + d->tab = index; + setTabActive(index, true); + d->inkBar->animate(); + + emit currentChanged(index); +} + +void QtMaterialTabs::addTab(const QString &text, const QIcon &icon) +{ + Q_D(QtMaterialTabs); + + QtMaterialTab *tab = new QtMaterialTab(this); + tab->setText(text); + tab->setHaloVisible(isHaloVisible()); + tab->setRippleStyle(rippleStyle()); + + if (!icon.isNull()) { + tab->setIcon(icon); + tab->setIconSize(QSize(22, 22)); + } + + d->tabLayout->addWidget(tab); + + if (-1 == d->tab) { + d->tab = 0; + d->inkBar->refreshGeometry(); + d->inkBar->raise(); + tab->setActive(true); + } +} + +int QtMaterialTabs::currentIndex() const +{ + Q_D(const QtMaterialTabs); + + return d->tab; +} + +void QtMaterialTabs::setTabActive(int index, bool active) +{ + Q_D(QtMaterialTabs); + + QtMaterialTab *tab; + + if (index > -1) { + tab = static_cast(d->tabLayout->itemAt(index)->widget()); + if (tab) { + tab->setActive(active); + } + } +} + +void QtMaterialTabs::updateTabs() +{ + Q_D(QtMaterialTabs); + + QtMaterialTab *tab; + for (int i = 0; i < d->tabLayout->count(); ++i) { + QLayoutItem *item = d->tabLayout->itemAt(i); + if ((tab = static_cast(item->widget()))) { + tab->setRippleStyle(d->rippleStyle); + tab->setHaloVisible(d->showHalo); + tab->setBackgroundColor(backgroundColor()); + tab->setForegroundColor(textColor()); + } + } +} diff --git a/qt-material-widgets/components/qtmaterialtabs.h b/qt-material-widgets/components/qtmaterialtabs.h new file mode 100644 index 0000000..11a122e --- /dev/null +++ b/qt-material-widgets/components/qtmaterialtabs.h @@ -0,0 +1,58 @@ +#ifndef QTMATERIALTABS_H +#define QTMATERIALTABS_H + +#include +#include +#include "lib/qtmaterialtheme.h" + +class QtMaterialTabsPrivate; +class QtMaterialTab; + +class QtMaterialTabs : public QWidget +{ + Q_OBJECT + +public: + explicit QtMaterialTabs(QWidget *parent = 0); + ~QtMaterialTabs(); + + void setUseThemeColors(bool value); + bool useThemeColors() const; + + void setHaloVisible(bool value); + bool isHaloVisible() const; + + void setRippleStyle(Material::RippleStyle style); + Material::RippleStyle rippleStyle() const; + + void setInkColor(const QColor &color); + QColor inkColor() const; + + void setBackgroundColor(const QColor &color); + QColor backgroundColor() const; + + void setTextColor(const QColor &color); + QColor textColor() const; + + void addTab(const QString &text, const QIcon &icon = QIcon()); + + void setCurrentTab(QtMaterialTab *tab); + void setCurrentTab(int index); + + int currentIndex() const; + +signals: + void currentChanged(int); + +protected: + void setTabActive(int index, bool active = true); + void updateTabs(); + + const QScopedPointer d_ptr; + +private: + Q_DISABLE_COPY(QtMaterialTabs) + Q_DECLARE_PRIVATE(QtMaterialTabs) +}; + +#endif // QTMATERIALTABS_H diff --git a/qt-material-widgets/components/qtmaterialtabs_internal.cpp b/qt-material-widgets/components/qtmaterialtabs_internal.cpp new file mode 100644 index 0000000..246da3d --- /dev/null +++ b/qt-material-widgets/components/qtmaterialtabs_internal.cpp @@ -0,0 +1,178 @@ +#include "qtmaterialtabs_internal.h" +#include +#include +#include +#include +#include +#include "qtmaterialtabs.h" +#include + +/*! + * \class QtMaterialTabsInkBar + * \internal + */ + +QtMaterialTabsInkBar::QtMaterialTabsInkBar(QtMaterialTabs *parent) + : QtMaterialOverlayWidget(parent), + m_tabs(parent), + m_animation(new QPropertyAnimation(parent)), + m_tween(0) +{ + Q_ASSERT(parent); + + m_animation->setPropertyName("tweenValue"); + m_animation->setEasingCurve(QEasingCurve::OutCirc); + m_animation->setTargetObject(this); + m_animation->setDuration(700); + + m_tabs->installEventFilter(this); + + setAttribute(Qt::WA_TransparentForMouseEvents); + setAttribute(Qt::WA_NoSystemBackground); +} + +QtMaterialTabsInkBar::~QtMaterialTabsInkBar() +{ +} + +void QtMaterialTabsInkBar::refreshGeometry() +{ + QLayoutItem *item = m_tabs->layout()->itemAt(m_tabs->currentIndex()); + + if (item) + { + const QRect r(item->geometry()); + const qreal s = 1-m_tween; + + if (QAbstractAnimation::Running != m_animation->state()) { + m_geometry = QRect(r.left(), r.bottom()-1, r.width(), 2); + } else { + const qreal left = m_previousGeometry.left()*s + r.left()*m_tween; + const qreal width = m_previousGeometry.width()*s + r.width()*m_tween; + m_geometry = QRect(left, r.bottom()-1, width, 2); + } + m_tabs->update(); + } +} + +void QtMaterialTabsInkBar::animate() +{ + raise(); + + m_previousGeometry = m_geometry; + + m_animation->stop(); + m_animation->setStartValue(0); + m_animation->setEndValue(1); + m_animation->start(); +} + +bool QtMaterialTabsInkBar::eventFilter(QObject *obj, QEvent *event) +{ + switch (event->type()) + { + case QEvent::Move: + case QEvent::Resize: + { + refreshGeometry(); + break; + } + default: + break; + } + return QtMaterialOverlayWidget::eventFilter(obj, event); +} + +void QtMaterialTabsInkBar::paintEvent(QPaintEvent *event) +{ + Q_UNUSED(event) + + QPainter painter(this); + + painter.setOpacity(1); + painter.fillRect(m_geometry, m_tabs->inkColor()); +} + +/*! + * \class QtMaterialTab + * \internal + */ + +QtMaterialTab::QtMaterialTab(QtMaterialTabs *parent) + : QtMaterialFlatButton(parent), + m_tabs(parent), + m_active(false) +{ + Q_ASSERT(parent); + + setMinimumHeight(30); + + QFont f(font()); + f.setStyleName("Normal"); + setFont(f); + + setCornerRadius(0); + setRole(Material::Primary); + setBackgroundMode(Qt::OpaqueMode); + setBaseOpacity(0.25); + + connect(this, SIGNAL(clicked(bool)), this, SLOT(activateTab())); +} + +QtMaterialTab::~QtMaterialTab() +{ +} + +QSize QtMaterialTab::sizeHint() const +{ + if (icon().isNull()) { + return QtMaterialFlatButton::sizeHint(); + } else { + return QSize(40, iconSize().height()+46); + } +} + +void QtMaterialTab::activateTab() +{ + m_tabs->setCurrentTab(this); +} + +void QtMaterialTab::paintForeground(QPainter *painter) +{ + painter->setPen(foregroundColor()); + + if (!icon().isNull()) { + painter->translate(0, 12); + } + + QSize textSize(fontMetrics().size(Qt::TextSingleLine, text())); + QSize base(size()-textSize); + + QRect textGeometry(QPoint(base.width(), base.height())/2, textSize); + + painter->drawText(textGeometry, Qt::AlignCenter, text()); + + if (!icon().isNull()) + { + const QSize &size = iconSize(); + QRect iconRect(QPoint((width()-size.width())/2, 0), size); + + QPixmap pixmap = icon().pixmap(iconSize()); + QPainter icon(&pixmap); + icon.setCompositionMode(QPainter::CompositionMode_SourceIn); + icon.fillRect(pixmap.rect(), painter->pen().color()); + painter->drawPixmap(iconRect, pixmap); + } + + if (!m_active) + { + if (!icon().isNull()) { + painter->translate(0, -12); + } + QBrush overlay; + overlay.setStyle(Qt::SolidPattern); + overlay.setColor(backgroundColor()); + painter->setOpacity(0.36); + painter->fillRect(rect(), overlay); + } +} diff --git a/qt-material-widgets/components/qtmaterialtabs_internal.h b/qt-material-widgets/components/qtmaterialtabs_internal.h new file mode 100644 index 0000000..75dc034 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialtabs_internal.h @@ -0,0 +1,88 @@ +#ifndef QTMATERIALTABS_INTERNAL_H +#define QTMATERIALTABS_INTERNAL_H + +#include "lib/qtmaterialoverlaywidget.h" +#include "qtmaterialflatbutton.h" + +class QPropertyAnimation; +class QtMaterialTabs; + +class QtMaterialTabsInkBar : public QtMaterialOverlayWidget +{ + Q_OBJECT + + Q_PROPERTY(qreal tweenValue WRITE setTweenValue READ tweenValue) + +public: + QtMaterialTabsInkBar(QtMaterialTabs *parent); + ~QtMaterialTabsInkBar(); + + inline void setTweenValue(qreal value); + inline qreal tweenValue() const; + + void refreshGeometry(); + void animate(); + +protected: + bool eventFilter(QObject *obj, QEvent *event) Q_DECL_OVERRIDE; + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; + +private: + Q_DISABLE_COPY(QtMaterialTabsInkBar) + + QtMaterialTabs *const m_tabs; + QPropertyAnimation *const m_animation; + QRect m_geometry; + QRect m_previousGeometry; + qreal m_tween; +}; + +inline void QtMaterialTabsInkBar::setTweenValue(qreal value) +{ + m_tween = value; + refreshGeometry(); +} + +inline qreal QtMaterialTabsInkBar::tweenValue() const +{ + return m_tween; +} + +class QtMaterialTab : public QtMaterialFlatButton +{ + Q_OBJECT + +public: + explicit QtMaterialTab(QtMaterialTabs *parent); + ~QtMaterialTab(); + + inline void setActive(bool state); + inline bool isActive() const; + + QSize sizeHint() const Q_DECL_OVERRIDE; + +protected slots: + void activateTab(); + +protected: + void paintForeground(QPainter *painter) Q_DECL_OVERRIDE; + +private: + Q_DISABLE_COPY(QtMaterialTab) + + QtMaterialTabs *const m_tabs; + bool m_active; +}; + +inline void QtMaterialTab::setActive(bool state) +{ + m_active = state; + update(); +} + +inline bool QtMaterialTab::isActive() const +{ + return m_active; +} + +#endif // QTMATERIALTABS_INTERNAL_H diff --git a/qt-material-widgets/components/qtmaterialtabs_p.h b/qt-material-widgets/components/qtmaterialtabs_p.h new file mode 100644 index 0000000..1f32b04 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialtabs_p.h @@ -0,0 +1,34 @@ +#ifndef QTMATERIALTABS_P_H +#define QTMATERIALTABS_P_H + +#include +#include "lib/qtmaterialtheme.h" + +class QHBoxLayout; +class QtMaterialTabs; +class QtMaterialTabsInkBar; + +class QtMaterialTabsPrivate +{ + Q_DISABLE_COPY(QtMaterialTabsPrivate) + Q_DECLARE_PUBLIC(QtMaterialTabs) + +public: + QtMaterialTabsPrivate(QtMaterialTabs *q); + ~QtMaterialTabsPrivate(); + + void init(); + + QtMaterialTabs *const q_ptr; + QtMaterialTabsInkBar *inkBar; + QHBoxLayout *tabLayout; + Material::RippleStyle rippleStyle; + QColor inkColor; + QColor backgroundColor; + QColor textColor; + int tab; + bool showHalo; + bool useThemeColors; +}; + +#endif // QTMATERIALTABS_P_H diff --git a/qt-material-widgets/components/qtmaterialtextfield.cpp b/qt-material-widgets/components/qtmaterialtextfield.cpp new file mode 100644 index 0000000..080da82 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialtextfield.cpp @@ -0,0 +1,326 @@ +#include "qtmaterialtextfield.h" +#include "qtmaterialtextfield_p.h" +#include +#include +#include "qtmaterialtextfield_internal.h" +#include "lib/qtmaterialstyle.h" +#include + +/*! + * \class QtMaterialTextFieldPrivate + * \internal + */ + +QtMaterialTextFieldPrivate::QtMaterialTextFieldPrivate(QtMaterialTextField *q) + : q_ptr(q) +{ +} + +QtMaterialTextFieldPrivate::~QtMaterialTextFieldPrivate() +{ +} + +void QtMaterialTextFieldPrivate::init() +{ + Q_Q(QtMaterialTextField); + + stateMachine = new QtMaterialTextFieldStateMachine(q); + label = 0; + labelFontSize = 9.5; + showLabel = false; + showInputLine = true; + useThemeColors = true; + + q->setFrame(false); + q->setStyle(&QtMaterialStyle::instance()); + q->setAttribute(Qt::WA_Hover); + q->setMouseTracking(true); + q->setTextMargins(0, 2, 0, 4); + + q->setFont(QFont("Roboto", 11, QFont::Normal)); + + stateMachine->start(); + QCoreApplication::processEvents(); +} + +/*! + * \class QtMaterialTextField + */ + +QtMaterialTextField::QtMaterialTextField(QWidget *parent) + : QLineEdit(parent), + d_ptr(new QtMaterialTextFieldPrivate(this)) +{ + d_func()->init(); +} + +QtMaterialTextField::~QtMaterialTextField() +{ +} + +void QtMaterialTextField::setUseThemeColors(bool value) +{ + Q_D(QtMaterialTextField); + + if (d->useThemeColors == value) { + return; + } + + d->useThemeColors = value; + d->stateMachine->setupProperties(); +} + +bool QtMaterialTextField::useThemeColors() const +{ + Q_D(const QtMaterialTextField); + + return d->useThemeColors; +} + +void QtMaterialTextField::setShowLabel(bool value) +{ + Q_D(QtMaterialTextField); + + if (d->showLabel == value) { + return; + } + + d->showLabel = value; + + if (!d->label && value) { + d->label = new QtMaterialTextFieldLabel(this); + d->stateMachine->setLabel(d->label); + } + + if (value) { + setContentsMargins(0, 23, 0, 0); + } else { + setContentsMargins(0, 0, 0, 0); + } +} + +bool QtMaterialTextField::hasLabel() const +{ + Q_D(const QtMaterialTextField); + + return d->showLabel; +} + +void QtMaterialTextField::setLabelFontSize(qreal size) +{ + Q_D(QtMaterialTextField); + + d->labelFontSize = size; + + if (d->label) + { + QFont font(d->label->font()); + font.setPointSizeF(size); + d->label->setFont(font); + d->label->update(); + } +} + +qreal QtMaterialTextField::labelFontSize() const +{ + Q_D(const QtMaterialTextField); + + return d->labelFontSize; +} + +void QtMaterialTextField::setLabel(const QString &label) +{ + Q_D(QtMaterialTextField); + + d->labelString = label; + setShowLabel(true); + d->label->update(); +} + +QString QtMaterialTextField::label() const +{ + Q_D(const QtMaterialTextField); + + return d->labelString; +} + +void QtMaterialTextField::setTextColor(const QColor &color) +{ + Q_D(QtMaterialTextField); + + d->textColor = color; + setStyleSheet(QString("QLineEdit { color: %1; }").arg(color.name())); + + MATERIAL_DISABLE_THEME_COLORS + d->stateMachine->setupProperties(); +} + +QColor QtMaterialTextField::textColor() const +{ + Q_D(const QtMaterialTextField); + + if (d->useThemeColors || !d->textColor.isValid()) { + return QtMaterialStyle::instance().themeColor("text"); + } else { + return d->textColor; + } +} + +void QtMaterialTextField::setLabelColor(const QColor &color) +{ + Q_D(QtMaterialTextField); + + d->labelColor = color; + + MATERIAL_DISABLE_THEME_COLORS + d->stateMachine->setupProperties(); +} + +QColor QtMaterialTextField::labelColor() const +{ + Q_D(const QtMaterialTextField); + + if (d->useThemeColors || !d->labelColor.isValid()) { + return QtMaterialStyle::instance().themeColor("accent3"); + } else { + return d->labelColor; + } +} + +void QtMaterialTextField::setInkColor(const QColor &color) +{ + Q_D(QtMaterialTextField); + + d->inkColor = color; + + MATERIAL_DISABLE_THEME_COLORS + d->stateMachine->setupProperties(); +} + +QColor QtMaterialTextField::inkColor() const +{ + Q_D(const QtMaterialTextField); + + if (d->useThemeColors || !d->inkColor.isValid()) { + return QtMaterialStyle::instance().themeColor("primary1"); + } else { + return d->inkColor; + } +} + +void QtMaterialTextField::setInputLineColor(const QColor &color) +{ + Q_D(QtMaterialTextField); + + d->inputLineColor = color; + + MATERIAL_DISABLE_THEME_COLORS + d->stateMachine->setupProperties(); +} + +QColor QtMaterialTextField::inputLineColor() const +{ + Q_D(const QtMaterialTextField); + + if (d->useThemeColors || !d->inputLineColor.isValid()) { + return QtMaterialStyle::instance().themeColor("border"); + } else { + return d->inputLineColor; + } +} + +void QtMaterialTextField::setShowInputLine(bool value) +{ + Q_D(QtMaterialTextField); + + if (d->showInputLine == value) { + return; + } + + d->showInputLine = value; + update(); +} + +bool QtMaterialTextField::hasInputLine() const +{ + Q_D(const QtMaterialTextField); + + return d->showInputLine; +} + +QtMaterialTextField::QtMaterialTextField(QtMaterialTextFieldPrivate &d, QWidget *parent) + : QLineEdit(parent), + d_ptr(&d) +{ + d_func()->init(); +} + +/*! + * \reimp + */ +bool QtMaterialTextField::event(QEvent *event) +{ + Q_D(QtMaterialTextField); + + switch (event->type()) + { + case QEvent::Resize: + case QEvent::Move: { + if (d->label) { + d->label->setGeometry(rect()); + } + } + default: + break; + } + return QLineEdit::event(event); +} + +/*! + * \reimp + */ +void QtMaterialTextField::paintEvent(QPaintEvent *event) +{ + Q_D(QtMaterialTextField); + + QLineEdit::paintEvent(event); + + QPainter painter(this); + + const qreal progress = d->stateMachine->progress(); + + if (text().isEmpty() && progress < 1) + { + painter.setOpacity(1-progress); + painter.fillRect(rect(), parentWidget()->palette().color(backgroundRole())); + } + + const int y = height()-1; + const int wd = width()-5; + + if (d->showInputLine) + { + QPen pen; + pen.setWidth(1); + pen.setColor(inputLineColor()); + + if (!isEnabled()) + pen.setStyle(Qt::DashLine); + + painter.setPen(pen); + painter.setOpacity(1); + painter.drawLine(QLineF(2.5, y, wd, y)); + + QBrush brush; + brush.setStyle(Qt::SolidPattern); + brush.setColor(inkColor()); + + if (progress > 0) + { + painter.setPen(Qt::NoPen); + painter.setBrush(brush); + const int w = (1-progress)*static_cast(wd/2); + painter.drawRect(w+2.5, height()-2, wd-w*2, 2); + } + } +} diff --git a/qt-material-widgets/components/qtmaterialtextfield.h b/qt-material-widgets/components/qtmaterialtextfield.h new file mode 100644 index 0000000..dead5cc --- /dev/null +++ b/qt-material-widgets/components/qtmaterialtextfield.h @@ -0,0 +1,61 @@ +#ifndef QTMATERIALTEXTFIELD_H +#define QTMATERIALTEXTFIELD_H + +#include +#include + +class QtMaterialTextFieldPrivate; + +class QtMaterialTextField : public QLineEdit +{ + Q_OBJECT + + Q_PROPERTY(QColor textColor WRITE setTextColor READ textColor) + Q_PROPERTY(QColor inkColor WRITE setInkColor READ inkColor) + Q_PROPERTY(QColor inputLineColor WRITE setInputLineColor READ inputLineColor) + +public: + explicit QtMaterialTextField(QWidget *parent = 0); + ~QtMaterialTextField(); + + void setUseThemeColors(bool value); + bool useThemeColors() const; + + void setShowLabel(bool value); + bool hasLabel() const; + + void setLabelFontSize(qreal size); + qreal labelFontSize() const; + + void setLabel(const QString &label); + QString label() const; + + void setTextColor(const QColor &color); + QColor textColor() const; + + void setLabelColor(const QColor &color); + QColor labelColor() const; + + void setInkColor(const QColor &color); + QColor inkColor() const; + + void setInputLineColor(const QColor &color); + QColor inputLineColor() const; + + void setShowInputLine(bool value); + bool hasInputLine() const; + +protected: + QtMaterialTextField(QtMaterialTextFieldPrivate &d, QWidget *parent = 0); + + bool event(QEvent *event) Q_DECL_OVERRIDE; + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; + + const QScopedPointer d_ptr; + +private: + Q_DISABLE_COPY(QtMaterialTextField) + Q_DECLARE_PRIVATE(QtMaterialTextField) +}; + +#endif // QTMATERIALTEXTFIELD_H diff --git a/qt-material-widgets/components/qtmaterialtextfield_internal.cpp b/qt-material-widgets/components/qtmaterialtextfield_internal.cpp new file mode 100644 index 0000000..b8b4ce7 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialtextfield_internal.cpp @@ -0,0 +1,164 @@ +#include "qtmaterialtextfield_internal.h" +#include +#include +#include +#include "qtmaterialtextfield.h" + +/*! + * \class QtMaterialTextFieldStateMachine + * \internal + */ + +QtMaterialTextFieldStateMachine::QtMaterialTextFieldStateMachine(QtMaterialTextField *parent) + : QStateMachine(parent), + m_textField(parent), + m_normalState(new QState), + m_focusedState(new QState), + m_label(0), + m_offsetAnimation(0), + m_colorAnimation(0), + m_progress(0.0) +{ + Q_ASSERT(parent); + + addState(m_normalState); + addState(m_focusedState); + + setInitialState(m_normalState); + + QEventTransition *transition; + QPropertyAnimation *animation; + + transition = new QEventTransition(parent, QEvent::FocusIn); + transition->setTargetState(m_focusedState); + m_normalState->addTransition(transition); + + animation = new QPropertyAnimation(this, "progress", this); + animation->setEasingCurve(QEasingCurve::InCubic); + animation->setDuration(310); + transition->addAnimation(animation); + + transition = new QEventTransition(parent, QEvent::FocusOut); + transition->setTargetState(m_normalState); + m_focusedState->addTransition(transition); + + animation = new QPropertyAnimation(this, "progress", this); + animation->setEasingCurve(QEasingCurve::OutCubic); + animation->setDuration(310); + transition->addAnimation(animation); + + m_normalState->assignProperty(this, "progress", 0); + m_focusedState->assignProperty(this, "progress", 1); + + setupProperties(); + + connect(m_textField, SIGNAL(textChanged(QString)), this, SLOT(setupProperties())); +} + +QtMaterialTextFieldStateMachine::~QtMaterialTextFieldStateMachine() +{ +} + +void QtMaterialTextFieldStateMachine::setLabel(QtMaterialTextFieldLabel *label) +{ + if (m_label) { + delete m_label; + } + + if (m_offsetAnimation) { + removeDefaultAnimation(m_offsetAnimation); + delete m_offsetAnimation; + } + + if (m_colorAnimation) { + removeDefaultAnimation(m_colorAnimation); + delete m_colorAnimation; + } + + m_label = label; + + if (m_label) + { + m_offsetAnimation = new QPropertyAnimation(m_label, "offset", this); + m_offsetAnimation->setDuration(210); + m_offsetAnimation->setEasingCurve(QEasingCurve::OutCubic); + addDefaultAnimation(m_offsetAnimation); + + m_colorAnimation = new QPropertyAnimation(m_label, "color", this); + m_colorAnimation->setDuration(210); + addDefaultAnimation(m_colorAnimation); + } + + setupProperties(); +} + +void QtMaterialTextFieldStateMachine::setupProperties() +{ + if (m_label) + { + const int m = m_textField->textMargins().top(); + + if (m_textField->text().isEmpty()) { + m_normalState->assignProperty(m_label, "offset", QPointF(0, 26)); + } else { + m_normalState->assignProperty(m_label, "offset", QPointF(0, 0-m)); + } + + m_focusedState->assignProperty(m_label, "offset", QPointF(0, 0-m)); + m_focusedState->assignProperty(m_label, "color", m_textField->inkColor()); + m_normalState->assignProperty(m_label, "color", m_textField->labelColor()); + + if (0 != m_label->offset().y() && !m_textField->text().isEmpty()) { + m_label->setOffset(QPointF(0, 0-m)); + } else if (!m_textField->hasFocus() && m_label->offset().y() <= 0 && m_textField->text().isEmpty()) { + m_label->setOffset(QPointF(0, 26)); + } + } + + m_textField->update(); +} + +/*! + * \class QtMaterialTextFieldLabel + * \internal + */ + +QtMaterialTextFieldLabel::QtMaterialTextFieldLabel(QtMaterialTextField *parent) + : QWidget(parent), + m_textField(parent), + m_scale(1), + m_posX(0), + m_posY(26), + m_color(parent->labelColor()) +{ + Q_ASSERT(parent); + + QFont font("Roboto", parent->labelFontSize(), QFont::Medium); + font.setLetterSpacing(QFont::PercentageSpacing, 102); + setFont(font); +} + +QtMaterialTextFieldLabel::~QtMaterialTextFieldLabel() +{ +} + +/*! + * \reimp + */ +void QtMaterialTextFieldLabel::paintEvent(QPaintEvent *event) +{ + Q_UNUSED(event) + + if (!m_textField->hasLabel()) { + return; + } + + QPainter painter(this); + painter.setRenderHint(QPainter::Antialiasing); + painter.scale(m_scale, m_scale); + painter.setPen(m_color); + painter.setOpacity(1); + + QPointF pos(2+m_posX, height()-36+m_posY); + painter.drawText(pos.x(), pos.y(), m_textField->label()); +} diff --git a/qt-material-widgets/components/qtmaterialtextfield_internal.h b/qt-material-widgets/components/qtmaterialtextfield_internal.h new file mode 100644 index 0000000..e510287 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialtextfield_internal.h @@ -0,0 +1,120 @@ +#ifndef QTMATERIALTEXTFIELD_INTERNAL_H +#define QTMATERIALTEXTFIELD_INTERNAL_H + +#include +#include +#include "qtmaterialtextfield.h" + +class QPropertyAnimation; +class QtMaterialTextFieldLabel; + +class QtMaterialTextFieldStateMachine : public QStateMachine +{ + Q_OBJECT + + Q_PROPERTY(qreal progress WRITE setProgress READ progress) + +public: + QtMaterialTextFieldStateMachine(QtMaterialTextField *parent); + ~QtMaterialTextFieldStateMachine(); + + void setLabel(QtMaterialTextFieldLabel *label); + + inline void setProgress(qreal progress); + inline qreal progress() const; + +public slots: + void setupProperties(); + +private: + Q_DISABLE_COPY(QtMaterialTextFieldStateMachine) + + QtMaterialTextField *const m_textField; + QState *const m_normalState; + QState *const m_focusedState; + QtMaterialTextFieldLabel *m_label; + QPropertyAnimation *m_offsetAnimation; + QPropertyAnimation *m_colorAnimation; + qreal m_progress; +}; + +inline void QtMaterialTextFieldStateMachine::setProgress(qreal progress) +{ + m_progress = progress; + m_textField->update(); +} + +inline qreal QtMaterialTextFieldStateMachine::progress() const +{ + return m_progress; +} + +class QtMaterialTextFieldLabel : public QWidget +{ + Q_OBJECT + + Q_PROPERTY(qreal scale WRITE setScale READ scale) + Q_PROPERTY(QPointF offset WRITE setOffset READ offset) + Q_PROPERTY(QColor color WRITE setColor READ color) + +public: + QtMaterialTextFieldLabel(QtMaterialTextField *parent); + ~QtMaterialTextFieldLabel(); + + inline void setScale(qreal scale); + inline qreal scale() const; + + inline void setOffset(const QPointF &pos); + inline QPointF offset() const; + + inline void setColor(const QColor &color); + inline QColor color() const; + +protected: + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; + +private: + Q_DISABLE_COPY(QtMaterialTextFieldLabel) + + QtMaterialTextField *const m_textField; + qreal m_scale; + qreal m_posX; + qreal m_posY; + QColor m_color; +}; + +inline void QtMaterialTextFieldLabel::setScale(qreal scale) +{ + m_scale = scale; + update(); +} + +inline qreal QtMaterialTextFieldLabel::scale() const +{ + return m_scale; +} + +inline void QtMaterialTextFieldLabel::setOffset(const QPointF &pos) +{ + m_posX = pos.x(); + m_posY = pos.y(); + update(); +} + +inline QPointF QtMaterialTextFieldLabel::offset() const +{ + return QPointF(m_posX, m_posY); +} + +inline void QtMaterialTextFieldLabel::setColor(const QColor &color) +{ + m_color = color; + update(); +} + +inline QColor QtMaterialTextFieldLabel::color() const +{ + return m_color; +} + +#endif // QTMATERIALTEXTFIELD_INTERNAL_H diff --git a/qt-material-widgets/components/qtmaterialtextfield_p.h b/qt-material-widgets/components/qtmaterialtextfield_p.h new file mode 100644 index 0000000..9e8c835 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialtextfield_p.h @@ -0,0 +1,36 @@ +#ifndef QTMATERIALTEXTFIELD_P_H +#define QTMATERIALTEXTFIELD_P_H + +#include +#include + +class QtMaterialTextField; +class QtMaterialTextFieldStateMachine; +class QtMaterialTextFieldLabel; + +class QtMaterialTextFieldPrivate +{ + Q_DISABLE_COPY(QtMaterialTextFieldPrivate) + Q_DECLARE_PUBLIC(QtMaterialTextField) + +public: + QtMaterialTextFieldPrivate(QtMaterialTextField *q); + virtual ~QtMaterialTextFieldPrivate(); + + void init(); + + QtMaterialTextField *const q_ptr; + QtMaterialTextFieldStateMachine *stateMachine; + QtMaterialTextFieldLabel *label; + QColor textColor; + QColor labelColor; + QColor inkColor; + QColor inputLineColor; + QString labelString; + qreal labelFontSize; + bool showLabel; + bool showInputLine; + bool useThemeColors; +}; + +#endif // QTMATERIALTEXTFIELD_P_H diff --git a/qt-material-widgets/components/qtmaterialtoggle.cpp b/qt-material-widgets/components/qtmaterialtoggle.cpp new file mode 100644 index 0000000..6d11fc9 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialtoggle.cpp @@ -0,0 +1,298 @@ +#include "qtmaterialtoggle.h" +#include "qtmaterialtoggle_p.h" +#include +#include +#include +#include +#include "qtmaterialtoggle_internal.h" +#include "lib/qtmaterialstyle.h" + +/*! + * \class QtMaterialTogglePrivate + * \internal + */ + +QtMaterialTogglePrivate::QtMaterialTogglePrivate(QtMaterialToggle *q) + : q_ptr(q) +{ +} + +QtMaterialTogglePrivate::~QtMaterialTogglePrivate() +{ +} + +void QtMaterialTogglePrivate::init() +{ + Q_Q(QtMaterialToggle); + + track = new QtMaterialToggleTrack(q); + thumb = new QtMaterialToggleThumb(q); + rippleOverlay = new QtMaterialToggleRippleOverlay(thumb, track, q); + stateMachine = new QStateMachine(q); + offState = new QState; + onState = new QState; + orientation = Qt::Horizontal; + useThemeColors = true; + + q->setCheckable(true); + q->setChecked(false); + q->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum); + + stateMachine->addState(offState); + stateMachine->addState(onState); + stateMachine->setInitialState(offState); + + offState->assignProperty(thumb, "shift", 0); + onState->assignProperty(thumb, "shift", 1); + + QSignalTransition *transition; + QPropertyAnimation *animation; + + // + + transition = new QSignalTransition(q, SIGNAL(toggled(bool))); + transition->setTargetState(onState); + offState->addTransition(transition); + + animation = new QPropertyAnimation(q); + animation->setPropertyName("shift"); + animation->setTargetObject(thumb); + animation->setDuration(200); + animation->setEasingCurve(QEasingCurve::OutQuad); + transition->addAnimation(animation); + + animation = new QPropertyAnimation(q); + animation->setPropertyName("trackColor"); + animation->setTargetObject(track); + animation->setDuration(150); + transition->addAnimation(animation); + + animation = new QPropertyAnimation(q); + animation->setPropertyName("thumbColor"); + animation->setTargetObject(thumb); + animation->setDuration(150); + transition->addAnimation(animation); + + // + + transition = new QSignalTransition(q, SIGNAL(toggled(bool))); + transition->setTargetState(offState); + onState->addTransition(transition); + + animation = new QPropertyAnimation(q); + animation->setPropertyName("shift"); + animation->setTargetObject(thumb); + animation->setDuration(200); + animation->setEasingCurve(QEasingCurve::OutQuad); + transition->addAnimation(animation); + + animation = new QPropertyAnimation(q); + animation->setPropertyName("trackColor"); + animation->setTargetObject(track); + animation->setDuration(150); + transition->addAnimation(animation); + + animation = new QPropertyAnimation(q); + animation->setPropertyName("thumbColor"); + animation->setTargetObject(thumb); + animation->setDuration(150); + transition->addAnimation(animation); + + // + + setupProperties(); + + stateMachine->start(); + QCoreApplication::processEvents(); +} + +void QtMaterialTogglePrivate::setupProperties() +{ + Q_Q(QtMaterialToggle); + + if (q->isEnabled()) { + const qreal shift = thumb->shift(); + if (qFuzzyCompare(shift, 1)) { + thumb->setThumbColor(q->activeColor()); + track->setTrackColor(q->activeColor().lighter(110)); + } else if (qFuzzyCompare(1+shift, 1)) { + thumb->setThumbColor(q->inactiveColor()); + track->setTrackColor(q->trackColor()); + } + } + + offState->assignProperty(track, "trackColor", q->trackColor().lighter(110)); + onState->assignProperty(track, "trackColor", q->activeColor().lighter(110)); + + offState->assignProperty(thumb, "thumbColor", q->inactiveColor()); + onState->assignProperty(thumb, "thumbColor", q->activeColor()); + + q->update(); +} + +/*! + * \class QtMaterialToggle + */ + +QtMaterialToggle::QtMaterialToggle(QWidget *parent) + : QAbstractButton(parent), + d_ptr(new QtMaterialTogglePrivate(this)) +{ + d_func()->init(); +} + +QtMaterialToggle::~QtMaterialToggle() +{ +} + +void QtMaterialToggle::setUseThemeColors(bool value) +{ + Q_D(QtMaterialToggle); + + d->useThemeColors = value; + d->setupProperties(); +} + +bool QtMaterialToggle::useThemeColors() const +{ + Q_D(const QtMaterialToggle); + + return d->useThemeColors; +} + +void QtMaterialToggle::setDisabledColor(const QColor &color) +{ + Q_D(QtMaterialToggle); + + d->disabledColor = color; + + MATERIAL_DISABLE_THEME_COLORS + d->setupProperties(); +} + +QColor QtMaterialToggle::disabledColor() const +{ + Q_D(const QtMaterialToggle); + + if (d->useThemeColors || !d->disabledColor.isValid()) { + return QtMaterialStyle::instance().themeColor("disabled"); + } else { + return d->disabledColor; + } +} + +void QtMaterialToggle::setActiveColor(const QColor &color) +{ + Q_D(QtMaterialToggle); + + d->activeColor = color; + + MATERIAL_DISABLE_THEME_COLORS + d->setupProperties(); +} + +QColor QtMaterialToggle::activeColor() const +{ + Q_D(const QtMaterialToggle); + + if (d->useThemeColors || !d->activeColor.isValid()) { + return QtMaterialStyle::instance().themeColor("primary1"); + } else { + return d->activeColor; + } +} + +void QtMaterialToggle::setInactiveColor(const QColor &color) +{ + Q_D(QtMaterialToggle); + + d->inactiveColor = color; + + MATERIAL_DISABLE_THEME_COLORS + d->setupProperties(); +} + +QColor QtMaterialToggle::inactiveColor() const +{ + Q_D(const QtMaterialToggle); + + if (d->useThemeColors || !d->inactiveColor.isValid()) { + return QtMaterialStyle::instance().themeColor("canvas"); + } else { + return d->inactiveColor; + } +} + +void QtMaterialToggle::setTrackColor(const QColor &color) +{ + Q_D(QtMaterialToggle); + + d->trackColor = color; + + MATERIAL_DISABLE_THEME_COLORS + d->setupProperties(); +} + +QColor QtMaterialToggle::trackColor() const +{ + Q_D(const QtMaterialToggle); + + if (d->useThemeColors || !d->trackColor.isValid()) { + return QtMaterialStyle::instance().themeColor("accent3"); + } else { + return d->trackColor; + } +} + +void QtMaterialToggle::setOrientation(Qt::Orientation orientation) +{ + Q_D(QtMaterialToggle); + + if (d->orientation == orientation) { + return; + } + + d->orientation = orientation; + updateGeometry(); +} + +Qt::Orientation QtMaterialToggle::orientation() const +{ + Q_D(const QtMaterialToggle); + + return d->orientation; +} + +QSize QtMaterialToggle::sizeHint() const +{ + Q_D(const QtMaterialToggle); + + return Qt::Horizontal == d->orientation + ? QSize(64, 48) + : QSize(48, 64); +} + +bool QtMaterialToggle::event(QEvent *event) +{ + Q_D(QtMaterialToggle); + + switch (event->type()) + { + case QEvent::ParentChange: + { + QWidget *widget; + if ((widget = parentWidget())) { + d->rippleOverlay->setParent(widget); + } + break; + } + default: + break; + } + return QAbstractButton::event(event); +} + +void QtMaterialToggle::paintEvent(QPaintEvent *event) +{ + Q_UNUSED(event) +} diff --git a/qt-material-widgets/components/qtmaterialtoggle.h b/qt-material-widgets/components/qtmaterialtoggle.h new file mode 100644 index 0000000..5d5a557 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialtoggle.h @@ -0,0 +1,52 @@ +#ifndef QTMATERIALTOGGLE_H +#define QTMATERIALTOGGLE_H + +#include + +class QtMaterialTogglePrivate; + +class QtMaterialToggle : public QAbstractButton +{ + Q_OBJECT + + Q_PROPERTY(QColor disabledColor WRITE setDisabledColor READ disabledColor) + Q_PROPERTY(QColor activeColor WRITE setActiveColor READ activeColor) + Q_PROPERTY(QColor inactiveColor WRITE setInactiveColor READ inactiveColor) + Q_PROPERTY(QColor trackColor WRITE setTrackColor READ trackColor) + +public: + explicit QtMaterialToggle(QWidget *parent = 0); + ~QtMaterialToggle(); + + void setUseThemeColors(bool value); + bool useThemeColors() const; + + void setDisabledColor(const QColor &color); + QColor disabledColor() const; + + void setActiveColor(const QColor &color); + QColor activeColor() const; + + void setInactiveColor(const QColor &color); + QColor inactiveColor() const; + + void setTrackColor(const QColor &color); + QColor trackColor() const; + + void setOrientation(Qt::Orientation orientation); + Qt::Orientation orientation() const; + + QSize sizeHint() const Q_DECL_OVERRIDE; + +protected: + bool event(QEvent *event) Q_DECL_OVERRIDE; + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; + + const QScopedPointer d_ptr; + +private: + Q_DISABLE_COPY(QtMaterialToggle) + Q_DECLARE_PRIVATE(QtMaterialToggle) +}; + +#endif // QTMATERIALTOGGLE_H diff --git a/qt-material-widgets/components/qtmaterialtoggle_internal.cpp b/qt-material-widgets/components/qtmaterialtoggle_internal.cpp new file mode 100644 index 0000000..9bcf823 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialtoggle_internal.cpp @@ -0,0 +1,231 @@ +#include "qtmaterialtoggle_internal.h" +#include +#include +#include +#include "qtmaterialtoggle.h" +#include "lib/qtmaterialripple.h" + +/*! + * \class QtMaterialToggleRippleOverlay + * \internal + */ + +QtMaterialToggleRippleOverlay::QtMaterialToggleRippleOverlay( + QtMaterialToggleThumb *thumb, + QtMaterialToggleTrack *track, + QtMaterialToggle *parent) + : QtMaterialRippleOverlay(parent->parentWidget()), + m_toggle(parent), + m_thumb(thumb), + m_track(track) +{ + connect(parent, SIGNAL(toggled(bool)), this, SLOT(addToggleRipple())); + + thumb->installEventFilter(this); +} + +QtMaterialToggleRippleOverlay::~QtMaterialToggleRippleOverlay() +{ +} + +void QtMaterialToggleRippleOverlay::addToggleRipple() +{ + if (!m_toggle->isEnabled()) { + return; + } + + int t, w; + + if (Qt::Horizontal == m_toggle->orientation()) { + t = m_toggle->height()/2; + w = m_thumb->height()/2+10; + } else { + t = m_toggle->width()/2; + w = m_thumb->width()/2+10; + } + + QtMaterialRipple *ripple = new QtMaterialRipple(QPoint(10+t, 20+t)); + ripple->setColor(m_track->trackColor()); + ripple->setRadiusEndValue(w); + ripple->setOpacityStartValue(0.8); + + addRipple(ripple); +} + +bool QtMaterialToggleRippleOverlay::eventFilter(QObject *obj, QEvent *event) +{ + if (QEvent::Paint == event->type()) { + setGeometry(overlayGeometry()); + QList::const_iterator i; + QList items = ripples(); + QColor color = m_track->trackColor(); + for (i = items.begin(); i != items.end(); ++i) { + (*i)->setColor(color); + } + } + return QtMaterialRippleOverlay::eventFilter(obj, event); +} + +QRect QtMaterialToggleRippleOverlay::overlayGeometry() const +{ + const qreal offset = m_thumb->offset(); + if (Qt::Horizontal == m_toggle->orientation()) { + return m_toggle->geometry().adjusted(-10+offset, -20, 10+offset, 20); + } else { + return m_toggle->geometry().adjusted(-10, -20+offset, 10, 20+offset); + } +} + +/*! + * \class QtMaterialToggleThumb + * \internal + */ + +QtMaterialToggleThumb::QtMaterialToggleThumb(QtMaterialToggle *parent) + : QWidget(parent), + m_toggle(parent), + m_shift(0), + m_offset(0) +{ + Q_ASSERT(parent); + + QGraphicsDropShadowEffect *effect = new QGraphicsDropShadowEffect; + effect->setBlurRadius(6); + effect->setColor(QColor(0, 0, 0, 80)); + effect->setOffset(QPointF(0, 1)); + setGraphicsEffect(effect); + + parent->installEventFilter(this); +} + +QtMaterialToggleThumb::~QtMaterialToggleThumb() +{ +} + +void QtMaterialToggleThumb::setShift(qreal shift) +{ + if (m_shift == shift) { + return; + } + + m_shift = shift; + updateOffset(); +} + +bool QtMaterialToggleThumb::eventFilter(QObject *obj, QEvent *event) +{ + const QEvent::Type type = event->type(); + + if (QEvent::Resize == type || QEvent::Move == type) + { + setGeometry(m_toggle->rect().adjusted(8, 8, -8, -8)); + updateOffset(); + } + return QWidget::eventFilter(obj, event); +} + +void QtMaterialToggleThumb::paintEvent(QPaintEvent *event) +{ + Q_UNUSED(event) + + QPainter painter(this); + painter.setRenderHint(QPainter::Antialiasing); + + QBrush brush; + brush.setStyle(Qt::SolidPattern); + brush.setColor(m_toggle->isEnabled() ? m_thumbColor : Qt::white); + + painter.setBrush(brush); + painter.setPen(Qt::NoPen); + + int s; + QRectF r; + + if (Qt::Horizontal == m_toggle->orientation()) { + s = height()-10; + r = QRectF(5+m_offset, 5, s, s); + } else { + s = width()-10; + r = QRectF(5, 5+m_offset, s, s); + } + + painter.drawEllipse(r); + + if (!m_toggle->isEnabled()) { + brush.setColor(m_toggle->disabledColor()); + painter.setBrush(brush); + painter.drawEllipse(r); + } +} + +void QtMaterialToggleThumb::updateOffset() +{ + const QSize s(Qt::Horizontal == m_toggle->orientation() + ? size() : size().transposed()); + m_offset = m_shift*static_cast(s.width()-s.height()); + update(); +} + +/*! + * \class QtMaterialToggleTrack + * \internal + */ + +QtMaterialToggleTrack::QtMaterialToggleTrack(QtMaterialToggle *parent) + : QWidget(parent), + m_toggle(parent) +{ + Q_ASSERT(parent); + + parent->installEventFilter(this); +} + +QtMaterialToggleTrack::~QtMaterialToggleTrack() +{ +} + +void QtMaterialToggleTrack::setTrackColor(const QColor &color) +{ + m_trackColor = color; + update(); +} + +bool QtMaterialToggleTrack::eventFilter(QObject *obj, QEvent *event) +{ + const QEvent::Type type = event->type(); + + if (QEvent::Resize == type || QEvent::Move == type) { + setGeometry(m_toggle->rect()); + } + return QWidget::eventFilter(obj, event); +} + +void QtMaterialToggleTrack::paintEvent(QPaintEvent *event) +{ + Q_UNUSED(event) + + QPainter painter(this); + painter.setRenderHint(QPainter::Antialiasing); + + QBrush brush; + if (m_toggle->isEnabled()) { + brush.setColor(m_trackColor); + painter.setOpacity(0.8); + } else { + brush.setColor(m_toggle->disabledColor()); + painter.setOpacity(0.6); + } + brush.setStyle(Qt::SolidPattern); + painter.setBrush(brush); + painter.setPen(Qt::NoPen); + + if (Qt::Horizontal == m_toggle->orientation()) { + const int h = height()/2; + const QRect r(0, h/2, width(), h); + painter.drawRoundedRect(r.adjusted(14, 4, -14, -4), h/2-4, h/2-4); + } else { + const int w = width()/2; + const QRect r(w/2, 0, w, height()); + painter.drawRoundedRect(r.adjusted(4, 14, -4, -14), w/2-4, w/2-4); + } +} diff --git a/qt-material-widgets/components/qtmaterialtoggle_internal.h b/qt-material-widgets/components/qtmaterialtoggle_internal.h new file mode 100644 index 0000000..079e369 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialtoggle_internal.h @@ -0,0 +1,120 @@ +#ifndef QTMATERIALTOGGLE_INTERNAL_H +#define QTMATERIALTOGGLE_INTERNAL_H + +#include +#include "lib/qtmaterialrippleoverlay.h" + +class QtMaterialToggle; +class QtMaterialToggleThumb; +class QtMaterialToggleTrack; + +class QtMaterialToggleRippleOverlay : public QtMaterialRippleOverlay +{ + Q_OBJECT + +public: + QtMaterialToggleRippleOverlay(QtMaterialToggleThumb *thumb, + QtMaterialToggleTrack *track, + QtMaterialToggle *parent); + ~QtMaterialToggleRippleOverlay(); + +protected slots: + void addToggleRipple(); + +protected: + bool eventFilter(QObject *obj, QEvent *event) Q_DECL_OVERRIDE; + QRect overlayGeometry() const Q_DECL_OVERRIDE; + +private: + Q_DISABLE_COPY(QtMaterialToggleRippleOverlay) + + QtMaterialToggle *const m_toggle; + QtMaterialToggleThumb *const m_thumb; + QtMaterialToggleTrack *const m_track; +}; + +class QtMaterialToggleThumb : public QWidget +{ + Q_OBJECT + + Q_PROPERTY(qreal shift WRITE setShift READ shift) + Q_PROPERTY(QColor thumbColor WRITE setThumbColor READ thumbColor) + +public: + QtMaterialToggleThumb(QtMaterialToggle *parent); + ~QtMaterialToggleThumb(); + + void setShift(qreal shift); + inline qreal shift() const; + + inline qreal offset() const; + + inline void setThumbColor(const QColor &color); + inline QColor thumbColor() const; + +protected: + bool eventFilter(QObject *obj, QEvent *event) Q_DECL_OVERRIDE; + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; + +private: + Q_DISABLE_COPY(QtMaterialToggleThumb) + + void updateOffset(); + + QtMaterialToggle *const m_toggle; + QColor m_thumbColor; + qreal m_shift; + qreal m_offset; +}; + +inline qreal QtMaterialToggleThumb::shift() const +{ + return m_shift; +} + +inline qreal QtMaterialToggleThumb::offset() const +{ + return m_offset; +} + +inline void QtMaterialToggleThumb::setThumbColor(const QColor &color) +{ + m_thumbColor = color; + update(); +} + +inline QColor QtMaterialToggleThumb::thumbColor() const +{ + return m_thumbColor; +} + +class QtMaterialToggleTrack : public QWidget +{ + Q_OBJECT + + Q_PROPERTY(QColor trackColor WRITE setTrackColor READ trackColor) + +public: + QtMaterialToggleTrack(QtMaterialToggle *parent); + ~QtMaterialToggleTrack(); + + void setTrackColor(const QColor &color); + inline QColor trackColor() const; + +protected: + bool eventFilter(QObject *obj, QEvent *event) Q_DECL_OVERRIDE; + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; + +private: + Q_DISABLE_COPY(QtMaterialToggleTrack) + + QtMaterialToggle *const m_toggle; + QColor m_trackColor; +}; + +inline QColor QtMaterialToggleTrack::trackColor() const +{ + return m_trackColor; +} + +#endif // QTMATERIALTOGGLE_INTERNAL_H diff --git a/qt-material-widgets/components/qtmaterialtoggle_p.h b/qt-material-widgets/components/qtmaterialtoggle_p.h new file mode 100644 index 0000000..f50d5b3 --- /dev/null +++ b/qt-material-widgets/components/qtmaterialtoggle_p.h @@ -0,0 +1,41 @@ +#ifndef QTMATERIALTOGGLE_P_H +#define QTMATERIALTOGGLE_P_H + +#include + +class QStateMachine; +class QState; +class QColor; +class QtMaterialToggle; +class QtMaterialToggleTrack; +class QtMaterialToggleThumb; +class QtMaterialToggleRippleOverlay; + +class QtMaterialTogglePrivate +{ + Q_DISABLE_COPY(QtMaterialTogglePrivate) + Q_DECLARE_PUBLIC(QtMaterialToggle) + +public: + QtMaterialTogglePrivate(QtMaterialToggle *q); + ~QtMaterialTogglePrivate(); + + void init(); + void setupProperties(); + + QtMaterialToggle *const q_ptr; + QtMaterialToggleTrack *track; + QtMaterialToggleThumb *thumb; + QtMaterialToggleRippleOverlay *rippleOverlay; + QStateMachine *stateMachine; + QState *offState; + QState *onState; + Qt::Orientation orientation; + QColor disabledColor; + QColor activeColor; + QColor inactiveColor; + QColor trackColor; + bool useThemeColors; +}; + +#endif // QTMATERIALTOGGLE_P_H diff --git a/qt-material-widgets/components/resources.qrc b/qt-material-widgets/components/resources.qrc new file mode 100644 index 0000000..605bd1a --- /dev/null +++ b/qt-material-widgets/components/resources.qrc @@ -0,0 +1,972 @@ + + + ../fonts/Roboto/Roboto-Black.ttf + ../fonts/Roboto/Roboto-Bold.ttf + ../fonts/Roboto/Roboto-Medium.ttf + ../fonts/Roboto/Roboto-Regular.ttf + ../fonts/Roboto/Roboto-Light.ttf + ../fonts/Roboto/Roboto-Thin.ttf + + + icons/communication/svg/production/ic_message_24px.svg + icons/toggle/svg/production/ic_check_box_24px.svg + icons/toggle/svg/production/ic_check_box_outline_blank_24px.svg + icons/toggle/svg/production/ic_indeterminate_check_box_24px.svg + icons/toggle/svg/production/ic_radio_button_checked_24px.svg + icons/toggle/svg/production/ic_radio_button_unchecked_24px.svg + icons/toggle/svg/production/ic_star_24px.svg + icons/toggle/svg/production/ic_star_border_24px.svg + icons/toggle/svg/production/ic_star_half_24px.svg + icons/communication/svg/production/ic_business_24px.svg + icons/communication/svg/production/ic_call_24px.svg + icons/communication/svg/production/ic_call_end_24px.svg + icons/communication/svg/production/ic_call_made_24px.svg + icons/communication/svg/production/ic_call_merge_24px.svg + icons/communication/svg/production/ic_call_missed_24px.svg + icons/communication/svg/production/ic_call_missed_outgoing_24px.svg + icons/communication/svg/production/ic_call_received_24px.svg + icons/communication/svg/production/ic_call_split_24px.svg + icons/communication/svg/production/ic_chat_24px.svg + icons/communication/svg/production/ic_chat_bubble_24px.svg + icons/communication/svg/production/ic_chat_bubble_outline_24px.svg + icons/communication/svg/production/ic_clear_all_24px.svg + icons/communication/svg/production/ic_comment_24px.svg + icons/communication/svg/production/ic_contact_mail_24px.svg + icons/communication/svg/production/ic_contact_phone_24px.svg + icons/communication/svg/production/ic_contacts_24px.svg + icons/communication/svg/production/ic_dialer_sip_24px.svg + icons/communication/svg/production/ic_dialpad_24px.svg + icons/communication/svg/production/ic_email_24px.svg + icons/communication/svg/production/ic_forum_24px.svg + icons/communication/svg/production/ic_import_contacts_24px.svg + icons/communication/svg/production/ic_import_export_24px.svg + icons/communication/svg/production/ic_invert_colors_off_24px.svg + icons/communication/svg/production/ic_live_help_24px.svg + icons/communication/svg/production/ic_location_off_24px.svg + icons/communication/svg/production/ic_location_on_24px.svg + icons/communication/svg/production/ic_mail_outline_24px.svg + icons/communication/svg/production/ic_no_sim_24px.svg + icons/communication/svg/production/ic_phone_24px.svg + icons/communication/svg/production/ic_phonelink_erase_24px.svg + icons/communication/svg/production/ic_phonelink_lock_24px.svg + icons/communication/svg/production/ic_phonelink_ring_24px.svg + icons/communication/svg/production/ic_phonelink_setup_24px.svg + icons/communication/svg/production/ic_portable_wifi_off_24px.svg + icons/communication/svg/production/ic_present_to_all_24px.svg + icons/communication/svg/production/ic_ring_volume_24px.svg + icons/communication/svg/production/ic_rss_feed_24px.svg + icons/communication/svg/production/ic_screen_share_24px.svg + icons/communication/svg/production/ic_speaker_phone_24px.svg + icons/communication/svg/production/ic_stay_current_landscape_24px.svg + icons/communication/svg/production/ic_stay_current_portrait_24px.svg + icons/communication/svg/production/ic_stay_primary_landscape_24px.svg + icons/communication/svg/production/ic_stay_primary_portrait_24px.svg + icons/communication/svg/production/ic_stop_screen_share_24px.svg + icons/communication/svg/production/ic_swap_calls_24px.svg + icons/communication/svg/production/ic_textsms_24px.svg + icons/communication/svg/production/ic_voicemail_24px.svg + icons/communication/svg/production/ic_vpn_key_24px.svg + icons/action/svg/production/ic_3d_rotation_24px.svg + icons/action/svg/production/ic_accessibility_24px.svg + icons/action/svg/production/ic_accessible_24px.svg + icons/action/svg/production/ic_account_balance_24px.svg + icons/action/svg/production/ic_account_balance_wallet_24px.svg + icons/action/svg/production/ic_account_box_24px.svg + icons/action/svg/production/ic_account_circle_24px.svg + icons/action/svg/production/ic_add_shopping_cart_24px.svg + icons/action/svg/production/ic_alarm_24px.svg + icons/action/svg/production/ic_alarm_add_24px.svg + icons/action/svg/production/ic_alarm_off_24px.svg + icons/action/svg/production/ic_alarm_on_24px.svg + icons/action/svg/production/ic_all_out_24px.svg + icons/action/svg/production/ic_android_24px.svg + icons/action/svg/production/ic_announcement_24px.svg + icons/action/svg/production/ic_aspect_ratio_24px.svg + icons/action/svg/production/ic_assessment_24px.svg + icons/action/svg/production/ic_assignment_24px.svg + icons/action/svg/production/ic_assignment_ind_24px.svg + icons/action/svg/production/ic_assignment_late_24px.svg + icons/action/svg/production/ic_assignment_return_24px.svg + icons/action/svg/production/ic_assignment_returned_24px.svg + icons/action/svg/production/ic_assignment_turned_in_24px.svg + icons/action/svg/production/ic_autorenew_24px.svg + icons/action/svg/production/ic_backup_24px.svg + icons/action/svg/production/ic_book_24px.svg + icons/action/svg/production/ic_bookmark_24px.svg + icons/action/svg/production/ic_bookmark_border_24px.svg + icons/action/svg/production/ic_bug_report_24px.svg + icons/action/svg/production/ic_build_24px.svg + icons/action/svg/production/ic_cached_24px.svg + icons/action/svg/production/ic_camera_enhance_24px.svg + icons/action/svg/production/ic_card_giftcard_24px.svg + icons/action/svg/production/ic_card_membership_24px.svg + icons/action/svg/production/ic_card_travel_24px.svg + icons/action/svg/production/ic_change_history_24px.svg + icons/action/svg/production/ic_check_circle_24px.svg + icons/action/svg/production/ic_chrome_reader_mode_24px.svg + icons/action/svg/production/ic_class_24px.svg + icons/action/svg/production/ic_code_24px.svg + icons/action/svg/production/ic_compare_arrows_24px.svg + icons/action/svg/production/ic_copyright_24px.svg + icons/action/svg/production/ic_credit_card_24px.svg + icons/action/svg/production/ic_dashboard_24px.svg + icons/action/svg/production/ic_date_range_24px.svg + icons/action/svg/production/ic_delete_24px.svg + icons/action/svg/production/ic_delete_forever_24px.svg + icons/action/svg/production/ic_description_24px.svg + icons/action/svg/production/ic_dns_24px.svg + icons/action/svg/production/ic_done_24px.svg + icons/action/svg/production/ic_done_all_24px.svg + icons/action/svg/production/ic_donut_large_24px.svg + icons/action/svg/production/ic_donut_small_24px.svg + icons/action/svg/production/ic_eject_24px.svg + icons/action/svg/production/ic_euro_symbol_24px.svg + icons/action/svg/production/ic_event_24px.svg + icons/action/svg/production/ic_event_seat_24px.svg + icons/action/svg/production/ic_exit_to_app_24px.svg + icons/action/svg/production/ic_explore_24px.svg + icons/action/svg/production/ic_extension_24px.svg + icons/action/svg/production/ic_face_24px.svg + icons/action/svg/production/ic_favorite_24px.svg + icons/action/svg/production/ic_favorite_border_24px.svg + icons/action/svg/production/ic_feedback_24px.svg + icons/action/svg/production/ic_find_in_page_24px.svg + icons/action/svg/production/ic_find_replace_24px.svg + icons/action/svg/production/ic_fingerprint_24px.svg + icons/action/svg/production/ic_flight_land_24px.svg + icons/action/svg/production/ic_flight_takeoff_24px.svg + icons/action/svg/production/ic_flip_to_back_24px.svg + icons/action/svg/production/ic_flip_to_front_24px.svg + icons/action/svg/production/ic_g_translate_24px.svg + icons/action/svg/production/ic_gavel_24px.svg + icons/action/svg/production/ic_get_app_24px.svg + icons/action/svg/production/ic_gif_24px.svg + icons/action/svg/production/ic_grade_24px.svg + icons/action/svg/production/ic_group_work_24px.svg + icons/action/svg/production/ic_help_24px.svg + icons/action/svg/production/ic_help_outline_24px.svg + icons/action/svg/production/ic_highlight_off_24px.svg + icons/action/svg/production/ic_history_24px.svg + icons/action/svg/production/ic_home_24px.svg + icons/action/svg/production/ic_hourglass_empty_24px.svg + icons/action/svg/production/ic_hourglass_full_24px.svg + icons/action/svg/production/ic_http_24px.svg + icons/action/svg/production/ic_https_24px.svg + icons/action/svg/production/ic_important_devices_24px.svg + icons/action/svg/production/ic_info_24px.svg + icons/action/svg/production/ic_info_outline_24px.svg + icons/action/svg/production/ic_input_24px.svg + icons/action/svg/production/ic_invert_colors_24px.svg + icons/action/svg/production/ic_label_24px.svg + icons/action/svg/production/ic_label_outline_24px.svg + icons/action/svg/production/ic_language_24px.svg + icons/action/svg/production/ic_launch_24px.svg + icons/action/svg/production/ic_lightbulb_outline_24px.svg + icons/action/svg/production/ic_line_style_24px.svg + icons/action/svg/production/ic_line_weight_24px.svg + icons/action/svg/production/ic_list_24px.svg + icons/action/svg/production/ic_lock_24px.svg + icons/action/svg/production/ic_lock_open_24px.svg + icons/action/svg/production/ic_lock_outline_24px.svg + icons/action/svg/production/ic_loyalty_24px.svg + icons/action/svg/production/ic_markunread_mailbox_24px.svg + icons/action/svg/production/ic_motorcycle_24px.svg + icons/action/svg/production/ic_note_add_24px.svg + icons/action/svg/production/ic_offline_pin_24px.svg + icons/action/svg/production/ic_opacity_24px.svg + icons/action/svg/production/ic_open_in_browser_24px.svg + icons/action/svg/production/ic_open_in_new_24px.svg + icons/action/svg/production/ic_open_with_24px.svg + icons/action/svg/production/ic_pageview_24px.svg + icons/action/svg/production/ic_pan_tool_24px.svg + icons/action/svg/production/ic_payment_24px.svg + icons/action/svg/production/ic_perm_camera_mic_24px.svg + icons/action/svg/production/ic_perm_contact_calendar_24px.svg + icons/action/svg/production/ic_perm_data_setting_24px.svg + icons/action/svg/production/ic_perm_device_information_24px.svg + icons/action/svg/production/ic_perm_identity_24px.svg + icons/action/svg/production/ic_perm_media_24px.svg + icons/action/svg/production/ic_perm_phone_msg_24px.svg + icons/action/svg/production/ic_perm_scan_wifi_24px.svg + icons/action/svg/production/ic_pets_24px.svg + icons/action/svg/production/ic_picture_in_picture_24px.svg + icons/action/svg/production/ic_picture_in_picture_alt_24px.svg + icons/action/svg/production/ic_play_for_work_24px.svg + icons/action/svg/production/ic_polymer_24px.svg + icons/action/svg/production/ic_power_settings_new_24px.svg + icons/action/svg/production/ic_pregnant_woman_24px.svg + icons/action/svg/production/ic_print_24px.svg + icons/action/svg/production/ic_query_builder_24px.svg + icons/action/svg/production/ic_question_answer_24px.svg + icons/action/svg/production/ic_receipt_24px.svg + icons/action/svg/production/ic_record_voice_over_24px.svg + icons/action/svg/production/ic_redeem_24px.svg + icons/action/svg/production/ic_remove_shopping_cart_24px.svg + icons/action/svg/production/ic_reorder_24px.svg + icons/action/svg/production/ic_report_problem_24px.svg + icons/action/svg/production/ic_restore_24px.svg + icons/action/svg/production/ic_restore_page_24px.svg + icons/action/svg/production/ic_room_24px.svg + icons/action/svg/production/ic_rounded_corner_24px.svg + icons/action/svg/production/ic_rowing_24px.svg + icons/action/svg/production/ic_schedule_24px.svg + icons/action/svg/production/ic_search_24px.svg + icons/action/svg/production/ic_settings_24px.svg + icons/action/svg/production/ic_settings_applications_24px.svg + icons/action/svg/production/ic_settings_backup_restore_24px.svg + icons/action/svg/production/ic_settings_bluetooth_24px.svg + icons/action/svg/production/ic_settings_brightness_24px.svg + icons/action/svg/production/ic_settings_cell_24px.svg + icons/action/svg/production/ic_settings_ethernet_24px.svg + icons/action/svg/production/ic_settings_input_antenna_24px.svg + icons/action/svg/production/ic_settings_input_component_24px.svg + icons/action/svg/production/ic_settings_input_composite_24px.svg + icons/action/svg/production/ic_settings_input_hdmi_24px.svg + icons/action/svg/production/ic_settings_input_svideo_24px.svg + icons/action/svg/production/ic_settings_overscan_24px.svg + icons/action/svg/production/ic_settings_phone_24px.svg + icons/action/svg/production/ic_settings_power_24px.svg + icons/action/svg/production/ic_settings_remote_24px.svg + icons/action/svg/production/ic_settings_voice_24px.svg + icons/action/svg/production/ic_shop_24px.svg + icons/action/svg/production/ic_shop_two_24px.svg + icons/action/svg/production/ic_shopping_basket_24px.svg + icons/action/svg/production/ic_shopping_cart_24px.svg + icons/action/svg/production/ic_speaker_notes_24px.svg + icons/action/svg/production/ic_speaker_notes_off_24px.svg + icons/action/svg/production/ic_spellcheck_24px.svg + icons/action/svg/production/ic_stars_24px.svg + icons/action/svg/production/ic_store_24px.svg + icons/action/svg/production/ic_subject_24px.svg + icons/action/svg/production/ic_supervisor_account_24px.svg + icons/action/svg/production/ic_swap_horiz_24px.svg + icons/action/svg/production/ic_swap_vert_24px.svg + icons/action/svg/production/ic_swap_vertical_circle_24px.svg + icons/action/svg/production/ic_system_update_alt_24px.svg + icons/action/svg/production/ic_tab_24px.svg + icons/action/svg/production/ic_tab_unselected_24px.svg + icons/action/svg/production/ic_theaters_24px.svg + icons/action/svg/production/ic_thumb_down_24px.svg + icons/action/svg/production/ic_thumb_up_24px.svg + icons/action/svg/production/ic_thumbs_up_down_24px.svg + icons/action/svg/production/ic_timeline_24px.svg + icons/action/svg/production/ic_toc_24px.svg + icons/action/svg/production/ic_today_24px.svg + icons/action/svg/production/ic_toll_24px.svg + icons/action/svg/production/ic_touch_app_24px.svg + icons/action/svg/production/ic_track_changes_24px.svg + icons/action/svg/production/ic_translate_24px.svg + icons/action/svg/production/ic_trending_down_24px.svg + icons/action/svg/production/ic_trending_flat_24px.svg + icons/action/svg/production/ic_trending_up_24px.svg + icons/action/svg/production/ic_turned_in_24px.svg + icons/action/svg/production/ic_turned_in_not_24px.svg + icons/action/svg/production/ic_update_24px.svg + icons/action/svg/production/ic_verified_user_24px.svg + icons/action/svg/production/ic_view_agenda_24px.svg + icons/action/svg/production/ic_view_array_24px.svg + icons/action/svg/production/ic_view_carousel_24px.svg + icons/action/svg/production/ic_view_column_24px.svg + icons/action/svg/production/ic_view_day_24px.svg + icons/action/svg/production/ic_view_headline_24px.svg + icons/action/svg/production/ic_view_list_24px.svg + icons/action/svg/production/ic_view_module_24px.svg + icons/action/svg/production/ic_view_quilt_24px.svg + icons/action/svg/production/ic_view_stream_24px.svg + icons/action/svg/production/ic_view_week_24px.svg + icons/action/svg/production/ic_visibility_24px.svg + icons/action/svg/production/ic_visibility_off_24px.svg + icons/action/svg/production/ic_watch_later_24px.svg + icons/action/svg/production/ic_work_24px.svg + icons/action/svg/production/ic_youtube_searched_for_24px.svg + icons/action/svg/production/ic_zoom_in_24px.svg + icons/action/svg/production/ic_zoom_out_24px.svg + icons/alert/svg/production/ic_add_alert_24px.svg + icons/alert/svg/production/ic_error_24px.svg + icons/alert/svg/production/ic_error_outline_24px.svg + icons/alert/svg/production/ic_warning_24px.svg + icons/av/svg/production/ic_add_to_queue_24px.svg + icons/av/svg/production/ic_airplay_24px.svg + icons/av/svg/production/ic_album_24px.svg + icons/av/svg/production/ic_art_track_24px.svg + icons/av/svg/production/ic_av_timer_24px.svg + icons/av/svg/production/ic_branding_watermark_24px.svg + icons/av/svg/production/ic_call_to_action_24px.svg + icons/av/svg/production/ic_closed_caption_24px.svg + icons/av/svg/production/ic_equalizer_24px.svg + icons/av/svg/production/ic_explicit_24px.svg + icons/av/svg/production/ic_fast_forward_24px.svg + icons/av/svg/production/ic_fast_rewind_24px.svg + icons/av/svg/production/ic_featured_play_list_24px.svg + icons/av/svg/production/ic_featured_video_24px.svg + icons/av/svg/production/ic_fiber_dvr_24px.svg + icons/av/svg/production/ic_fiber_manual_record_24px.svg + icons/av/svg/production/ic_fiber_new_24px.svg + icons/av/svg/production/ic_fiber_pin_24px.svg + icons/av/svg/production/ic_fiber_smart_record_24px.svg + icons/av/svg/production/ic_forward_5_24px.svg + icons/av/svg/production/ic_forward_10_24px.svg + icons/av/svg/production/ic_forward_30_24px.svg + icons/av/svg/production/ic_games_24px.svg + icons/av/svg/production/ic_hd_24px.svg + icons/av/svg/production/ic_hearing_24px.svg + icons/av/svg/production/ic_high_quality_24px.svg + icons/av/svg/production/ic_library_add_24px.svg + icons/av/svg/production/ic_library_books_24px.svg + icons/av/svg/production/ic_library_music_24px.svg + icons/av/svg/production/ic_loop_24px.svg + icons/av/svg/production/ic_mic_24px.svg + icons/av/svg/production/ic_mic_none_24px.svg + icons/av/svg/production/ic_mic_off_24px.svg + icons/av/svg/production/ic_movie_24px.svg + icons/av/svg/production/ic_music_video_24px.svg + icons/av/svg/production/ic_new_releases_24px.svg + icons/av/svg/production/ic_not_interested_24px.svg + icons/av/svg/production/ic_note_24px.svg + icons/av/svg/production/ic_pause_24px.svg + icons/av/svg/production/ic_pause_circle_filled_24px.svg + icons/av/svg/production/ic_pause_circle_outline_24px.svg + icons/av/svg/production/ic_play_arrow_24px.svg + icons/av/svg/production/ic_play_circle_filled_24px.svg + icons/av/svg/production/ic_play_circle_outline_24px.svg + icons/av/svg/production/ic_playlist_add_24px.svg + icons/av/svg/production/ic_playlist_add_check_24px.svg + icons/av/svg/production/ic_playlist_play_24px.svg + icons/av/svg/production/ic_queue_24px.svg + icons/av/svg/production/ic_queue_music_24px.svg + icons/av/svg/production/ic_queue_play_next_24px.svg + icons/av/svg/production/ic_radio_24px.svg + icons/av/svg/production/ic_recent_actors_24px.svg + icons/av/svg/production/ic_remove_from_queue_24px.svg + icons/av/svg/production/ic_repeat_24px.svg + icons/av/svg/production/ic_repeat_one_24px.svg + icons/av/svg/production/ic_replay_5_24px.svg + icons/av/svg/production/ic_replay_10_24px.svg + icons/av/svg/production/ic_replay_24px.svg + icons/av/svg/production/ic_replay_30_24px.svg + icons/av/svg/production/ic_shuffle_24px.svg + icons/av/svg/production/ic_skip_next_24px.svg + icons/av/svg/production/ic_skip_previous_24px.svg + icons/av/svg/production/ic_slow_motion_video_24px.svg + icons/av/svg/production/ic_snooze_24px.svg + icons/av/svg/production/ic_sort_by_alpha_24px.svg + icons/av/svg/production/ic_stop_24px.svg + icons/av/svg/production/ic_subscriptions_24px.svg + icons/av/svg/production/ic_subtitles_24px.svg + icons/av/svg/production/ic_surround_sound_24px.svg + icons/av/svg/production/ic_video_call_24px.svg + icons/av/svg/production/ic_video_label_24px.svg + icons/av/svg/production/ic_video_library_24px.svg + icons/av/svg/production/ic_videocam_24px.svg + icons/av/svg/production/ic_videocam_off_24px.svg + icons/av/svg/production/ic_volume_down_24px.svg + icons/av/svg/production/ic_volume_mute_24px.svg + icons/av/svg/production/ic_volume_off_24px.svg + icons/av/svg/production/ic_volume_up_24px.svg + icons/av/svg/production/ic_web_24px.svg + icons/av/svg/production/ic_web_asset_24px.svg + icons/content/svg/production/ic_add_24px.svg + icons/content/svg/production/ic_add_box_24px.svg + icons/content/svg/production/ic_add_circle_24px.svg + icons/content/svg/production/ic_add_circle_outline_24px.svg + icons/content/svg/production/ic_archive_24px.svg + icons/content/svg/production/ic_backspace_24px.svg + icons/content/svg/production/ic_block_24px.svg + icons/content/svg/production/ic_clear_24px.svg + icons/content/svg/production/ic_content_copy_24px.svg + icons/content/svg/production/ic_content_cut_24px.svg + icons/content/svg/production/ic_content_paste_24px.svg + icons/content/svg/production/ic_create_24px.svg + icons/content/svg/production/ic_delete_sweep_24px.svg + icons/content/svg/production/ic_drafts_24px.svg + icons/content/svg/production/ic_filter_list_24px.svg + icons/content/svg/production/ic_flag_24px.svg + icons/content/svg/production/ic_font_download_24px.svg + icons/content/svg/production/ic_forward_24px.svg + icons/content/svg/production/ic_gesture_24px.svg + icons/content/svg/production/ic_inbox_24px.svg + icons/content/svg/production/ic_link_24px.svg + icons/content/svg/production/ic_low_priority_24px.svg + icons/content/svg/production/ic_mail_24px.svg + icons/content/svg/production/ic_markunread_24px.svg + icons/content/svg/production/ic_move_to_inbox_24px.svg + icons/content/svg/production/ic_next_week_24px.svg + icons/content/svg/production/ic_redo_24px.svg + icons/content/svg/production/ic_remove_24px.svg + icons/content/svg/production/ic_remove_circle_24px.svg + icons/content/svg/production/ic_remove_circle_outline_24px.svg + icons/content/svg/production/ic_reply_24px.svg + icons/content/svg/production/ic_reply_all_24px.svg + icons/content/svg/production/ic_report_24px.svg + icons/content/svg/production/ic_save_24px.svg + icons/content/svg/production/ic_select_all_24px.svg + icons/content/svg/production/ic_send_24px.svg + icons/content/svg/production/ic_sort_24px.svg + icons/content/svg/production/ic_text_format_24px.svg + icons/content/svg/production/ic_unarchive_24px.svg + icons/content/svg/production/ic_undo_24px.svg + icons/content/svg/production/ic_weekend_24px.svg + icons/device/svg/production/ic_access_alarm_24px.svg + icons/device/svg/production/ic_access_alarms_24px.svg + icons/device/svg/production/ic_access_time_24px.svg + icons/device/svg/production/ic_add_alarm_24px.svg + icons/device/svg/production/ic_airplanemode_active_24px.svg + icons/device/svg/production/ic_airplanemode_inactive_24px.svg + icons/device/svg/production/ic_battery_20_24px.svg + icons/device/svg/production/ic_battery_30_24px.svg + icons/device/svg/production/ic_battery_50_24px.svg + icons/device/svg/production/ic_battery_60_24px.svg + icons/device/svg/production/ic_battery_80_24px.svg + icons/device/svg/production/ic_battery_90_24px.svg + icons/device/svg/production/ic_battery_alert_24px.svg + icons/device/svg/production/ic_battery_charging_20_24px.svg + icons/device/svg/production/ic_battery_charging_30_24px.svg + icons/device/svg/production/ic_battery_charging_50_24px.svg + icons/device/svg/production/ic_battery_charging_60_24px.svg + icons/device/svg/production/ic_battery_charging_80_24px.svg + icons/device/svg/production/ic_battery_charging_90_24px.svg + icons/device/svg/production/ic_battery_charging_full_24px.svg + icons/device/svg/production/ic_battery_full_24px.svg + icons/device/svg/production/ic_battery_std_24px.svg + icons/device/svg/production/ic_battery_unknown_24px.svg + icons/device/svg/production/ic_bluetooth_24px.svg + icons/device/svg/production/ic_bluetooth_connected_24px.svg + icons/device/svg/production/ic_bluetooth_disabled_24px.svg + icons/device/svg/production/ic_bluetooth_searching_24px.svg + icons/device/svg/production/ic_brightness_auto_24px.svg + icons/device/svg/production/ic_brightness_high_24px.svg + icons/device/svg/production/ic_brightness_low_24px.svg + icons/device/svg/production/ic_brightness_medium_24px.svg + icons/device/svg/production/ic_data_usage_24px.svg + icons/device/svg/production/ic_developer_mode_24px.svg + icons/device/svg/production/ic_devices_24px.svg + icons/device/svg/production/ic_dvr_24px.svg + icons/device/svg/production/ic_gps_fixed_24px.svg + icons/device/svg/production/ic_gps_not_fixed_24px.svg + icons/device/svg/production/ic_gps_off_24px.svg + icons/device/svg/production/ic_graphic_eq_24px.svg + icons/device/svg/production/ic_location_disabled_24px.svg + icons/device/svg/production/ic_location_searching_24px.svg + icons/device/svg/production/ic_network_cell_24px.svg + icons/device/svg/production/ic_network_wifi_24px.svg + icons/device/svg/production/ic_nfc_24px.svg + icons/device/svg/production/ic_screen_lock_landscape_24px.svg + icons/device/svg/production/ic_screen_lock_portrait_24px.svg + icons/device/svg/production/ic_screen_lock_rotation_24px.svg + icons/device/svg/production/ic_screen_rotation_24px.svg + icons/device/svg/production/ic_sd_storage_24px.svg + icons/device/svg/production/ic_settings_system_daydream_24px.svg + icons/device/svg/production/ic_signal_cellular_0_bar_24px.svg + icons/device/svg/production/ic_signal_cellular_1_bar_24px.svg + icons/device/svg/production/ic_signal_cellular_2_bar_24px.svg + icons/device/svg/production/ic_signal_cellular_3_bar_24px.svg + icons/device/svg/production/ic_signal_cellular_4_bar_24px.svg + icons/device/svg/production/ic_signal_cellular_connected_no_internet_0_bar_24px.svg + icons/device/svg/production/ic_signal_cellular_connected_no_internet_1_bar_24px.svg + icons/device/svg/production/ic_signal_cellular_connected_no_internet_2_bar_24px.svg + icons/device/svg/production/ic_signal_cellular_connected_no_internet_3_bar_24px.svg + icons/device/svg/production/ic_signal_cellular_connected_no_internet_4_bar_24px.svg + icons/device/svg/production/ic_signal_cellular_no_sim_24px.svg + icons/device/svg/production/ic_signal_cellular_null_24px.svg + icons/device/svg/production/ic_signal_cellular_off_24px.svg + icons/device/svg/production/ic_signal_wifi_0_bar_24px.svg + icons/device/svg/production/ic_signal_wifi_1_bar_24px.svg + icons/device/svg/production/ic_signal_wifi_1_bar_lock_24px.svg + icons/device/svg/production/ic_signal_wifi_2_bar_24px.svg + icons/device/svg/production/ic_signal_wifi_2_bar_lock_24px.svg + icons/device/svg/production/ic_signal_wifi_3_bar_24px.svg + icons/device/svg/production/ic_signal_wifi_3_bar_lock_24px.svg + icons/device/svg/production/ic_signal_wifi_4_bar_24px.svg + icons/device/svg/production/ic_signal_wifi_4_bar_lock_24px.svg + icons/device/svg/production/ic_signal_wifi_off_24px.svg + icons/device/svg/production/ic_storage_24px.svg + icons/device/svg/production/ic_usb_24px.svg + icons/device/svg/production/ic_wallpaper_24px.svg + icons/device/svg/production/ic_widgets_24px.svg + icons/device/svg/production/ic_wifi_lock_24px.svg + icons/device/svg/production/ic_wifi_tethering_24px.svg + icons/editor/svg/production/ic_attach_file_24px.svg + icons/editor/svg/production/ic_attach_money_24px.svg + icons/editor/svg/production/ic_border_all_24px.svg + icons/editor/svg/production/ic_border_bottom_24px.svg + icons/editor/svg/production/ic_border_clear_24px.svg + icons/editor/svg/production/ic_border_color_24px.svg + icons/editor/svg/production/ic_border_horizontal_24px.svg + icons/editor/svg/production/ic_border_inner_24px.svg + icons/editor/svg/production/ic_border_left_24px.svg + icons/editor/svg/production/ic_border_outer_24px.svg + icons/editor/svg/production/ic_border_right_24px.svg + icons/editor/svg/production/ic_border_style_24px.svg + icons/editor/svg/production/ic_border_top_24px.svg + icons/editor/svg/production/ic_border_vertical_24px.svg + icons/editor/svg/production/ic_bubble_chart_24px.svg + icons/editor/svg/production/ic_drag_handle_24px.svg + icons/editor/svg/production/ic_format_align_center_24px.svg + icons/editor/svg/production/ic_format_align_justify_24px.svg + icons/editor/svg/production/ic_format_align_left_24px.svg + icons/editor/svg/production/ic_format_align_right_24px.svg + icons/editor/svg/production/ic_format_bold_24px.svg + icons/editor/svg/production/ic_format_clear_24px.svg + icons/editor/svg/production/ic_format_color_fill_24px.svg + icons/editor/svg/production/ic_format_color_reset_24px.svg + icons/editor/svg/production/ic_format_color_text_24px.svg + icons/editor/svg/production/ic_format_indent_decrease_24px.svg + icons/editor/svg/production/ic_format_indent_increase_24px.svg + icons/editor/svg/production/ic_format_italic_24px.svg + icons/editor/svg/production/ic_format_line_spacing_24px.svg + icons/editor/svg/production/ic_format_list_bulleted_24px.svg + icons/editor/svg/production/ic_format_list_numbered_24px.svg + icons/editor/svg/production/ic_format_paint_24px.svg + icons/editor/svg/production/ic_format_quote_24px.svg + icons/editor/svg/production/ic_format_shapes_24px.svg + icons/editor/svg/production/ic_format_size_24px.svg + icons/editor/svg/production/ic_format_strikethrough_24px.svg + icons/editor/svg/production/ic_format_textdirection_l_to_r_24px.svg + icons/editor/svg/production/ic_format_textdirection_r_to_l_24px.svg + icons/editor/svg/production/ic_format_underlined_24px.svg + icons/editor/svg/production/ic_functions_24px.svg + icons/editor/svg/production/ic_highlight_24px.svg + icons/editor/svg/production/ic_insert_chart_24px.svg + icons/editor/svg/production/ic_insert_comment_24px.svg + icons/editor/svg/production/ic_insert_drive_file_24px.svg + icons/editor/svg/production/ic_insert_emoticon_24px.svg + icons/editor/svg/production/ic_insert_invitation_24px.svg + icons/editor/svg/production/ic_insert_link_24px.svg + icons/editor/svg/production/ic_insert_photo_24px.svg + icons/editor/svg/production/ic_linear_scale_24px.svg + icons/editor/svg/production/ic_merge_type_24px.svg + icons/editor/svg/production/ic_mode_comment_24px.svg + icons/editor/svg/production/ic_mode_edit_24px.svg + icons/editor/svg/production/ic_monetization_on_24px.svg + icons/editor/svg/production/ic_money_off_24px.svg + icons/editor/svg/production/ic_multiline_chart_24px.svg + icons/editor/svg/production/ic_pie_chart_24px.svg + icons/editor/svg/production/ic_pie_chart_outlined_24px.svg + icons/editor/svg/production/ic_publish_24px.svg + icons/editor/svg/production/ic_short_text_24px.svg + icons/editor/svg/production/ic_show_chart_24px.svg + icons/editor/svg/production/ic_space_bar_24px.svg + icons/editor/svg/production/ic_strikethrough_s_24px.svg + icons/editor/svg/production/ic_text_fields_24px.svg + icons/editor/svg/production/ic_title_24px.svg + icons/editor/svg/production/ic_vertical_align_bottom_24px.svg + icons/editor/svg/production/ic_vertical_align_center_24px.svg + icons/editor/svg/production/ic_vertical_align_top_24px.svg + icons/editor/svg/production/ic_wrap_text_24px.svg + icons/file/svg/production/ic_attachment_24px.svg + icons/file/svg/production/ic_cloud_24px.svg + icons/file/svg/production/ic_cloud_circle_24px.svg + icons/file/svg/production/ic_cloud_done_24px.svg + icons/file/svg/production/ic_cloud_download_24px.svg + icons/file/svg/production/ic_cloud_off_24px.svg + icons/file/svg/production/ic_cloud_queue_24px.svg + icons/file/svg/production/ic_cloud_upload_24px.svg + icons/file/svg/production/ic_create_new_folder_24px.svg + icons/file/svg/production/ic_file_download_24px.svg + icons/file/svg/production/ic_file_upload_24px.svg + icons/file/svg/production/ic_folder_24px.svg + icons/file/svg/production/ic_folder_open_24px.svg + icons/file/svg/production/ic_folder_shared_24px.svg + icons/hardware/svg/production/ic_cast_24px.svg + icons/hardware/svg/production/ic_cast_connected_24px.svg + icons/hardware/svg/production/ic_computer_24px.svg + icons/hardware/svg/production/ic_desktop_mac_24px.svg + icons/hardware/svg/production/ic_desktop_windows_24px.svg + icons/hardware/svg/production/ic_developer_board_24px.svg + icons/hardware/svg/production/ic_device_hub_24px.svg + icons/hardware/svg/production/ic_devices_other_24px.svg + icons/hardware/svg/production/ic_dock_24px.svg + icons/hardware/svg/production/ic_gamepad_24px.svg + icons/hardware/svg/production/ic_headset_24px.svg + icons/hardware/svg/production/ic_headset_mic_24px.svg + icons/hardware/svg/production/ic_keyboard_24px.svg + icons/hardware/svg/production/ic_keyboard_arrow_down_24px.svg + icons/hardware/svg/production/ic_keyboard_arrow_left_24px.svg + icons/hardware/svg/production/ic_keyboard_arrow_right_24px.svg + icons/hardware/svg/production/ic_keyboard_arrow_up_24px.svg + icons/hardware/svg/production/ic_keyboard_backspace_24px.svg + icons/hardware/svg/production/ic_keyboard_capslock_24px.svg + icons/hardware/svg/production/ic_keyboard_hide_24px.svg + icons/hardware/svg/production/ic_keyboard_return_24px.svg + icons/hardware/svg/production/ic_keyboard_tab_24px.svg + icons/hardware/svg/production/ic_keyboard_voice_24px.svg + icons/hardware/svg/production/ic_laptop_24px.svg + icons/hardware/svg/production/ic_laptop_chromebook_24px.svg + icons/hardware/svg/production/ic_laptop_mac_24px.svg + icons/hardware/svg/production/ic_laptop_windows_24px.svg + icons/hardware/svg/production/ic_memory_24px.svg + icons/hardware/svg/production/ic_mouse_24px.svg + icons/hardware/svg/production/ic_phone_android_24px.svg + icons/hardware/svg/production/ic_phone_iphone_24px.svg + icons/hardware/svg/production/ic_phonelink_24px.svg + icons/hardware/svg/production/ic_phonelink_off_24px.svg + icons/hardware/svg/production/ic_power_input_24px.svg + icons/hardware/svg/production/ic_router_24px.svg + icons/hardware/svg/production/ic_scanner_24px.svg + icons/hardware/svg/production/ic_security_24px.svg + icons/hardware/svg/production/ic_sim_card_24px.svg + icons/hardware/svg/production/ic_smartphone_24px.svg + icons/hardware/svg/production/ic_speaker_24px.svg + icons/hardware/svg/production/ic_speaker_group_24px.svg + icons/hardware/svg/production/ic_tablet_24px.svg + icons/hardware/svg/production/ic_tablet_android_24px.svg + icons/hardware/svg/production/ic_tablet_mac_24px.svg + icons/hardware/svg/production/ic_toys_24px.svg + icons/hardware/svg/production/ic_tv_24px.svg + icons/hardware/svg/production/ic_videogame_asset_24px.svg + icons/hardware/svg/production/ic_watch_24px.svg + icons/image/svg/production/ic_add_a_photo_24px.svg + icons/image/svg/production/ic_add_to_photos_24px.svg + icons/image/svg/production/ic_adjust_24px.svg + icons/image/svg/production/ic_assistant_24px.svg + icons/image/svg/production/ic_assistant_photo_24px.svg + icons/image/svg/production/ic_audiotrack_24px.svg + icons/image/svg/production/ic_blur_circular_24px.svg + icons/image/svg/production/ic_blur_linear_24px.svg + icons/image/svg/production/ic_blur_off_24px.svg + icons/image/svg/production/ic_blur_on_24px.svg + icons/image/svg/production/ic_brightness_1_24px.svg + icons/image/svg/production/ic_brightness_2_24px.svg + icons/image/svg/production/ic_brightness_3_24px.svg + icons/image/svg/production/ic_brightness_4_24px.svg + icons/image/svg/production/ic_brightness_5_24px.svg + icons/image/svg/production/ic_brightness_6_24px.svg + icons/image/svg/production/ic_brightness_7_24px.svg + icons/image/svg/production/ic_broken_image_24px.svg + icons/image/svg/production/ic_brush_24px.svg + icons/image/svg/production/ic_burst_mode_24px.svg + icons/image/svg/production/ic_camera_24px.svg + icons/image/svg/production/ic_camera_alt_24px.svg + icons/image/svg/production/ic_camera_front_24px.svg + icons/image/svg/production/ic_camera_rear_24px.svg + icons/image/svg/production/ic_camera_roll_24px.svg + icons/image/svg/production/ic_center_focus_strong_24px.svg + icons/image/svg/production/ic_center_focus_weak_24px.svg + icons/image/svg/production/ic_collections_24px.svg + icons/image/svg/production/ic_collections_bookmark_24px.svg + icons/image/svg/production/ic_color_lens_24px.svg + icons/image/svg/production/ic_colorize_24px.svg + icons/image/svg/production/ic_compare_24px.svg + icons/image/svg/production/ic_control_point_24px.svg + icons/image/svg/production/ic_control_point_duplicate_24px.svg + icons/image/svg/production/ic_crop_3_2_24px.svg + icons/image/svg/production/ic_crop_5_4_24px.svg + icons/image/svg/production/ic_crop_7_5_24px.svg + icons/image/svg/production/ic_crop_16_9_24px.svg + icons/image/svg/production/ic_crop_24px.svg + icons/image/svg/production/ic_crop_din_24px.svg + icons/image/svg/production/ic_crop_free_24px.svg + icons/image/svg/production/ic_crop_landscape_24px.svg + icons/image/svg/production/ic_crop_original_24px.svg + icons/image/svg/production/ic_crop_portrait_24px.svg + icons/image/svg/production/ic_crop_rotate_24px.svg + icons/image/svg/production/ic_crop_square_24px.svg + icons/image/svg/production/ic_dehaze_24px.svg + icons/image/svg/production/ic_details_24px.svg + icons/image/svg/production/ic_edit_24px.svg + icons/image/svg/production/ic_exposure_24px.svg + icons/image/svg/production/ic_exposure_neg_1_24px.svg + icons/image/svg/production/ic_exposure_neg_2_24px.svg + icons/image/svg/production/ic_exposure_plus_1_24px.svg + icons/image/svg/production/ic_exposure_plus_2_24px.svg + icons/image/svg/production/ic_exposure_zero_24px.svg + icons/image/svg/production/ic_filter_1_24px.svg + icons/image/svg/production/ic_filter_2_24px.svg + icons/image/svg/production/ic_filter_3_24px.svg + icons/image/svg/production/ic_filter_4_24px.svg + icons/image/svg/production/ic_filter_5_24px.svg + icons/image/svg/production/ic_filter_6_24px.svg + icons/image/svg/production/ic_filter_7_24px.svg + icons/image/svg/production/ic_filter_8_24px.svg + icons/image/svg/production/ic_filter_9_24px.svg + icons/image/svg/production/ic_filter_9_plus_24px.svg + icons/image/svg/production/ic_filter_24px.svg + icons/image/svg/production/ic_filter_b_and_w_24px.svg + icons/image/svg/production/ic_filter_center_focus_24px.svg + icons/image/svg/production/ic_filter_drama_24px.svg + icons/image/svg/production/ic_filter_frames_24px.svg + icons/image/svg/production/ic_filter_hdr_24px.svg + icons/image/svg/production/ic_filter_none_24px.svg + icons/image/svg/production/ic_filter_tilt_shift_24px.svg + icons/image/svg/production/ic_filter_vintage_24px.svg + icons/image/svg/production/ic_flare_24px.svg + icons/image/svg/production/ic_flash_auto_24px.svg + icons/image/svg/production/ic_flash_off_24px.svg + icons/image/svg/production/ic_flash_on_24px.svg + icons/image/svg/production/ic_flip_24px.svg + icons/image/svg/production/ic_gradient_24px.svg + icons/image/svg/production/ic_grain_24px.svg + icons/image/svg/production/ic_grid_off_24px.svg + icons/image/svg/production/ic_grid_on_24px.svg + icons/image/svg/production/ic_hdr_off_24px.svg + icons/image/svg/production/ic_hdr_on_24px.svg + icons/image/svg/production/ic_hdr_strong_24px.svg + icons/image/svg/production/ic_hdr_weak_24px.svg + icons/image/svg/production/ic_healing_24px.svg + icons/image/svg/production/ic_image_24px.svg + icons/image/svg/production/ic_image_aspect_ratio_24px.svg + icons/image/svg/production/ic_iso_24px.svg + icons/image/svg/production/ic_landscape_24px.svg + icons/image/svg/production/ic_leak_add_24px.svg + icons/image/svg/production/ic_leak_remove_24px.svg + icons/image/svg/production/ic_lens_24px.svg + icons/image/svg/production/ic_linked_camera_24px.svg + icons/image/svg/production/ic_looks_3_24px.svg + icons/image/svg/production/ic_looks_4_24px.svg + icons/image/svg/production/ic_looks_5_24px.svg + icons/image/svg/production/ic_looks_6_24px.svg + icons/image/svg/production/ic_looks_24px.svg + icons/image/svg/production/ic_looks_one_24px.svg + icons/image/svg/production/ic_looks_two_24px.svg + icons/image/svg/production/ic_loupe_24px.svg + icons/image/svg/production/ic_monochrome_photos_24px.svg + icons/image/svg/production/ic_movie_creation_24px.svg + icons/image/svg/production/ic_movie_filter_24px.svg + icons/image/svg/production/ic_music_note_24px.svg + icons/image/svg/production/ic_nature_24px.svg + icons/image/svg/production/ic_nature_people_24px.svg + icons/image/svg/production/ic_navigate_before_24px.svg + icons/image/svg/production/ic_navigate_next_24px.svg + icons/image/svg/production/ic_palette_24px.svg + icons/image/svg/production/ic_panorama_24px.svg + icons/image/svg/production/ic_panorama_fish_eye_24px.svg + icons/image/svg/production/ic_panorama_horizontal_24px.svg + icons/image/svg/production/ic_panorama_vertical_24px.svg + icons/image/svg/production/ic_panorama_wide_angle_24px.svg + icons/image/svg/production/ic_photo_24px.svg + icons/image/svg/production/ic_photo_album_24px.svg + icons/image/svg/production/ic_photo_camera_24px.svg + icons/image/svg/production/ic_photo_filter_24px.svg + icons/image/svg/production/ic_photo_library_24px.svg + icons/image/svg/production/ic_photo_size_select_actual_24px.svg + icons/image/svg/production/ic_photo_size_select_large_24px.svg + icons/image/svg/production/ic_photo_size_select_small_24px.svg + icons/image/svg/production/ic_picture_as_pdf_24px.svg + icons/image/svg/production/ic_portrait_24px.svg + icons/image/svg/production/ic_remove_red_eye_24px.svg + icons/image/svg/production/ic_rotate_90_degrees_ccw_24px.svg + icons/image/svg/production/ic_rotate_left_24px.svg + icons/image/svg/production/ic_rotate_right_24px.svg + icons/image/svg/production/ic_slideshow_24px.svg + icons/image/svg/production/ic_straighten_24px.svg + icons/image/svg/production/ic_style_24px.svg + icons/image/svg/production/ic_switch_camera_24px.svg + icons/image/svg/production/ic_switch_video_24px.svg + icons/image/svg/production/ic_tag_faces_24px.svg + icons/image/svg/production/ic_texture_24px.svg + icons/image/svg/production/ic_timelapse_24px.svg + icons/image/svg/production/ic_timer_3_24px.svg + icons/image/svg/production/ic_timer_10_24px.svg + icons/image/svg/production/ic_timer_24px.svg + icons/image/svg/production/ic_timer_off_24px.svg + icons/image/svg/production/ic_tonality_24px.svg + icons/image/svg/production/ic_transform_24px.svg + icons/image/svg/production/ic_tune_24px.svg + icons/image/svg/production/ic_view_comfy_24px.svg + icons/image/svg/production/ic_view_compact_24px.svg + icons/image/svg/production/ic_vignette_24px.svg + icons/image/svg/production/ic_wb_auto_24px.svg + icons/image/svg/production/ic_wb_cloudy_24px.svg + icons/image/svg/production/ic_wb_incandescent_24px.svg + icons/image/svg/production/ic_wb_iridescent_24px.svg + icons/image/svg/production/ic_wb_sunny_24px.svg + icons/maps/svg/production/ic_add_location_24px.svg + icons/maps/svg/production/ic_beenhere_24px.svg + icons/maps/svg/production/ic_directions_24px.svg + icons/maps/svg/production/ic_directions_bike_24px.svg + icons/maps/svg/production/ic_directions_boat_24px.svg + icons/maps/svg/production/ic_directions_bus_24px.svg + icons/maps/svg/production/ic_directions_car_24px.svg + icons/maps/svg/production/ic_directions_railway_24px.svg + icons/maps/svg/production/ic_directions_run_24px.svg + icons/maps/svg/production/ic_directions_subway_24px.svg + icons/maps/svg/production/ic_directions_transit_24px.svg + icons/maps/svg/production/ic_directions_walk_24px.svg + icons/maps/svg/production/ic_edit_location_24px.svg + icons/maps/svg/production/ic_ev_station_24px.svg + icons/maps/svg/production/ic_flight_24px.svg + icons/maps/svg/production/ic_hotel_24px.svg + icons/maps/svg/production/ic_layers_24px.svg + icons/maps/svg/production/ic_layers_clear_24px.svg + icons/maps/svg/production/ic_local_activity_24px.svg + icons/maps/svg/production/ic_local_airport_24px.svg + icons/maps/svg/production/ic_local_atm_24px.svg + icons/maps/svg/production/ic_local_bar_24px.svg + icons/maps/svg/production/ic_local_cafe_24px.svg + icons/maps/svg/production/ic_local_car_wash_24px.svg + icons/maps/svg/production/ic_local_convenience_store_24px.svg + icons/maps/svg/production/ic_local_dining_24px.svg + icons/maps/svg/production/ic_local_drink_24px.svg + icons/maps/svg/production/ic_local_florist_24px.svg + icons/maps/svg/production/ic_local_gas_station_24px.svg + icons/maps/svg/production/ic_local_grocery_store_24px.svg + icons/maps/svg/production/ic_local_hospital_24px.svg + icons/maps/svg/production/ic_local_hotel_24px.svg + icons/maps/svg/production/ic_local_laundry_service_24px.svg + icons/maps/svg/production/ic_local_library_24px.svg + icons/maps/svg/production/ic_local_mall_24px.svg + icons/maps/svg/production/ic_local_movies_24px.svg + icons/maps/svg/production/ic_local_offer_24px.svg + icons/maps/svg/production/ic_local_parking_24px.svg + icons/maps/svg/production/ic_local_pharmacy_24px.svg + icons/maps/svg/production/ic_local_phone_24px.svg + icons/maps/svg/production/ic_local_pizza_24px.svg + icons/maps/svg/production/ic_local_play_24px.svg + icons/maps/svg/production/ic_local_post_office_24px.svg + icons/maps/svg/production/ic_local_printshop_24px.svg + icons/maps/svg/production/ic_local_see_24px.svg + icons/maps/svg/production/ic_local_shipping_24px.svg + icons/maps/svg/production/ic_local_taxi_24px.svg + icons/maps/svg/production/ic_map_24px.svg + icons/maps/svg/production/ic_my_location_24px.svg + icons/maps/svg/production/ic_navigation_24px.svg + icons/maps/svg/production/ic_near_me_24px.svg + icons/maps/svg/production/ic_person_pin_24px.svg + icons/maps/svg/production/ic_person_pin_circle_24px.svg + icons/maps/svg/production/ic_pin_drop_24px.svg + icons/maps/svg/production/ic_place_24px.svg + icons/maps/svg/production/ic_rate_review_24px.svg + icons/maps/svg/production/ic_restaurant_24px.svg + icons/maps/svg/production/ic_restaurant_menu_24px.svg + icons/maps/svg/production/ic_satellite_24px.svg + icons/maps/svg/production/ic_store_mall_directory_24px.svg + icons/maps/svg/production/ic_streetview_24px.svg + icons/maps/svg/production/ic_subway_24px.svg + icons/maps/svg/production/ic_terrain_24px.svg + icons/maps/svg/production/ic_traffic_24px.svg + icons/maps/svg/production/ic_train_24px.svg + icons/maps/svg/production/ic_tram_24px.svg + icons/maps/svg/production/ic_transfer_within_a_station_24px.svg + icons/maps/svg/production/ic_zoom_out_map_24px.svg + icons/navigation/svg/production/ic_apps_24px.svg + icons/navigation/svg/production/ic_arrow_back_24px.svg + icons/navigation/svg/production/ic_arrow_downward_24px.svg + icons/navigation/svg/production/ic_arrow_drop_down_24px.svg + icons/navigation/svg/production/ic_arrow_drop_down_circle_24px.svg + icons/navigation/svg/production/ic_arrow_drop_up_24px.svg + icons/navigation/svg/production/ic_arrow_forward_24px.svg + icons/navigation/svg/production/ic_arrow_upward_24px.svg + icons/navigation/svg/production/ic_cancel_24px.svg + icons/navigation/svg/production/ic_check_24px.svg + icons/navigation/svg/production/ic_chevron_left_24px.svg + icons/navigation/svg/production/ic_chevron_right_24px.svg + icons/navigation/svg/production/ic_close_24px.svg + icons/navigation/svg/production/ic_expand_less_24px.svg + icons/navigation/svg/production/ic_expand_more_24px.svg + icons/navigation/svg/production/ic_first_page_24px.svg + icons/navigation/svg/production/ic_fullscreen_24px.svg + icons/navigation/svg/production/ic_fullscreen_exit_24px.svg + icons/navigation/svg/production/ic_last_page_24px.svg + icons/navigation/svg/production/ic_menu_24px.svg + icons/navigation/svg/production/ic_more_horiz_24px.svg + icons/navigation/svg/production/ic_more_vert_24px.svg + icons/navigation/svg/production/ic_refresh_24px.svg + icons/navigation/svg/production/ic_subdirectory_arrow_left_24px.svg + icons/navigation/svg/production/ic_subdirectory_arrow_right_24px.svg + icons/navigation/svg/production/ic_unfold_less_24px.svg + icons/navigation/svg/production/ic_unfold_more_24px.svg + icons/notification/svg/production/ic_adb_24px.svg + icons/notification/svg/production/ic_airline_seat_flat_24px.svg + icons/notification/svg/production/ic_airline_seat_flat_angled_24px.svg + icons/notification/svg/production/ic_airline_seat_individual_suite_24px.svg + icons/notification/svg/production/ic_airline_seat_legroom_extra_24px.svg + icons/notification/svg/production/ic_airline_seat_legroom_normal_24px.svg + icons/notification/svg/production/ic_airline_seat_legroom_reduced_24px.svg + icons/notification/svg/production/ic_airline_seat_recline_extra_24px.svg + icons/notification/svg/production/ic_airline_seat_recline_normal_24px.svg + icons/notification/svg/production/ic_bluetooth_audio_24px.svg + icons/notification/svg/production/ic_confirmation_number_24px.svg + icons/notification/svg/production/ic_disc_full_24px.svg + icons/notification/svg/production/ic_do_not_disturb_24px.svg + icons/notification/svg/production/ic_do_not_disturb_alt_24px.svg + icons/notification/svg/production/ic_do_not_disturb_off_24px.svg + icons/notification/svg/production/ic_do_not_disturb_on_24px.svg + icons/notification/svg/production/ic_drive_eta_24px.svg + icons/notification/svg/production/ic_enhanced_encryption_24px.svg + icons/notification/svg/production/ic_event_available_24px.svg + icons/notification/svg/production/ic_event_busy_24px.svg + icons/notification/svg/production/ic_event_note_24px.svg + icons/notification/svg/production/ic_folder_special_24px.svg + icons/notification/svg/production/ic_live_tv_24px.svg + icons/notification/svg/production/ic_mms_24px.svg + icons/notification/svg/production/ic_more_24px.svg + icons/notification/svg/production/ic_network_check_24px.svg + icons/notification/svg/production/ic_network_locked_24px.svg + icons/notification/svg/production/ic_no_encryption_24px.svg + icons/notification/svg/production/ic_ondemand_video_24px.svg + icons/notification/svg/production/ic_personal_video_24px.svg + icons/notification/svg/production/ic_phone_bluetooth_speaker_24px.svg + icons/notification/svg/production/ic_phone_forwarded_24px.svg + icons/notification/svg/production/ic_phone_in_talk_24px.svg + icons/notification/svg/production/ic_phone_locked_24px.svg + icons/notification/svg/production/ic_phone_missed_24px.svg + icons/notification/svg/production/ic_phone_paused_24px.svg + icons/notification/svg/production/ic_power_24px.svg + icons/notification/svg/production/ic_priority_high_24px.svg + icons/notification/svg/production/ic_rv_hookup_24px.svg + icons/notification/svg/production/ic_sd_card_24px.svg + icons/notification/svg/production/ic_sim_card_alert_24px.svg + icons/notification/svg/production/ic_sms_24px.svg + icons/notification/svg/production/ic_sms_failed_24px.svg + icons/notification/svg/production/ic_sync_24px.svg + icons/notification/svg/production/ic_sync_disabled_24px.svg + icons/notification/svg/production/ic_sync_problem_24px.svg + icons/notification/svg/production/ic_system_update_24px.svg + icons/notification/svg/production/ic_tap_and_play_24px.svg + icons/notification/svg/production/ic_time_to_leave_24px.svg + icons/notification/svg/production/ic_vibration_24px.svg + icons/notification/svg/production/ic_voice_chat_24px.svg + icons/notification/svg/production/ic_vpn_lock_24px.svg + icons/notification/svg/production/ic_wc_24px.svg + icons/notification/svg/production/ic_wifi_24px.svg + icons/places/svg/production/ic_ac_unit_24px.svg + icons/places/svg/production/ic_airport_shuttle_24px.svg + icons/places/svg/production/ic_all_inclusive_24px.svg + icons/places/svg/production/ic_beach_access_24px.svg + icons/places/svg/production/ic_business_center_24px.svg + icons/places/svg/production/ic_casino_24px.svg + icons/places/svg/production/ic_child_care_24px.svg + icons/places/svg/production/ic_child_friendly_24px.svg + icons/places/svg/production/ic_fitness_center_24px.svg + icons/places/svg/production/ic_free_breakfast_24px.svg + icons/places/svg/production/ic_golf_course_24px.svg + icons/places/svg/production/ic_hot_tub_24px.svg + icons/places/svg/production/ic_kitchen_24px.svg + icons/places/svg/production/ic_pool_24px.svg + icons/places/svg/production/ic_room_service_24px.svg + icons/places/svg/production/ic_rv_hookup_24px.svg + icons/places/svg/production/ic_smoke_free_24px.svg + icons/places/svg/production/ic_smoking_rooms_24px.svg + icons/places/svg/production/ic_spa_24px.svg + icons/social/svg/production/ic_cake_24px.svg + icons/social/svg/production/ic_domain_24px.svg + icons/social/svg/production/ic_group_24px.svg + icons/social/svg/production/ic_group_add_24px.svg + icons/social/svg/production/ic_location_city_24px.svg + icons/social/svg/production/ic_mood_24px.svg + icons/social/svg/production/ic_mood_bad_24px.svg + icons/social/svg/production/ic_notifications_24px.svg + icons/social/svg/production/ic_notifications_active_24px.svg + icons/social/svg/production/ic_notifications_none_24px.svg + icons/social/svg/production/ic_notifications_off_24px.svg + icons/social/svg/production/ic_notifications_paused_24px.svg + icons/social/svg/production/ic_pages_24px.svg + icons/social/svg/production/ic_party_mode_24px.svg + icons/social/svg/production/ic_people_24px.svg + icons/social/svg/production/ic_people_outline_24px.svg + icons/social/svg/production/ic_person_24px.svg + icons/social/svg/production/ic_person_add_24px.svg + icons/social/svg/production/ic_person_outline_24px.svg + icons/social/svg/production/ic_plus_one_24px.svg + icons/social/svg/production/ic_poll_24px.svg + icons/social/svg/production/ic_public_24px.svg + icons/social/svg/production/ic_school_24px.svg + icons/social/svg/production/ic_sentiment_dissatisfied_24px.svg + icons/social/svg/production/ic_sentiment_neutral_24px.svg + icons/social/svg/production/ic_sentiment_satisfied_24px.svg + icons/social/svg/production/ic_sentiment_very_dissatisfied_24px.svg + icons/social/svg/production/ic_sentiment_very_satisfied_24px.svg + icons/social/svg/production/ic_share_24px.svg + icons/social/svg/production/ic_whatshot_24px.svg + + diff --git a/qt-material-widgets/examples/appbarsettingseditor.cpp b/qt-material-widgets/examples/appbarsettingseditor.cpp new file mode 100644 index 0000000..5f2ce00 --- /dev/null +++ b/qt-material-widgets/examples/appbarsettingseditor.cpp @@ -0,0 +1,84 @@ +#include "appbarsettingseditor.h" +#include +#include +#include +#include +#include + +AppBarSettingsEditor::AppBarSettingsEditor(QWidget *parent) + : QWidget(parent), + ui(new Ui::AppBarSettingsForm), + m_appBar(new QtMaterialAppBar) +{ + QLabel *label = new QLabel("Inbox"); + label->setAttribute(Qt::WA_TranslucentBackground); + label->setForegroundRole(QPalette::Foreground); + label->setContentsMargins(6, 0, 0, 0); + + QPalette palette = label->palette(); + palette.setColor(label->foregroundRole(), Qt::white); + label->setPalette(palette); + + label->setFont(QFont("Roboto", 18, QFont::Normal)); + + QtMaterialIconButton *button = new QtMaterialIconButton(QtMaterialTheme::icon("navigation", "menu")); + button->setIconSize(QSize(24, 24)); + m_appBar->appBarLayout()->addWidget(button); + m_appBar->appBarLayout()->addWidget(label); + m_appBar->appBarLayout()->addStretch(1); + button->setColor(Qt::white); + button->setFixedWidth(42); + + QVBoxLayout *layout = new QVBoxLayout; + setLayout(layout); + + QWidget *widget = new QWidget; + layout->addWidget(widget); + + QWidget *canvas = new QWidget; + canvas->setStyleSheet("QWidget { background: white; }"); + layout->addWidget(canvas); + + ui->setupUi(widget); + layout->setContentsMargins(20, 20, 20, 20); + + layout = new QVBoxLayout; + canvas->setLayout(layout); + canvas->setMaximumHeight(300); + layout->addWidget(m_appBar); + layout->addStretch(1); + + setupForm(); + + connect(ui->useThemeColorsCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->backgroundColorToolButton, SIGNAL(pressed()), this, SLOT(selectColor())); +} + +AppBarSettingsEditor::~AppBarSettingsEditor() +{ + delete ui; +} + +void AppBarSettingsEditor::setupForm() +{ + ui->useThemeColorsCheckBox->setChecked(m_appBar->useThemeColors()); +} + +void AppBarSettingsEditor::updateWidget() +{ + m_appBar->setUseThemeColors(ui->useThemeColorsCheckBox->isChecked()); +} + +void AppBarSettingsEditor::selectColor() +{ + QColorDialog dialog; + if (dialog.exec()) { + QColor color = dialog.selectedColor(); + QString senderName = sender()->objectName(); + if ("backgroundColorToolButton" == senderName) { + m_appBar->setBackgroundColor(color); + ui->backgroundColorLineEdit->setText(color.name(QColor::HexRgb)); + } + } + setupForm(); +} diff --git a/qt-material-widgets/examples/appbarsettingseditor.h b/qt-material-widgets/examples/appbarsettingseditor.h new file mode 100644 index 0000000..b2eb882 --- /dev/null +++ b/qt-material-widgets/examples/appbarsettingseditor.h @@ -0,0 +1,27 @@ +#ifndef APPBARSETTINGSEDITOR_H +#define APPBARSETTINGSEDITOR_H + +#include +#include "ui_appbarsettingsform.h" + +class QtMaterialAppBar; + +class AppBarSettingsEditor : public QWidget +{ + Q_OBJECT + +public: + explicit AppBarSettingsEditor(QWidget *parent = 0); + ~AppBarSettingsEditor(); + +protected slots: + void setupForm(); + void updateWidget(); + void selectColor(); + +private: + Ui::AppBarSettingsForm *const ui; + QtMaterialAppBar *const m_appBar; +}; + +#endif // APPBARSETTINGSEDITOR_H diff --git a/qt-material-widgets/examples/appbarsettingsform.ui b/qt-material-widgets/examples/appbarsettingsform.ui new file mode 100644 index 0000000..34c12e9 --- /dev/null +++ b/qt-material-widgets/examples/appbarsettingsform.ui @@ -0,0 +1,66 @@ + + + AppBarSettingsForm + + + + 0 + 0 + 474 + 387 + + + + Form + + + + + 0 + 0 + 221 + 231 + + + + + + + Use theme colors + + + + + + + + + + Background color + + + + + + + + + false + + + + + + + ... + + + + + + + + + + + diff --git a/qt-material-widgets/examples/assets/ic_message_24px.svg b/qt-material-widgets/examples/assets/ic_message_24px.svg new file mode 100644 index 0000000..0dfd671 --- /dev/null +++ b/qt-material-widgets/examples/assets/ic_message_24px.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/qt-material-widgets/examples/assets/sikh.jpg b/qt-material-widgets/examples/assets/sikh.jpg new file mode 100644 index 0000000..30c92da Binary files /dev/null and b/qt-material-widgets/examples/assets/sikh.jpg differ diff --git a/qt-material-widgets/examples/assets/uxceo-128.jpg b/qt-material-widgets/examples/assets/uxceo-128.jpg new file mode 100644 index 0000000..fdf9625 Binary files /dev/null and b/qt-material-widgets/examples/assets/uxceo-128.jpg differ diff --git a/qt-material-widgets/examples/autocompletesettingseditor.cpp b/qt-material-widgets/examples/autocompletesettingseditor.cpp new file mode 100644 index 0000000..0c8dede --- /dev/null +++ b/qt-material-widgets/examples/autocompletesettingseditor.cpp @@ -0,0 +1,112 @@ +#include "autocompletesettingseditor.h" +#include +#include +#include + +AutoCompleteSettingsEditor::AutoCompleteSettingsEditor(QWidget *parent) + : QWidget(parent), + //ui(new Ui::AutoCompleteSettingsForm), + m_autocomplete(new QtMaterialAutoComplete) +{ + QVBoxLayout *layout = new QVBoxLayout; + setLayout(layout); + + QWidget *widget = new QWidget; + layout->addWidget(widget); + + QWidget *canvas = new QWidget; + canvas->setStyleSheet("QWidget { background: white; }"); + layout->addWidget(canvas); + + canvas->setMinimumHeight(900); // + + //ui->setupUi(widget); + layout->setContentsMargins(20, 20, 20, 20); + + layout = new QVBoxLayout; + canvas->setLayout(layout); + + QStringList states = + { "Alabama" + , "Alaska" + , "American Samoa" + , "Arizona" + , "Arkansas" + , "California" + , "Colorado" + , "Connecticut" + , "Delaware" + , "District of Columbia" + , "Florida" + , "Georgia" + , "Guam" + , "Hawaii" + , "Idaho" + , "Illinois" + , "Indiana" + , "Iowa" + , "Kansas" + , "Kentucky" + , "Louisiana" + , "Maine" + , "Maryland" + , "Massachusetts" + , "Michigan" + , "Minnesota" + , "Mississippi" + , "Missouri" + , "Montana" + , "Nebraska" + , "Nevada" + , "New Hampshire" + , "New Jersey" + , "New Mexico" + , "New York" + , "North Carolina" + , "North Dakota" + , "Northern Marianas Islands" + , "Ohio" + , "Oklahoma" + , "Oregon" + , "Pennsylvania" + , "Puerto Rico" + , "Rhode Island" + , "South Carolina" + , "South Dakota" + , "Tennessee" + , "Texas" + , "Utah" + , "Vermont" + , "Virginia" + , "Virgin Islands" + , "Washington" + , "West Virginia" + , "Wisconsin" + , "Wyoming" + }; + + m_autocomplete->setDataSource(states); + + layout->addWidget(m_autocomplete); + layout->addSpacing(600); + layout->setAlignment(m_autocomplete, Qt::AlignCenter); + + setupForm(); +} + +AutoCompleteSettingsEditor::~AutoCompleteSettingsEditor() +{ + //delete ui; +} + +void AutoCompleteSettingsEditor::setupForm() +{ +} + +void AutoCompleteSettingsEditor::updateWidget() +{ +} + +void AutoCompleteSettingsEditor::selectColor() +{ +} diff --git a/qt-material-widgets/examples/autocompletesettingseditor.h b/qt-material-widgets/examples/autocompletesettingseditor.h new file mode 100644 index 0000000..b6c5743 --- /dev/null +++ b/qt-material-widgets/examples/autocompletesettingseditor.h @@ -0,0 +1,29 @@ +#ifndef AUTOCOMPLETESETTINGSEDITOR_H +#define AUTOCOMPLETESETTINGSEDITOR_H + +#include +//#include "ui_autocompletesettingsform.h" + +#include "lib/qtmaterialoverlaywidget.h" + +class QtMaterialAutoComplete; + +class AutoCompleteSettingsEditor : public QWidget +{ + Q_OBJECT + +public: + explicit AutoCompleteSettingsEditor(QWidget *parent = 0); + ~AutoCompleteSettingsEditor(); + +protected slots: + void setupForm(); + void updateWidget(); + void selectColor(); + +private: + //Ui::AutoCompleteSettingsForm *const ui; + QtMaterialAutoComplete *const m_autocomplete; +}; + +#endif // AUTOCOMPLETESETTINGSEDITOR_H diff --git a/qt-material-widgets/examples/avatarsettingseditor.cpp b/qt-material-widgets/examples/avatarsettingseditor.cpp new file mode 100644 index 0000000..1720480 --- /dev/null +++ b/qt-material-widgets/examples/avatarsettingseditor.cpp @@ -0,0 +1,105 @@ +#include "avatarsettingseditor.h" +#include +#include +#include + +AvatarSettingsEditor::AvatarSettingsEditor(QWidget *parent) + : QWidget(parent), + ui(new Ui::AvatarSettingsForm), + m_avatar(new QtMaterialAvatar(QChar('X'))) +{ + QVBoxLayout *layout = new QVBoxLayout; + setLayout(layout); + + QWidget *widget = new QWidget; + layout->addWidget(widget); + + QWidget *canvas = new QWidget; + canvas->setStyleSheet("QWidget { background: white; }"); + layout->addWidget(canvas); + + ui->setupUi(widget); + layout->setContentsMargins(20, 20, 20, 20); + + layout = new QVBoxLayout; + canvas->setLayout(layout); + layout->addWidget(m_avatar); + layout->setAlignment(m_avatar, Qt::AlignCenter); + + setupForm(); + + connect(ui->disabledCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->useThemeColorsCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->sizeSpinBox, SIGNAL(valueChanged(int)), this, SLOT(updateWidget())); + connect(ui->typeComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateWidget())); + connect(ui->backgroundColorToolButton, SIGNAL(pressed()), this, SLOT(selectColor())); + connect(ui->textColorToolButton, SIGNAL(pressed()), this, SLOT(selectColor())); + + ui->sizeSpinBox->setRange(5, 300); +} + +AvatarSettingsEditor::~AvatarSettingsEditor() +{ + delete ui; +} + +void AvatarSettingsEditor::setupForm() +{ + switch (m_avatar->type()) + { + case Material::LetterAvatar: + ui->typeComboBox->setCurrentIndex(0); + break; + case Material::ImageAvatar: + ui->typeComboBox->setCurrentIndex(1); + break; + case Material::IconAvatar: + ui->typeComboBox->setCurrentIndex(2); + break; + default: + break; + } + + ui->disabledCheckBox->setChecked(!m_avatar->isEnabled()); + ui->useThemeColorsCheckBox->setChecked(m_avatar->useThemeColors()); + ui->sizeSpinBox->setValue(m_avatar->size()); +} + +void AvatarSettingsEditor::updateWidget() +{ + switch (ui->typeComboBox->currentIndex()) + { + case 0: + m_avatar->setLetter(QChar('X')); + break; + case 1: + m_avatar->setImage(QImage(":/images/assets/sikh.jpg")); + break; + case 2: + m_avatar->setIcon(QtMaterialTheme::icon("communication", "message")); + break; + default: + break; + } + + m_avatar->setDisabled(ui->disabledCheckBox->isChecked()); + m_avatar->setUseThemeColors(ui->useThemeColorsCheckBox->isChecked()); + m_avatar->setSize(ui->sizeSpinBox->value()); +} + +void AvatarSettingsEditor::selectColor() +{ + QColorDialog dialog; + if (dialog.exec()) { + QColor color = dialog.selectedColor(); + QString senderName = sender()->objectName(); + if ("textColorToolButton" == senderName) { + m_avatar->setTextColor(color); + ui->textColorLineEdit->setText(color.name(QColor::HexRgb)); + } else if ("backgroundColorToolButton" == senderName) { + m_avatar->setBackgroundColor(color); + ui->backgroundColorLineEdit->setText(color.name(QColor::HexRgb)); + } + } + setupForm(); +} diff --git a/qt-material-widgets/examples/avatarsettingseditor.h b/qt-material-widgets/examples/avatarsettingseditor.h new file mode 100644 index 0000000..c9bc009 --- /dev/null +++ b/qt-material-widgets/examples/avatarsettingseditor.h @@ -0,0 +1,27 @@ +#ifndef AVATARSETTINGSEDITOR_H +#define AVATARSETTINGSEDITOR_H + +#include +#include "ui_avatarsettingsform.h" + +class QtMaterialAvatar; + +class AvatarSettingsEditor : public QWidget +{ + Q_OBJECT + +public: + explicit AvatarSettingsEditor(QWidget *parent = 0); + ~AvatarSettingsEditor(); + +protected slots: + void setupForm(); + void updateWidget(); + void selectColor(); + +private: + Ui::AvatarSettingsForm *const ui; + QtMaterialAvatar *const m_avatar; +}; + +#endif // AVATARSETTINGSEDITOR_H diff --git a/qt-material-widgets/examples/avatarsettingsform.ui b/qt-material-widgets/examples/avatarsettingsform.ui new file mode 100644 index 0000000..2124cf8 --- /dev/null +++ b/qt-material-widgets/examples/avatarsettingsform.ui @@ -0,0 +1,137 @@ + + + AvatarSettingsForm + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + 0 + 0 + 221 + 231 + + + + + + + Use theme colors + + + + + + + + + + Text color + + + + + + + + + false + + + + + + + ... + + + + + + + + + Background color + + + + + + + + + false + + + + + + + ... + + + + + + + + + Size + + + + + + + + + + Type + + + + + + + + Letter + + + + + Image + + + + + Icon + + + + + + + + Disabled + + + + + + + + + + + + diff --git a/qt-material-widgets/examples/badgesettingseditor.cpp b/qt-material-widgets/examples/badgesettingseditor.cpp new file mode 100644 index 0000000..4b52146 --- /dev/null +++ b/qt-material-widgets/examples/badgesettingseditor.cpp @@ -0,0 +1,103 @@ +#include "badgesettingseditor.h" +#include +#include +#include + +BadgeSettingsEditor::BadgeSettingsEditor(QWidget *parent) + : QWidget(parent), + ui(new Ui::BadgeSettingsForm), + m_avatar(new QtMaterialAvatar(QImage(":/images/assets/sikh.jpg"))), + m_badge(new QtMaterialBadge) +{ + QVBoxLayout *layout = new QVBoxLayout; + setLayout(layout); + + QWidget *widget = new QWidget; + layout->addWidget(widget); + + QWidget *canvas = new QWidget; + canvas->setStyleSheet("QWidget { background: white; }"); + layout->addWidget(canvas); + + ui->setupUi(widget); + layout->setContentsMargins(20, 20, 20, 20); + + layout = new QVBoxLayout; + canvas->setLayout(layout); + layout->addWidget(m_avatar); + layout->setAlignment(m_avatar, Qt::AlignCenter); + m_avatar->setSize(60); + + m_badge->setParent(m_avatar); + m_badge->setRelativePosition(18, 18); + m_badge->setText("3"); + + setupForm(); + + connect(ui->disabledCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->typeComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateWidget())); + connect(ui->useThemeColorsCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->horizontalOffsetSpinBox, SIGNAL(valueChanged(int)), this, SLOT(updateWidget())); + connect(ui->verticalOffsetSpinBox, SIGNAL(valueChanged(int)), this, SLOT(updateWidget())); + connect(ui->backgroundColorToolButton, SIGNAL(pressed()), this, SLOT(selectColor())); + connect(ui->textColorToolButton, SIGNAL(pressed()), this, SLOT(selectColor())); + + ui->verticalOffsetSpinBox->setRange(-40, 40); + ui->horizontalOffsetSpinBox->setRange(-40, 40); +} + +BadgeSettingsEditor::~BadgeSettingsEditor() +{ + delete ui; +} + +void BadgeSettingsEditor::setupForm() +{ + if (m_badge->icon().isNull()) { + ui->typeComboBox->setCurrentIndex(0); + } else { + ui->typeComboBox->setCurrentIndex(1); + } + + ui->verticalOffsetSpinBox->setValue(m_badge->relativeYPosition()); + ui->horizontalOffsetSpinBox->setValue(m_badge->relativeXPosition()); + ui->disabledCheckBox->setChecked(!m_badge->isEnabled()); + ui->useThemeColorsCheckBox->setChecked(m_badge->useThemeColors()); +} + +void BadgeSettingsEditor::updateWidget() +{ + switch (ui->typeComboBox->currentIndex()) + { + case 0: + m_badge->setText("3"); + break; + case 1: + m_badge->setIcon(QIcon(QtMaterialTheme::icon("communication", "message"))); + break; + default: + break; + } + + m_badge->setRelativeYPosition(ui->verticalOffsetSpinBox->value()); + m_badge->setRelativeXPosition(ui->horizontalOffsetSpinBox->value()); + m_badge->setDisabled(ui->disabledCheckBox->isChecked()); + m_badge->setUseThemeColors(ui->useThemeColorsCheckBox->isChecked()); +} + +void BadgeSettingsEditor::selectColor() +{ + QColorDialog dialog; + if (dialog.exec()) { + QColor color = dialog.selectedColor(); + QString senderName = sender()->objectName(); + if ("textColorToolButton" == senderName) { + m_badge->setTextColor(color); + ui->textColorLineEdit->setText(color.name(QColor::HexRgb)); + } else if ("backgroundColorToolButton" == senderName) { + m_badge->setBackgroundColor(color); + ui->backgroundColorLineEdit->setText(color.name(QColor::HexRgb)); + } + } + setupForm(); +} diff --git a/qt-material-widgets/examples/badgesettingseditor.h b/qt-material-widgets/examples/badgesettingseditor.h new file mode 100644 index 0000000..8f74808 --- /dev/null +++ b/qt-material-widgets/examples/badgesettingseditor.h @@ -0,0 +1,29 @@ +#ifndef BADGESETTINGSEDITOR_H +#define BADGESETTINGSEDITOR_H + +#include +#include "ui_badgesettingsform.h" + +class QtMaterialAvatar; +class QtMaterialBadge; + +class BadgeSettingsEditor : public QWidget +{ + Q_OBJECT + +public: + explicit BadgeSettingsEditor(QWidget *parent = 0); + ~BadgeSettingsEditor(); + +protected slots: + void setupForm(); + void updateWidget(); + void selectColor(); + +private: + Ui::BadgeSettingsForm *const ui; + QtMaterialAvatar *const m_avatar; + QtMaterialBadge *const m_badge; +}; + +#endif // BADGESETTINGSEDITOR_H diff --git a/qt-material-widgets/examples/badgesettingsform.ui b/qt-material-widgets/examples/badgesettingsform.ui new file mode 100644 index 0000000..5c80925 --- /dev/null +++ b/qt-material-widgets/examples/badgesettingsform.ui @@ -0,0 +1,142 @@ + + + BadgeSettingsForm + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + 0 + 0 + 201 + 231 + + + + + + + Disabled + + + + + + + + + + Use theme colors + + + + + + + + + + Background color + + + + + + + Text color + + + + + + + Horizontal offset + + + + + + + + + + Vertical offset + + + + + + + + + + Type + + + + + + + + Text + + + + + Icon + + + + + + + + + + false + + + + + + + ... + + + + + + + + + + + false + + + + + + + ... + + + + + + + + + + + diff --git a/qt-material-widgets/examples/checkboxsettingseditor.cpp b/qt-material-widgets/examples/checkboxsettingseditor.cpp new file mode 100644 index 0000000..2e4037d --- /dev/null +++ b/qt-material-widgets/examples/checkboxsettingseditor.cpp @@ -0,0 +1,112 @@ +#include "checkboxsettingseditor.h" +#include +#include +#include + +CheckBoxSettingsEditor::CheckBoxSettingsEditor(QWidget *parent) + : QWidget(parent), + ui(new Ui::CheckBoxSettingsForm), + m_checkBox(new QtMaterialCheckBox) +{ + QVBoxLayout *layout = new QVBoxLayout; + setLayout(layout); + + QWidget *widget = new QWidget; + layout->addWidget(widget); + + QWidget *canvas = new QWidget; + canvas->setStyleSheet("QWidget { background: white; }"); + layout->addWidget(canvas); + + ui->setupUi(widget); + layout->setContentsMargins(20, 20, 20, 20); + + m_checkBox->setText("Extra cheese"); + m_checkBox->setChecked(true); + + layout = new QVBoxLayout; + canvas->setLayout(layout); + layout->addWidget(m_checkBox); + layout->setAlignment(m_checkBox, Qt::AlignCenter); + + setupForm(); + + connect(ui->disabledCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->labelPositionComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateWidget())); + connect(ui->labelTextLineEdit, SIGNAL(textChanged(QString)), this, SLOT(updateWidget())); + connect(ui->useThemeColorsCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->checkedCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->textColorToolButton, SIGNAL(pressed()), this, SLOT(selectColor())); + connect(ui->disabledColorToolButton, SIGNAL(pressed()), this, SLOT(selectColor())); + connect(ui->checkedColorToolButton, SIGNAL(pressed()), this, SLOT(selectColor())); + connect(ui->uncheckedColorToolButton, SIGNAL(pressed()), this, SLOT(selectColor())); + connect(m_checkBox, SIGNAL(toggled(bool)), this, SLOT(setupForm())); +} + +CheckBoxSettingsEditor::~CheckBoxSettingsEditor() +{ + delete ui; +} + +void CheckBoxSettingsEditor::setupForm() +{ + switch (m_checkBox->labelPosition()) + { + case QtMaterialCheckable::LabelPositionLeft: + ui->labelPositionComboBox->setCurrentIndex(0); + break; + case QtMaterialCheckable::LabelPositionRight: + ui->labelPositionComboBox->setCurrentIndex(1); + break; + default: + break; + } + + ui->disabledCheckBox->setChecked(!m_checkBox->isEnabled()); + ui->labelTextLineEdit->setText(m_checkBox->text()); + ui->useThemeColorsCheckBox->setChecked(m_checkBox->useThemeColors()); + ui->checkedCheckBox->setChecked(m_checkBox->isChecked()); +} + +void CheckBoxSettingsEditor::updateWidget() +{ + switch (ui->labelPositionComboBox->currentIndex()) + { + case 0: + m_checkBox->setLabelPosition(QtMaterialCheckable::LabelPositionLeft); + break; + case 1: + m_checkBox->setLabelPosition(QtMaterialCheckable::LabelPositionRight); + break; + default: + break; + } + + m_checkBox->setDisabled(ui->disabledCheckBox->isChecked()); + m_checkBox->setText(ui->labelTextLineEdit->text()); + m_checkBox->setUseThemeColors(ui->useThemeColorsCheckBox->isChecked()); + m_checkBox->setChecked(ui->checkedCheckBox->isChecked()); +} + +void CheckBoxSettingsEditor::selectColor() +{ + QColorDialog dialog; + if (dialog.exec()) { + QColor color = dialog.selectedColor(); + QString senderName = sender()->objectName(); + if ("textColorToolButton" == senderName) { + m_checkBox->setTextColor(color); + ui->textColorLineEdit->setText(color.name(QColor::HexRgb)); + } else if ("disabledColorToolButton" == senderName) { + m_checkBox->setDisabledColor(color); + ui->disabledColorLineEdit->setText(color.name(QColor::HexRgb)); + } else if ("checkedColorToolButton" == senderName) { + m_checkBox->setCheckedColor(color); + ui->checkedColorLineEdit->setText(color.name(QColor::HexRgb)); + } else if ("uncheckedColorToolButton" == senderName) { + m_checkBox->setUncheckedColor(color); + ui->uncheckedColorLineEdit->setText(color.name(QColor::HexRgb)); + } + } + setupForm(); +} diff --git a/qt-material-widgets/examples/checkboxsettingseditor.h b/qt-material-widgets/examples/checkboxsettingseditor.h new file mode 100644 index 0000000..4456367 --- /dev/null +++ b/qt-material-widgets/examples/checkboxsettingseditor.h @@ -0,0 +1,27 @@ +#ifndef CHECKBOXSETTINGSEDITOR_H +#define CHECKBOXSETTINGSEDITOR_H + +#include +#include "ui_checkboxsettingsform.h" + +class QtMaterialCheckable; + +class CheckBoxSettingsEditor : public QWidget +{ + Q_OBJECT + +public: + explicit CheckBoxSettingsEditor(QWidget *parent = 0); + ~CheckBoxSettingsEditor(); + +protected slots: + void setupForm(); + void updateWidget(); + void selectColor(); + +private: + Ui::CheckBoxSettingsForm *const ui; + QtMaterialCheckable *const m_checkBox; +}; + +#endif // CHECKBOXSETTINGSEDITOR_H diff --git a/qt-material-widgets/examples/checkboxsettingsform.ui b/qt-material-widgets/examples/checkboxsettingsform.ui new file mode 100644 index 0000000..842f9d0 --- /dev/null +++ b/qt-material-widgets/examples/checkboxsettingsform.ui @@ -0,0 +1,176 @@ + + + CheckBoxSettingsForm + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + 0 + 0 + 301 + 281 + + + + + + + Disabled + + + + + + + + + + Label position + + + + + + + + Left + + + + + Right + + + + + + + + Label text + + + + + + + + + + Checked + + + + + + + + + + Use theme colors + + + + + + + + + + Checked color + + + + + + + + + + + + ... + + + + + + + + + Unchecked color + + + + + + + + + + + + ... + + + + + + + + + Text color + + + + + + + Disabled color + + + + + + + + + + + + ... + + + + + + + + + + + + + + ... + + + + + + + + + + + diff --git a/qt-material-widgets/examples/circularprogresssettingseditor.cpp b/qt-material-widgets/examples/circularprogresssettingseditor.cpp new file mode 100644 index 0000000..8c049fc --- /dev/null +++ b/qt-material-widgets/examples/circularprogresssettingseditor.cpp @@ -0,0 +1,102 @@ +#include "circularprogresssettingseditor.h" +#include +#include +#include + +CircularProgressSettingsEditor::CircularProgressSettingsEditor(QWidget *parent) + : QWidget(parent), + ui(new Ui::CircularProgressSettingsForm), + m_progress(new QtMaterialCircularProgress) +{ + QVBoxLayout *layout = new QVBoxLayout; + setLayout(layout); + + QWidget *widget = new QWidget; + layout->addWidget(widget); + + QWidget *canvas = new QWidget; + canvas->setStyleSheet("QWidget { background: white; }"); + layout->addWidget(canvas); + + ui->setupUi(widget); + layout->setContentsMargins(20, 20, 20, 20); + + layout = new QVBoxLayout; + canvas->setLayout(layout); + layout->addWidget(m_progress); + layout->setAlignment(m_progress, Qt::AlignCenter); + + setupForm(); + + connect(ui->disabledCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->progressTypeComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateWidget())); + connect(ui->progressSlider, SIGNAL(valueChanged(int)), this, SLOT(updateWidget())); + connect(ui->lineWidthDoubleSpinBox, SIGNAL(valueChanged(double)), this, SLOT(updateWidget())); + connect(ui->sizeSpinBox, SIGNAL(valueChanged(int)), this, SLOT(updateWidget())); + connect(ui->useThemeColorsCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->colorToolButton, SIGNAL(pressed()), this, SLOT(selectColor())); + + ui->sizeSpinBox->setRange(10, 200); + ui->progressSlider->setRange(0, 100); +} + +CircularProgressSettingsEditor::~CircularProgressSettingsEditor() +{ + delete ui; +} + +void CircularProgressSettingsEditor::setupForm() +{ + switch (m_progress->progressType()) + { + case Material::DeterminateProgress: + ui->progressTypeComboBox->setCurrentIndex(0); + break; + case Material::IndeterminateProgress: + ui->progressTypeComboBox->setCurrentIndex(1); + break; + default: + break; + } + + ui->disabledCheckBox->setChecked(!m_progress->isEnabled()); + ui->progressSlider->setValue(m_progress->value()); + ui->lineWidthDoubleSpinBox->setValue(m_progress->lineWidth()); + ui->sizeSpinBox->setValue(m_progress->size()); + ui->useThemeColorsCheckBox->setChecked(m_progress->useThemeColors()); +} + +void CircularProgressSettingsEditor::updateWidget() +{ + switch (ui->progressTypeComboBox->currentIndex()) + { + case 0: + m_progress->setProgressType(Material::DeterminateProgress); + break; + case 1: + m_progress->setProgressType(Material::IndeterminateProgress); + break; + default: + break; + } + + m_progress->setDisabled(ui->disabledCheckBox->isChecked()); + m_progress->setValue(ui->progressSlider->value()); + m_progress->setLineWidth(ui->lineWidthDoubleSpinBox->value()); + m_progress->setSize(ui->sizeSpinBox->value()); + m_progress->setUseThemeColors(ui->useThemeColorsCheckBox->isChecked()); +} + +void CircularProgressSettingsEditor::selectColor() +{ + QColorDialog dialog; + if (dialog.exec()) { + QColor color = dialog.selectedColor(); + QString senderName = sender()->objectName(); + if ("colorToolButton" == senderName) { + m_progress->setColor(color); + ui->colorLineEdit->setText(color.name(QColor::HexRgb)); + } + } + setupForm(); +} diff --git a/qt-material-widgets/examples/circularprogresssettingseditor.h b/qt-material-widgets/examples/circularprogresssettingseditor.h new file mode 100644 index 0000000..5077989 --- /dev/null +++ b/qt-material-widgets/examples/circularprogresssettingseditor.h @@ -0,0 +1,27 @@ +#ifndef CIRCULARPROGRESSSETTINGSEDITOR_H +#define CIRCULARPROGRESSSETTINGSEDITOR_H + +#include +#include "ui_circularprogresssettingsform.h" + +class QtMaterialCircularProgress; + +class CircularProgressSettingsEditor : public QWidget +{ + Q_OBJECT + +public: + explicit CircularProgressSettingsEditor(QWidget *parent = 0); + ~CircularProgressSettingsEditor(); + +protected slots: + void setupForm(); + void updateWidget(); + void selectColor(); + +private: + Ui::CircularProgressSettingsForm *const ui; + QtMaterialCircularProgress *const m_progress; +}; + +#endif // CIRCULARPROGRESSSETTINGSEDITOR_H diff --git a/qt-material-widgets/examples/circularprogresssettingsform.ui b/qt-material-widgets/examples/circularprogresssettingsform.ui new file mode 100644 index 0000000..e4fe7c5 --- /dev/null +++ b/qt-material-widgets/examples/circularprogresssettingsform.ui @@ -0,0 +1,127 @@ + + + CircularProgressSettingsForm + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + 0 + 0 + 221 + 197 + + + + + + + Disabled + + + + + + + + + + Progress type + + + + + + + + Determinate + + + + + Indeterminate + + + + + + + + Line width + + + + + + + + + + Size + + + + + + + + + + Use theme colors + + + + + + + + + + Color + + + + + + + + + + + + ... + + + + + + + + + Progress + + + + + + + Qt::Horizontal + + + + + + + + + diff --git a/qt-material-widgets/examples/dialogsettingseditor.cpp b/qt-material-widgets/examples/dialogsettingseditor.cpp new file mode 100644 index 0000000..f4e4916 --- /dev/null +++ b/qt-material-widgets/examples/dialogsettingseditor.cpp @@ -0,0 +1,65 @@ +#include "dialogsettingseditor.h" +#include +#include +#include +#include + +DialogSettingsEditor::DialogSettingsEditor(QWidget *parent) + : QWidget(parent), + ui(new Ui::DialogSettingsForm), + m_dialog(new QtMaterialDialog) +{ + QVBoxLayout *layout = new QVBoxLayout; + setLayout(layout); + + QWidget *widget = new QWidget; + layout->addWidget(widget); + + QWidget *canvas = new QWidget; + canvas->setStyleSheet("QWidget { background: white; }"); + layout->addWidget(canvas); + + ui->setupUi(widget); + layout->setContentsMargins(20, 20, 20, 20); + + layout = new QVBoxLayout; + canvas->setLayout(layout); + canvas->setMaximumHeight(300); + + m_dialog->setParent(this); + + QWidget *dialogWidget = new QWidget; + QVBoxLayout *dialogWidgetLayout = new QVBoxLayout; + dialogWidget->setLayout(dialogWidgetLayout); + + QtMaterialFlatButton *closeButton = new QtMaterialFlatButton("Close"); + dialogWidgetLayout->addWidget(closeButton); + dialogWidgetLayout->setAlignment(closeButton, Qt::AlignBottom | Qt::AlignCenter); + + closeButton->setMaximumWidth(150); + + QVBoxLayout *dialogLayout = new QVBoxLayout; + m_dialog->setWindowLayout(dialogLayout); + + dialogWidget->setMinimumHeight(300); + + dialogLayout->addWidget(dialogWidget); + + setupForm(); + + connect(ui->showDialogButton, SIGNAL(pressed()), m_dialog, SLOT(showDialog())); + connect(closeButton, SIGNAL(pressed()), m_dialog, SLOT(hideDialog())); +} + +DialogSettingsEditor::~DialogSettingsEditor() +{ + delete ui; +} + +void DialogSettingsEditor::setupForm() +{ +} + +void DialogSettingsEditor::updateWidget() +{ +} diff --git a/qt-material-widgets/examples/dialogsettingseditor.h b/qt-material-widgets/examples/dialogsettingseditor.h new file mode 100644 index 0000000..f922046 --- /dev/null +++ b/qt-material-widgets/examples/dialogsettingseditor.h @@ -0,0 +1,26 @@ +#ifndef DIALOGSETTINGSEDITOR_H +#define DIALOGSETTINGSEDITOR_H + +#include +#include "ui_dialogsettingsform.h" + +class QtMaterialDialog; + +class DialogSettingsEditor : public QWidget +{ + Q_OBJECT + +public: + explicit DialogSettingsEditor(QWidget *parent = 0); + ~DialogSettingsEditor(); + +protected slots: + void setupForm(); + void updateWidget(); + +private: + Ui::DialogSettingsForm *const ui; + QtMaterialDialog *const m_dialog; +}; + +#endif // DIALOGSETTINGSEDITOR_H diff --git a/qt-material-widgets/examples/dialogsettingsform.ui b/qt-material-widgets/examples/dialogsettingsform.ui new file mode 100644 index 0000000..a8034cf --- /dev/null +++ b/qt-material-widgets/examples/dialogsettingsform.ui @@ -0,0 +1,45 @@ + + + DialogSettingsForm + + + + 0 + 0 + 474 + 387 + + + + Form + + + + + 10 + 70 + 171 + 16 + + + + TODO + + + + + + 50 + 20 + 101 + 22 + + + + Show dialog + + + + + + diff --git a/qt-material-widgets/examples/drawersettingseditor.cpp b/qt-material-widgets/examples/drawersettingseditor.cpp new file mode 100644 index 0000000..dc515b7 --- /dev/null +++ b/qt-material-widgets/examples/drawersettingseditor.cpp @@ -0,0 +1,77 @@ +#include "drawersettingseditor.h" +#include +#include +#include + +DrawerSettingsEditor::DrawerSettingsEditor(QWidget *parent) + : QWidget(parent), + ui(new Ui::DrawerSettingsForm), + m_drawer(new QtMaterialDrawer) +{ + QVBoxLayout *layout = new QVBoxLayout; + setLayout(layout); + + QWidget *widget = new QWidget; + layout->addWidget(widget); + + QWidget *canvas = new QWidget; + canvas->setStyleSheet("QWidget { background: white; }"); + layout->addWidget(canvas); + + ui->setupUi(widget); + layout->setContentsMargins(20, 20, 20, 20); + + layout = new QVBoxLayout; + canvas->setLayout(layout); + canvas->setMaximumHeight(300); + + m_drawer->setParent(canvas); + m_drawer->setClickOutsideToClose(true); + m_drawer->setOverlayMode(true); + + // + + QVBoxLayout *drawerLayout = new QVBoxLayout; + m_drawer->setDrawerLayout(drawerLayout); + + QVector labels = {"Motion", "Style", "Layout", "Components", "Patterns", "Growth & communications", "Usability", "Platforms", "Resources"}; + + QVector::iterator it; + for (it = labels.begin(); it != labels.end(); ++it) { + QLabel *label = new QLabel(*it); + label->setMinimumHeight(30); + label->setFont(QFont("Roboto", 10, QFont::Medium)); + drawerLayout->addWidget(label); + } + + drawerLayout->addStretch(3); + m_drawer->setContentsMargins(10, 0, 0, 0); + + drawerLayout->addWidget(new QPushButton("abc")); + + // + + setupForm(); + + connect(ui->showDrawerButton, SIGNAL(pressed()), m_drawer, SLOT(openDrawer())); + connect(ui->hideDrawerButton, SIGNAL(pressed()), m_drawer, SLOT(closeDrawer())); + connect(ui->clickToCloseCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->overlayModeCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); +} + +DrawerSettingsEditor::~DrawerSettingsEditor() +{ + delete ui; +} + +void DrawerSettingsEditor::setupForm() +{ + ui->clickToCloseCheckBox->setChecked(m_drawer->clickOutsideToClose()); + ui->overlayModeCheckBox->setChecked(m_drawer->overlayMode()); +} + +void DrawerSettingsEditor::updateWidget() +{ + m_drawer->setClickOutsideToClose(ui->clickToCloseCheckBox->isChecked()); + m_drawer->setOverlayMode(ui->overlayModeCheckBox->isChecked()); +} diff --git a/qt-material-widgets/examples/drawersettingseditor.h b/qt-material-widgets/examples/drawersettingseditor.h new file mode 100644 index 0000000..45f21af --- /dev/null +++ b/qt-material-widgets/examples/drawersettingseditor.h @@ -0,0 +1,26 @@ +#ifndef DRAWERSETTINGSEDITOR_H +#define DRAWERSETTINGSEDITOR_H + +#include +#include "ui_drawersettingsform.h" + +class QtMaterialDrawer; + +class DrawerSettingsEditor : public QWidget +{ + Q_OBJECT + +public: + explicit DrawerSettingsEditor(QWidget *parent = 0); + ~DrawerSettingsEditor(); + +protected slots: + void setupForm(); + void updateWidget(); + +private: + Ui::DrawerSettingsForm *const ui; + QtMaterialDrawer *const m_drawer; +}; + +#endif // DRAWERSETTINGSEDITOR_H diff --git a/qt-material-widgets/examples/drawersettingsform.ui b/qt-material-widgets/examples/drawersettingsform.ui new file mode 100644 index 0000000..27ccd0b --- /dev/null +++ b/qt-material-widgets/examples/drawersettingsform.ui @@ -0,0 +1,65 @@ + + + DrawerSettingsForm + + + + 0 + 0 + 474 + 387 + + + + Form + + + + + 0 + 0 + 180 + 94 + + + + + + + Overlay mode + + + + + + + + + + Click to close + + + + + + + + + + Show drawer + + + + + + + Hide drawer + + + + + + + + + diff --git a/qt-material-widgets/examples/examples.pro b/qt-material-widgets/examples/examples.pro new file mode 100644 index 0000000..0c70bde --- /dev/null +++ b/qt-material-widgets/examples/examples.pro @@ -0,0 +1,75 @@ +QT += core gui widgets +TEMPLATE = app +CONFIG += c++11 +SOURCES = mainwindow.cpp \ + main.cpp \ + avatarsettingseditor.cpp \ + badgesettingseditor.cpp \ + checkboxsettingseditor.cpp \ + fabsettingseditor.cpp \ + raisedbuttonsettingseditor.cpp \ + flatbuttonsettingseditor.cpp \ + iconbuttonsettingseditor.cpp \ + progresssettingseditor.cpp \ + circularprogresssettingseditor.cpp \ + slidersettingseditor.cpp \ + radiobuttonsettingseditor.cpp \ + togglesettingseditor.cpp \ + textfieldsettingseditor.cpp \ + tabssettingseditor.cpp \ + snackbarsettingseditor.cpp \ + dialogsettingseditor.cpp \ + drawersettingseditor.cpp \ + scrollbarsettingseditor.cpp \ + appbarsettingseditor.cpp \ + autocompletesettingseditor.cpp \ + menusettingseditor.cpp +HEADERS = mainwindow.h \ + avatarsettingseditor.h \ + badgesettingseditor.h \ + checkboxsettingseditor.h \ + fabsettingseditor.h \ + raisedbuttonsettingseditor.h \ + flatbuttonsettingseditor.h \ + iconbuttonsettingseditor.h \ + progresssettingseditor.h \ + circularprogresssettingseditor.h \ + slidersettingseditor.h \ + radiobuttonsettingseditor.h \ + togglesettingseditor.h \ + textfieldsettingseditor.h \ + tabssettingseditor.h \ + snackbarsettingseditor.h \ + dialogsettingseditor.h \ + drawersettingseditor.h \ + scrollbarsettingseditor.h \ + appbarsettingseditor.h \ + autocompletesettingseditor.h \ + menusettingseditor.h +LIBS += $$top_builddir/components/$(OBJECTS_DIR)/components.lib +INCLUDEPATH += $$top_srcdir/components/ +TARGET = examples-exe +PRE_TARGETDEPS += $$top_builddir/components/$(OBJECTS_DIR)/components.lib + +RESOURCES += \ + examples.qrc + +FORMS += \ + avatarsettingsform.ui \ + badgesettingsform.ui \ + checkboxsettingsform.ui \ + fabsettingsform.ui \ + flatbuttonsettingsform.ui \ + iconbuttonsettingsform.ui \ + progresssettingsform.ui \ + circularprogresssettingsform.ui \ + slidersettingsform.ui \ + snackbarsettingsform.ui \ + radiobuttonsettingsform.ui \ + togglesettingsform.ui \ + textfieldsettingsform.ui \ + tabssettingsform.ui \ + dialogsettingsform.ui \ + drawersettingsform.ui \ + scrollbarsettingsform.ui \ + appbarsettingsform.ui diff --git a/qt-material-widgets/examples/examples.qrc b/qt-material-widgets/examples/examples.qrc new file mode 100644 index 0000000..e6bff79 --- /dev/null +++ b/qt-material-widgets/examples/examples.qrc @@ -0,0 +1,6 @@ + + + assets/uxceo-128.jpg + assets/sikh.jpg + + diff --git a/qt-material-widgets/examples/examples.vcxproj b/qt-material-widgets/examples/examples.vcxproj new file mode 100644 index 0000000..663f41e --- /dev/null +++ b/qt-material-widgets/examples/examples.vcxproj @@ -0,0 +1,349 @@ + + + + + Release + x64 + + + Debug + x64 + + + + {2CF18346-77C1-3A0A-B9ED-8B38C828491B} + examples-exe + QtVS_v304 + 10.0.22000.0 + 10.0.22000.0 + $(MSBuildProjectDirectory)\QtMsBuild + QtMaterialWidgetsExamples + + + + v143 + release\ + false + NotSet + Application + release\ + examples-exe + + + v143 + debug\ + false + NotSet + Application + debug\ + examples-exe + + + + + + + + + + + + + + + + + + debug\ + debug\ + examples-exe + true + + + release\ + release\ + examples-exe + true + false + + + 5.15.2_msvc2019_64 + core;gui;widgets + + + 5.15.2_msvc2019_64 + core;gui;widgets + + + + + + + .;..\components;release;%(AdditionalIncludeDirectories) + -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 %(AdditionalOptions) + release\ + false + None + 4577;4467;%(DisableSpecificWarnings) + Sync + release\ + MaxSpeed + _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;NDEBUG;QT_NO_DEBUG;%(PreprocessorDefinitions) + false + + + MultiThreadedDLL + true + true + Level3 + true + stdcpp20 + + + shell32.lib;%(AdditionalDependencies) + %(AdditionalLibraryDirectories) + "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions) + true + false + true + false + true + $(OutDir)\examples-exe.exe + true + Windows + true + + + Unsigned + None + 0 + + + _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;NDEBUG;QT_NO_DEBUG;%(PreprocessorDefinitions) + + + msvc + ./$(Configuration)/moc_predefs.h + Moc'ing %(Identity)... + output + $(Configuration) + moc_%(Filename).cpp + + + examples + default + Rcc'ing %(Identity)... + $(Configuration) + qrc_%(Filename).cpp + + + Uic'ing %(Identity)... + $(ProjectDir) + ui_%(Filename).h + + + + + .;..\components;debug;%(AdditionalIncludeDirectories) + -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 %(AdditionalOptions) + debug\ + false + ProgramDatabase + 4577;4467;%(DisableSpecificWarnings) + Sync + debug\ + Disabled + _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;%(PreprocessorDefinitions) + false + MultiThreadedDebugDLL + true + true + Level3 + true + stdcpp20 + + + shell32.lib;%(AdditionalDependencies) + %(AdditionalLibraryDirectories) + "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions) + true + true + true + $(OutDir)\examples-exe.exe + true + Windows + true + + + Unsigned + None + 0 + + + _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;_DEBUG;%(PreprocessorDefinitions) + + + msvc + ./$(Configuration)/moc_predefs.h + Moc'ing %(Identity)... + output + $(Configuration) + moc_%(Filename).cpp + + + examples + default + Rcc'ing %(Identity)... + $(Configuration) + qrc_%(Filename).cpp + + + Uic'ing %(Identity)... + $(ProjectDir) + ui_%(Filename).h + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Document + true + $(QTDIR)\mkspecs\features\data\dummy.cpp;%(AdditionalInputs) + cl -Bx"$(QTDIR)\bin\qmake.exe" -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -Zi -MDd -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -E $(QTDIR)\mkspecs\features\data\dummy.cpp 2>NUL >debug\moc_predefs.h + Generate moc_predefs.h + debug\moc_predefs.h;%(Outputs) + + + Document + $(QTDIR)\mkspecs\features\data\dummy.cpp;%(AdditionalInputs) + cl -Bx"$(QTDIR)\bin\qmake.exe" -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -O2 -MD -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -E $(QTDIR)\mkspecs\features\data\dummy.cpp 2>NUL >release\moc_predefs.h + Generate moc_predefs.h + release\moc_predefs.h;%(Outputs) + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {8f360763-a045-3808-87a9-3fae38e69819} + + + + + + + + \ No newline at end of file diff --git a/qt-material-widgets/examples/examples.vcxproj.filters b/qt-material-widgets/examples/examples.vcxproj.filters new file mode 100644 index 0000000..a4eae3c --- /dev/null +++ b/qt-material-widgets/examples/examples.vcxproj.filters @@ -0,0 +1,327 @@ + + + + + {99349809-55BA-4b9d-BF79-8FDBB0286EB3} + ui + false + + + {99349809-55BA-4b9d-BF79-8FDBB0286EB3} + ui + false + + + {71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11} + cpp;c;cxx;moc;h;def;odl;idl;res; + + + {71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11} + cpp;c;cxx;moc;h;def;odl;idl;res; + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E} + qrc;* + false + + + {D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E} + qrc;* + false + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Generated Files + + + Generated Files + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Form Files + + + Form Files + + + Form Files + + + Form Files + + + Form Files + + + Form Files + + + Form Files + + + Form Files + + + Form Files + + + Form Files + + + Form Files + + + Form Files + + + Form Files + + + Form Files + + + Form Files + + + Form Files + + + Form Files + + + Form Files + + + + + Resource Files + + + Resource Files + + + Resource Files + + + \ No newline at end of file diff --git a/qt-material-widgets/examples/fabsettingseditor.cpp b/qt-material-widgets/examples/fabsettingseditor.cpp new file mode 100644 index 0000000..efbceed --- /dev/null +++ b/qt-material-widgets/examples/fabsettingseditor.cpp @@ -0,0 +1,183 @@ +#include "fabsettingseditor.h" +#include +#include +#include +#include + +FloatingActionButtonSettingsEditor::FloatingActionButtonSettingsEditor(QWidget *parent) + : QWidget(parent), + ui(new Ui::FloatingActionButtonSettingsForm), + m_fab(new QtMaterialFloatingActionButton(QtMaterialTheme::icon("toggle", "star"))) +{ + QVBoxLayout *layout = new QVBoxLayout; + setLayout(layout); + + QWidget *widget = new QWidget; + layout->addWidget(widget); + + QWidget *canvas = new QWidget; + canvas->setStyleSheet("QWidget { background: white; }"); + layout->addWidget(canvas); + + ui->setupUi(widget); + layout->setContentsMargins(20, 20, 20, 20); + + m_fab->setParent(canvas); + + setupForm(); + + connect(ui->disabledCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->buttonRoleComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateWidget())); + connect(ui->cornerComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateWidget())); + connect(ui->horizontalOffsetSpinBox, SIGNAL(valueChanged(int)), this, SLOT(updateWidget())); + connect(ui->verticalOffsetSpinBox, SIGNAL(valueChanged(int)), this, SLOT(updateWidget())); + connect(ui->miniCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->rippleStyleComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateWidget())); + connect(ui->useThemeColorsCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->foregroundColorToolButton, SIGNAL(clicked(bool)), this, SLOT(selectColor())); + connect(ui->backgroundColorToolButton, SIGNAL(clicked(bool)), this, SLOT(selectColor())); + connect(ui->disabledFgColorToolButton, SIGNAL(clicked(bool)), this, SLOT(selectColor())); + connect(ui->disabledBgColorToolButton, SIGNAL(clicked(bool)), this, SLOT(selectColor())); +} + +FloatingActionButtonSettingsEditor::~FloatingActionButtonSettingsEditor() +{ + delete ui; +} + +void FloatingActionButtonSettingsEditor::setupForm() +{ + switch (m_fab->role()) + { + case Material::Default: + ui->buttonRoleComboBox->setCurrentIndex(0); + break; + case Material::Primary: + ui->buttonRoleComboBox->setCurrentIndex(1); + break; + case Material::Secondary: + ui->buttonRoleComboBox->setCurrentIndex(2); + break; + default: + break; + } + + switch (m_fab->corner()) + { + case Qt::TopLeftCorner: + ui->cornerComboBox->setCurrentIndex(0); + break; + case Qt::TopRightCorner: + ui->cornerComboBox->setCurrentIndex(1); + break; + case Qt::BottomLeftCorner: + ui->cornerComboBox->setCurrentIndex(2); + break; + case Qt::BottomRightCorner: + ui->cornerComboBox->setCurrentIndex(3); + break; + default: + break; + } + + switch (m_fab->rippleStyle()) + { + case Material::CenteredRipple: + ui->rippleStyleComboBox->setCurrentIndex(0); + break; + case Material::PositionedRipple: + ui->rippleStyleComboBox->setCurrentIndex(1); + break; + case Material::NoRipple: + ui->rippleStyleComboBox->setCurrentIndex(2); + break; + default: + break; + } + + ui->disabledCheckBox->setChecked(!m_fab->isEnabled()); + ui->horizontalOffsetSpinBox->setValue(m_fab->xOffset()); + ui->verticalOffsetSpinBox->setValue(m_fab->yOffset()); + ui->miniCheckBox->setChecked(m_fab->isMini()); + ui->useThemeColorsCheckBox->setChecked(m_fab->useThemeColors()); +} + +void FloatingActionButtonSettingsEditor::updateWidget() +{ + switch (ui->buttonRoleComboBox->currentIndex()) + { + case 0: + m_fab->setRole(Material::Default); + break; + case 1: + m_fab->setRole(Material::Primary); + break; + case 2: + m_fab->setRole(Material::Secondary); + break; + default: + break; + } + + switch (ui->cornerComboBox->currentIndex()) + { + case 0: + m_fab->setCorner(Qt::TopLeftCorner); + break; + case 1: + m_fab->setCorner(Qt::TopRightCorner); + break; + case 2: + m_fab->setCorner(Qt::BottomLeftCorner); + break; + case 3: + m_fab->setCorner(Qt::BottomRightCorner); + break; + default: + break; + } + + switch (ui->rippleStyleComboBox->currentIndex()) + { + case 0: + m_fab->setRippleStyle(Material::CenteredRipple); + break; + case 1: + m_fab->setRippleStyle(Material::PositionedRipple); + break; + case 2: + m_fab->setRippleStyle(Material::NoRipple); + break; + default: + break; + } + + m_fab->setDisabled(ui->disabledCheckBox->isChecked()); + m_fab->setXOffset(ui->horizontalOffsetSpinBox->value()); + m_fab->setYOffset(ui->verticalOffsetSpinBox->value()); + m_fab->setMini(ui->miniCheckBox->isChecked()); + m_fab->setUseThemeColors(ui->useThemeColorsCheckBox->isChecked()); +} + +void FloatingActionButtonSettingsEditor::selectColor() +{ + QColorDialog dialog; + if (dialog.exec()) { + QColor color = dialog.selectedColor(); + QString senderName = sender()->objectName(); + if ("foregroundColorToolButton" == senderName) { + m_fab->setForegroundColor(color); + ui->foregroundColorLineEdit->setText(color.name(QColor::HexRgb)); + } else if ("backgroundColorToolButton" == senderName) { + m_fab->setBackgroundColor(color); + ui->backgroundColorLineEdit->setText(color.name(QColor::HexRgb)); + } else if ("disabledFgColorToolButton" == senderName) { + m_fab->setDisabledForegroundColor(color); + ui->disabledFgColorLineEdit->setText(color.name(QColor::HexRgb)); + } else if ("disabledBgColorToolButton" == senderName) { + m_fab->setDisabledBackgroundColor(color); + ui->disabledBgColorLineEdit->setText(color.name(QColor::HexRgb)); + } + } + setupForm(); +} diff --git a/qt-material-widgets/examples/fabsettingseditor.h b/qt-material-widgets/examples/fabsettingseditor.h new file mode 100644 index 0000000..2d815f4 --- /dev/null +++ b/qt-material-widgets/examples/fabsettingseditor.h @@ -0,0 +1,27 @@ +#ifndef FABSETTINGSEDITOR_H +#define FABSETTINGSEDITOR_H + +#include +#include "ui_fabsettingsform.h" + +class QtMaterialFloatingActionButton; + +class FloatingActionButtonSettingsEditor : public QWidget +{ + Q_OBJECT + +public: + explicit FloatingActionButtonSettingsEditor(QWidget *parent = 0); + ~FloatingActionButtonSettingsEditor(); + +protected slots: + void setupForm(); + void updateWidget(); + void selectColor(); + +private: + Ui::FloatingActionButtonSettingsForm *const ui; + QtMaterialFloatingActionButton *const m_fab; +}; + +#endif // FABSETTINGSEDITOR_H diff --git a/qt-material-widgets/examples/fabsettingsform.ui b/qt-material-widgets/examples/fabsettingsform.ui new file mode 100644 index 0000000..2e4b025 --- /dev/null +++ b/qt-material-widgets/examples/fabsettingsform.ui @@ -0,0 +1,267 @@ + + + FloatingActionButtonSettingsForm + + + + 0 + 0 + 599 + 418 + + + + Form + + + + + 0 + 0 + 234 + 391 + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + Disabled + + + + + + + + + + Corner + + + + + + + + Top Left + + + + + Top Right + + + + + Bottom Left + + + + + Bottom Right + + + + + + + + Button role + + + + + + + + Default + + + + + Primary + + + + + Secondary + + + + + + + + Horizontal offset + + + + + + + + + + Vertical offset + + + + + + + + + + Mini + + + + + + + + + + Ripple style + + + + + + + + Centered + + + + + Positioned + + + + + No Ripple + + + + + + + + Use theme colors + + + + + + + + + + Background color + + + + + + + + + false + + + + + + + ... + + + + + + + + + Foreground color + + + + + + + Disabled bg color + + + + + + + Disabled fg color + + + + + + + + + false + + + + + + + ... + + + + + + + + + + + false + + + + + + + ... + + + + + + + + + + + false + + + + + + + ... + + + + + + + + + + + diff --git a/qt-material-widgets/examples/flatbuttonsettingseditor.cpp b/qt-material-widgets/examples/flatbuttonsettingseditor.cpp new file mode 100644 index 0000000..6b620cc --- /dev/null +++ b/qt-material-widgets/examples/flatbuttonsettingseditor.cpp @@ -0,0 +1,317 @@ +#include "flatbuttonsettingseditor.h" +#include +#include +#include + +FlatButtonSettingsEditor::FlatButtonSettingsEditor(QWidget *parent) + : QWidget(parent), + ui(new Ui::FlatButtonSettingsForm), + m_button(new QtMaterialFlatButton("I'm flat")) +{ + init(); +} + +FlatButtonSettingsEditor::~FlatButtonSettingsEditor() +{ + delete ui; +} + +FlatButtonSettingsEditor::FlatButtonSettingsEditor(QtMaterialFlatButton *button, QWidget *parent) + : QWidget(parent), + ui(new Ui::FlatButtonSettingsForm), + m_button(button) +{ + init(); +} + +void FlatButtonSettingsEditor::setupForm() +{ + switch (m_button->role()) + { + case Material::Default: + ui->buttonRoleComboBox->setCurrentIndex(0); + break; + case Material::Primary: + ui->buttonRoleComboBox->setCurrentIndex(1); + break; + case Material::Secondary: + ui->buttonRoleComboBox->setCurrentIndex(2); + break; + default: + break; + } + + switch (m_button->overlayStyle()) + { + case Material::NoOverlay: + ui->hoverStyleComboBox->setCurrentIndex(0); + break; + case Material::TintedOverlay: + ui->hoverStyleComboBox->setCurrentIndex(1); + break; + case Material::GrayOverlay: + ui->hoverStyleComboBox->setCurrentIndex(2); + break; + default: + break; + } + + switch (m_button->rippleStyle()) + { + case Material::CenteredRipple: + ui->rippleStyleComboBox->setCurrentIndex(0); + break; + case Material::PositionedRipple: + ui->rippleStyleComboBox->setCurrentIndex(1); + break; + case Material::NoRipple: + ui->rippleStyleComboBox->setCurrentIndex(2); + break; + default: + break; + } + + switch (m_button->iconPlacement()) + { + case Material::LeftIcon: + ui->iconPlacementComboBox->setCurrentIndex(0); + break; + case Material::RightIcon: + ui->iconPlacementComboBox->setCurrentIndex(1); + break; + } + + switch (ui->textAlignmentComboBox->currentIndex()) + { + case Qt::AlignLeft: + ui->textAlignmentComboBox->setCurrentIndex(0); + break; + default: + ui->textAlignmentComboBox->setCurrentIndex(1); + } + + ui->checkedCheckBox->setEnabled(m_button->isCheckable()); + + ui->disabledCheckBox->setChecked(!m_button->isEnabled()); + ui->checkableCheckBox->setChecked(m_button->isCheckable()); + ui->checkedCheckBox->setChecked(m_button->isChecked()); + ui->showHaloCheckBox->setChecked(m_button->isHaloVisible()); + ui->iconCheckBox->setChecked(!m_button->icon().isNull()); + ui->useThemeColorsCheckBox->setChecked(m_button->useThemeColors()); + ui->transparentCheckBox->setChecked(Qt::TransparentMode == m_button->backgroundMode()); + ui->cornerRadiusSpinBox->setValue(m_button->cornerRadius()); + ui->overlayOpacityDoubleSpinBox->setValue(m_button->baseOpacity()); + ui->iconSizeSpinBox->setValue(m_button->iconSize().width()); + ui->fontSizeDoubleSpinBox->setValue(m_button->fontSize()); + ui->buttonTextLineEdit->setText(m_button->text()); +} + +void FlatButtonSettingsEditor::updateWidget() +{ + switch (ui->buttonRoleComboBox->currentIndex()) + { + case 0: + m_button->setRole(Material::Default); + break; + case 1: + m_button->setRole(Material::Primary); + break; + case 2: + m_button->setRole(Material::Secondary); + break; + default: + break; + } + + switch (ui->hoverStyleComboBox->currentIndex()) + { + case 0: + m_button->setOverlayStyle(Material::NoOverlay); + break; + case 1: + m_button->setOverlayStyle(Material::TintedOverlay); + break; + case 2: + m_button->setOverlayStyle(Material::GrayOverlay); + break; + default: + break; + } + + switch (ui->rippleStyleComboBox->currentIndex()) + { + case 0: + m_button->setRippleStyle(Material::CenteredRipple); + break; + case 1: + m_button->setRippleStyle(Material::PositionedRipple); + break; + case 2: + m_button->setRippleStyle(Material::NoRipple); + break; + default: + break; + } + + switch (ui->iconPlacementComboBox->currentIndex()) + { + case 0: + m_button->setIconPlacement(Material::LeftIcon); + break; + case 1: + m_button->setIconPlacement(Material::RightIcon); + break; + default: + break; + } + + switch (ui->textAlignmentComboBox->currentIndex()) + { + case 0: + m_button->setTextAlignment(Qt::AlignLeft); + break; + case 1: + default: + m_button->setTextAlignment(Qt::AlignHCenter); + break; + } + + m_button->setDisabled(ui->disabledCheckBox->isChecked()); + m_button->setCheckable(ui->checkableCheckBox->isChecked()); + m_button->setChecked(ui->checkedCheckBox->isChecked()); + m_button->setHaloVisible(ui->showHaloCheckBox->isChecked()); + m_button->setIcon(ui->iconCheckBox->isChecked() ? QtMaterialTheme::icon("toggle", "star") + : QIcon()); + m_button->setUseThemeColors(ui->useThemeColorsCheckBox->isChecked()); + m_button->setBackgroundMode(ui->transparentCheckBox->isChecked() + ? Qt::TransparentMode : Qt::OpaqueMode); + m_button->setCornerRadius(ui->cornerRadiusSpinBox->value()); + m_button->setBaseOpacity(ui->overlayOpacityDoubleSpinBox->value()); + m_button->setIconSize(QSize(ui->iconSizeSpinBox->value(), ui->iconSizeSpinBox->value())); + m_button->setFontSize(ui->fontSizeDoubleSpinBox->value()); + m_button->setText(ui->buttonTextLineEdit->text()); + + ui->checkedCheckBox->setEnabled(m_button->isCheckable()); +} + +void FlatButtonSettingsEditor::selectColor() +{ + QColorDialog dialog; + if (dialog.exec()) { + QColor color = dialog.selectedColor(); + QString senderName = sender()->objectName(); + if ("foregroundColorToolButton" == senderName) { + m_button->setForegroundColor(color); + ui->foregroundColorLineEdit->setText(color.name(QColor::HexRgb)); + } else if ("backgroundColorToolButton" == senderName) { + m_button->setBackgroundColor(color); + ui->backgroundColorLineEdit->setText(color.name(QColor::HexRgb)); + } else if ("overlayColorToolButton" == senderName) { + m_button->setOverlayColor(color); + ui->overlayColorLineEdit->setText(color.name(QColor::HexRgb)); + } else if ("disabledFgColorToolButton" == senderName) { + m_button->setDisabledForegroundColor(color); + ui->disableFgColorLineEdit->setText(color.name(QColor::HexRgb)); + } else if ("disabledBgColorToolButton" == senderName) { + m_button->setDisabledBackgroundColor(color); + ui->disabledBgColorLineEdit->setText(color.name(QColor::HexRgb)); + } + } + setupForm(); +} + +void FlatButtonSettingsEditor::applyDefaultPreset() +{ + ui->buttonRoleComboBox->setCurrentIndex(0); + ui->rippleStyleComboBox->setCurrentIndex(1); + ui->iconPlacementComboBox->setCurrentIndex(0); + ui->hoverStyleComboBox->setCurrentIndex(2); + ui->textAlignmentComboBox->setCurrentIndex(1); + ui->transparentCheckBox->setChecked(true); + ui->cornerRadiusSpinBox->setValue(3); + ui->overlayOpacityDoubleSpinBox->setValue(0.13); + ui->fontSizeDoubleSpinBox->setValue(10); + ui->useThemeColorsCheckBox->setChecked(true); + ui->showHaloCheckBox->setChecked(true); + ui->checkableCheckBox->setChecked(false); + ui->disabledCheckBox->setChecked(false); + updateWidget(); + m_button->applyPreset(Material::FlatPreset); +} + +void FlatButtonSettingsEditor::applyCheckablePreset() +{ + ui->buttonRoleComboBox->setCurrentIndex(0); + ui->rippleStyleComboBox->setCurrentIndex(1); + ui->iconPlacementComboBox->setCurrentIndex(0); + ui->hoverStyleComboBox->setCurrentIndex(2); + ui->textAlignmentComboBox->setCurrentIndex(1); + ui->transparentCheckBox->setChecked(true); + ui->cornerRadiusSpinBox->setValue(3); + ui->overlayOpacityDoubleSpinBox->setValue(0.13); + ui->fontSizeDoubleSpinBox->setValue(10); + ui->useThemeColorsCheckBox->setChecked(true); + ui->showHaloCheckBox->setChecked(true); + ui->checkableCheckBox->setChecked(true); + ui->disabledCheckBox->setChecked(false); + updateWidget(); + m_button->applyPreset(Material::CheckablePreset); +} + +void FlatButtonSettingsEditor::init() +{ + QVBoxLayout *layout = new QVBoxLayout; + setLayout(layout); + + QWidget *widget = new QWidget; + layout->addWidget(widget); + + QWidget *canvas = new QWidget; + canvas->setStyleSheet("QWidget { background: white; }"); + layout->addWidget(canvas); + + ui->setupUi(widget); + layout->setContentsMargins(20, 20, 20, 20); + + m_button->setFixedWidth(300); + + layout = new QVBoxLayout; + canvas->setLayout(layout); + layout->addWidget(m_button); + layout->setAlignment(m_button, Qt::AlignCenter); + + setupForm(); + + connect(ui->disabledCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->checkableCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->checkedCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->showHaloCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->iconCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->transparentCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->buttonRoleComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateWidget())); + connect(ui->rippleStyleComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateWidget())); + connect(ui->hoverStyleComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateWidget())); + connect(ui->iconPlacementComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateWidget())); + connect(ui->textAlignmentComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateWidget())); + connect(ui->cornerRadiusSpinBox, SIGNAL(valueChanged(int)), this, SLOT(updateWidget())); + connect(ui->overlayOpacityDoubleSpinBox, SIGNAL(valueChanged(double)), this, SLOT(updateWidget())); + connect(ui->iconSizeSpinBox, SIGNAL(valueChanged(int)), this, SLOT(updateWidget())); + connect(ui->fontSizeDoubleSpinBox, SIGNAL(valueChanged(double)), this, SLOT(updateWidget())); + connect(ui->buttonTextLineEdit, SIGNAL(textChanged(QString)), this, SLOT(updateWidget())); + connect(ui->useThemeColorsCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->foregroundColorToolButton, SIGNAL(clicked(bool)), this, SLOT(selectColor())); + connect(ui->backgroundColorToolButton, SIGNAL(clicked(bool)), this, SLOT(selectColor())); + connect(ui->disabledFgColorToolButton, SIGNAL(clicked(bool)), this, SLOT(selectColor())); + connect(ui->disabledBgColorToolButton, SIGNAL(clicked(bool)), this, SLOT(selectColor())); + connect(ui->overlayColorToolButton, SIGNAL(clicked(bool)), this, SLOT(selectColor())); + connect(ui->cornerRadiusSpinBox, SIGNAL(valueChanged(int)), this, SLOT(updateWidget())); + connect(ui->overlayOpacityDoubleSpinBox, SIGNAL(valueChanged(double)), this, SLOT(updateWidget())); + connect(ui->iconSizeSpinBox, SIGNAL(valueChanged(int)), this, SLOT(updateWidget())); + connect(ui->fontSizeDoubleSpinBox, SIGNAL(valueChanged(double)), this, SLOT(updateWidget())); + connect(ui->buttonTextLineEdit, SIGNAL(textChanged(QString)), this, SLOT(updateWidget())); + connect(ui->defaultPresetPushButton, SIGNAL(pressed()), this, SLOT(applyDefaultPreset())); + connect(ui->checkablePresetPushButton, SIGNAL(pressed()), this, SLOT(applyCheckablePreset())); + connect(m_button, SIGNAL(clicked(bool)), ui->checkedCheckBox, SLOT(setChecked(bool))); + + ui->buttonRoleComboBox->setCurrentIndex(1); +} diff --git a/qt-material-widgets/examples/flatbuttonsettingseditor.h b/qt-material-widgets/examples/flatbuttonsettingseditor.h new file mode 100644 index 0000000..0ec4fd2 --- /dev/null +++ b/qt-material-widgets/examples/flatbuttonsettingseditor.h @@ -0,0 +1,35 @@ +#ifndef FLATBUTTONSETTINGSMANAGER_H +#define FLATBUTTONSETTINGSMANAGER_H + +#include +#include "ui_flatbuttonsettingsform.h" + +class QtMaterialFlatButton; + +class FlatButtonSettingsEditor : public QWidget +{ + Q_OBJECT + +public: + explicit FlatButtonSettingsEditor(QWidget *parent = 0); + ~FlatButtonSettingsEditor(); + +protected: + explicit FlatButtonSettingsEditor(QtMaterialFlatButton *button, QWidget *parent = 0); + + Ui::FlatButtonSettingsForm *const ui; + +protected slots: + void setupForm(); + void updateWidget(); + void selectColor(); + void applyDefaultPreset(); + void applyCheckablePreset(); + +private: + void init(); + + QtMaterialFlatButton *const m_button; +}; + +#endif // FLATBUTTONSETTINGSMANAGER_H diff --git a/qt-material-widgets/examples/flatbuttonsettingsform.ui b/qt-material-widgets/examples/flatbuttonsettingsform.ui new file mode 100644 index 0000000..8512661 --- /dev/null +++ b/qt-material-widgets/examples/flatbuttonsettingsform.ui @@ -0,0 +1,460 @@ + + + FlatButtonSettingsForm + + + + 0 + 0 + 624 + 537 + + + + Form + + + + + 0 + 0 + 549 + 314 + + + + + + + + + + + Disabled + + + + + + + Checkable + + + + + + + Checked + + + + + + + Show halo + + + + + + + Transparent + + + + + + + Icon + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + Qt::Vertical + + + + + + + + + Button role + + + + + + + + Default + + + + + Primary + + + + + Secondary + + + + + + + + Ripple style + + + + + + + + Centered + + + + + Positioned + + + + + No Ripple + + + + + + + + Hover style + + + + + + + + No Overlay + + + + + Tinted Overlay + + + + + Gray Overlay + + + + + + + + Icon placement + + + + + + + + Left + + + + + Right + + + + + + + + Corner radius + + + + + + + + + + Overlay opacity + + + + + + + 1.000000000000000 + + + 0.050000000000000 + + + + + + + Icon size + + + + + + + + + + Font size + + + + + + + + + + Button text + + + + + + + + + + Text alignment + + + + + + + + Left + + + + + Center + + + + + + + + + + Qt::Vertical + + + + + + + + + Use theme colors + + + + + + + + + Background color + + + + + + + + + false + + + + + + + ... + + + + + + + + + Foreground color + + + + + + + + + false + + + + + + + ... + + + + + + + + + Disabled bg color + + + + + + + Disabled fg color + + + + + + + Overlay color + + + + + + + + + false + + + + + + + ... + + + + + + + + + + + false + + + + + + + ... + + + + + + + + + + + false + + + + + + + ... + + + + + + + + + + + + + + + + + Apply default preset + + + + + + + Apply checkable preset + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + diff --git a/qt-material-widgets/examples/iconbuttonsettingseditor.cpp b/qt-material-widgets/examples/iconbuttonsettingseditor.cpp new file mode 100644 index 0000000..4dbc518 --- /dev/null +++ b/qt-material-widgets/examples/iconbuttonsettingseditor.cpp @@ -0,0 +1,85 @@ +#include "iconbuttonsettingseditor.h" +#include +#include +#include + +IconButtonSettingsEditor::IconButtonSettingsEditor(QWidget *parent) + : QWidget(parent), + ui(new Ui::IconButtonSettingsForm), + m_button(new QtMaterialIconButton(QtMaterialTheme::icon("toggle", "star"))) +{ + init(); +} + +IconButtonSettingsEditor::~IconButtonSettingsEditor() +{ + delete ui; +} + +IconButtonSettingsEditor::IconButtonSettingsEditor(QtMaterialIconButton *button, QWidget *parent) + : QWidget(parent), + ui(new Ui::IconButtonSettingsForm), + m_button(button) +{ + init(); +} + +void IconButtonSettingsEditor::setupForm() +{ + ui->disabledCheckBox->setChecked(!m_button->isEnabled()); + ui->useThemeColorsCheckBox->setChecked(m_button->useThemeColors()); + ui->sizeSpinBox->setValue(m_button->iconSize().width()); +} + +void IconButtonSettingsEditor::updateWidget() +{ + m_button->setDisabled(ui->disabledCheckBox->isChecked()); + m_button->setUseThemeColors(ui->useThemeColorsCheckBox->isChecked()); + m_button->setIconSize(QSize(ui->sizeSpinBox->value(), ui->sizeSpinBox->value())); +} + +void IconButtonSettingsEditor::selectColor() +{ + QColorDialog dialog; + if (dialog.exec()) { + QColor color = dialog.selectedColor(); + QString senderName = sender()->objectName(); + if ("colorToolButton" == senderName) { + m_button->setColor(color); + ui->colorLineEdit->setText(color.name(QColor::HexRgb)); + } else if ("disabledColorToolButton" == senderName) { + m_button->setDisabledColor(color); + ui->disabledColorLineEdit->setText(color.name(QColor::HexRgb)); + } + } + setupForm(); +} + +void IconButtonSettingsEditor::init() +{ + QVBoxLayout *layout = new QVBoxLayout; + setLayout(layout); + + QWidget *widget = new QWidget; + layout->addWidget(widget); + + QWidget *canvas = new QWidget; + canvas->setStyleSheet("QWidget { background: white; }"); + layout->addWidget(canvas); + + ui->setupUi(widget); + layout->setContentsMargins(20, 20, 20, 20); + + layout = new QVBoxLayout; + canvas->setLayout(layout); + layout->addWidget(m_button); + layout->setAlignment(m_button, Qt::AlignCenter); + + setupForm(); + + connect(ui->disabledCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->useThemeColorsCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->colorToolButton, SIGNAL(clicked(bool)), this, SLOT(selectColor())); + connect(ui->disabledColorToolButton, SIGNAL(clicked(bool)), this, SLOT(selectColor())); + connect(ui->sizeSpinBox, SIGNAL(valueChanged(int)), this, SLOT(updateWidget())); +} diff --git a/qt-material-widgets/examples/iconbuttonsettingseditor.h b/qt-material-widgets/examples/iconbuttonsettingseditor.h new file mode 100644 index 0000000..d8758f8 --- /dev/null +++ b/qt-material-widgets/examples/iconbuttonsettingseditor.h @@ -0,0 +1,33 @@ +#ifndef ICONBUTTONSETTINGSMANAGER_H +#define ICONBUTTONSETTINGSMANAGER_H + +#include +#include "ui_iconbuttonsettingsform.h" + +class QtMaterialIconButton; + +class IconButtonSettingsEditor : public QWidget +{ + Q_OBJECT + +public: + explicit IconButtonSettingsEditor(QWidget *parent = 0); + ~IconButtonSettingsEditor(); + +protected: + explicit IconButtonSettingsEditor(QtMaterialIconButton *button, QWidget *parent = 0); + + Ui::IconButtonSettingsForm *const ui; + +protected slots: + void setupForm(); + void updateWidget(); + void selectColor(); + +private: + void init(); + + QtMaterialIconButton *const m_button; +}; + +#endif // ICONBUTTONSETTINGSMANAGER_H diff --git a/qt-material-widgets/examples/iconbuttonsettingsform.ui b/qt-material-widgets/examples/iconbuttonsettingsform.ui new file mode 100644 index 0000000..97461d2 --- /dev/null +++ b/qt-material-widgets/examples/iconbuttonsettingsform.ui @@ -0,0 +1,114 @@ + + + IconButtonSettingsForm + + + + 0 + 0 + 599 + 418 + + + + Form + + + + + 0 + 0 + 274 + 371 + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + Disabled + + + + + + + + + + Size + + + + + + + + + + Use theme colors + + + + + + + + + + Color + + + + + + + + + false + + + + + + + ... + + + + + + + + + Disabled color + + + + + + + + + false + + + + + + + ... + + + + + + + + + + + diff --git a/qt-material-widgets/examples/main.cpp b/qt-material-widgets/examples/main.cpp new file mode 100644 index 0000000..9eafa5e --- /dev/null +++ b/qt-material-widgets/examples/main.cpp @@ -0,0 +1,18 @@ +#include +#include +#include "mainwindow.h" + +int main(int argc, char *argv[]) +{ + QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); + QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); + QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough); + QApplication a(argc, argv); + + Q_INIT_RESOURCE(resources); + + MainWindow window; + window.show(); + + return a.exec(); +} diff --git a/qt-material-widgets/examples/mainwindow.cpp b/qt-material-widgets/examples/mainwindow.cpp new file mode 100644 index 0000000..cc4992e --- /dev/null +++ b/qt-material-widgets/examples/mainwindow.cpp @@ -0,0 +1,124 @@ +#include "mainwindow.h" +#include +#include +#include +#include "avatarsettingseditor.h" +#include "badgesettingseditor.h" +#include "checkboxsettingseditor.h" +#include "fabsettingseditor.h" +#include "raisedbuttonsettingseditor.h" +#include "flatbuttonsettingseditor.h" +#include "iconbuttonsettingseditor.h" +#include "progresssettingseditor.h" +#include "circularprogresssettingseditor.h" +#include "slidersettingseditor.h" +#include "radiobuttonsettingseditor.h" +#include "togglesettingseditor.h" +#include "textfieldsettingseditor.h" +#include "tabssettingseditor.h" +#include "snackbarsettingseditor.h" +#include "dialogsettingseditor.h" +#include "drawersettingseditor.h" +#include "scrollbarsettingseditor.h" +#include "appbarsettingseditor.h" +#include "autocompletesettingseditor.h" +#include "menusettingseditor.h" + +MainWindow::MainWindow(QWidget *parent) + : QMainWindow(parent) +{ + QWidget *widget = new QWidget; + QHBoxLayout *layout = new QHBoxLayout; + + widget->setLayout(layout); + + QStackedLayout *stack = new QStackedLayout; + QListWidget *list = new QListWidget; + + layout->addWidget(list); + layout->addLayout(stack); + + layout->setStretch(1, 2); + + setCentralWidget(widget); + + AvatarSettingsEditor *avatar = new AvatarSettingsEditor; + BadgeSettingsEditor *badge = new BadgeSettingsEditor; + CheckBoxSettingsEditor *checkbox = new CheckBoxSettingsEditor; + FloatingActionButtonSettingsEditor *fab = new FloatingActionButtonSettingsEditor; + RaisedButtonSettingsEditor *raisedButton = new RaisedButtonSettingsEditor; + FlatButtonSettingsEditor *flatButton = new FlatButtonSettingsEditor; + IconButtonSettingsEditor *iconButton = new IconButtonSettingsEditor; + ProgressSettingsEditor *progress = new ProgressSettingsEditor; + CircularProgressSettingsEditor *circularProgress = new CircularProgressSettingsEditor; + SliderSettingsEditor *slider = new SliderSettingsEditor; + RadioButtonSettingsEditor *radioButton = new RadioButtonSettingsEditor; + ToggleSettingsEditor *toggle = new ToggleSettingsEditor; + TextFieldSettingsEditor *textField = new TextFieldSettingsEditor; + TabsSettingsEditor *tabs = new TabsSettingsEditor; + SnackbarSettingsEditor *snackbar = new SnackbarSettingsEditor; + DialogSettingsEditor *dialog = new DialogSettingsEditor; + DrawerSettingsEditor *drawer = new DrawerSettingsEditor; + ScrollBarSettingsEditor *scrollBar = new ScrollBarSettingsEditor; + AppBarSettingsEditor *appBar = new AppBarSettingsEditor; + AutoCompleteSettingsEditor *autocomplete = new AutoCompleteSettingsEditor; + MenuSettingsEditor *menu = new MenuSettingsEditor; + + stack->addWidget(appBar); + stack->addWidget(autocomplete); + stack->addWidget(avatar); + stack->addWidget(badge); + stack->addWidget(checkbox); + stack->addWidget(circularProgress); + stack->addWidget(dialog); + stack->addWidget(drawer); + stack->addWidget(fab); + stack->addWidget(flatButton); + stack->addWidget(iconButton); + stack->addWidget(menu); + stack->addWidget(progress); + stack->addWidget(radioButton); + stack->addWidget(raisedButton); + stack->addWidget(scrollBar); + stack->addWidget(slider); + stack->addWidget(snackbar); + stack->addWidget(tabs); + stack->addWidget(textField); + stack->addWidget(toggle); + + list->addItem("App Bar"); + list->addItem("Auto Complete"); + list->addItem("Avatar"); + list->addItem("Badge"); + list->addItem("Checkbox"); + list->addItem("Circular Progress"); + list->addItem("Dialog"); + list->addItem("Drawer"); + list->addItem("Floating Action Button"); + list->addItem("Flat Button"); + list->addItem("Icon Button"); + list->addItem("Menu"); + list->addItem("Progress"); + list->addItem("Radio Button"); + list->addItem("Raised Button"); + list->addItem("ScrollBar"); + list->addItem("Slider"); + list->addItem("Snackbar"); + list->addItem("Tabs"); + list->addItem("Text Field"); + list->addItem("Toggle"); + + list->setCurrentRow(0); + + QObject::connect(list, &QListWidget::currentItemChanged, + [=](QListWidgetItem *current, QListWidgetItem *previous) + { + Q_UNUSED(current) + Q_UNUSED(previous) + stack->setCurrentIndex(list->currentRow()); + }); +} + +MainWindow::~MainWindow() +{ +} diff --git a/qt-material-widgets/examples/mainwindow.h b/qt-material-widgets/examples/mainwindow.h new file mode 100644 index 0000000..1f39a8c --- /dev/null +++ b/qt-material-widgets/examples/mainwindow.h @@ -0,0 +1,15 @@ +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include + +class MainWindow : public QMainWindow +{ + Q_OBJECT + +public: + explicit MainWindow(QWidget *parent = 0); + ~MainWindow(); +}; + +#endif // MAINWINDOW_H diff --git a/qt-material-widgets/examples/menusettingseditor.cpp b/qt-material-widgets/examples/menusettingseditor.cpp new file mode 100644 index 0000000..fcf5c65 --- /dev/null +++ b/qt-material-widgets/examples/menusettingseditor.cpp @@ -0,0 +1,49 @@ +#include "menusettingseditor.h" +#include +#include +#include + +MenuSettingsEditor::MenuSettingsEditor(QWidget *parent) + : QWidget(parent), + //ui(new Ui::MenuSettingsForm), + m_menu(new QtMaterialMenu) +{ + QVBoxLayout *layout = new QVBoxLayout; + setLayout(layout); + + QWidget *widget = new QWidget; + layout->addWidget(widget); + + QWidget *canvas = new QWidget; + canvas->setStyleSheet("QWidget { background: white; }"); + layout->addWidget(canvas); + + //ui->setupUi(widget); + layout->setContentsMargins(20, 20, 20, 20); + + layout = new QVBoxLayout; + canvas->setLayout(layout); + + layout->addWidget(m_menu); + layout->addSpacing(600); + layout->setAlignment(m_menu, Qt::AlignCenter); + + setupForm(); +} + +MenuSettingsEditor::~MenuSettingsEditor() +{ + //delete ui; +} + +void MenuSettingsEditor::setupForm() +{ +} + +void MenuSettingsEditor::updateWidget() +{ +} + +void MenuSettingsEditor::selectColor() +{ +} diff --git a/qt-material-widgets/examples/menusettingseditor.h b/qt-material-widgets/examples/menusettingseditor.h new file mode 100644 index 0000000..bed5c41 --- /dev/null +++ b/qt-material-widgets/examples/menusettingseditor.h @@ -0,0 +1,29 @@ +#ifndef MENUSETTINGSEDITOR_H +#define MENUSETTINGSEDITOR_H + +#include +//#include "ui_menusettingsform.h" + +#include "lib/qtmaterialoverlaywidget.h" + +class QtMaterialMenu; + +class MenuSettingsEditor : public QWidget +{ + Q_OBJECT + +public: + explicit MenuSettingsEditor(QWidget *parent = 0); + ~MenuSettingsEditor(); + +protected slots: + void setupForm(); + void updateWidget(); + void selectColor(); + +private: + //Ui::MenuSettingsForm *const ui; + QtMaterialMenu *const m_menu; +}; + +#endif // MENUSETTINGSEDITOR_H diff --git a/qt-material-widgets/examples/progresssettingseditor.cpp b/qt-material-widgets/examples/progresssettingseditor.cpp new file mode 100644 index 0000000..401eb57 --- /dev/null +++ b/qt-material-widgets/examples/progresssettingseditor.cpp @@ -0,0 +1,99 @@ +#include "progresssettingseditor.h" +#include +#include +#include + +ProgressSettingsEditor::ProgressSettingsEditor(QWidget *parent) + : QWidget(parent), + ui(new Ui::ProgressSettingsForm), + m_progress(new QtMaterialProgress) +{ + QVBoxLayout *layout = new QVBoxLayout; + setLayout(layout); + + QWidget *widget = new QWidget; + layout->addWidget(widget); + + QWidget *canvas = new QWidget; + canvas->setStyleSheet("QWidget { background: white; }"); + layout->addWidget(canvas); + + ui->setupUi(widget); + layout->setContentsMargins(20, 20, 20, 20); + + layout = new QVBoxLayout; + canvas->setLayout(layout); + layout->addWidget(m_progress); + layout->setAlignment(m_progress, Qt::AlignCenter); + + setupForm(); + + connect(ui->disabledCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->progressTypeComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateWidget())); + connect(ui->progressSlider, SIGNAL(valueChanged(int)), this, SLOT(updateWidget())); + connect(ui->useThemeColorsCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->progressColorToolButton, SIGNAL(pressed()), this, SLOT(selectColor())); + connect(ui->backgroundColorToolButton, SIGNAL(pressed()), this, SLOT(selectColor())); + + ui->progressSlider->setRange(0, 100); +} + +ProgressSettingsEditor::~ProgressSettingsEditor() +{ + delete ui; +} + +void ProgressSettingsEditor::setupForm() +{ + switch (m_progress->progressType()) + { + case Material::DeterminateProgress: + ui->progressTypeComboBox->setCurrentIndex(0); + break; + case Material::IndeterminateProgress: + ui->progressTypeComboBox->setCurrentIndex(1); + break; + default: + break; + } + + ui->disabledCheckBox->setChecked(!m_progress->isEnabled()); + ui->progressSlider->setValue(m_progress->value()); + ui->useThemeColorsCheckBox->setChecked(m_progress->useThemeColors()); +} + +void ProgressSettingsEditor::updateWidget() +{ + switch (ui->progressTypeComboBox->currentIndex()) + { + case 0: + m_progress->setProgressType(Material::DeterminateProgress); + break; + case 1: + m_progress->setProgressType(Material::IndeterminateProgress); + break; + default: + break; + } + + m_progress->setDisabled(ui->disabledCheckBox->isChecked()); + m_progress->setValue(ui->progressSlider->value()); + m_progress->setUseThemeColors(ui->useThemeColorsCheckBox->isChecked()); +} + +void ProgressSettingsEditor::selectColor() +{ + QColorDialog dialog; + if (dialog.exec()) { + QColor color = dialog.selectedColor(); + QString senderName = sender()->objectName(); + if ("progressColorToolButton" == senderName) { + m_progress->setProgressColor(color); + ui->progressColorLineEdit->setText(color.name(QColor::HexRgb)); + } else if ("backgroundColorToolButton" == senderName) { + m_progress->setBackgroundColor(color); + ui->backgroundColorLineEdit->setText(color.name(QColor::HexRgb)); + } + } + setupForm(); +} diff --git a/qt-material-widgets/examples/progresssettingseditor.h b/qt-material-widgets/examples/progresssettingseditor.h new file mode 100644 index 0000000..bc5bbaa --- /dev/null +++ b/qt-material-widgets/examples/progresssettingseditor.h @@ -0,0 +1,27 @@ +#ifndef PROGRESSSETTINGSEDITOR_H +#define PROGRESSSETTINGSEDITOR_H + +#include +#include "ui_progresssettingsform.h" + +class QtMaterialProgress; + +class ProgressSettingsEditor : public QWidget +{ + Q_OBJECT + +public: + explicit ProgressSettingsEditor(QWidget *parent = 0); + ~ProgressSettingsEditor(); + +protected slots: + void setupForm(); + void updateWidget(); + void selectColor(); + +private: + Ui::ProgressSettingsForm *const ui; + QtMaterialProgress *const m_progress; +}; + +#endif // PROGRESSSETTINGSEDITOR_H diff --git a/qt-material-widgets/examples/progresssettingsform.ui b/qt-material-widgets/examples/progresssettingsform.ui new file mode 100644 index 0000000..b7e004b --- /dev/null +++ b/qt-material-widgets/examples/progresssettingsform.ui @@ -0,0 +1,128 @@ + + + ProgressSettingsForm + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + 0 + 0 + 240 + 197 + + + + + + + Disabled + + + + + + + + + + Progress type + + + + + + + + Determinate + + + + + Indeterminate + + + + + + + + Progress + + + + + + + Qt::Horizontal + + + + + + + Use theme colors + + + + + + + + + + Progress color + + + + + + + + + + + + ... + + + + + + + + + Background color + + + + + + + + + + + + ... + + + + + + + + + + + diff --git a/qt-material-widgets/examples/radiobuttonsettingseditor.cpp b/qt-material-widgets/examples/radiobuttonsettingseditor.cpp new file mode 100644 index 0000000..2a039ce --- /dev/null +++ b/qt-material-widgets/examples/radiobuttonsettingseditor.cpp @@ -0,0 +1,144 @@ +#include "radiobuttonsettingseditor.h" +#include +#include +#include +#include + +RadioButtonSettingsEditor::RadioButtonSettingsEditor(QWidget *parent) + : QWidget(parent), + ui(new Ui::RadioButtonSettingsForm), + m_radioButton1(new QtMaterialRadioButton), + m_radioButton2(new QtMaterialRadioButton), + m_radioButton3(new QtMaterialRadioButton) +{ + QVBoxLayout *layout = new QVBoxLayout; + setLayout(layout); + + QWidget *widget = new QWidget; + layout->addWidget(widget); + + QWidget *canvas = new QWidget; + canvas->setStyleSheet("QWidget { background: white; }"); + layout->addWidget(canvas); + + ui->setupUi(widget); + layout->setContentsMargins(20, 20, 20, 20); + + m_radioButton1->setText("Coffee"); + m_radioButton2->setText("Tea"); + m_radioButton3->setText("Algebraic Topology"); + + layout = new QVBoxLayout; + canvas->setLayout(layout); + canvas->setMaximumHeight(350); + + QWidget *buttonWidget = new QWidget; + QVBoxLayout *buttonLayout = new QVBoxLayout; + buttonWidget->setLayout(buttonLayout); + + layout->addWidget(buttonWidget); + buttonLayout->addWidget(m_radioButton1); + buttonLayout->addWidget(m_radioButton2); + buttonLayout->addWidget(m_radioButton3); + + QSizePolicy policy; + policy.setHorizontalPolicy(QSizePolicy::Maximum); + buttonWidget->setSizePolicy(policy); + + layout->setAlignment(Qt::AlignCenter); + + layout->setMargin(0); + layout->setSpacing(0); + + setupForm(); + + connect(ui->disabledCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->labelPositionComboBox_2, SIGNAL(currentIndexChanged(int)), this, SLOT(updateWidget())); + connect(ui->labelTextLineEdit_2, SIGNAL(textChanged(QString)), this, SLOT(updateWidget())); + connect(ui->useThemeColorsCheckBox_3, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->textColorToolButton_2, SIGNAL(pressed()), this, SLOT(selectColor())); + connect(ui->disabledColorToolButton_2, SIGNAL(pressed()), this, SLOT(selectColor())); + connect(ui->checkedColorToolButton_2, SIGNAL(pressed()), this, SLOT(selectColor())); + connect(ui->uncheckedColorToolButton_2, SIGNAL(pressed()), this, SLOT(selectColor())); + connect(ui->labelPositionComboBox_2, SIGNAL(currentIndexChanged(int)), this, SLOT(updateWidget())); +} + +RadioButtonSettingsEditor::~RadioButtonSettingsEditor() +{ + delete ui; +} + +void RadioButtonSettingsEditor::setupForm() +{ + switch (m_radioButton1->labelPosition()) + { + case QtMaterialCheckable::LabelPositionLeft: + ui->labelPositionComboBox_2->setCurrentIndex(0); + break; + case QtMaterialCheckable::LabelPositionRight: + ui->labelPositionComboBox_2->setCurrentIndex(1); + break; + default: + break; + } + + ui->disabledCheckBox->setChecked(!m_radioButton1->isEnabled()); + ui->labelTextLineEdit_2->setText(m_radioButton1->text()); + ui->useThemeColorsCheckBox_3->setChecked(m_radioButton1->useThemeColors()); +} + +void RadioButtonSettingsEditor::updateWidget() +{ + switch (ui->labelPositionComboBox_2->currentIndex()) + { + case 0: + m_radioButton1->setLabelPosition(QtMaterialCheckable::LabelPositionLeft); + m_radioButton2->setLabelPosition(QtMaterialCheckable::LabelPositionLeft); + m_radioButton3->setLabelPosition(QtMaterialCheckable::LabelPositionLeft); + break; + case 1: + m_radioButton1->setLabelPosition(QtMaterialCheckable::LabelPositionRight); + m_radioButton2->setLabelPosition(QtMaterialCheckable::LabelPositionRight); + m_radioButton3->setLabelPosition(QtMaterialCheckable::LabelPositionRight); + break; + default: + break; + } + + m_radioButton1->setDisabled(ui->disabledCheckBox->isChecked()); + m_radioButton1->setText(ui->labelTextLineEdit_2->text()); + m_radioButton1->setUseThemeColors(ui->useThemeColorsCheckBox_3->isChecked()); + m_radioButton2->setUseThemeColors(ui->useThemeColorsCheckBox_3->isChecked()); + m_radioButton3->setUseThemeColors(ui->useThemeColorsCheckBox_3->isChecked()); +} + +void RadioButtonSettingsEditor::selectColor() +{ + QColorDialog dialog; + if (dialog.exec()) { + QColor color = dialog.selectedColor(); + QString senderName = sender()->objectName(); + if ("textColorToolButton_2" == senderName) { + m_radioButton1->setTextColor(color); + m_radioButton2->setTextColor(color); + m_radioButton3->setTextColor(color); + ui->textColorLineEdit_2->setText(color.name(QColor::HexRgb)); + } else if ("disabledColorToolButton_2" == senderName) { + m_radioButton1->setDisabledColor(color); + m_radioButton2->setDisabledColor(color); + m_radioButton3->setDisabledColor(color); + ui->disabledColorLineEdit_2->setText(color.name(QColor::HexRgb)); + } else if ("checkedColorToolButton_2" == senderName) { + m_radioButton1->setCheckedColor(color); + m_radioButton2->setCheckedColor(color); + m_radioButton3->setCheckedColor(color); + ui->checkedColorLineEdit_2->setText(color.name(QColor::HexRgb)); + } else if ("uncheckedColorToolButton_2" == senderName) { + m_radioButton1->setUncheckedColor(color); + m_radioButton2->setUncheckedColor(color); + m_radioButton3->setUncheckedColor(color); + ui->uncheckedColorLineEdit_2->setText(color.name(QColor::HexRgb)); + } + } + setupForm(); +} diff --git a/qt-material-widgets/examples/radiobuttonsettingseditor.h b/qt-material-widgets/examples/radiobuttonsettingseditor.h new file mode 100644 index 0000000..76ad852 --- /dev/null +++ b/qt-material-widgets/examples/radiobuttonsettingseditor.h @@ -0,0 +1,30 @@ +#ifndef RADIOBUTTONSETTINGSEDITOR_H +#define RADIOBUTTONSETTINGSEDITOR_H + +#include +#include "ui_radiobuttonsettingsform.h" + +class QtMaterialRadioButton; +class RadioButton; + +class RadioButtonSettingsEditor : public QWidget +{ + Q_OBJECT + +public: + explicit RadioButtonSettingsEditor(QWidget *parent = 0); + ~RadioButtonSettingsEditor(); + +protected slots: + void setupForm(); + void updateWidget(); + void selectColor(); + +private: + Ui::RadioButtonSettingsForm *const ui; + QtMaterialRadioButton *const m_radioButton1; + QtMaterialRadioButton *const m_radioButton2; + QtMaterialRadioButton *const m_radioButton3; +}; + +#endif // RADIOBUTTONSETTINGSEDITOR_H diff --git a/qt-material-widgets/examples/radiobuttonsettingsform.ui b/qt-material-widgets/examples/radiobuttonsettingsform.ui new file mode 100644 index 0000000..ff97ac4 --- /dev/null +++ b/qt-material-widgets/examples/radiobuttonsettingsform.ui @@ -0,0 +1,166 @@ + + + RadioButtonSettingsForm + + + + 0 + 0 + 602 + 439 + + + + Form + + + + + 0 + 0 + 241 + 228 + + + + + + + Disabled + + + + + + + + + + Label text + + + + + + + + + + Use theme colors + + + + + + + + + + Checked color + + + + + + + Unchecked color + + + + + + + Text color + + + + + + + Disabled color + + + + + + + Label position + + + + + + + + Left + + + + + Right + + + + + + + + + + + + + ... + + + + + + + + + + + + + + ... + + + + + + + + + + + + + + ... + + + + + + + + + + + + + + ... + + + + + + + + + + + diff --git a/qt-material-widgets/examples/raisedbuttonsettingseditor.cpp b/qt-material-widgets/examples/raisedbuttonsettingseditor.cpp new file mode 100644 index 0000000..3dc41e0 --- /dev/null +++ b/qt-material-widgets/examples/raisedbuttonsettingseditor.cpp @@ -0,0 +1,14 @@ +#include "raisedbuttonsettingseditor.h" +#include + +RaisedButtonSettingsEditor::RaisedButtonSettingsEditor(QWidget *parent) + : FlatButtonSettingsEditor(new QtMaterialRaisedButton("Rise up"), parent) +{ + ui->transparentCheckBox->setDisabled(true); + ui->defaultPresetPushButton->setDisabled(true); + ui->checkablePresetPushButton->setDisabled(true); +} + +RaisedButtonSettingsEditor::~RaisedButtonSettingsEditor() +{ +} diff --git a/qt-material-widgets/examples/raisedbuttonsettingseditor.h b/qt-material-widgets/examples/raisedbuttonsettingseditor.h new file mode 100644 index 0000000..250acd0 --- /dev/null +++ b/qt-material-widgets/examples/raisedbuttonsettingseditor.h @@ -0,0 +1,15 @@ +#ifndef RAISEDBUTTONSETTINGSEDITOR_H +#define RAISEDBUTTONSETTINGSEDITOR_H + +#include "flatbuttonsettingseditor.h" + +class RaisedButtonSettingsEditor : public FlatButtonSettingsEditor +{ + Q_OBJECT + +public: + explicit RaisedButtonSettingsEditor(QWidget *parent = 0); + ~RaisedButtonSettingsEditor(); +}; + +#endif // RAISEDBUTTONSETTINGSEDITOR_H diff --git a/qt-material-widgets/examples/scrollbarsettingseditor.cpp b/qt-material-widgets/examples/scrollbarsettingseditor.cpp new file mode 100644 index 0000000..b02944c --- /dev/null +++ b/qt-material-widgets/examples/scrollbarsettingseditor.cpp @@ -0,0 +1,61 @@ +#include "scrollbarsettingseditor.h" +#include +#include +#include +#include + +ScrollBarSettingsEditor::ScrollBarSettingsEditor(QWidget *parent) + : QWidget(parent), + ui(new Ui::ScrollBarSettingsForm), + m_verticalScrollbar(new QtMaterialScrollBar), + m_horizontalScrollbar(new QtMaterialScrollBar) +{ + QVBoxLayout *layout = new QVBoxLayout; + setLayout(layout); + + QWidget *widget = new QWidget; + layout->addWidget(widget); + + QWidget *canvas = new QWidget; + canvas->setStyleSheet("QWidget { background: white; }"); + layout->addWidget(canvas); + + ui->setupUi(widget); + layout->setContentsMargins(20, 20, 20, 20); + + layout = new QVBoxLayout; + canvas->setLayout(layout); + canvas->setMaximumHeight(400); + + QTextEdit *edit = new QTextEdit; + edit->setText("

The distinction between the subjects of syntax and semantics has its origin in the study of natural languages.

The distinction between the subjects of syntax and semantics has its origin in the study of natural languages.

The distinction between the subjects of syntax and semantics has its origin in the study of natural languages.

The distinction between the subjects of syntax and semantics has its origin in the study of natural languages.

The distinction between the subjects of syntax and semantics has its origin in the study of natural languages.

The distinction between the subjects of syntax and semantics has its origin in the study of natural languages.

The distinction between the subjects of syntax and semantics has its origin in the study of natural languages.

The distinction between the subjects of syntax and semantics has its origin in the study of natural languages.

"); + edit->setLineWrapMode(QTextEdit::NoWrap); + edit->update(); + edit->setMaximumHeight(200); + + edit->setVerticalScrollBar(m_verticalScrollbar); + edit->setHorizontalScrollBar(m_horizontalScrollbar); + + //m_verticalScrollbar->setHideOnMouseOut(false); + + //m_horizontalScrollbar->setHideOnMouseOut(false); + m_horizontalScrollbar->setOrientation(Qt::Horizontal); + + layout->addWidget(edit); + layout->setAlignment(edit, Qt::AlignHCenter); + + setupForm(); +} + +ScrollBarSettingsEditor::~ScrollBarSettingsEditor() +{ + delete ui; +} + +void ScrollBarSettingsEditor::setupForm() +{ +} + +void ScrollBarSettingsEditor::updateWidget() +{ +} diff --git a/qt-material-widgets/examples/scrollbarsettingseditor.h b/qt-material-widgets/examples/scrollbarsettingseditor.h new file mode 100644 index 0000000..fd74539 --- /dev/null +++ b/qt-material-widgets/examples/scrollbarsettingseditor.h @@ -0,0 +1,27 @@ +#ifndef SCROLLBARSETTINGSEDITOR_H +#define SCROLLBARSETTINGSEDITOR_H + +#include +#include "ui_scrollbarsettingsform.h" + +class QtMaterialScrollBar; + +class ScrollBarSettingsEditor : public QWidget +{ + Q_OBJECT + +public: + explicit ScrollBarSettingsEditor(QWidget *parent = 0); + ~ScrollBarSettingsEditor(); + +protected slots: + void setupForm(); + void updateWidget(); + +private: + Ui::ScrollBarSettingsForm *const ui; + QtMaterialScrollBar *const m_verticalScrollbar; + QtMaterialScrollBar *const m_horizontalScrollbar; +}; + +#endif // SCROLLBARSETTINGSEDITOR_H diff --git a/qt-material-widgets/examples/scrollbarsettingsform.ui b/qt-material-widgets/examples/scrollbarsettingsform.ui new file mode 100644 index 0000000..4e33ed7 --- /dev/null +++ b/qt-material-widgets/examples/scrollbarsettingsform.ui @@ -0,0 +1,32 @@ + + + ScrollBarSettingsForm + + + + 0 + 0 + 474 + 387 + + + + Form + + + + + 10 + 70 + 171 + 16 + + + + TODO + + + + + + diff --git a/qt-material-widgets/examples/slidersettingseditor.cpp b/qt-material-widgets/examples/slidersettingseditor.cpp new file mode 100644 index 0000000..2911fdb --- /dev/null +++ b/qt-material-widgets/examples/slidersettingseditor.cpp @@ -0,0 +1,81 @@ +#include "slidersettingseditor.h" +#include +#include +#include + +SliderSettingsEditor::SliderSettingsEditor(QWidget *parent) + : QWidget(parent), + ui(new Ui::SliderSettingsForm), + m_slider(new QtMaterialSlider) +{ + QVBoxLayout *layout = new QVBoxLayout; + setLayout(layout); + + QWidget *widget = new QWidget; + layout->addWidget(widget); + + QWidget *canvas = new QWidget; + canvas->setStyleSheet("QWidget { background: white; }"); + layout->addWidget(canvas); + + ui->setupUi(widget); + layout->setContentsMargins(20, 20, 20, 20); + + layout = new QVBoxLayout; + canvas->setLayout(layout); + canvas->setMaximumHeight(300); + layout->addWidget(m_slider); + layout->setAlignment(m_slider, Qt::AlignHCenter); + + setupForm(); + + connect(ui->disabledCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->valueLineEdit, SIGNAL(textChanged(QString)), this, SLOT(updateWidget())); + connect(ui->orientationComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateWidget())); + connect(ui->invertedCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + + connect(m_slider, SIGNAL(valueChanged(int)), this, SLOT(setupForm())); +} + +SliderSettingsEditor::~SliderSettingsEditor() +{ + delete ui; +} + +void SliderSettingsEditor::setupForm() +{ + switch (m_slider->orientation()) + { + case Qt::Horizontal: + ui->orientationComboBox->setCurrentIndex(0); + break; + case Qt::Vertical: + ui->orientationComboBox->setCurrentIndex(1); + break; + default: + break; + } + + ui->disabledCheckBox->setChecked(!m_slider->isEnabled()); + ui->valueLineEdit->setText(QString::number(m_slider->value())); + ui->invertedCheckBox->setChecked(m_slider->invertedAppearance()); +} + +void SliderSettingsEditor::updateWidget() +{ + switch (ui->orientationComboBox->currentIndex()) + { + case 0: + m_slider->setOrientation(Qt::Horizontal); + break; + case 1: + m_slider->setOrientation(Qt::Vertical); + break; + default: + break; + } + + m_slider->setDisabled(ui->disabledCheckBox->isChecked()); + m_slider->setValue(ui->valueLineEdit->text().toInt()); + m_slider->setInvertedAppearance(ui->invertedCheckBox->isChecked()); +} diff --git a/qt-material-widgets/examples/slidersettingseditor.h b/qt-material-widgets/examples/slidersettingseditor.h new file mode 100644 index 0000000..11e1a85 --- /dev/null +++ b/qt-material-widgets/examples/slidersettingseditor.h @@ -0,0 +1,26 @@ +#ifndef SLIDERSETTINGSEDITOR_H +#define SLIDERSETTINGSEDITOR_H + +#include +#include "ui_slidersettingsform.h" + +class QtMaterialSlider; + +class SliderSettingsEditor : public QWidget +{ + Q_OBJECT + +public: + explicit SliderSettingsEditor(QWidget *parent = 0); + ~SliderSettingsEditor(); + +protected slots: + void setupForm(); + void updateWidget(); + +private: + Ui::SliderSettingsForm *const ui; + QtMaterialSlider *const m_slider; +}; + +#endif // SLIDERSETTINGSEDITOR_H diff --git a/qt-material-widgets/examples/slidersettingsform.ui b/qt-material-widgets/examples/slidersettingsform.ui new file mode 100644 index 0000000..688aab5 --- /dev/null +++ b/qt-material-widgets/examples/slidersettingsform.ui @@ -0,0 +1,95 @@ + + + SliderSettingsForm + + + + 0 + 0 + 474 + 387 + + + + Form + + + + + 0 + 0 + 361 + 111 + + + + + + + Disabled + + + + + + + + + + Value + + + + + + + + + + Orientation + + + + + + + + Horizontal + + + + + Vertical + + + + + + + + Inverted + + + + + + + + + + + + 20 + 130 + 171 + 16 + + + + TODO + + + + + + diff --git a/qt-material-widgets/examples/snackbarsettingseditor.cpp b/qt-material-widgets/examples/snackbarsettingseditor.cpp new file mode 100644 index 0000000..0a9dcca --- /dev/null +++ b/qt-material-widgets/examples/snackbarsettingseditor.cpp @@ -0,0 +1,51 @@ +#include "snackbarsettingseditor.h" +#include +#include +#include + +SnackbarSettingsEditor::SnackbarSettingsEditor(QWidget *parent) + : QWidget(parent), + ui(new Ui::SnackbarSettingsForm), + m_snackbar(new QtMaterialSnackbar) +{ + QVBoxLayout *layout = new QVBoxLayout; + setLayout(layout); + + QWidget *widget = new QWidget; + layout->addWidget(widget); + + QWidget *canvas = new QWidget; + canvas->setStyleSheet("QWidget { background: white; }"); + layout->addWidget(canvas); + + ui->setupUi(widget); + layout->setContentsMargins(20, 20, 20, 20); + + layout = new QVBoxLayout; + canvas->setLayout(layout); + canvas->setMaximumHeight(300); + + m_snackbar->setParent(this); + + setupForm(); + + connect(ui->showSnackbarButton, SIGNAL(pressed()), this, SLOT(showSnackbar())); +} + +SnackbarSettingsEditor::~SnackbarSettingsEditor() +{ + delete ui; +} + +void SnackbarSettingsEditor::setupForm() +{ +} + +void SnackbarSettingsEditor::updateWidget() +{ +} + +void SnackbarSettingsEditor::showSnackbar() +{ + m_snackbar->addMessage(QString("Snack attack!")); +} diff --git a/qt-material-widgets/examples/snackbarsettingseditor.h b/qt-material-widgets/examples/snackbarsettingseditor.h new file mode 100644 index 0000000..2e4eb0d --- /dev/null +++ b/qt-material-widgets/examples/snackbarsettingseditor.h @@ -0,0 +1,27 @@ +#ifndef SNACKBARSETTINGSEDITOR_H +#define SNACKBARSETTINGSEDITOR_H + +#include +#include "ui_snackbarsettingsform.h" + +class QtMaterialSnackbar; + +class SnackbarSettingsEditor : public QWidget +{ + Q_OBJECT + +public: + explicit SnackbarSettingsEditor(QWidget *parent = 0); + ~SnackbarSettingsEditor(); + +protected slots: + void setupForm(); + void updateWidget(); + void showSnackbar(); + +private: + Ui::SnackbarSettingsForm *const ui; + QtMaterialSnackbar *const m_snackbar; +}; + +#endif // SNACKBARSETTINGSEDITOR_H diff --git a/qt-material-widgets/examples/snackbarsettingsform.ui b/qt-material-widgets/examples/snackbarsettingsform.ui new file mode 100644 index 0000000..5d04747 --- /dev/null +++ b/qt-material-widgets/examples/snackbarsettingsform.ui @@ -0,0 +1,45 @@ + + + SnackbarSettingsForm + + + + 0 + 0 + 599 + 418 + + + + Form + + + + + 20 + 60 + 141 + 22 + + + + Show snackbar + + + + + + 20 + 30 + 171 + 16 + + + + TODO + + + + + + diff --git a/qt-material-widgets/examples/tabssettingseditor.cpp b/qt-material-widgets/examples/tabssettingseditor.cpp new file mode 100644 index 0000000..9b53a1d --- /dev/null +++ b/qt-material-widgets/examples/tabssettingseditor.cpp @@ -0,0 +1,52 @@ +#include "tabssettingseditor.h" +#include +#include +#include + +TabsSettingsEditor::TabsSettingsEditor(QWidget *parent) + : QWidget(parent), + ui(new Ui::TabsSettingsForm), + m_tabs(new QtMaterialTabs) +{ + QVBoxLayout *layout = new QVBoxLayout; + setLayout(layout); + + QWidget *widget = new QWidget; + layout->addWidget(widget); + + QWidget *canvas = new QWidget; + canvas->setStyleSheet("QWidget { background: white; }"); + layout->addWidget(canvas); + + ui->setupUi(widget); + layout->setContentsMargins(20, 20, 20, 20); + + layout = new QVBoxLayout; + canvas->setLayout(layout); + canvas->setMaximumHeight(300); + layout->addWidget(m_tabs); + layout->setAlignment(m_tabs, Qt::AlignHCenter); + + m_tabs->addTab("Media"); + m_tabs->addTab("Playback"); + m_tabs->addTab("Audio"); + m_tabs->addTab("Video"); + m_tabs->addTab("Tools"); + + m_tabs->setMinimumWidth(700); + + setupForm(); +} + +TabsSettingsEditor::~TabsSettingsEditor() +{ + delete ui; +} + +void TabsSettingsEditor::setupForm() +{ +} + +void TabsSettingsEditor::updateWidget() +{ +} diff --git a/qt-material-widgets/examples/tabssettingseditor.h b/qt-material-widgets/examples/tabssettingseditor.h new file mode 100644 index 0000000..7bf3e97 --- /dev/null +++ b/qt-material-widgets/examples/tabssettingseditor.h @@ -0,0 +1,26 @@ +#ifndef TABSSETTINGSEDITOR_H +#define TABSSETTINGSEDITOR_H + +#include +#include "ui_tabssettingsform.h" + +class QtMaterialTabs; + +class TabsSettingsEditor : public QWidget +{ + Q_OBJECT + +public: + explicit TabsSettingsEditor(QWidget *parent = 0); + ~TabsSettingsEditor(); + +protected slots: + void setupForm(); + void updateWidget(); + +private: + Ui::TabsSettingsForm *const ui; + QtMaterialTabs *const m_tabs; +}; + +#endif // TABSSETTINGSEDITOR_H diff --git a/qt-material-widgets/examples/tabssettingsform.ui b/qt-material-widgets/examples/tabssettingsform.ui new file mode 100644 index 0000000..5993d58 --- /dev/null +++ b/qt-material-widgets/examples/tabssettingsform.ui @@ -0,0 +1,32 @@ + + + TabsSettingsForm + + + + 0 + 0 + 474 + 387 + + + + Form + + + + + 10 + 70 + 171 + 16 + + + + TODO + + + + + + diff --git a/qt-material-widgets/examples/textfieldsettingseditor.cpp b/qt-material-widgets/examples/textfieldsettingseditor.cpp new file mode 100644 index 0000000..2b7fa8d --- /dev/null +++ b/qt-material-widgets/examples/textfieldsettingseditor.cpp @@ -0,0 +1,102 @@ +#include "textfieldsettingseditor.h" +#include +#include +#include + +TextFieldSettingsEditor::TextFieldSettingsEditor(QWidget *parent) + : QWidget(parent), + ui(new Ui::TextFieldSettingsForm), + m_textField(new QtMaterialTextField) +{ + QVBoxLayout *layout = new QVBoxLayout; + setLayout(layout); + + QWidget *widget = new QWidget; + layout->addWidget(widget); + + QWidget *canvas = new QWidget; + canvas->setStyleSheet("QWidget { background: white; }"); + layout->addWidget(canvas); + + ui->setupUi(widget); + layout->setContentsMargins(20, 20, 20, 20); + + layout = new QVBoxLayout; + canvas->setLayout(layout); + layout->addWidget(m_textField); + layout->setAlignment(m_textField, Qt::AlignCenter); + + m_textField->setLabel("Wat is this"); + m_textField->setMinimumWidth(250); + + setupForm(); + + connect(ui->disabledCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->textLineEdit, SIGNAL(textChanged(QString)), this, SLOT(updateWidget())); + connect(ui->placeholderLineEdit, SIGNAL(textChanged(QString)), this, SLOT(updateWidget())); + connect(ui->labelCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->labelTextLineEdit, SIGNAL(textChanged(QString)), this, SLOT(updateWidget())); + connect(ui->useThemeColorsCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->textColorToolButton, SIGNAL(pressed()), this, SLOT(selectColor())); + connect(ui->inkColorToolButton, SIGNAL(pressed()), this, SLOT(selectColor())); + connect(ui->inputLineColorToolButton, SIGNAL(pressed()), this, SLOT(selectColor())); + connect(ui->labelColorToolButton, SIGNAL(pressed()), this, SLOT(selectColor())); + connect(ui->inputLineCheckBox, SIGNAL(toggled(bool)), this, SLOT(setShowInputLine())); + + connect(m_textField, SIGNAL(textChanged(QString)), this, SLOT(setupForm())); +} + +TextFieldSettingsEditor::~TextFieldSettingsEditor() +{ + delete ui; +} + +void TextFieldSettingsEditor::setupForm() +{ + ui->disabledCheckBox->setChecked(!m_textField->isEnabled()); + ui->textLineEdit->setText(m_textField->text()); + ui->placeholderLineEdit->setText(m_textField->placeholderText()); + ui->labelCheckBox->setChecked(m_textField->hasLabel()); + ui->labelTextLineEdit->setText(m_textField->label()); + ui->useThemeColorsCheckBox->setChecked(m_textField->useThemeColors()); + ui->inputLineCheckBox->setChecked(m_textField->hasInputLine()); +} + +void TextFieldSettingsEditor::updateWidget() +{ + m_textField->setDisabled(ui->disabledCheckBox->isChecked()); + m_textField->setText(ui->textLineEdit->text()); + m_textField->setPlaceholderText(ui->placeholderLineEdit->text()); + m_textField->setLabel(ui->labelTextLineEdit->text()); + m_textField->setShowLabel(ui->labelCheckBox->isChecked()); + m_textField->setUseThemeColors(ui->useThemeColorsCheckBox->isChecked()); + m_textField->setShowInputLine(ui->inputLineCheckBox->isChecked()); +} + +void TextFieldSettingsEditor::selectColor() +{ + QColorDialog dialog; + if (dialog.exec()) { + QColor color = dialog.selectedColor(); + QString senderName = sender()->objectName(); + if ("textColorToolButton" == senderName) { + m_textField->setTextColor(color); + ui->textColorLineEdit->setText(color.name(QColor::HexRgb)); + } else if ("inkColorToolButton" == senderName) { + m_textField->setInkColor(color); + ui->inkColorLineEdit->setText(color.name(QColor::HexRgb)); + } else if ("inputLineColorToolButton" == senderName) { + m_textField->setInputLineColor(color); + ui->inputLineColorLineEdit->setText(color.name(QColor::HexRgb)); + } else if ("labelColorToolButton" == senderName) { + m_textField->setLabelColor(color); + ui->labelColorLineEdit->setText(color.name(QColor::HexRgb)); + } + } + setupForm(); +} + +void TextFieldSettingsEditor::setShowInputLine() +{ + m_textField->setShowInputLine( ui->inputLineCheckBox->isChecked() ); +} diff --git a/qt-material-widgets/examples/textfieldsettingseditor.h b/qt-material-widgets/examples/textfieldsettingseditor.h new file mode 100644 index 0000000..57f0d0f --- /dev/null +++ b/qt-material-widgets/examples/textfieldsettingseditor.h @@ -0,0 +1,28 @@ +#ifndef TEXTFIELDSETTINGSEDITOR_H +#define TEXTFIELDSETTINGSEDITOR_H + +#include +#include "ui_textfieldsettingsform.h" + +class QtMaterialTextField; + +class TextFieldSettingsEditor : public QWidget +{ + Q_OBJECT + +public: + explicit TextFieldSettingsEditor(QWidget *parent = 0); + ~TextFieldSettingsEditor(); + +protected slots: + void setupForm(); + void updateWidget(); + void selectColor(); + void setShowInputLine(); + +private: + Ui::TextFieldSettingsForm *const ui; + QtMaterialTextField *const m_textField; +}; + +#endif // TEXTFIELDSETTINGSEDITOR_H diff --git a/qt-material-widgets/examples/textfieldsettingsform.ui b/qt-material-widgets/examples/textfieldsettingsform.ui new file mode 100644 index 0000000..861ca55 --- /dev/null +++ b/qt-material-widgets/examples/textfieldsettingsform.ui @@ -0,0 +1,185 @@ + + + TextFieldSettingsForm + + + + 0 + 0 + 400 + 416 + + + + Form + + + + + 0 + 0 + 321 + 351 + + + + + + + Disabled + + + + + + + + + + Text + + + + + + + + + + Placeholder + + + + + + + + + + Label + + + + + + + + + + Label text + + + + + + + + + + Use theme colors + + + + + + + + + + Text color + + + + + + + + + + + + ... + + + + + + + + + Ink color + + + + + + + + + + + + ... + + + + + + + + + Input line color + + + + + + + + + + + + ... + + + + + + + + + Label color + + + + + + + + + + + + ... + + + + + + + + + Input line + + + + + + + + + + + + diff --git a/qt-material-widgets/examples/togglesettingseditor.cpp b/qt-material-widgets/examples/togglesettingseditor.cpp new file mode 100644 index 0000000..36fe978 --- /dev/null +++ b/qt-material-widgets/examples/togglesettingseditor.cpp @@ -0,0 +1,107 @@ +#include "togglesettingseditor.h" +#include +#include + +ToggleSettingsEditor::ToggleSettingsEditor(QWidget *parent) + : QWidget(parent), + ui(new Ui::ToggleSettingsForm), + m_toggle(new QtMaterialToggle) +{ + QVBoxLayout *layout = new QVBoxLayout; + setLayout(layout); + + QWidget *widget = new QWidget; + layout->addWidget(widget); + + QWidget *canvas = new QWidget; + canvas->setStyleSheet("QWidget { background: white; }"); + layout->addWidget(canvas); + + ui->setupUi(widget); + layout->setContentsMargins(20, 20, 20, 20); + + m_toggle->setOrientation(Qt::Vertical); + + layout = new QVBoxLayout; + canvas->setLayout(layout); + layout->addWidget(m_toggle); + layout->setAlignment(m_toggle, Qt::AlignCenter); + + setupForm(); + + connect(ui->disabledCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->checkedCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->orientationComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateWidget())); + connect(ui->useThemeColorsCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->disabledColorToolButton, SIGNAL(pressed()), this, SLOT(selectColor())); + connect(ui->activeColorToolButton, SIGNAL(pressed()), this, SLOT(selectColor())); + connect(ui->inactiveColorToolButton, SIGNAL(pressed()), this, SLOT(selectColor())); + connect(ui->trackColorToolButton, SIGNAL(pressed()), this, SLOT(selectColor())); + + connect(m_toggle, SIGNAL(toggled(bool)), this, SLOT(setupForm())); +} + +ToggleSettingsEditor::~ToggleSettingsEditor() +{ +} + +void ToggleSettingsEditor::setupForm() +{ + switch (m_toggle->orientation()) + { + case Qt::Horizontal: + ui->orientationComboBox->setCurrentIndex(0); + break; + case Qt::Vertical: + ui->orientationComboBox->setCurrentIndex(1); + break; + default: + break; + } + + ui->disabledCheckBox->setChecked(!m_toggle->isEnabled()); + ui->checkedCheckBox->setChecked(m_toggle->isChecked()); + ui->useThemeColorsCheckBox->setChecked(m_toggle->useThemeColors()); +} + +void ToggleSettingsEditor::updateWidget() +{ + switch (ui->orientationComboBox->currentIndex()) + { + case 0: + m_toggle->setOrientation(Qt::Horizontal); + break; + case 1: + m_toggle->setOrientation(Qt::Vertical); + break; + default: + break; + } + + m_toggle->setDisabled(ui->disabledCheckBox->isChecked()); + m_toggle->setChecked(ui->checkedCheckBox->isChecked()); + m_toggle->setUseThemeColors(ui->useThemeColorsCheckBox->isChecked()); +} + +void ToggleSettingsEditor::selectColor() +{ + QColorDialog dialog; + if (dialog.exec()) { + QColor color = dialog.selectedColor(); + QString senderName = sender()->objectName(); + if ("disabledColorToolButton" == senderName) { + m_toggle->setDisabledColor(color); + ui->disabledColorLineEdit->setText(color.name(QColor::HexRgb)); + } else if ("activeColorToolButton" == senderName) { + m_toggle->setActiveColor(color); + ui->activeColorLineEdit->setText(color.name(QColor::HexRgb)); + } else if ("inactiveColorToolButton" == senderName) { + m_toggle->setInactiveColor(color); + ui->inactiveColorLineEdit->setText(color.name(QColor::HexRgb)); + } else if ("trackColorToolButton" == senderName) { + m_toggle->setTrackColor(color); + ui->trackColorLineEdit->setText(color.name(QColor::HexRgb)); + } + } + setupForm(); +} diff --git a/qt-material-widgets/examples/togglesettingseditor.h b/qt-material-widgets/examples/togglesettingseditor.h new file mode 100644 index 0000000..a74553e --- /dev/null +++ b/qt-material-widgets/examples/togglesettingseditor.h @@ -0,0 +1,27 @@ +#ifndef TOGGLESETTINGSEDITOR_H +#define TOGGLESETTINGSEDITOR_H + +#include +#include "ui_togglesettingsform.h" + +class QtMaterialToggle; + +class ToggleSettingsEditor : public QWidget +{ + Q_OBJECT + +public: + explicit ToggleSettingsEditor(QWidget *parent = 0); + ~ToggleSettingsEditor(); + +protected slots: + void setupForm(); + void updateWidget(); + void selectColor(); + +private: + Ui::ToggleSettingsForm *const ui; + QtMaterialToggle *const m_toggle; +}; + +#endif // TOGGLESETTINGSEDITOR_H diff --git a/qt-material-widgets/examples/togglesettingsform.ui b/qt-material-widgets/examples/togglesettingsform.ui new file mode 100644 index 0000000..a6edbb7 --- /dev/null +++ b/qt-material-widgets/examples/togglesettingsform.ui @@ -0,0 +1,166 @@ + + + ToggleSettingsForm + + + + 0 + 0 + 482 + 427 + + + + Form + + + + + 0 + 0 + 441 + 341 + + + + + + + Disabled + + + + + + + + + + Checked + + + + + + + + + + Orientation + + + + + + + + Horizontal + + + + + Vertical + + + + + + + + Active color + + + + + + + Inactive color + + + + + + + Disabled color + + + + + + + Track color + + + + + + + + + + + + ... + + + + + + + + + + + + + + ... + + + + + + + + + + + + + + ... + + + + + + + + + + + + + + ... + + + + + + + + + Use theme colors + + + + + + + + + + + + diff --git a/qt-material-widgets/examples/ui_appbarsettingsform.h b/qt-material-widgets/examples/ui_appbarsettingsform.h new file mode 100644 index 0000000..5495966 --- /dev/null +++ b/qt-material-widgets/examples/ui_appbarsettingsform.h @@ -0,0 +1,100 @@ +/******************************************************************************** +** Form generated from reading UI file 'appbarsettingsform.ui' +** +** Created by: Qt User Interface Compiler version 5.15.2 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_APPBARSETTINGSFORM_H +#define UI_APPBARSETTINGSFORM_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_AppBarSettingsForm +{ +public: + QWidget *formLayoutWidget; + QFormLayout *formLayout; + QLabel *useThemeColorsLabel; + QCheckBox *useThemeColorsCheckBox; + QLabel *backgroundColorLabel; + QHBoxLayout *horizontalLayout_5; + QLineEdit *backgroundColorLineEdit; + QToolButton *backgroundColorToolButton; + + void setupUi(QWidget *AppBarSettingsForm) + { + if (AppBarSettingsForm->objectName().isEmpty()) + AppBarSettingsForm->setObjectName(QString::fromUtf8("AppBarSettingsForm")); + AppBarSettingsForm->resize(474, 387); + formLayoutWidget = new QWidget(AppBarSettingsForm); + formLayoutWidget->setObjectName(QString::fromUtf8("formLayoutWidget")); + formLayoutWidget->setGeometry(QRect(0, 0, 221, 231)); + formLayout = new QFormLayout(formLayoutWidget); + formLayout->setObjectName(QString::fromUtf8("formLayout")); + formLayout->setContentsMargins(0, 0, 0, 0); + useThemeColorsLabel = new QLabel(formLayoutWidget); + useThemeColorsLabel->setObjectName(QString::fromUtf8("useThemeColorsLabel")); + + formLayout->setWidget(0, QFormLayout::LabelRole, useThemeColorsLabel); + + useThemeColorsCheckBox = new QCheckBox(formLayoutWidget); + useThemeColorsCheckBox->setObjectName(QString::fromUtf8("useThemeColorsCheckBox")); + + formLayout->setWidget(0, QFormLayout::FieldRole, useThemeColorsCheckBox); + + backgroundColorLabel = new QLabel(formLayoutWidget); + backgroundColorLabel->setObjectName(QString::fromUtf8("backgroundColorLabel")); + + formLayout->setWidget(1, QFormLayout::LabelRole, backgroundColorLabel); + + horizontalLayout_5 = new QHBoxLayout(); + horizontalLayout_5->setObjectName(QString::fromUtf8("horizontalLayout_5")); + backgroundColorLineEdit = new QLineEdit(formLayoutWidget); + backgroundColorLineEdit->setObjectName(QString::fromUtf8("backgroundColorLineEdit")); + backgroundColorLineEdit->setEnabled(false); + + horizontalLayout_5->addWidget(backgroundColorLineEdit); + + backgroundColorToolButton = new QToolButton(formLayoutWidget); + backgroundColorToolButton->setObjectName(QString::fromUtf8("backgroundColorToolButton")); + + horizontalLayout_5->addWidget(backgroundColorToolButton); + + + formLayout->setLayout(1, QFormLayout::FieldRole, horizontalLayout_5); + + + retranslateUi(AppBarSettingsForm); + + QMetaObject::connectSlotsByName(AppBarSettingsForm); + } // setupUi + + void retranslateUi(QWidget *AppBarSettingsForm) + { + AppBarSettingsForm->setWindowTitle(QCoreApplication::translate("AppBarSettingsForm", "Form", nullptr)); + useThemeColorsLabel->setText(QCoreApplication::translate("AppBarSettingsForm", "Use theme colors", nullptr)); + backgroundColorLabel->setText(QCoreApplication::translate("AppBarSettingsForm", "Background color", nullptr)); + backgroundColorToolButton->setText(QCoreApplication::translate("AppBarSettingsForm", "...", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class AppBarSettingsForm: public Ui_AppBarSettingsForm {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_APPBARSETTINGSFORM_H diff --git a/qt-material-widgets/examples/ui_avatarsettingsform.h b/qt-material-widgets/examples/ui_avatarsettingsform.h new file mode 100644 index 0000000..87fb3f0 --- /dev/null +++ b/qt-material-widgets/examples/ui_avatarsettingsform.h @@ -0,0 +1,175 @@ +/******************************************************************************** +** Form generated from reading UI file 'avatarsettingsform.ui' +** +** Created by: Qt User Interface Compiler version 5.15.2 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_AVATARSETTINGSFORM_H +#define UI_AVATARSETTINGSFORM_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_AvatarSettingsForm +{ +public: + QWidget *formLayoutWidget; + QFormLayout *formLayout; + QLabel *useThemeColorsLabel; + QCheckBox *useThemeColorsCheckBox; + QLabel *textColorLabel; + QHBoxLayout *horizontalLayout_4; + QLineEdit *textColorLineEdit; + QToolButton *textColorToolButton; + QLabel *backgroundColorLabel; + QHBoxLayout *horizontalLayout_5; + QLineEdit *backgroundColorLineEdit; + QToolButton *backgroundColorToolButton; + QLabel *sizeLabel; + QSpinBox *sizeSpinBox; + QLabel *typeLabel; + QComboBox *typeComboBox; + QLabel *disabledLabel; + QCheckBox *disabledCheckBox; + + void setupUi(QWidget *AvatarSettingsForm) + { + if (AvatarSettingsForm->objectName().isEmpty()) + AvatarSettingsForm->setObjectName(QString::fromUtf8("AvatarSettingsForm")); + AvatarSettingsForm->resize(400, 300); + formLayoutWidget = new QWidget(AvatarSettingsForm); + formLayoutWidget->setObjectName(QString::fromUtf8("formLayoutWidget")); + formLayoutWidget->setGeometry(QRect(0, 0, 221, 231)); + formLayout = new QFormLayout(formLayoutWidget); + formLayout->setObjectName(QString::fromUtf8("formLayout")); + formLayout->setContentsMargins(0, 0, 0, 0); + useThemeColorsLabel = new QLabel(formLayoutWidget); + useThemeColorsLabel->setObjectName(QString::fromUtf8("useThemeColorsLabel")); + + formLayout->setWidget(1, QFormLayout::LabelRole, useThemeColorsLabel); + + useThemeColorsCheckBox = new QCheckBox(formLayoutWidget); + useThemeColorsCheckBox->setObjectName(QString::fromUtf8("useThemeColorsCheckBox")); + + formLayout->setWidget(1, QFormLayout::FieldRole, useThemeColorsCheckBox); + + textColorLabel = new QLabel(formLayoutWidget); + textColorLabel->setObjectName(QString::fromUtf8("textColorLabel")); + + formLayout->setWidget(2, QFormLayout::LabelRole, textColorLabel); + + horizontalLayout_4 = new QHBoxLayout(); + horizontalLayout_4->setObjectName(QString::fromUtf8("horizontalLayout_4")); + textColorLineEdit = new QLineEdit(formLayoutWidget); + textColorLineEdit->setObjectName(QString::fromUtf8("textColorLineEdit")); + textColorLineEdit->setEnabled(false); + + horizontalLayout_4->addWidget(textColorLineEdit); + + textColorToolButton = new QToolButton(formLayoutWidget); + textColorToolButton->setObjectName(QString::fromUtf8("textColorToolButton")); + + horizontalLayout_4->addWidget(textColorToolButton); + + + formLayout->setLayout(2, QFormLayout::FieldRole, horizontalLayout_4); + + backgroundColorLabel = new QLabel(formLayoutWidget); + backgroundColorLabel->setObjectName(QString::fromUtf8("backgroundColorLabel")); + + formLayout->setWidget(3, QFormLayout::LabelRole, backgroundColorLabel); + + horizontalLayout_5 = new QHBoxLayout(); + horizontalLayout_5->setObjectName(QString::fromUtf8("horizontalLayout_5")); + backgroundColorLineEdit = new QLineEdit(formLayoutWidget); + backgroundColorLineEdit->setObjectName(QString::fromUtf8("backgroundColorLineEdit")); + backgroundColorLineEdit->setEnabled(false); + + horizontalLayout_5->addWidget(backgroundColorLineEdit); + + backgroundColorToolButton = new QToolButton(formLayoutWidget); + backgroundColorToolButton->setObjectName(QString::fromUtf8("backgroundColorToolButton")); + + horizontalLayout_5->addWidget(backgroundColorToolButton); + + + formLayout->setLayout(3, QFormLayout::FieldRole, horizontalLayout_5); + + sizeLabel = new QLabel(formLayoutWidget); + sizeLabel->setObjectName(QString::fromUtf8("sizeLabel")); + + formLayout->setWidget(4, QFormLayout::LabelRole, sizeLabel); + + sizeSpinBox = new QSpinBox(formLayoutWidget); + sizeSpinBox->setObjectName(QString::fromUtf8("sizeSpinBox")); + + formLayout->setWidget(4, QFormLayout::FieldRole, sizeSpinBox); + + typeLabel = new QLabel(formLayoutWidget); + typeLabel->setObjectName(QString::fromUtf8("typeLabel")); + + formLayout->setWidget(5, QFormLayout::LabelRole, typeLabel); + + typeComboBox = new QComboBox(formLayoutWidget); + typeComboBox->addItem(QString()); + typeComboBox->addItem(QString()); + typeComboBox->addItem(QString()); + typeComboBox->setObjectName(QString::fromUtf8("typeComboBox")); + + formLayout->setWidget(5, QFormLayout::FieldRole, typeComboBox); + + disabledLabel = new QLabel(formLayoutWidget); + disabledLabel->setObjectName(QString::fromUtf8("disabledLabel")); + + formLayout->setWidget(0, QFormLayout::LabelRole, disabledLabel); + + disabledCheckBox = new QCheckBox(formLayoutWidget); + disabledCheckBox->setObjectName(QString::fromUtf8("disabledCheckBox")); + + formLayout->setWidget(0, QFormLayout::FieldRole, disabledCheckBox); + + + retranslateUi(AvatarSettingsForm); + + QMetaObject::connectSlotsByName(AvatarSettingsForm); + } // setupUi + + void retranslateUi(QWidget *AvatarSettingsForm) + { + AvatarSettingsForm->setWindowTitle(QCoreApplication::translate("AvatarSettingsForm", "Form", nullptr)); + useThemeColorsLabel->setText(QCoreApplication::translate("AvatarSettingsForm", "Use theme colors", nullptr)); + textColorLabel->setText(QCoreApplication::translate("AvatarSettingsForm", "Text color", nullptr)); + textColorToolButton->setText(QCoreApplication::translate("AvatarSettingsForm", "...", nullptr)); + backgroundColorLabel->setText(QCoreApplication::translate("AvatarSettingsForm", "Background color", nullptr)); + backgroundColorToolButton->setText(QCoreApplication::translate("AvatarSettingsForm", "...", nullptr)); + sizeLabel->setText(QCoreApplication::translate("AvatarSettingsForm", "Size", nullptr)); + typeLabel->setText(QCoreApplication::translate("AvatarSettingsForm", "Type", nullptr)); + typeComboBox->setItemText(0, QCoreApplication::translate("AvatarSettingsForm", "Letter", nullptr)); + typeComboBox->setItemText(1, QCoreApplication::translate("AvatarSettingsForm", "Image", nullptr)); + typeComboBox->setItemText(2, QCoreApplication::translate("AvatarSettingsForm", "Icon", nullptr)); + + disabledLabel->setText(QCoreApplication::translate("AvatarSettingsForm", "Disabled", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class AvatarSettingsForm: public Ui_AvatarSettingsForm {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_AVATARSETTINGSFORM_H diff --git a/qt-material-widgets/examples/ui_badgesettingsform.h b/qt-material-widgets/examples/ui_badgesettingsform.h new file mode 100644 index 0000000..64e8479 --- /dev/null +++ b/qt-material-widgets/examples/ui_badgesettingsform.h @@ -0,0 +1,186 @@ +/******************************************************************************** +** Form generated from reading UI file 'badgesettingsform.ui' +** +** Created by: Qt User Interface Compiler version 5.15.2 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_BADGESETTINGSFORM_H +#define UI_BADGESETTINGSFORM_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_BadgeSettingsForm +{ +public: + QWidget *formLayoutWidget; + QFormLayout *formLayout; + QLabel *disabledLabel; + QCheckBox *disabledCheckBox; + QLabel *useThemeColorsLabel; + QCheckBox *useThemeColorsCheckBox; + QLabel *backgroundColorLabel; + QLabel *textColorLabel; + QLabel *horizontalOffsetLabel; + QSpinBox *horizontalOffsetSpinBox; + QLabel *verticalOffsetLabel; + QSpinBox *verticalOffsetSpinBox; + QLabel *typeLabel; + QComboBox *typeComboBox; + QHBoxLayout *horizontalLayout; + QLineEdit *backgroundColorLineEdit; + QToolButton *backgroundColorToolButton; + QHBoxLayout *horizontalLayout_2; + QLineEdit *textColorLineEdit; + QToolButton *textColorToolButton; + + void setupUi(QWidget *BadgeSettingsForm) + { + if (BadgeSettingsForm->objectName().isEmpty()) + BadgeSettingsForm->setObjectName(QString::fromUtf8("BadgeSettingsForm")); + BadgeSettingsForm->resize(400, 300); + formLayoutWidget = new QWidget(BadgeSettingsForm); + formLayoutWidget->setObjectName(QString::fromUtf8("formLayoutWidget")); + formLayoutWidget->setGeometry(QRect(0, 0, 201, 231)); + formLayout = new QFormLayout(formLayoutWidget); + formLayout->setObjectName(QString::fromUtf8("formLayout")); + formLayout->setContentsMargins(0, 0, 0, 0); + disabledLabel = new QLabel(formLayoutWidget); + disabledLabel->setObjectName(QString::fromUtf8("disabledLabel")); + + formLayout->setWidget(0, QFormLayout::LabelRole, disabledLabel); + + disabledCheckBox = new QCheckBox(formLayoutWidget); + disabledCheckBox->setObjectName(QString::fromUtf8("disabledCheckBox")); + + formLayout->setWidget(0, QFormLayout::FieldRole, disabledCheckBox); + + useThemeColorsLabel = new QLabel(formLayoutWidget); + useThemeColorsLabel->setObjectName(QString::fromUtf8("useThemeColorsLabel")); + + formLayout->setWidget(1, QFormLayout::LabelRole, useThemeColorsLabel); + + useThemeColorsCheckBox = new QCheckBox(formLayoutWidget); + useThemeColorsCheckBox->setObjectName(QString::fromUtf8("useThemeColorsCheckBox")); + + formLayout->setWidget(1, QFormLayout::FieldRole, useThemeColorsCheckBox); + + backgroundColorLabel = new QLabel(formLayoutWidget); + backgroundColorLabel->setObjectName(QString::fromUtf8("backgroundColorLabel")); + + formLayout->setWidget(2, QFormLayout::LabelRole, backgroundColorLabel); + + textColorLabel = new QLabel(formLayoutWidget); + textColorLabel->setObjectName(QString::fromUtf8("textColorLabel")); + + formLayout->setWidget(3, QFormLayout::LabelRole, textColorLabel); + + horizontalOffsetLabel = new QLabel(formLayoutWidget); + horizontalOffsetLabel->setObjectName(QString::fromUtf8("horizontalOffsetLabel")); + + formLayout->setWidget(4, QFormLayout::LabelRole, horizontalOffsetLabel); + + horizontalOffsetSpinBox = new QSpinBox(formLayoutWidget); + horizontalOffsetSpinBox->setObjectName(QString::fromUtf8("horizontalOffsetSpinBox")); + + formLayout->setWidget(4, QFormLayout::FieldRole, horizontalOffsetSpinBox); + + verticalOffsetLabel = new QLabel(formLayoutWidget); + verticalOffsetLabel->setObjectName(QString::fromUtf8("verticalOffsetLabel")); + + formLayout->setWidget(5, QFormLayout::LabelRole, verticalOffsetLabel); + + verticalOffsetSpinBox = new QSpinBox(formLayoutWidget); + verticalOffsetSpinBox->setObjectName(QString::fromUtf8("verticalOffsetSpinBox")); + + formLayout->setWidget(5, QFormLayout::FieldRole, verticalOffsetSpinBox); + + typeLabel = new QLabel(formLayoutWidget); + typeLabel->setObjectName(QString::fromUtf8("typeLabel")); + + formLayout->setWidget(6, QFormLayout::LabelRole, typeLabel); + + typeComboBox = new QComboBox(formLayoutWidget); + typeComboBox->addItem(QString()); + typeComboBox->addItem(QString()); + typeComboBox->setObjectName(QString::fromUtf8("typeComboBox")); + + formLayout->setWidget(6, QFormLayout::FieldRole, typeComboBox); + + horizontalLayout = new QHBoxLayout(); + horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); + backgroundColorLineEdit = new QLineEdit(formLayoutWidget); + backgroundColorLineEdit->setObjectName(QString::fromUtf8("backgroundColorLineEdit")); + backgroundColorLineEdit->setEnabled(false); + + horizontalLayout->addWidget(backgroundColorLineEdit); + + backgroundColorToolButton = new QToolButton(formLayoutWidget); + backgroundColorToolButton->setObjectName(QString::fromUtf8("backgroundColorToolButton")); + + horizontalLayout->addWidget(backgroundColorToolButton); + + + formLayout->setLayout(2, QFormLayout::FieldRole, horizontalLayout); + + horizontalLayout_2 = new QHBoxLayout(); + horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2")); + textColorLineEdit = new QLineEdit(formLayoutWidget); + textColorLineEdit->setObjectName(QString::fromUtf8("textColorLineEdit")); + textColorLineEdit->setEnabled(false); + + horizontalLayout_2->addWidget(textColorLineEdit); + + textColorToolButton = new QToolButton(formLayoutWidget); + textColorToolButton->setObjectName(QString::fromUtf8("textColorToolButton")); + + horizontalLayout_2->addWidget(textColorToolButton); + + + formLayout->setLayout(3, QFormLayout::FieldRole, horizontalLayout_2); + + + retranslateUi(BadgeSettingsForm); + + QMetaObject::connectSlotsByName(BadgeSettingsForm); + } // setupUi + + void retranslateUi(QWidget *BadgeSettingsForm) + { + BadgeSettingsForm->setWindowTitle(QCoreApplication::translate("BadgeSettingsForm", "Form", nullptr)); + disabledLabel->setText(QCoreApplication::translate("BadgeSettingsForm", "Disabled", nullptr)); + useThemeColorsLabel->setText(QCoreApplication::translate("BadgeSettingsForm", "Use theme colors", nullptr)); + backgroundColorLabel->setText(QCoreApplication::translate("BadgeSettingsForm", "Background color", nullptr)); + textColorLabel->setText(QCoreApplication::translate("BadgeSettingsForm", "Text color", nullptr)); + horizontalOffsetLabel->setText(QCoreApplication::translate("BadgeSettingsForm", "Horizontal offset", nullptr)); + verticalOffsetLabel->setText(QCoreApplication::translate("BadgeSettingsForm", "Vertical offset", nullptr)); + typeLabel->setText(QCoreApplication::translate("BadgeSettingsForm", "Type", nullptr)); + typeComboBox->setItemText(0, QCoreApplication::translate("BadgeSettingsForm", "Text", nullptr)); + typeComboBox->setItemText(1, QCoreApplication::translate("BadgeSettingsForm", "Icon", nullptr)); + + backgroundColorToolButton->setText(QCoreApplication::translate("BadgeSettingsForm", "...", nullptr)); + textColorToolButton->setText(QCoreApplication::translate("BadgeSettingsForm", "...", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class BadgeSettingsForm: public Ui_BadgeSettingsForm {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_BADGESETTINGSFORM_H diff --git a/qt-material-widgets/examples/ui_checkboxsettingsform.h b/qt-material-widgets/examples/ui_checkboxsettingsform.h new file mode 100644 index 0000000..293816b --- /dev/null +++ b/qt-material-widgets/examples/ui_checkboxsettingsform.h @@ -0,0 +1,235 @@ +/******************************************************************************** +** Form generated from reading UI file 'checkboxsettingsform.ui' +** +** Created by: Qt User Interface Compiler version 5.15.2 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_CHECKBOXSETTINGSFORM_H +#define UI_CHECKBOXSETTINGSFORM_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_CheckBoxSettingsForm +{ +public: + QWidget *formLayoutWidget; + QFormLayout *formLayout; + QLabel *disabledLabel; + QCheckBox *disabledCheckBox; + QLabel *labelPositionLabel; + QComboBox *labelPositionComboBox; + QLabel *labelTextLabel; + QLineEdit *labelTextLineEdit; + QLabel *checkedLabel; + QCheckBox *checkedCheckBox; + QLabel *useThemeColorsLabel; + QCheckBox *useThemeColorsCheckBox; + QLabel *checkedColorLabel; + QHBoxLayout *horizontalLayout; + QLineEdit *checkedColorLineEdit; + QToolButton *checkedColorToolButton; + QLabel *uncheckedColorLabel; + QHBoxLayout *horizontalLayout_2; + QLineEdit *uncheckedColorLineEdit; + QToolButton *uncheckedColorToolButton; + QLabel *textColorLabel; + QLabel *disabledColorLabel; + QHBoxLayout *horizontalLayout_3; + QLineEdit *textColorLineEdit; + QToolButton *textColorToolButton; + QHBoxLayout *horizontalLayout_4; + QLineEdit *disabledColorLineEdit; + QToolButton *disabledColorToolButton; + + void setupUi(QWidget *CheckBoxSettingsForm) + { + if (CheckBoxSettingsForm->objectName().isEmpty()) + CheckBoxSettingsForm->setObjectName(QString::fromUtf8("CheckBoxSettingsForm")); + CheckBoxSettingsForm->resize(400, 300); + formLayoutWidget = new QWidget(CheckBoxSettingsForm); + formLayoutWidget->setObjectName(QString::fromUtf8("formLayoutWidget")); + formLayoutWidget->setGeometry(QRect(0, 0, 301, 281)); + formLayout = new QFormLayout(formLayoutWidget); + formLayout->setObjectName(QString::fromUtf8("formLayout")); + formLayout->setContentsMargins(0, 0, 0, 0); + disabledLabel = new QLabel(formLayoutWidget); + disabledLabel->setObjectName(QString::fromUtf8("disabledLabel")); + + formLayout->setWidget(0, QFormLayout::LabelRole, disabledLabel); + + disabledCheckBox = new QCheckBox(formLayoutWidget); + disabledCheckBox->setObjectName(QString::fromUtf8("disabledCheckBox")); + + formLayout->setWidget(0, QFormLayout::FieldRole, disabledCheckBox); + + labelPositionLabel = new QLabel(formLayoutWidget); + labelPositionLabel->setObjectName(QString::fromUtf8("labelPositionLabel")); + + formLayout->setWidget(1, QFormLayout::LabelRole, labelPositionLabel); + + labelPositionComboBox = new QComboBox(formLayoutWidget); + labelPositionComboBox->addItem(QString()); + labelPositionComboBox->addItem(QString()); + labelPositionComboBox->setObjectName(QString::fromUtf8("labelPositionComboBox")); + + formLayout->setWidget(1, QFormLayout::FieldRole, labelPositionComboBox); + + labelTextLabel = new QLabel(formLayoutWidget); + labelTextLabel->setObjectName(QString::fromUtf8("labelTextLabel")); + + formLayout->setWidget(2, QFormLayout::LabelRole, labelTextLabel); + + labelTextLineEdit = new QLineEdit(formLayoutWidget); + labelTextLineEdit->setObjectName(QString::fromUtf8("labelTextLineEdit")); + + formLayout->setWidget(2, QFormLayout::FieldRole, labelTextLineEdit); + + checkedLabel = new QLabel(formLayoutWidget); + checkedLabel->setObjectName(QString::fromUtf8("checkedLabel")); + + formLayout->setWidget(3, QFormLayout::LabelRole, checkedLabel); + + checkedCheckBox = new QCheckBox(formLayoutWidget); + checkedCheckBox->setObjectName(QString::fromUtf8("checkedCheckBox")); + + formLayout->setWidget(3, QFormLayout::FieldRole, checkedCheckBox); + + useThemeColorsLabel = new QLabel(formLayoutWidget); + useThemeColorsLabel->setObjectName(QString::fromUtf8("useThemeColorsLabel")); + + formLayout->setWidget(4, QFormLayout::LabelRole, useThemeColorsLabel); + + useThemeColorsCheckBox = new QCheckBox(formLayoutWidget); + useThemeColorsCheckBox->setObjectName(QString::fromUtf8("useThemeColorsCheckBox")); + + formLayout->setWidget(4, QFormLayout::FieldRole, useThemeColorsCheckBox); + + checkedColorLabel = new QLabel(formLayoutWidget); + checkedColorLabel->setObjectName(QString::fromUtf8("checkedColorLabel")); + + formLayout->setWidget(5, QFormLayout::LabelRole, checkedColorLabel); + + horizontalLayout = new QHBoxLayout(); + horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); + checkedColorLineEdit = new QLineEdit(formLayoutWidget); + checkedColorLineEdit->setObjectName(QString::fromUtf8("checkedColorLineEdit")); + + horizontalLayout->addWidget(checkedColorLineEdit); + + checkedColorToolButton = new QToolButton(formLayoutWidget); + checkedColorToolButton->setObjectName(QString::fromUtf8("checkedColorToolButton")); + + horizontalLayout->addWidget(checkedColorToolButton); + + + formLayout->setLayout(5, QFormLayout::FieldRole, horizontalLayout); + + uncheckedColorLabel = new QLabel(formLayoutWidget); + uncheckedColorLabel->setObjectName(QString::fromUtf8("uncheckedColorLabel")); + + formLayout->setWidget(6, QFormLayout::LabelRole, uncheckedColorLabel); + + horizontalLayout_2 = new QHBoxLayout(); + horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2")); + uncheckedColorLineEdit = new QLineEdit(formLayoutWidget); + uncheckedColorLineEdit->setObjectName(QString::fromUtf8("uncheckedColorLineEdit")); + + horizontalLayout_2->addWidget(uncheckedColorLineEdit); + + uncheckedColorToolButton = new QToolButton(formLayoutWidget); + uncheckedColorToolButton->setObjectName(QString::fromUtf8("uncheckedColorToolButton")); + + horizontalLayout_2->addWidget(uncheckedColorToolButton); + + + formLayout->setLayout(6, QFormLayout::FieldRole, horizontalLayout_2); + + textColorLabel = new QLabel(formLayoutWidget); + textColorLabel->setObjectName(QString::fromUtf8("textColorLabel")); + + formLayout->setWidget(7, QFormLayout::LabelRole, textColorLabel); + + disabledColorLabel = new QLabel(formLayoutWidget); + disabledColorLabel->setObjectName(QString::fromUtf8("disabledColorLabel")); + + formLayout->setWidget(8, QFormLayout::LabelRole, disabledColorLabel); + + horizontalLayout_3 = new QHBoxLayout(); + horizontalLayout_3->setObjectName(QString::fromUtf8("horizontalLayout_3")); + textColorLineEdit = new QLineEdit(formLayoutWidget); + textColorLineEdit->setObjectName(QString::fromUtf8("textColorLineEdit")); + + horizontalLayout_3->addWidget(textColorLineEdit); + + textColorToolButton = new QToolButton(formLayoutWidget); + textColorToolButton->setObjectName(QString::fromUtf8("textColorToolButton")); + + horizontalLayout_3->addWidget(textColorToolButton); + + + formLayout->setLayout(7, QFormLayout::FieldRole, horizontalLayout_3); + + horizontalLayout_4 = new QHBoxLayout(); + horizontalLayout_4->setObjectName(QString::fromUtf8("horizontalLayout_4")); + disabledColorLineEdit = new QLineEdit(formLayoutWidget); + disabledColorLineEdit->setObjectName(QString::fromUtf8("disabledColorLineEdit")); + + horizontalLayout_4->addWidget(disabledColorLineEdit); + + disabledColorToolButton = new QToolButton(formLayoutWidget); + disabledColorToolButton->setObjectName(QString::fromUtf8("disabledColorToolButton")); + + horizontalLayout_4->addWidget(disabledColorToolButton); + + + formLayout->setLayout(8, QFormLayout::FieldRole, horizontalLayout_4); + + + retranslateUi(CheckBoxSettingsForm); + + QMetaObject::connectSlotsByName(CheckBoxSettingsForm); + } // setupUi + + void retranslateUi(QWidget *CheckBoxSettingsForm) + { + CheckBoxSettingsForm->setWindowTitle(QCoreApplication::translate("CheckBoxSettingsForm", "Form", nullptr)); + disabledLabel->setText(QCoreApplication::translate("CheckBoxSettingsForm", "Disabled", nullptr)); + labelPositionLabel->setText(QCoreApplication::translate("CheckBoxSettingsForm", "Label position", nullptr)); + labelPositionComboBox->setItemText(0, QCoreApplication::translate("CheckBoxSettingsForm", "Left", nullptr)); + labelPositionComboBox->setItemText(1, QCoreApplication::translate("CheckBoxSettingsForm", "Right", nullptr)); + + labelTextLabel->setText(QCoreApplication::translate("CheckBoxSettingsForm", "Label text", nullptr)); + checkedLabel->setText(QCoreApplication::translate("CheckBoxSettingsForm", "Checked", nullptr)); + useThemeColorsLabel->setText(QCoreApplication::translate("CheckBoxSettingsForm", "Use theme colors", nullptr)); + checkedColorLabel->setText(QCoreApplication::translate("CheckBoxSettingsForm", "Checked color", nullptr)); + checkedColorToolButton->setText(QCoreApplication::translate("CheckBoxSettingsForm", "...", nullptr)); + uncheckedColorLabel->setText(QCoreApplication::translate("CheckBoxSettingsForm", "Unchecked color", nullptr)); + uncheckedColorToolButton->setText(QCoreApplication::translate("CheckBoxSettingsForm", "...", nullptr)); + textColorLabel->setText(QCoreApplication::translate("CheckBoxSettingsForm", "Text color", nullptr)); + disabledColorLabel->setText(QCoreApplication::translate("CheckBoxSettingsForm", "Disabled color", nullptr)); + textColorToolButton->setText(QCoreApplication::translate("CheckBoxSettingsForm", "...", nullptr)); + disabledColorToolButton->setText(QCoreApplication::translate("CheckBoxSettingsForm", "...", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class CheckBoxSettingsForm: public Ui_CheckBoxSettingsForm {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_CHECKBOXSETTINGSFORM_H diff --git a/qt-material-widgets/examples/ui_circularprogresssettingsform.h b/qt-material-widgets/examples/ui_circularprogresssettingsform.h new file mode 100644 index 0000000..1c23815 --- /dev/null +++ b/qt-material-widgets/examples/ui_circularprogresssettingsform.h @@ -0,0 +1,174 @@ +/******************************************************************************** +** Form generated from reading UI file 'circularprogresssettingsform.ui' +** +** Created by: Qt User Interface Compiler version 5.15.2 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_CIRCULARPROGRESSSETTINGSFORM_H +#define UI_CIRCULARPROGRESSSETTINGSFORM_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_CircularProgressSettingsForm +{ +public: + QWidget *formLayoutWidget; + QFormLayout *formLayout; + QLabel *disabledLabel; + QCheckBox *disabledCheckBox; + QLabel *progressTypeLabel; + QComboBox *progressTypeComboBox; + QLabel *lineWidthLabel; + QDoubleSpinBox *lineWidthDoubleSpinBox; + QLabel *sizeLabel; + QSpinBox *sizeSpinBox; + QLabel *useThemeColorsLabel; + QCheckBox *useThemeColorsCheckBox; + QLabel *colorLabel; + QHBoxLayout *horizontalLayout; + QLineEdit *colorLineEdit; + QToolButton *colorToolButton; + QLabel *progressLabel; + QSlider *progressSlider; + + void setupUi(QWidget *CircularProgressSettingsForm) + { + if (CircularProgressSettingsForm->objectName().isEmpty()) + CircularProgressSettingsForm->setObjectName(QString::fromUtf8("CircularProgressSettingsForm")); + CircularProgressSettingsForm->resize(400, 300); + formLayoutWidget = new QWidget(CircularProgressSettingsForm); + formLayoutWidget->setObjectName(QString::fromUtf8("formLayoutWidget")); + formLayoutWidget->setGeometry(QRect(0, 0, 221, 197)); + formLayout = new QFormLayout(formLayoutWidget); + formLayout->setObjectName(QString::fromUtf8("formLayout")); + formLayout->setContentsMargins(0, 0, 0, 0); + disabledLabel = new QLabel(formLayoutWidget); + disabledLabel->setObjectName(QString::fromUtf8("disabledLabel")); + + formLayout->setWidget(0, QFormLayout::LabelRole, disabledLabel); + + disabledCheckBox = new QCheckBox(formLayoutWidget); + disabledCheckBox->setObjectName(QString::fromUtf8("disabledCheckBox")); + + formLayout->setWidget(0, QFormLayout::FieldRole, disabledCheckBox); + + progressTypeLabel = new QLabel(formLayoutWidget); + progressTypeLabel->setObjectName(QString::fromUtf8("progressTypeLabel")); + + formLayout->setWidget(1, QFormLayout::LabelRole, progressTypeLabel); + + progressTypeComboBox = new QComboBox(formLayoutWidget); + progressTypeComboBox->addItem(QString()); + progressTypeComboBox->addItem(QString()); + progressTypeComboBox->setObjectName(QString::fromUtf8("progressTypeComboBox")); + + formLayout->setWidget(1, QFormLayout::FieldRole, progressTypeComboBox); + + lineWidthLabel = new QLabel(formLayoutWidget); + lineWidthLabel->setObjectName(QString::fromUtf8("lineWidthLabel")); + + formLayout->setWidget(3, QFormLayout::LabelRole, lineWidthLabel); + + lineWidthDoubleSpinBox = new QDoubleSpinBox(formLayoutWidget); + lineWidthDoubleSpinBox->setObjectName(QString::fromUtf8("lineWidthDoubleSpinBox")); + + formLayout->setWidget(3, QFormLayout::FieldRole, lineWidthDoubleSpinBox); + + sizeLabel = new QLabel(formLayoutWidget); + sizeLabel->setObjectName(QString::fromUtf8("sizeLabel")); + + formLayout->setWidget(4, QFormLayout::LabelRole, sizeLabel); + + sizeSpinBox = new QSpinBox(formLayoutWidget); + sizeSpinBox->setObjectName(QString::fromUtf8("sizeSpinBox")); + + formLayout->setWidget(4, QFormLayout::FieldRole, sizeSpinBox); + + useThemeColorsLabel = new QLabel(formLayoutWidget); + useThemeColorsLabel->setObjectName(QString::fromUtf8("useThemeColorsLabel")); + + formLayout->setWidget(5, QFormLayout::LabelRole, useThemeColorsLabel); + + useThemeColorsCheckBox = new QCheckBox(formLayoutWidget); + useThemeColorsCheckBox->setObjectName(QString::fromUtf8("useThemeColorsCheckBox")); + + formLayout->setWidget(5, QFormLayout::FieldRole, useThemeColorsCheckBox); + + colorLabel = new QLabel(formLayoutWidget); + colorLabel->setObjectName(QString::fromUtf8("colorLabel")); + + formLayout->setWidget(6, QFormLayout::LabelRole, colorLabel); + + horizontalLayout = new QHBoxLayout(); + horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); + colorLineEdit = new QLineEdit(formLayoutWidget); + colorLineEdit->setObjectName(QString::fromUtf8("colorLineEdit")); + + horizontalLayout->addWidget(colorLineEdit); + + colorToolButton = new QToolButton(formLayoutWidget); + colorToolButton->setObjectName(QString::fromUtf8("colorToolButton")); + + horizontalLayout->addWidget(colorToolButton); + + + formLayout->setLayout(6, QFormLayout::FieldRole, horizontalLayout); + + progressLabel = new QLabel(formLayoutWidget); + progressLabel->setObjectName(QString::fromUtf8("progressLabel")); + + formLayout->setWidget(2, QFormLayout::LabelRole, progressLabel); + + progressSlider = new QSlider(formLayoutWidget); + progressSlider->setObjectName(QString::fromUtf8("progressSlider")); + progressSlider->setOrientation(Qt::Horizontal); + + formLayout->setWidget(2, QFormLayout::FieldRole, progressSlider); + + + retranslateUi(CircularProgressSettingsForm); + + QMetaObject::connectSlotsByName(CircularProgressSettingsForm); + } // setupUi + + void retranslateUi(QWidget *CircularProgressSettingsForm) + { + CircularProgressSettingsForm->setWindowTitle(QCoreApplication::translate("CircularProgressSettingsForm", "Form", nullptr)); + disabledLabel->setText(QCoreApplication::translate("CircularProgressSettingsForm", "Disabled", nullptr)); + progressTypeLabel->setText(QCoreApplication::translate("CircularProgressSettingsForm", "Progress type", nullptr)); + progressTypeComboBox->setItemText(0, QCoreApplication::translate("CircularProgressSettingsForm", "Determinate", nullptr)); + progressTypeComboBox->setItemText(1, QCoreApplication::translate("CircularProgressSettingsForm", "Indeterminate", nullptr)); + + lineWidthLabel->setText(QCoreApplication::translate("CircularProgressSettingsForm", "Line width", nullptr)); + sizeLabel->setText(QCoreApplication::translate("CircularProgressSettingsForm", "Size", nullptr)); + useThemeColorsLabel->setText(QCoreApplication::translate("CircularProgressSettingsForm", "Use theme colors", nullptr)); + colorLabel->setText(QCoreApplication::translate("CircularProgressSettingsForm", "Color", nullptr)); + colorToolButton->setText(QCoreApplication::translate("CircularProgressSettingsForm", "...", nullptr)); + progressLabel->setText(QCoreApplication::translate("CircularProgressSettingsForm", "Progress", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class CircularProgressSettingsForm: public Ui_CircularProgressSettingsForm {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_CIRCULARPROGRESSSETTINGSFORM_H diff --git a/qt-material-widgets/examples/ui_dialogsettingsform.h b/qt-material-widgets/examples/ui_dialogsettingsform.h new file mode 100644 index 0000000..61e3308 --- /dev/null +++ b/qt-material-widgets/examples/ui_dialogsettingsform.h @@ -0,0 +1,58 @@ +/******************************************************************************** +** Form generated from reading UI file 'dialogsettingsform.ui' +** +** Created by: Qt User Interface Compiler version 5.15.2 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_DIALOGSETTINGSFORM_H +#define UI_DIALOGSETTINGSFORM_H + +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_DialogSettingsForm +{ +public: + QLabel *label; + QPushButton *showDialogButton; + + void setupUi(QWidget *DialogSettingsForm) + { + if (DialogSettingsForm->objectName().isEmpty()) + DialogSettingsForm->setObjectName(QString::fromUtf8("DialogSettingsForm")); + DialogSettingsForm->resize(474, 387); + label = new QLabel(DialogSettingsForm); + label->setObjectName(QString::fromUtf8("label")); + label->setGeometry(QRect(10, 70, 171, 16)); + showDialogButton = new QPushButton(DialogSettingsForm); + showDialogButton->setObjectName(QString::fromUtf8("showDialogButton")); + showDialogButton->setGeometry(QRect(50, 20, 101, 22)); + + retranslateUi(DialogSettingsForm); + + QMetaObject::connectSlotsByName(DialogSettingsForm); + } // setupUi + + void retranslateUi(QWidget *DialogSettingsForm) + { + DialogSettingsForm->setWindowTitle(QCoreApplication::translate("DialogSettingsForm", "Form", nullptr)); + label->setText(QCoreApplication::translate("DialogSettingsForm", "TODO", nullptr)); + showDialogButton->setText(QCoreApplication::translate("DialogSettingsForm", "Show dialog", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class DialogSettingsForm: public Ui_DialogSettingsForm {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_DIALOGSETTINGSFORM_H diff --git a/qt-material-widgets/examples/ui_drawersettingsform.h b/qt-material-widgets/examples/ui_drawersettingsform.h new file mode 100644 index 0000000..75eb948 --- /dev/null +++ b/qt-material-widgets/examples/ui_drawersettingsform.h @@ -0,0 +1,98 @@ +/******************************************************************************** +** Form generated from reading UI file 'drawersettingsform.ui' +** +** Created by: Qt User Interface Compiler version 5.15.2 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_DRAWERSETTINGSFORM_H +#define UI_DRAWERSETTINGSFORM_H + +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_DrawerSettingsForm +{ +public: + QWidget *formLayoutWidget; + QFormLayout *formLayout; + QLabel *overlayModeLabel; + QCheckBox *overlayModeCheckBox; + QLabel *clickToCloseLabel; + QCheckBox *clickToCloseCheckBox; + QPushButton *showDrawerButton; + QPushButton *hideDrawerButton; + + void setupUi(QWidget *DrawerSettingsForm) + { + if (DrawerSettingsForm->objectName().isEmpty()) + DrawerSettingsForm->setObjectName(QString::fromUtf8("DrawerSettingsForm")); + DrawerSettingsForm->resize(474, 387); + formLayoutWidget = new QWidget(DrawerSettingsForm); + formLayoutWidget->setObjectName(QString::fromUtf8("formLayoutWidget")); + formLayoutWidget->setGeometry(QRect(0, 0, 180, 94)); + formLayout = new QFormLayout(formLayoutWidget); + formLayout->setObjectName(QString::fromUtf8("formLayout")); + formLayout->setContentsMargins(0, 0, 0, 0); + overlayModeLabel = new QLabel(formLayoutWidget); + overlayModeLabel->setObjectName(QString::fromUtf8("overlayModeLabel")); + + formLayout->setWidget(0, QFormLayout::LabelRole, overlayModeLabel); + + overlayModeCheckBox = new QCheckBox(formLayoutWidget); + overlayModeCheckBox->setObjectName(QString::fromUtf8("overlayModeCheckBox")); + + formLayout->setWidget(0, QFormLayout::FieldRole, overlayModeCheckBox); + + clickToCloseLabel = new QLabel(formLayoutWidget); + clickToCloseLabel->setObjectName(QString::fromUtf8("clickToCloseLabel")); + + formLayout->setWidget(1, QFormLayout::LabelRole, clickToCloseLabel); + + clickToCloseCheckBox = new QCheckBox(formLayoutWidget); + clickToCloseCheckBox->setObjectName(QString::fromUtf8("clickToCloseCheckBox")); + + formLayout->setWidget(1, QFormLayout::FieldRole, clickToCloseCheckBox); + + showDrawerButton = new QPushButton(formLayoutWidget); + showDrawerButton->setObjectName(QString::fromUtf8("showDrawerButton")); + + formLayout->setWidget(2, QFormLayout::LabelRole, showDrawerButton); + + hideDrawerButton = new QPushButton(formLayoutWidget); + hideDrawerButton->setObjectName(QString::fromUtf8("hideDrawerButton")); + + formLayout->setWidget(2, QFormLayout::FieldRole, hideDrawerButton); + + + retranslateUi(DrawerSettingsForm); + + QMetaObject::connectSlotsByName(DrawerSettingsForm); + } // setupUi + + void retranslateUi(QWidget *DrawerSettingsForm) + { + DrawerSettingsForm->setWindowTitle(QCoreApplication::translate("DrawerSettingsForm", "Form", nullptr)); + overlayModeLabel->setText(QCoreApplication::translate("DrawerSettingsForm", "Overlay mode", nullptr)); + clickToCloseLabel->setText(QCoreApplication::translate("DrawerSettingsForm", "Click to close", nullptr)); + showDrawerButton->setText(QCoreApplication::translate("DrawerSettingsForm", "Show drawer", nullptr)); + hideDrawerButton->setText(QCoreApplication::translate("DrawerSettingsForm", "Hide drawer", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class DrawerSettingsForm: public Ui_DrawerSettingsForm {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_DRAWERSETTINGSFORM_H diff --git a/qt-material-widgets/examples/ui_fabsettingsform.h b/qt-material-widgets/examples/ui_fabsettingsform.h new file mode 100644 index 0000000..4cbfe20 --- /dev/null +++ b/qt-material-widgets/examples/ui_fabsettingsform.h @@ -0,0 +1,298 @@ +/******************************************************************************** +** Form generated from reading UI file 'fabsettingsform.ui' +** +** Created by: Qt User Interface Compiler version 5.15.2 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_FABSETTINGSFORM_H +#define UI_FABSETTINGSFORM_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_FloatingActionButtonSettingsForm +{ +public: + QWidget *formLayoutWidget; + QFormLayout *formLayout; + QLabel *disabledLabel; + QCheckBox *disabledCheckBox; + QLabel *cornerLabel; + QComboBox *cornerComboBox; + QLabel *buttonRoleLabel; + QComboBox *buttonRoleComboBox; + QLabel *horizontalOffsetLabel; + QSpinBox *horizontalOffsetSpinBox; + QLabel *verticalOffsetLabel; + QSpinBox *verticalOffsetSpinBox; + QLabel *miniLabel; + QCheckBox *miniCheckBox; + QLabel *rippleStyleLabel; + QComboBox *rippleStyleComboBox; + QLabel *useThemeColorsLabel; + QCheckBox *useThemeColorsCheckBox; + QLabel *backgroundColorLabel; + QHBoxLayout *horizontalLayout; + QLineEdit *backgroundColorLineEdit; + QToolButton *backgroundColorToolButton; + QLabel *foregroundColorLabel; + QLabel *disabledBgColorLabel; + QLabel *disabledFgColorLabel; + QHBoxLayout *horizontalLayout_2; + QLineEdit *foregroundColorLineEdit; + QToolButton *foregroundColorToolButton; + QHBoxLayout *horizontalLayout_3; + QLineEdit *disabledBgColorLineEdit; + QToolButton *disabledBgColorToolButton; + QHBoxLayout *horizontalLayout_4; + QLineEdit *disabledFgColorLineEdit; + QToolButton *disabledFgColorToolButton; + + void setupUi(QWidget *FloatingActionButtonSettingsForm) + { + if (FloatingActionButtonSettingsForm->objectName().isEmpty()) + FloatingActionButtonSettingsForm->setObjectName(QString::fromUtf8("FloatingActionButtonSettingsForm")); + FloatingActionButtonSettingsForm->resize(599, 418); + formLayoutWidget = new QWidget(FloatingActionButtonSettingsForm); + formLayoutWidget->setObjectName(QString::fromUtf8("formLayoutWidget")); + formLayoutWidget->setGeometry(QRect(0, 0, 234, 391)); + formLayout = new QFormLayout(formLayoutWidget); + formLayout->setObjectName(QString::fromUtf8("formLayout")); + formLayout->setFormAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop); + formLayout->setContentsMargins(0, 0, 0, 0); + disabledLabel = new QLabel(formLayoutWidget); + disabledLabel->setObjectName(QString::fromUtf8("disabledLabel")); + + formLayout->setWidget(0, QFormLayout::LabelRole, disabledLabel); + + disabledCheckBox = new QCheckBox(formLayoutWidget); + disabledCheckBox->setObjectName(QString::fromUtf8("disabledCheckBox")); + + formLayout->setWidget(0, QFormLayout::FieldRole, disabledCheckBox); + + cornerLabel = new QLabel(formLayoutWidget); + cornerLabel->setObjectName(QString::fromUtf8("cornerLabel")); + + formLayout->setWidget(1, QFormLayout::LabelRole, cornerLabel); + + cornerComboBox = new QComboBox(formLayoutWidget); + cornerComboBox->addItem(QString()); + cornerComboBox->addItem(QString()); + cornerComboBox->addItem(QString()); + cornerComboBox->addItem(QString()); + cornerComboBox->setObjectName(QString::fromUtf8("cornerComboBox")); + + formLayout->setWidget(1, QFormLayout::FieldRole, cornerComboBox); + + buttonRoleLabel = new QLabel(formLayoutWidget); + buttonRoleLabel->setObjectName(QString::fromUtf8("buttonRoleLabel")); + + formLayout->setWidget(2, QFormLayout::LabelRole, buttonRoleLabel); + + buttonRoleComboBox = new QComboBox(formLayoutWidget); + buttonRoleComboBox->addItem(QString()); + buttonRoleComboBox->addItem(QString()); + buttonRoleComboBox->addItem(QString()); + buttonRoleComboBox->setObjectName(QString::fromUtf8("buttonRoleComboBox")); + + formLayout->setWidget(2, QFormLayout::FieldRole, buttonRoleComboBox); + + horizontalOffsetLabel = new QLabel(formLayoutWidget); + horizontalOffsetLabel->setObjectName(QString::fromUtf8("horizontalOffsetLabel")); + + formLayout->setWidget(3, QFormLayout::LabelRole, horizontalOffsetLabel); + + horizontalOffsetSpinBox = new QSpinBox(formLayoutWidget); + horizontalOffsetSpinBox->setObjectName(QString::fromUtf8("horizontalOffsetSpinBox")); + + formLayout->setWidget(3, QFormLayout::FieldRole, horizontalOffsetSpinBox); + + verticalOffsetLabel = new QLabel(formLayoutWidget); + verticalOffsetLabel->setObjectName(QString::fromUtf8("verticalOffsetLabel")); + + formLayout->setWidget(4, QFormLayout::LabelRole, verticalOffsetLabel); + + verticalOffsetSpinBox = new QSpinBox(formLayoutWidget); + verticalOffsetSpinBox->setObjectName(QString::fromUtf8("verticalOffsetSpinBox")); + + formLayout->setWidget(4, QFormLayout::FieldRole, verticalOffsetSpinBox); + + miniLabel = new QLabel(formLayoutWidget); + miniLabel->setObjectName(QString::fromUtf8("miniLabel")); + + formLayout->setWidget(5, QFormLayout::LabelRole, miniLabel); + + miniCheckBox = new QCheckBox(formLayoutWidget); + miniCheckBox->setObjectName(QString::fromUtf8("miniCheckBox")); + + formLayout->setWidget(5, QFormLayout::FieldRole, miniCheckBox); + + rippleStyleLabel = new QLabel(formLayoutWidget); + rippleStyleLabel->setObjectName(QString::fromUtf8("rippleStyleLabel")); + + formLayout->setWidget(6, QFormLayout::LabelRole, rippleStyleLabel); + + rippleStyleComboBox = new QComboBox(formLayoutWidget); + rippleStyleComboBox->addItem(QString()); + rippleStyleComboBox->addItem(QString()); + rippleStyleComboBox->addItem(QString()); + rippleStyleComboBox->setObjectName(QString::fromUtf8("rippleStyleComboBox")); + + formLayout->setWidget(6, QFormLayout::FieldRole, rippleStyleComboBox); + + useThemeColorsLabel = new QLabel(formLayoutWidget); + useThemeColorsLabel->setObjectName(QString::fromUtf8("useThemeColorsLabel")); + + formLayout->setWidget(7, QFormLayout::LabelRole, useThemeColorsLabel); + + useThemeColorsCheckBox = new QCheckBox(formLayoutWidget); + useThemeColorsCheckBox->setObjectName(QString::fromUtf8("useThemeColorsCheckBox")); + + formLayout->setWidget(7, QFormLayout::FieldRole, useThemeColorsCheckBox); + + backgroundColorLabel = new QLabel(formLayoutWidget); + backgroundColorLabel->setObjectName(QString::fromUtf8("backgroundColorLabel")); + + formLayout->setWidget(8, QFormLayout::LabelRole, backgroundColorLabel); + + horizontalLayout = new QHBoxLayout(); + horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); + backgroundColorLineEdit = new QLineEdit(formLayoutWidget); + backgroundColorLineEdit->setObjectName(QString::fromUtf8("backgroundColorLineEdit")); + backgroundColorLineEdit->setEnabled(false); + + horizontalLayout->addWidget(backgroundColorLineEdit); + + backgroundColorToolButton = new QToolButton(formLayoutWidget); + backgroundColorToolButton->setObjectName(QString::fromUtf8("backgroundColorToolButton")); + + horizontalLayout->addWidget(backgroundColorToolButton); + + + formLayout->setLayout(8, QFormLayout::FieldRole, horizontalLayout); + + foregroundColorLabel = new QLabel(formLayoutWidget); + foregroundColorLabel->setObjectName(QString::fromUtf8("foregroundColorLabel")); + + formLayout->setWidget(9, QFormLayout::LabelRole, foregroundColorLabel); + + disabledBgColorLabel = new QLabel(formLayoutWidget); + disabledBgColorLabel->setObjectName(QString::fromUtf8("disabledBgColorLabel")); + + formLayout->setWidget(10, QFormLayout::LabelRole, disabledBgColorLabel); + + disabledFgColorLabel = new QLabel(formLayoutWidget); + disabledFgColorLabel->setObjectName(QString::fromUtf8("disabledFgColorLabel")); + + formLayout->setWidget(11, QFormLayout::LabelRole, disabledFgColorLabel); + + horizontalLayout_2 = new QHBoxLayout(); + horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2")); + foregroundColorLineEdit = new QLineEdit(formLayoutWidget); + foregroundColorLineEdit->setObjectName(QString::fromUtf8("foregroundColorLineEdit")); + foregroundColorLineEdit->setEnabled(false); + + horizontalLayout_2->addWidget(foregroundColorLineEdit); + + foregroundColorToolButton = new QToolButton(formLayoutWidget); + foregroundColorToolButton->setObjectName(QString::fromUtf8("foregroundColorToolButton")); + + horizontalLayout_2->addWidget(foregroundColorToolButton); + + + formLayout->setLayout(9, QFormLayout::FieldRole, horizontalLayout_2); + + horizontalLayout_3 = new QHBoxLayout(); + horizontalLayout_3->setObjectName(QString::fromUtf8("horizontalLayout_3")); + disabledBgColorLineEdit = new QLineEdit(formLayoutWidget); + disabledBgColorLineEdit->setObjectName(QString::fromUtf8("disabledBgColorLineEdit")); + disabledBgColorLineEdit->setEnabled(false); + + horizontalLayout_3->addWidget(disabledBgColorLineEdit); + + disabledBgColorToolButton = new QToolButton(formLayoutWidget); + disabledBgColorToolButton->setObjectName(QString::fromUtf8("disabledBgColorToolButton")); + + horizontalLayout_3->addWidget(disabledBgColorToolButton); + + + formLayout->setLayout(10, QFormLayout::FieldRole, horizontalLayout_3); + + horizontalLayout_4 = new QHBoxLayout(); + horizontalLayout_4->setObjectName(QString::fromUtf8("horizontalLayout_4")); + disabledFgColorLineEdit = new QLineEdit(formLayoutWidget); + disabledFgColorLineEdit->setObjectName(QString::fromUtf8("disabledFgColorLineEdit")); + disabledFgColorLineEdit->setEnabled(false); + + horizontalLayout_4->addWidget(disabledFgColorLineEdit); + + disabledFgColorToolButton = new QToolButton(formLayoutWidget); + disabledFgColorToolButton->setObjectName(QString::fromUtf8("disabledFgColorToolButton")); + + horizontalLayout_4->addWidget(disabledFgColorToolButton); + + + formLayout->setLayout(11, QFormLayout::FieldRole, horizontalLayout_4); + + + retranslateUi(FloatingActionButtonSettingsForm); + + QMetaObject::connectSlotsByName(FloatingActionButtonSettingsForm); + } // setupUi + + void retranslateUi(QWidget *FloatingActionButtonSettingsForm) + { + FloatingActionButtonSettingsForm->setWindowTitle(QCoreApplication::translate("FloatingActionButtonSettingsForm", "Form", nullptr)); + disabledLabel->setText(QCoreApplication::translate("FloatingActionButtonSettingsForm", "Disabled", nullptr)); + cornerLabel->setText(QCoreApplication::translate("FloatingActionButtonSettingsForm", "Corner", nullptr)); + cornerComboBox->setItemText(0, QCoreApplication::translate("FloatingActionButtonSettingsForm", "Top Left", nullptr)); + cornerComboBox->setItemText(1, QCoreApplication::translate("FloatingActionButtonSettingsForm", "Top Right", nullptr)); + cornerComboBox->setItemText(2, QCoreApplication::translate("FloatingActionButtonSettingsForm", "Bottom Left", nullptr)); + cornerComboBox->setItemText(3, QCoreApplication::translate("FloatingActionButtonSettingsForm", "Bottom Right", nullptr)); + + buttonRoleLabel->setText(QCoreApplication::translate("FloatingActionButtonSettingsForm", "Button role", nullptr)); + buttonRoleComboBox->setItemText(0, QCoreApplication::translate("FloatingActionButtonSettingsForm", "Default", nullptr)); + buttonRoleComboBox->setItemText(1, QCoreApplication::translate("FloatingActionButtonSettingsForm", "Primary", nullptr)); + buttonRoleComboBox->setItemText(2, QCoreApplication::translate("FloatingActionButtonSettingsForm", "Secondary", nullptr)); + + horizontalOffsetLabel->setText(QCoreApplication::translate("FloatingActionButtonSettingsForm", "Horizontal offset", nullptr)); + verticalOffsetLabel->setText(QCoreApplication::translate("FloatingActionButtonSettingsForm", "Vertical offset", nullptr)); + miniLabel->setText(QCoreApplication::translate("FloatingActionButtonSettingsForm", "Mini", nullptr)); + rippleStyleLabel->setText(QCoreApplication::translate("FloatingActionButtonSettingsForm", "Ripple style", nullptr)); + rippleStyleComboBox->setItemText(0, QCoreApplication::translate("FloatingActionButtonSettingsForm", "Centered", nullptr)); + rippleStyleComboBox->setItemText(1, QCoreApplication::translate("FloatingActionButtonSettingsForm", "Positioned", nullptr)); + rippleStyleComboBox->setItemText(2, QCoreApplication::translate("FloatingActionButtonSettingsForm", "No Ripple", nullptr)); + + useThemeColorsLabel->setText(QCoreApplication::translate("FloatingActionButtonSettingsForm", "Use theme colors", nullptr)); + backgroundColorLabel->setText(QCoreApplication::translate("FloatingActionButtonSettingsForm", "Background color", nullptr)); + backgroundColorToolButton->setText(QCoreApplication::translate("FloatingActionButtonSettingsForm", "...", nullptr)); + foregroundColorLabel->setText(QCoreApplication::translate("FloatingActionButtonSettingsForm", "Foreground color", nullptr)); + disabledBgColorLabel->setText(QCoreApplication::translate("FloatingActionButtonSettingsForm", "Disabled bg color", nullptr)); + disabledFgColorLabel->setText(QCoreApplication::translate("FloatingActionButtonSettingsForm", "Disabled fg color", nullptr)); + foregroundColorToolButton->setText(QCoreApplication::translate("FloatingActionButtonSettingsForm", "...", nullptr)); + disabledBgColorToolButton->setText(QCoreApplication::translate("FloatingActionButtonSettingsForm", "...", nullptr)); + disabledFgColorToolButton->setText(QCoreApplication::translate("FloatingActionButtonSettingsForm", "...", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class FloatingActionButtonSettingsForm: public Ui_FloatingActionButtonSettingsForm {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_FABSETTINGSFORM_H diff --git a/qt-material-widgets/examples/ui_flatbuttonsettingsform.h b/qt-material-widgets/examples/ui_flatbuttonsettingsform.h new file mode 100644 index 0000000..fcac1d7 --- /dev/null +++ b/qt-material-widgets/examples/ui_flatbuttonsettingsform.h @@ -0,0 +1,490 @@ +/******************************************************************************** +** Form generated from reading UI file 'flatbuttonsettingsform.ui' +** +** Created by: Qt User Interface Compiler version 5.15.2 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_FLATBUTTONSETTINGSFORM_H +#define UI_FLATBUTTONSETTINGSFORM_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_FlatButtonSettingsForm +{ +public: + QWidget *verticalLayoutWidget; + QVBoxLayout *verticalLayout_2; + QHBoxLayout *horizontalLayout; + QVBoxLayout *verticalLayout; + QCheckBox *disabledCheckBox; + QCheckBox *checkableCheckBox; + QCheckBox *checkedCheckBox; + QCheckBox *showHaloCheckBox; + QCheckBox *transparentCheckBox; + QCheckBox *iconCheckBox; + QSpacerItem *verticalSpacer; + QFrame *line; + QFormLayout *formLayout; + QLabel *buttonRoleLabel; + QComboBox *buttonRoleComboBox; + QLabel *rippleStyleLabel; + QComboBox *rippleStyleComboBox; + QLabel *hoverStyleLabel; + QComboBox *hoverStyleComboBox; + QLabel *iconPlacementLabel; + QComboBox *iconPlacementComboBox; + QLabel *cornerRadiusLabel; + QSpinBox *cornerRadiusSpinBox; + QLabel *overlayOpacityLabel; + QDoubleSpinBox *overlayOpacityDoubleSpinBox; + QLabel *iconSizeLabel; + QSpinBox *iconSizeSpinBox; + QLabel *fontSizeLabel; + QDoubleSpinBox *fontSizeDoubleSpinBox; + QLabel *buttonTextLabel; + QLineEdit *buttonTextLineEdit; + QLabel *textAlignmentLabel; + QComboBox *textAlignmentComboBox; + QFrame *line_2; + QVBoxLayout *verticalLayout_4; + QCheckBox *useThemeColorsCheckBox; + QFormLayout *formLayout_2; + QLabel *backgroundColorLabel; + QHBoxLayout *horizontalLayout_3; + QLineEdit *backgroundColorLineEdit; + QToolButton *backgroundColorToolButton; + QLabel *foregroundColorLabel; + QHBoxLayout *horizontalLayout_4; + QLineEdit *foregroundColorLineEdit; + QToolButton *foregroundColorToolButton; + QLabel *disabledBgColorLabel; + QLabel *disabledFgColorLabel; + QLabel *overlayColorLabel; + QHBoxLayout *horizontalLayout_5; + QLineEdit *overlayColorLineEdit; + QToolButton *overlayColorToolButton; + QHBoxLayout *horizontalLayout_6; + QLineEdit *disabledBgColorLineEdit; + QToolButton *disabledBgColorToolButton; + QHBoxLayout *horizontalLayout_7; + QLineEdit *disableFgColorLineEdit; + QToolButton *disabledFgColorToolButton; + QHBoxLayout *horizontalLayout_8; + QPushButton *defaultPresetPushButton; + QPushButton *checkablePresetPushButton; + QSpacerItem *horizontalSpacer; + + void setupUi(QWidget *FlatButtonSettingsForm) + { + if (FlatButtonSettingsForm->objectName().isEmpty()) + FlatButtonSettingsForm->setObjectName(QString::fromUtf8("FlatButtonSettingsForm")); + FlatButtonSettingsForm->resize(624, 537); + verticalLayoutWidget = new QWidget(FlatButtonSettingsForm); + verticalLayoutWidget->setObjectName(QString::fromUtf8("verticalLayoutWidget")); + verticalLayoutWidget->setGeometry(QRect(0, 0, 549, 314)); + verticalLayout_2 = new QVBoxLayout(verticalLayoutWidget); + verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2")); + verticalLayout_2->setContentsMargins(0, 0, 0, 0); + horizontalLayout = new QHBoxLayout(); + horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); + verticalLayout = new QVBoxLayout(); + verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); + disabledCheckBox = new QCheckBox(verticalLayoutWidget); + disabledCheckBox->setObjectName(QString::fromUtf8("disabledCheckBox")); + + verticalLayout->addWidget(disabledCheckBox); + + checkableCheckBox = new QCheckBox(verticalLayoutWidget); + checkableCheckBox->setObjectName(QString::fromUtf8("checkableCheckBox")); + + verticalLayout->addWidget(checkableCheckBox); + + checkedCheckBox = new QCheckBox(verticalLayoutWidget); + checkedCheckBox->setObjectName(QString::fromUtf8("checkedCheckBox")); + + verticalLayout->addWidget(checkedCheckBox); + + showHaloCheckBox = new QCheckBox(verticalLayoutWidget); + showHaloCheckBox->setObjectName(QString::fromUtf8("showHaloCheckBox")); + + verticalLayout->addWidget(showHaloCheckBox); + + transparentCheckBox = new QCheckBox(verticalLayoutWidget); + transparentCheckBox->setObjectName(QString::fromUtf8("transparentCheckBox")); + + verticalLayout->addWidget(transparentCheckBox); + + iconCheckBox = new QCheckBox(verticalLayoutWidget); + iconCheckBox->setObjectName(QString::fromUtf8("iconCheckBox")); + + verticalLayout->addWidget(iconCheckBox); + + verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding); + + verticalLayout->addItem(verticalSpacer); + + + horizontalLayout->addLayout(verticalLayout); + + line = new QFrame(verticalLayoutWidget); + line->setObjectName(QString::fromUtf8("line")); + line->setFrameShape(QFrame::VLine); + line->setFrameShadow(QFrame::Sunken); + + horizontalLayout->addWidget(line); + + formLayout = new QFormLayout(); + formLayout->setObjectName(QString::fromUtf8("formLayout")); + buttonRoleLabel = new QLabel(verticalLayoutWidget); + buttonRoleLabel->setObjectName(QString::fromUtf8("buttonRoleLabel")); + + formLayout->setWidget(0, QFormLayout::LabelRole, buttonRoleLabel); + + buttonRoleComboBox = new QComboBox(verticalLayoutWidget); + buttonRoleComboBox->addItem(QString()); + buttonRoleComboBox->addItem(QString()); + buttonRoleComboBox->addItem(QString()); + buttonRoleComboBox->setObjectName(QString::fromUtf8("buttonRoleComboBox")); + + formLayout->setWidget(0, QFormLayout::FieldRole, buttonRoleComboBox); + + rippleStyleLabel = new QLabel(verticalLayoutWidget); + rippleStyleLabel->setObjectName(QString::fromUtf8("rippleStyleLabel")); + + formLayout->setWidget(1, QFormLayout::LabelRole, rippleStyleLabel); + + rippleStyleComboBox = new QComboBox(verticalLayoutWidget); + rippleStyleComboBox->addItem(QString()); + rippleStyleComboBox->addItem(QString()); + rippleStyleComboBox->addItem(QString()); + rippleStyleComboBox->setObjectName(QString::fromUtf8("rippleStyleComboBox")); + + formLayout->setWidget(1, QFormLayout::FieldRole, rippleStyleComboBox); + + hoverStyleLabel = new QLabel(verticalLayoutWidget); + hoverStyleLabel->setObjectName(QString::fromUtf8("hoverStyleLabel")); + + formLayout->setWidget(2, QFormLayout::LabelRole, hoverStyleLabel); + + hoverStyleComboBox = new QComboBox(verticalLayoutWidget); + hoverStyleComboBox->addItem(QString()); + hoverStyleComboBox->addItem(QString()); + hoverStyleComboBox->addItem(QString()); + hoverStyleComboBox->setObjectName(QString::fromUtf8("hoverStyleComboBox")); + + formLayout->setWidget(2, QFormLayout::FieldRole, hoverStyleComboBox); + + iconPlacementLabel = new QLabel(verticalLayoutWidget); + iconPlacementLabel->setObjectName(QString::fromUtf8("iconPlacementLabel")); + + formLayout->setWidget(3, QFormLayout::LabelRole, iconPlacementLabel); + + iconPlacementComboBox = new QComboBox(verticalLayoutWidget); + iconPlacementComboBox->addItem(QString()); + iconPlacementComboBox->addItem(QString()); + iconPlacementComboBox->setObjectName(QString::fromUtf8("iconPlacementComboBox")); + + formLayout->setWidget(3, QFormLayout::FieldRole, iconPlacementComboBox); + + cornerRadiusLabel = new QLabel(verticalLayoutWidget); + cornerRadiusLabel->setObjectName(QString::fromUtf8("cornerRadiusLabel")); + + formLayout->setWidget(4, QFormLayout::LabelRole, cornerRadiusLabel); + + cornerRadiusSpinBox = new QSpinBox(verticalLayoutWidget); + cornerRadiusSpinBox->setObjectName(QString::fromUtf8("cornerRadiusSpinBox")); + + formLayout->setWidget(4, QFormLayout::FieldRole, cornerRadiusSpinBox); + + overlayOpacityLabel = new QLabel(verticalLayoutWidget); + overlayOpacityLabel->setObjectName(QString::fromUtf8("overlayOpacityLabel")); + + formLayout->setWidget(6, QFormLayout::LabelRole, overlayOpacityLabel); + + overlayOpacityDoubleSpinBox = new QDoubleSpinBox(verticalLayoutWidget); + overlayOpacityDoubleSpinBox->setObjectName(QString::fromUtf8("overlayOpacityDoubleSpinBox")); + overlayOpacityDoubleSpinBox->setMaximum(1.000000000000000); + overlayOpacityDoubleSpinBox->setSingleStep(0.050000000000000); + + formLayout->setWidget(6, QFormLayout::FieldRole, overlayOpacityDoubleSpinBox); + + iconSizeLabel = new QLabel(verticalLayoutWidget); + iconSizeLabel->setObjectName(QString::fromUtf8("iconSizeLabel")); + + formLayout->setWidget(7, QFormLayout::LabelRole, iconSizeLabel); + + iconSizeSpinBox = new QSpinBox(verticalLayoutWidget); + iconSizeSpinBox->setObjectName(QString::fromUtf8("iconSizeSpinBox")); + + formLayout->setWidget(7, QFormLayout::FieldRole, iconSizeSpinBox); + + fontSizeLabel = new QLabel(verticalLayoutWidget); + fontSizeLabel->setObjectName(QString::fromUtf8("fontSizeLabel")); + + formLayout->setWidget(8, QFormLayout::LabelRole, fontSizeLabel); + + fontSizeDoubleSpinBox = new QDoubleSpinBox(verticalLayoutWidget); + fontSizeDoubleSpinBox->setObjectName(QString::fromUtf8("fontSizeDoubleSpinBox")); + + formLayout->setWidget(8, QFormLayout::FieldRole, fontSizeDoubleSpinBox); + + buttonTextLabel = new QLabel(verticalLayoutWidget); + buttonTextLabel->setObjectName(QString::fromUtf8("buttonTextLabel")); + + formLayout->setWidget(9, QFormLayout::LabelRole, buttonTextLabel); + + buttonTextLineEdit = new QLineEdit(verticalLayoutWidget); + buttonTextLineEdit->setObjectName(QString::fromUtf8("buttonTextLineEdit")); + + formLayout->setWidget(9, QFormLayout::FieldRole, buttonTextLineEdit); + + textAlignmentLabel = new QLabel(verticalLayoutWidget); + textAlignmentLabel->setObjectName(QString::fromUtf8("textAlignmentLabel")); + + formLayout->setWidget(5, QFormLayout::LabelRole, textAlignmentLabel); + + textAlignmentComboBox = new QComboBox(verticalLayoutWidget); + textAlignmentComboBox->addItem(QString()); + textAlignmentComboBox->addItem(QString()); + textAlignmentComboBox->setObjectName(QString::fromUtf8("textAlignmentComboBox")); + + formLayout->setWidget(5, QFormLayout::FieldRole, textAlignmentComboBox); + + + horizontalLayout->addLayout(formLayout); + + line_2 = new QFrame(verticalLayoutWidget); + line_2->setObjectName(QString::fromUtf8("line_2")); + line_2->setFrameShape(QFrame::VLine); + line_2->setFrameShadow(QFrame::Sunken); + + horizontalLayout->addWidget(line_2); + + verticalLayout_4 = new QVBoxLayout(); + verticalLayout_4->setObjectName(QString::fromUtf8("verticalLayout_4")); + useThemeColorsCheckBox = new QCheckBox(verticalLayoutWidget); + useThemeColorsCheckBox->setObjectName(QString::fromUtf8("useThemeColorsCheckBox")); + + verticalLayout_4->addWidget(useThemeColorsCheckBox); + + formLayout_2 = new QFormLayout(); + formLayout_2->setObjectName(QString::fromUtf8("formLayout_2")); + backgroundColorLabel = new QLabel(verticalLayoutWidget); + backgroundColorLabel->setObjectName(QString::fromUtf8("backgroundColorLabel")); + + formLayout_2->setWidget(0, QFormLayout::LabelRole, backgroundColorLabel); + + horizontalLayout_3 = new QHBoxLayout(); + horizontalLayout_3->setObjectName(QString::fromUtf8("horizontalLayout_3")); + backgroundColorLineEdit = new QLineEdit(verticalLayoutWidget); + backgroundColorLineEdit->setObjectName(QString::fromUtf8("backgroundColorLineEdit")); + backgroundColorLineEdit->setEnabled(false); + + horizontalLayout_3->addWidget(backgroundColorLineEdit); + + backgroundColorToolButton = new QToolButton(verticalLayoutWidget); + backgroundColorToolButton->setObjectName(QString::fromUtf8("backgroundColorToolButton")); + + horizontalLayout_3->addWidget(backgroundColorToolButton); + + + formLayout_2->setLayout(0, QFormLayout::FieldRole, horizontalLayout_3); + + foregroundColorLabel = new QLabel(verticalLayoutWidget); + foregroundColorLabel->setObjectName(QString::fromUtf8("foregroundColorLabel")); + + formLayout_2->setWidget(1, QFormLayout::LabelRole, foregroundColorLabel); + + horizontalLayout_4 = new QHBoxLayout(); + horizontalLayout_4->setObjectName(QString::fromUtf8("horizontalLayout_4")); + foregroundColorLineEdit = new QLineEdit(verticalLayoutWidget); + foregroundColorLineEdit->setObjectName(QString::fromUtf8("foregroundColorLineEdit")); + foregroundColorLineEdit->setEnabled(false); + + horizontalLayout_4->addWidget(foregroundColorLineEdit); + + foregroundColorToolButton = new QToolButton(verticalLayoutWidget); + foregroundColorToolButton->setObjectName(QString::fromUtf8("foregroundColorToolButton")); + + horizontalLayout_4->addWidget(foregroundColorToolButton); + + + formLayout_2->setLayout(1, QFormLayout::FieldRole, horizontalLayout_4); + + disabledBgColorLabel = new QLabel(verticalLayoutWidget); + disabledBgColorLabel->setObjectName(QString::fromUtf8("disabledBgColorLabel")); + + formLayout_2->setWidget(3, QFormLayout::LabelRole, disabledBgColorLabel); + + disabledFgColorLabel = new QLabel(verticalLayoutWidget); + disabledFgColorLabel->setObjectName(QString::fromUtf8("disabledFgColorLabel")); + + formLayout_2->setWidget(4, QFormLayout::LabelRole, disabledFgColorLabel); + + overlayColorLabel = new QLabel(verticalLayoutWidget); + overlayColorLabel->setObjectName(QString::fromUtf8("overlayColorLabel")); + + formLayout_2->setWidget(2, QFormLayout::LabelRole, overlayColorLabel); + + horizontalLayout_5 = new QHBoxLayout(); + horizontalLayout_5->setObjectName(QString::fromUtf8("horizontalLayout_5")); + overlayColorLineEdit = new QLineEdit(verticalLayoutWidget); + overlayColorLineEdit->setObjectName(QString::fromUtf8("overlayColorLineEdit")); + overlayColorLineEdit->setEnabled(false); + + horizontalLayout_5->addWidget(overlayColorLineEdit); + + overlayColorToolButton = new QToolButton(verticalLayoutWidget); + overlayColorToolButton->setObjectName(QString::fromUtf8("overlayColorToolButton")); + + horizontalLayout_5->addWidget(overlayColorToolButton); + + + formLayout_2->setLayout(2, QFormLayout::FieldRole, horizontalLayout_5); + + horizontalLayout_6 = new QHBoxLayout(); + horizontalLayout_6->setObjectName(QString::fromUtf8("horizontalLayout_6")); + disabledBgColorLineEdit = new QLineEdit(verticalLayoutWidget); + disabledBgColorLineEdit->setObjectName(QString::fromUtf8("disabledBgColorLineEdit")); + disabledBgColorLineEdit->setEnabled(false); + + horizontalLayout_6->addWidget(disabledBgColorLineEdit); + + disabledBgColorToolButton = new QToolButton(verticalLayoutWidget); + disabledBgColorToolButton->setObjectName(QString::fromUtf8("disabledBgColorToolButton")); + + horizontalLayout_6->addWidget(disabledBgColorToolButton); + + + formLayout_2->setLayout(3, QFormLayout::FieldRole, horizontalLayout_6); + + horizontalLayout_7 = new QHBoxLayout(); + horizontalLayout_7->setObjectName(QString::fromUtf8("horizontalLayout_7")); + disableFgColorLineEdit = new QLineEdit(verticalLayoutWidget); + disableFgColorLineEdit->setObjectName(QString::fromUtf8("disableFgColorLineEdit")); + disableFgColorLineEdit->setEnabled(false); + + horizontalLayout_7->addWidget(disableFgColorLineEdit); + + disabledFgColorToolButton = new QToolButton(verticalLayoutWidget); + disabledFgColorToolButton->setObjectName(QString::fromUtf8("disabledFgColorToolButton")); + + horizontalLayout_7->addWidget(disabledFgColorToolButton); + + + formLayout_2->setLayout(4, QFormLayout::FieldRole, horizontalLayout_7); + + + verticalLayout_4->addLayout(formLayout_2); + + + horizontalLayout->addLayout(verticalLayout_4); + + + verticalLayout_2->addLayout(horizontalLayout); + + horizontalLayout_8 = new QHBoxLayout(); + horizontalLayout_8->setObjectName(QString::fromUtf8("horizontalLayout_8")); + defaultPresetPushButton = new QPushButton(verticalLayoutWidget); + defaultPresetPushButton->setObjectName(QString::fromUtf8("defaultPresetPushButton")); + + horizontalLayout_8->addWidget(defaultPresetPushButton); + + checkablePresetPushButton = new QPushButton(verticalLayoutWidget); + checkablePresetPushButton->setObjectName(QString::fromUtf8("checkablePresetPushButton")); + + horizontalLayout_8->addWidget(checkablePresetPushButton); + + horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + horizontalLayout_8->addItem(horizontalSpacer); + + + verticalLayout_2->addLayout(horizontalLayout_8); + + + retranslateUi(FlatButtonSettingsForm); + + QMetaObject::connectSlotsByName(FlatButtonSettingsForm); + } // setupUi + + void retranslateUi(QWidget *FlatButtonSettingsForm) + { + FlatButtonSettingsForm->setWindowTitle(QCoreApplication::translate("FlatButtonSettingsForm", "Form", nullptr)); + disabledCheckBox->setText(QCoreApplication::translate("FlatButtonSettingsForm", "Disabled", nullptr)); + checkableCheckBox->setText(QCoreApplication::translate("FlatButtonSettingsForm", "Checkable", nullptr)); + checkedCheckBox->setText(QCoreApplication::translate("FlatButtonSettingsForm", "Checked", nullptr)); + showHaloCheckBox->setText(QCoreApplication::translate("FlatButtonSettingsForm", "Show halo", nullptr)); + transparentCheckBox->setText(QCoreApplication::translate("FlatButtonSettingsForm", "Transparent", nullptr)); + iconCheckBox->setText(QCoreApplication::translate("FlatButtonSettingsForm", "Icon", nullptr)); + buttonRoleLabel->setText(QCoreApplication::translate("FlatButtonSettingsForm", "Button role", nullptr)); + buttonRoleComboBox->setItemText(0, QCoreApplication::translate("FlatButtonSettingsForm", "Default", nullptr)); + buttonRoleComboBox->setItemText(1, QCoreApplication::translate("FlatButtonSettingsForm", "Primary", nullptr)); + buttonRoleComboBox->setItemText(2, QCoreApplication::translate("FlatButtonSettingsForm", "Secondary", nullptr)); + + rippleStyleLabel->setText(QCoreApplication::translate("FlatButtonSettingsForm", "Ripple style", nullptr)); + rippleStyleComboBox->setItemText(0, QCoreApplication::translate("FlatButtonSettingsForm", "Centered", nullptr)); + rippleStyleComboBox->setItemText(1, QCoreApplication::translate("FlatButtonSettingsForm", "Positioned", nullptr)); + rippleStyleComboBox->setItemText(2, QCoreApplication::translate("FlatButtonSettingsForm", "No Ripple", nullptr)); + + hoverStyleLabel->setText(QCoreApplication::translate("FlatButtonSettingsForm", "Hover style", nullptr)); + hoverStyleComboBox->setItemText(0, QCoreApplication::translate("FlatButtonSettingsForm", "No Overlay", nullptr)); + hoverStyleComboBox->setItemText(1, QCoreApplication::translate("FlatButtonSettingsForm", "Tinted Overlay", nullptr)); + hoverStyleComboBox->setItemText(2, QCoreApplication::translate("FlatButtonSettingsForm", "Gray Overlay", nullptr)); + + iconPlacementLabel->setText(QCoreApplication::translate("FlatButtonSettingsForm", "Icon placement", nullptr)); + iconPlacementComboBox->setItemText(0, QCoreApplication::translate("FlatButtonSettingsForm", "Left", nullptr)); + iconPlacementComboBox->setItemText(1, QCoreApplication::translate("FlatButtonSettingsForm", "Right", nullptr)); + + cornerRadiusLabel->setText(QCoreApplication::translate("FlatButtonSettingsForm", "Corner radius", nullptr)); + overlayOpacityLabel->setText(QCoreApplication::translate("FlatButtonSettingsForm", "Overlay opacity", nullptr)); + iconSizeLabel->setText(QCoreApplication::translate("FlatButtonSettingsForm", "Icon size", nullptr)); + fontSizeLabel->setText(QCoreApplication::translate("FlatButtonSettingsForm", "Font size", nullptr)); + buttonTextLabel->setText(QCoreApplication::translate("FlatButtonSettingsForm", "Button text", nullptr)); + textAlignmentLabel->setText(QCoreApplication::translate("FlatButtonSettingsForm", "Text alignment", nullptr)); + textAlignmentComboBox->setItemText(0, QCoreApplication::translate("FlatButtonSettingsForm", "Left", nullptr)); + textAlignmentComboBox->setItemText(1, QCoreApplication::translate("FlatButtonSettingsForm", "Center", nullptr)); + + useThemeColorsCheckBox->setText(QCoreApplication::translate("FlatButtonSettingsForm", "Use theme colors", nullptr)); + backgroundColorLabel->setText(QCoreApplication::translate("FlatButtonSettingsForm", "Background color", nullptr)); + backgroundColorToolButton->setText(QCoreApplication::translate("FlatButtonSettingsForm", "...", nullptr)); + foregroundColorLabel->setText(QCoreApplication::translate("FlatButtonSettingsForm", "Foreground color", nullptr)); + foregroundColorToolButton->setText(QCoreApplication::translate("FlatButtonSettingsForm", "...", nullptr)); + disabledBgColorLabel->setText(QCoreApplication::translate("FlatButtonSettingsForm", "Disabled bg color", nullptr)); + disabledFgColorLabel->setText(QCoreApplication::translate("FlatButtonSettingsForm", "Disabled fg color", nullptr)); + overlayColorLabel->setText(QCoreApplication::translate("FlatButtonSettingsForm", "Overlay color", nullptr)); + overlayColorToolButton->setText(QCoreApplication::translate("FlatButtonSettingsForm", "...", nullptr)); + disabledBgColorToolButton->setText(QCoreApplication::translate("FlatButtonSettingsForm", "...", nullptr)); + disabledFgColorToolButton->setText(QCoreApplication::translate("FlatButtonSettingsForm", "...", nullptr)); + defaultPresetPushButton->setText(QCoreApplication::translate("FlatButtonSettingsForm", "Apply default preset", nullptr)); + checkablePresetPushButton->setText(QCoreApplication::translate("FlatButtonSettingsForm", "Apply checkable preset", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class FlatButtonSettingsForm: public Ui_FlatButtonSettingsForm {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_FLATBUTTONSETTINGSFORM_H diff --git a/qt-material-widgets/examples/ui_iconbuttonsettingsform.h b/qt-material-widgets/examples/ui_iconbuttonsettingsform.h new file mode 100644 index 0000000..60299db --- /dev/null +++ b/qt-material-widgets/examples/ui_iconbuttonsettingsform.h @@ -0,0 +1,155 @@ +/******************************************************************************** +** Form generated from reading UI file 'iconbuttonsettingsform.ui' +** +** Created by: Qt User Interface Compiler version 5.15.2 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_ICONBUTTONSETTINGSFORM_H +#define UI_ICONBUTTONSETTINGSFORM_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_IconButtonSettingsForm +{ +public: + QWidget *formLayoutWidget; + QFormLayout *formLayout; + QLabel *disabledLabel; + QCheckBox *disabledCheckBox; + QLabel *sizeLabel; + QSpinBox *sizeSpinBox; + QLabel *useThemeColorsLabel; + QCheckBox *useThemeColorsCheckBox; + QLabel *colorLabel; + QHBoxLayout *horizontalLayout_2; + QLineEdit *colorLineEdit; + QToolButton *colorToolButton; + QLabel *disabledColorLabel; + QHBoxLayout *horizontalLayout_4; + QLineEdit *disabledColorLineEdit; + QToolButton *disabledColorToolButton; + + void setupUi(QWidget *IconButtonSettingsForm) + { + if (IconButtonSettingsForm->objectName().isEmpty()) + IconButtonSettingsForm->setObjectName(QString::fromUtf8("IconButtonSettingsForm")); + IconButtonSettingsForm->resize(599, 418); + formLayoutWidget = new QWidget(IconButtonSettingsForm); + formLayoutWidget->setObjectName(QString::fromUtf8("formLayoutWidget")); + formLayoutWidget->setGeometry(QRect(0, 0, 274, 371)); + formLayout = new QFormLayout(formLayoutWidget); + formLayout->setObjectName(QString::fromUtf8("formLayout")); + formLayout->setFormAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop); + formLayout->setContentsMargins(0, 0, 0, 0); + disabledLabel = new QLabel(formLayoutWidget); + disabledLabel->setObjectName(QString::fromUtf8("disabledLabel")); + + formLayout->setWidget(0, QFormLayout::LabelRole, disabledLabel); + + disabledCheckBox = new QCheckBox(formLayoutWidget); + disabledCheckBox->setObjectName(QString::fromUtf8("disabledCheckBox")); + + formLayout->setWidget(0, QFormLayout::FieldRole, disabledCheckBox); + + sizeLabel = new QLabel(formLayoutWidget); + sizeLabel->setObjectName(QString::fromUtf8("sizeLabel")); + + formLayout->setWidget(1, QFormLayout::LabelRole, sizeLabel); + + sizeSpinBox = new QSpinBox(formLayoutWidget); + sizeSpinBox->setObjectName(QString::fromUtf8("sizeSpinBox")); + + formLayout->setWidget(1, QFormLayout::FieldRole, sizeSpinBox); + + useThemeColorsLabel = new QLabel(formLayoutWidget); + useThemeColorsLabel->setObjectName(QString::fromUtf8("useThemeColorsLabel")); + + formLayout->setWidget(2, QFormLayout::LabelRole, useThemeColorsLabel); + + useThemeColorsCheckBox = new QCheckBox(formLayoutWidget); + useThemeColorsCheckBox->setObjectName(QString::fromUtf8("useThemeColorsCheckBox")); + + formLayout->setWidget(2, QFormLayout::FieldRole, useThemeColorsCheckBox); + + colorLabel = new QLabel(formLayoutWidget); + colorLabel->setObjectName(QString::fromUtf8("colorLabel")); + + formLayout->setWidget(3, QFormLayout::LabelRole, colorLabel); + + horizontalLayout_2 = new QHBoxLayout(); + horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2")); + colorLineEdit = new QLineEdit(formLayoutWidget); + colorLineEdit->setObjectName(QString::fromUtf8("colorLineEdit")); + colorLineEdit->setEnabled(false); + + horizontalLayout_2->addWidget(colorLineEdit); + + colorToolButton = new QToolButton(formLayoutWidget); + colorToolButton->setObjectName(QString::fromUtf8("colorToolButton")); + + horizontalLayout_2->addWidget(colorToolButton); + + + formLayout->setLayout(3, QFormLayout::FieldRole, horizontalLayout_2); + + disabledColorLabel = new QLabel(formLayoutWidget); + disabledColorLabel->setObjectName(QString::fromUtf8("disabledColorLabel")); + + formLayout->setWidget(4, QFormLayout::LabelRole, disabledColorLabel); + + horizontalLayout_4 = new QHBoxLayout(); + horizontalLayout_4->setObjectName(QString::fromUtf8("horizontalLayout_4")); + disabledColorLineEdit = new QLineEdit(formLayoutWidget); + disabledColorLineEdit->setObjectName(QString::fromUtf8("disabledColorLineEdit")); + disabledColorLineEdit->setEnabled(false); + + horizontalLayout_4->addWidget(disabledColorLineEdit); + + disabledColorToolButton = new QToolButton(formLayoutWidget); + disabledColorToolButton->setObjectName(QString::fromUtf8("disabledColorToolButton")); + + horizontalLayout_4->addWidget(disabledColorToolButton); + + + formLayout->setLayout(4, QFormLayout::FieldRole, horizontalLayout_4); + + + retranslateUi(IconButtonSettingsForm); + + QMetaObject::connectSlotsByName(IconButtonSettingsForm); + } // setupUi + + void retranslateUi(QWidget *IconButtonSettingsForm) + { + IconButtonSettingsForm->setWindowTitle(QCoreApplication::translate("IconButtonSettingsForm", "Form", nullptr)); + disabledLabel->setText(QCoreApplication::translate("IconButtonSettingsForm", "Disabled", nullptr)); + sizeLabel->setText(QCoreApplication::translate("IconButtonSettingsForm", "Size", nullptr)); + useThemeColorsLabel->setText(QCoreApplication::translate("IconButtonSettingsForm", "Use theme colors", nullptr)); + colorLabel->setText(QCoreApplication::translate("IconButtonSettingsForm", "Color", nullptr)); + colorToolButton->setText(QCoreApplication::translate("IconButtonSettingsForm", "...", nullptr)); + disabledColorLabel->setText(QCoreApplication::translate("IconButtonSettingsForm", "Disabled color", nullptr)); + disabledColorToolButton->setText(QCoreApplication::translate("IconButtonSettingsForm", "...", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class IconButtonSettingsForm: public Ui_IconButtonSettingsForm {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_ICONBUTTONSETTINGSFORM_H diff --git a/qt-material-widgets/examples/ui_progresssettingsform.h b/qt-material-widgets/examples/ui_progresssettingsform.h new file mode 100644 index 0000000..8f1f28b --- /dev/null +++ b/qt-material-widgets/examples/ui_progresssettingsform.h @@ -0,0 +1,172 @@ +/******************************************************************************** +** Form generated from reading UI file 'progresssettingsform.ui' +** +** Created by: Qt User Interface Compiler version 5.15.2 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_PROGRESSSETTINGSFORM_H +#define UI_PROGRESSSETTINGSFORM_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_ProgressSettingsForm +{ +public: + QWidget *formLayoutWidget; + QFormLayout *formLayout; + QLabel *disabledLabel; + QCheckBox *disabledCheckBox; + QLabel *progressTypeLabel; + QComboBox *progressTypeComboBox; + QLabel *progressLabel; + QSlider *progressSlider; + QLabel *useThemeColorsLabel; + QCheckBox *useThemeColorsCheckBox; + QLabel *colorLabel; + QHBoxLayout *horizontalLayout; + QLineEdit *progressColorLineEdit; + QToolButton *progressColorToolButton; + QLabel *backgroundColorLabel; + QHBoxLayout *horizontalLayout_2; + QLineEdit *backgroundColorLineEdit; + QToolButton *backgroundColorToolButton; + + void setupUi(QWidget *ProgressSettingsForm) + { + if (ProgressSettingsForm->objectName().isEmpty()) + ProgressSettingsForm->setObjectName(QString::fromUtf8("ProgressSettingsForm")); + ProgressSettingsForm->resize(400, 300); + formLayoutWidget = new QWidget(ProgressSettingsForm); + formLayoutWidget->setObjectName(QString::fromUtf8("formLayoutWidget")); + formLayoutWidget->setGeometry(QRect(0, 0, 240, 197)); + formLayout = new QFormLayout(formLayoutWidget); + formLayout->setObjectName(QString::fromUtf8("formLayout")); + formLayout->setContentsMargins(0, 0, 0, 0); + disabledLabel = new QLabel(formLayoutWidget); + disabledLabel->setObjectName(QString::fromUtf8("disabledLabel")); + + formLayout->setWidget(0, QFormLayout::LabelRole, disabledLabel); + + disabledCheckBox = new QCheckBox(formLayoutWidget); + disabledCheckBox->setObjectName(QString::fromUtf8("disabledCheckBox")); + + formLayout->setWidget(0, QFormLayout::FieldRole, disabledCheckBox); + + progressTypeLabel = new QLabel(formLayoutWidget); + progressTypeLabel->setObjectName(QString::fromUtf8("progressTypeLabel")); + + formLayout->setWidget(1, QFormLayout::LabelRole, progressTypeLabel); + + progressTypeComboBox = new QComboBox(formLayoutWidget); + progressTypeComboBox->addItem(QString()); + progressTypeComboBox->addItem(QString()); + progressTypeComboBox->setObjectName(QString::fromUtf8("progressTypeComboBox")); + + formLayout->setWidget(1, QFormLayout::FieldRole, progressTypeComboBox); + + progressLabel = new QLabel(formLayoutWidget); + progressLabel->setObjectName(QString::fromUtf8("progressLabel")); + + formLayout->setWidget(2, QFormLayout::LabelRole, progressLabel); + + progressSlider = new QSlider(formLayoutWidget); + progressSlider->setObjectName(QString::fromUtf8("progressSlider")); + progressSlider->setOrientation(Qt::Horizontal); + + formLayout->setWidget(2, QFormLayout::FieldRole, progressSlider); + + useThemeColorsLabel = new QLabel(formLayoutWidget); + useThemeColorsLabel->setObjectName(QString::fromUtf8("useThemeColorsLabel")); + + formLayout->setWidget(3, QFormLayout::LabelRole, useThemeColorsLabel); + + useThemeColorsCheckBox = new QCheckBox(formLayoutWidget); + useThemeColorsCheckBox->setObjectName(QString::fromUtf8("useThemeColorsCheckBox")); + + formLayout->setWidget(3, QFormLayout::FieldRole, useThemeColorsCheckBox); + + colorLabel = new QLabel(formLayoutWidget); + colorLabel->setObjectName(QString::fromUtf8("colorLabel")); + + formLayout->setWidget(4, QFormLayout::LabelRole, colorLabel); + + horizontalLayout = new QHBoxLayout(); + horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); + progressColorLineEdit = new QLineEdit(formLayoutWidget); + progressColorLineEdit->setObjectName(QString::fromUtf8("progressColorLineEdit")); + + horizontalLayout->addWidget(progressColorLineEdit); + + progressColorToolButton = new QToolButton(formLayoutWidget); + progressColorToolButton->setObjectName(QString::fromUtf8("progressColorToolButton")); + + horizontalLayout->addWidget(progressColorToolButton); + + + formLayout->setLayout(4, QFormLayout::FieldRole, horizontalLayout); + + backgroundColorLabel = new QLabel(formLayoutWidget); + backgroundColorLabel->setObjectName(QString::fromUtf8("backgroundColorLabel")); + + formLayout->setWidget(5, QFormLayout::LabelRole, backgroundColorLabel); + + horizontalLayout_2 = new QHBoxLayout(); + horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2")); + backgroundColorLineEdit = new QLineEdit(formLayoutWidget); + backgroundColorLineEdit->setObjectName(QString::fromUtf8("backgroundColorLineEdit")); + + horizontalLayout_2->addWidget(backgroundColorLineEdit); + + backgroundColorToolButton = new QToolButton(formLayoutWidget); + backgroundColorToolButton->setObjectName(QString::fromUtf8("backgroundColorToolButton")); + + horizontalLayout_2->addWidget(backgroundColorToolButton); + + + formLayout->setLayout(5, QFormLayout::FieldRole, horizontalLayout_2); + + + retranslateUi(ProgressSettingsForm); + + QMetaObject::connectSlotsByName(ProgressSettingsForm); + } // setupUi + + void retranslateUi(QWidget *ProgressSettingsForm) + { + ProgressSettingsForm->setWindowTitle(QCoreApplication::translate("ProgressSettingsForm", "Form", nullptr)); + disabledLabel->setText(QCoreApplication::translate("ProgressSettingsForm", "Disabled", nullptr)); + progressTypeLabel->setText(QCoreApplication::translate("ProgressSettingsForm", "Progress type", nullptr)); + progressTypeComboBox->setItemText(0, QCoreApplication::translate("ProgressSettingsForm", "Determinate", nullptr)); + progressTypeComboBox->setItemText(1, QCoreApplication::translate("ProgressSettingsForm", "Indeterminate", nullptr)); + + progressLabel->setText(QCoreApplication::translate("ProgressSettingsForm", "Progress", nullptr)); + useThemeColorsLabel->setText(QCoreApplication::translate("ProgressSettingsForm", "Use theme colors", nullptr)); + colorLabel->setText(QCoreApplication::translate("ProgressSettingsForm", "Progress color", nullptr)); + progressColorToolButton->setText(QCoreApplication::translate("ProgressSettingsForm", "...", nullptr)); + backgroundColorLabel->setText(QCoreApplication::translate("ProgressSettingsForm", "Background color", nullptr)); + backgroundColorToolButton->setText(QCoreApplication::translate("ProgressSettingsForm", "...", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class ProgressSettingsForm: public Ui_ProgressSettingsForm {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_PROGRESSSETTINGSFORM_H diff --git a/qt-material-widgets/examples/ui_radiobuttonsettingsform.h b/qt-material-widgets/examples/ui_radiobuttonsettingsform.h new file mode 100644 index 0000000..b71c00e --- /dev/null +++ b/qt-material-widgets/examples/ui_radiobuttonsettingsform.h @@ -0,0 +1,222 @@ +/******************************************************************************** +** Form generated from reading UI file 'radiobuttonsettingsform.ui' +** +** Created by: Qt User Interface Compiler version 5.15.2 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_RADIOBUTTONSETTINGSFORM_H +#define UI_RADIOBUTTONSETTINGSFORM_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_RadioButtonSettingsForm +{ +public: + QWidget *formLayoutWidget; + QFormLayout *formLayout; + QLabel *disabledLabel; + QCheckBox *disabledCheckBox; + QLabel *labelTextLabel_2; + QLineEdit *labelTextLineEdit_2; + QLabel *useThemeColorsLabel_3; + QCheckBox *useThemeColorsCheckBox_3; + QLabel *checkedColorLabel_3; + QLabel *uncheckedColorLabel_3; + QLabel *textColorLabel_3; + QLabel *disabledColorLabel_3; + QLabel *labelPositionLabel_3; + QComboBox *labelPositionComboBox_2; + QHBoxLayout *horizontalLayout_5; + QLineEdit *checkedColorLineEdit_2; + QToolButton *checkedColorToolButton_2; + QHBoxLayout *horizontalLayout_6; + QLineEdit *uncheckedColorLineEdit_2; + QToolButton *uncheckedColorToolButton_2; + QHBoxLayout *horizontalLayout_7; + QLineEdit *textColorLineEdit_2; + QToolButton *textColorToolButton_2; + QHBoxLayout *horizontalLayout_8; + QLineEdit *disabledColorLineEdit_2; + QToolButton *disabledColorToolButton_2; + + void setupUi(QWidget *RadioButtonSettingsForm) + { + if (RadioButtonSettingsForm->objectName().isEmpty()) + RadioButtonSettingsForm->setObjectName(QString::fromUtf8("RadioButtonSettingsForm")); + RadioButtonSettingsForm->resize(602, 439); + formLayoutWidget = new QWidget(RadioButtonSettingsForm); + formLayoutWidget->setObjectName(QString::fromUtf8("formLayoutWidget")); + formLayoutWidget->setGeometry(QRect(0, 0, 241, 228)); + formLayout = new QFormLayout(formLayoutWidget); + formLayout->setObjectName(QString::fromUtf8("formLayout")); + formLayout->setContentsMargins(0, 0, 0, 0); + disabledLabel = new QLabel(formLayoutWidget); + disabledLabel->setObjectName(QString::fromUtf8("disabledLabel")); + + formLayout->setWidget(0, QFormLayout::LabelRole, disabledLabel); + + disabledCheckBox = new QCheckBox(formLayoutWidget); + disabledCheckBox->setObjectName(QString::fromUtf8("disabledCheckBox")); + + formLayout->setWidget(0, QFormLayout::FieldRole, disabledCheckBox); + + labelTextLabel_2 = new QLabel(formLayoutWidget); + labelTextLabel_2->setObjectName(QString::fromUtf8("labelTextLabel_2")); + + formLayout->setWidget(2, QFormLayout::LabelRole, labelTextLabel_2); + + labelTextLineEdit_2 = new QLineEdit(formLayoutWidget); + labelTextLineEdit_2->setObjectName(QString::fromUtf8("labelTextLineEdit_2")); + + formLayout->setWidget(2, QFormLayout::FieldRole, labelTextLineEdit_2); + + useThemeColorsLabel_3 = new QLabel(formLayoutWidget); + useThemeColorsLabel_3->setObjectName(QString::fromUtf8("useThemeColorsLabel_3")); + + formLayout->setWidget(3, QFormLayout::LabelRole, useThemeColorsLabel_3); + + useThemeColorsCheckBox_3 = new QCheckBox(formLayoutWidget); + useThemeColorsCheckBox_3->setObjectName(QString::fromUtf8("useThemeColorsCheckBox_3")); + + formLayout->setWidget(3, QFormLayout::FieldRole, useThemeColorsCheckBox_3); + + checkedColorLabel_3 = new QLabel(formLayoutWidget); + checkedColorLabel_3->setObjectName(QString::fromUtf8("checkedColorLabel_3")); + + formLayout->setWidget(4, QFormLayout::LabelRole, checkedColorLabel_3); + + uncheckedColorLabel_3 = new QLabel(formLayoutWidget); + uncheckedColorLabel_3->setObjectName(QString::fromUtf8("uncheckedColorLabel_3")); + + formLayout->setWidget(5, QFormLayout::LabelRole, uncheckedColorLabel_3); + + textColorLabel_3 = new QLabel(formLayoutWidget); + textColorLabel_3->setObjectName(QString::fromUtf8("textColorLabel_3")); + + formLayout->setWidget(6, QFormLayout::LabelRole, textColorLabel_3); + + disabledColorLabel_3 = new QLabel(formLayoutWidget); + disabledColorLabel_3->setObjectName(QString::fromUtf8("disabledColorLabel_3")); + + formLayout->setWidget(7, QFormLayout::LabelRole, disabledColorLabel_3); + + labelPositionLabel_3 = new QLabel(formLayoutWidget); + labelPositionLabel_3->setObjectName(QString::fromUtf8("labelPositionLabel_3")); + + formLayout->setWidget(1, QFormLayout::LabelRole, labelPositionLabel_3); + + labelPositionComboBox_2 = new QComboBox(formLayoutWidget); + labelPositionComboBox_2->addItem(QString()); + labelPositionComboBox_2->addItem(QString()); + labelPositionComboBox_2->setObjectName(QString::fromUtf8("labelPositionComboBox_2")); + + formLayout->setWidget(1, QFormLayout::FieldRole, labelPositionComboBox_2); + + horizontalLayout_5 = new QHBoxLayout(); + horizontalLayout_5->setObjectName(QString::fromUtf8("horizontalLayout_5")); + checkedColorLineEdit_2 = new QLineEdit(formLayoutWidget); + checkedColorLineEdit_2->setObjectName(QString::fromUtf8("checkedColorLineEdit_2")); + + horizontalLayout_5->addWidget(checkedColorLineEdit_2); + + checkedColorToolButton_2 = new QToolButton(formLayoutWidget); + checkedColorToolButton_2->setObjectName(QString::fromUtf8("checkedColorToolButton_2")); + + horizontalLayout_5->addWidget(checkedColorToolButton_2); + + + formLayout->setLayout(4, QFormLayout::FieldRole, horizontalLayout_5); + + horizontalLayout_6 = new QHBoxLayout(); + horizontalLayout_6->setObjectName(QString::fromUtf8("horizontalLayout_6")); + uncheckedColorLineEdit_2 = new QLineEdit(formLayoutWidget); + uncheckedColorLineEdit_2->setObjectName(QString::fromUtf8("uncheckedColorLineEdit_2")); + + horizontalLayout_6->addWidget(uncheckedColorLineEdit_2); + + uncheckedColorToolButton_2 = new QToolButton(formLayoutWidget); + uncheckedColorToolButton_2->setObjectName(QString::fromUtf8("uncheckedColorToolButton_2")); + + horizontalLayout_6->addWidget(uncheckedColorToolButton_2); + + + formLayout->setLayout(5, QFormLayout::FieldRole, horizontalLayout_6); + + horizontalLayout_7 = new QHBoxLayout(); + horizontalLayout_7->setObjectName(QString::fromUtf8("horizontalLayout_7")); + textColorLineEdit_2 = new QLineEdit(formLayoutWidget); + textColorLineEdit_2->setObjectName(QString::fromUtf8("textColorLineEdit_2")); + + horizontalLayout_7->addWidget(textColorLineEdit_2); + + textColorToolButton_2 = new QToolButton(formLayoutWidget); + textColorToolButton_2->setObjectName(QString::fromUtf8("textColorToolButton_2")); + + horizontalLayout_7->addWidget(textColorToolButton_2); + + + formLayout->setLayout(6, QFormLayout::FieldRole, horizontalLayout_7); + + horizontalLayout_8 = new QHBoxLayout(); + horizontalLayout_8->setObjectName(QString::fromUtf8("horizontalLayout_8")); + disabledColorLineEdit_2 = new QLineEdit(formLayoutWidget); + disabledColorLineEdit_2->setObjectName(QString::fromUtf8("disabledColorLineEdit_2")); + + horizontalLayout_8->addWidget(disabledColorLineEdit_2); + + disabledColorToolButton_2 = new QToolButton(formLayoutWidget); + disabledColorToolButton_2->setObjectName(QString::fromUtf8("disabledColorToolButton_2")); + + horizontalLayout_8->addWidget(disabledColorToolButton_2); + + + formLayout->setLayout(7, QFormLayout::FieldRole, horizontalLayout_8); + + + retranslateUi(RadioButtonSettingsForm); + + QMetaObject::connectSlotsByName(RadioButtonSettingsForm); + } // setupUi + + void retranslateUi(QWidget *RadioButtonSettingsForm) + { + RadioButtonSettingsForm->setWindowTitle(QCoreApplication::translate("RadioButtonSettingsForm", "Form", nullptr)); + disabledLabel->setText(QCoreApplication::translate("RadioButtonSettingsForm", "Disabled", nullptr)); + labelTextLabel_2->setText(QCoreApplication::translate("RadioButtonSettingsForm", "Label text", nullptr)); + useThemeColorsLabel_3->setText(QCoreApplication::translate("RadioButtonSettingsForm", "Use theme colors", nullptr)); + checkedColorLabel_3->setText(QCoreApplication::translate("RadioButtonSettingsForm", "Checked color", nullptr)); + uncheckedColorLabel_3->setText(QCoreApplication::translate("RadioButtonSettingsForm", "Unchecked color", nullptr)); + textColorLabel_3->setText(QCoreApplication::translate("RadioButtonSettingsForm", "Text color", nullptr)); + disabledColorLabel_3->setText(QCoreApplication::translate("RadioButtonSettingsForm", "Disabled color", nullptr)); + labelPositionLabel_3->setText(QCoreApplication::translate("RadioButtonSettingsForm", "Label position", nullptr)); + labelPositionComboBox_2->setItemText(0, QCoreApplication::translate("RadioButtonSettingsForm", "Left", nullptr)); + labelPositionComboBox_2->setItemText(1, QCoreApplication::translate("RadioButtonSettingsForm", "Right", nullptr)); + + checkedColorToolButton_2->setText(QCoreApplication::translate("RadioButtonSettingsForm", "...", nullptr)); + uncheckedColorToolButton_2->setText(QCoreApplication::translate("RadioButtonSettingsForm", "...", nullptr)); + textColorToolButton_2->setText(QCoreApplication::translate("RadioButtonSettingsForm", "...", nullptr)); + disabledColorToolButton_2->setText(QCoreApplication::translate("RadioButtonSettingsForm", "...", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class RadioButtonSettingsForm: public Ui_RadioButtonSettingsForm {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_RADIOBUTTONSETTINGSFORM_H diff --git a/qt-material-widgets/examples/ui_scrollbarsettingsform.h b/qt-material-widgets/examples/ui_scrollbarsettingsform.h new file mode 100644 index 0000000..f904fd4 --- /dev/null +++ b/qt-material-widgets/examples/ui_scrollbarsettingsform.h @@ -0,0 +1,52 @@ +/******************************************************************************** +** Form generated from reading UI file 'scrollbarsettingsform.ui' +** +** Created by: Qt User Interface Compiler version 5.15.2 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_SCROLLBARSETTINGSFORM_H +#define UI_SCROLLBARSETTINGSFORM_H + +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_ScrollBarSettingsForm +{ +public: + QLabel *label; + + void setupUi(QWidget *ScrollBarSettingsForm) + { + if (ScrollBarSettingsForm->objectName().isEmpty()) + ScrollBarSettingsForm->setObjectName(QString::fromUtf8("ScrollBarSettingsForm")); + ScrollBarSettingsForm->resize(474, 387); + label = new QLabel(ScrollBarSettingsForm); + label->setObjectName(QString::fromUtf8("label")); + label->setGeometry(QRect(10, 70, 171, 16)); + + retranslateUi(ScrollBarSettingsForm); + + QMetaObject::connectSlotsByName(ScrollBarSettingsForm); + } // setupUi + + void retranslateUi(QWidget *ScrollBarSettingsForm) + { + ScrollBarSettingsForm->setWindowTitle(QCoreApplication::translate("ScrollBarSettingsForm", "Form", nullptr)); + label->setText(QCoreApplication::translate("ScrollBarSettingsForm", "TODO", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class ScrollBarSettingsForm: public Ui_ScrollBarSettingsForm {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_SCROLLBARSETTINGSFORM_H diff --git a/qt-material-widgets/examples/ui_slidersettingsform.h b/qt-material-widgets/examples/ui_slidersettingsform.h new file mode 100644 index 0000000..d8d35a0 --- /dev/null +++ b/qt-material-widgets/examples/ui_slidersettingsform.h @@ -0,0 +1,121 @@ +/******************************************************************************** +** Form generated from reading UI file 'slidersettingsform.ui' +** +** Created by: Qt User Interface Compiler version 5.15.2 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_SLIDERSETTINGSFORM_H +#define UI_SLIDERSETTINGSFORM_H + +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_SliderSettingsForm +{ +public: + QWidget *formLayoutWidget; + QFormLayout *formLayout; + QLabel *disabledLabel; + QCheckBox *disabledCheckBox; + QLabel *valueLabel; + QLineEdit *valueLineEdit; + QLabel *orientationLabel; + QComboBox *orientationComboBox; + QLabel *invertedLabel; + QCheckBox *invertedCheckBox; + QLabel *label; + + void setupUi(QWidget *SliderSettingsForm) + { + if (SliderSettingsForm->objectName().isEmpty()) + SliderSettingsForm->setObjectName(QString::fromUtf8("SliderSettingsForm")); + SliderSettingsForm->resize(474, 387); + formLayoutWidget = new QWidget(SliderSettingsForm); + formLayoutWidget->setObjectName(QString::fromUtf8("formLayoutWidget")); + formLayoutWidget->setGeometry(QRect(0, 0, 361, 111)); + formLayout = new QFormLayout(formLayoutWidget); + formLayout->setObjectName(QString::fromUtf8("formLayout")); + formLayout->setContentsMargins(0, 0, 0, 0); + disabledLabel = new QLabel(formLayoutWidget); + disabledLabel->setObjectName(QString::fromUtf8("disabledLabel")); + + formLayout->setWidget(0, QFormLayout::LabelRole, disabledLabel); + + disabledCheckBox = new QCheckBox(formLayoutWidget); + disabledCheckBox->setObjectName(QString::fromUtf8("disabledCheckBox")); + + formLayout->setWidget(0, QFormLayout::FieldRole, disabledCheckBox); + + valueLabel = new QLabel(formLayoutWidget); + valueLabel->setObjectName(QString::fromUtf8("valueLabel")); + + formLayout->setWidget(1, QFormLayout::LabelRole, valueLabel); + + valueLineEdit = new QLineEdit(formLayoutWidget); + valueLineEdit->setObjectName(QString::fromUtf8("valueLineEdit")); + + formLayout->setWidget(1, QFormLayout::FieldRole, valueLineEdit); + + orientationLabel = new QLabel(formLayoutWidget); + orientationLabel->setObjectName(QString::fromUtf8("orientationLabel")); + + formLayout->setWidget(2, QFormLayout::LabelRole, orientationLabel); + + orientationComboBox = new QComboBox(formLayoutWidget); + orientationComboBox->addItem(QString()); + orientationComboBox->addItem(QString()); + orientationComboBox->setObjectName(QString::fromUtf8("orientationComboBox")); + + formLayout->setWidget(2, QFormLayout::FieldRole, orientationComboBox); + + invertedLabel = new QLabel(formLayoutWidget); + invertedLabel->setObjectName(QString::fromUtf8("invertedLabel")); + + formLayout->setWidget(3, QFormLayout::LabelRole, invertedLabel); + + invertedCheckBox = new QCheckBox(formLayoutWidget); + invertedCheckBox->setObjectName(QString::fromUtf8("invertedCheckBox")); + + formLayout->setWidget(3, QFormLayout::FieldRole, invertedCheckBox); + + label = new QLabel(SliderSettingsForm); + label->setObjectName(QString::fromUtf8("label")); + label->setGeometry(QRect(20, 130, 171, 16)); + + retranslateUi(SliderSettingsForm); + + QMetaObject::connectSlotsByName(SliderSettingsForm); + } // setupUi + + void retranslateUi(QWidget *SliderSettingsForm) + { + SliderSettingsForm->setWindowTitle(QCoreApplication::translate("SliderSettingsForm", "Form", nullptr)); + disabledLabel->setText(QCoreApplication::translate("SliderSettingsForm", "Disabled", nullptr)); + valueLabel->setText(QCoreApplication::translate("SliderSettingsForm", "Value", nullptr)); + orientationLabel->setText(QCoreApplication::translate("SliderSettingsForm", "Orientation", nullptr)); + orientationComboBox->setItemText(0, QCoreApplication::translate("SliderSettingsForm", "Horizontal", nullptr)); + orientationComboBox->setItemText(1, QCoreApplication::translate("SliderSettingsForm", "Vertical", nullptr)); + + invertedLabel->setText(QCoreApplication::translate("SliderSettingsForm", "Inverted", nullptr)); + label->setText(QCoreApplication::translate("SliderSettingsForm", "TODO", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class SliderSettingsForm: public Ui_SliderSettingsForm {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_SLIDERSETTINGSFORM_H diff --git a/qt-material-widgets/examples/ui_snackbarsettingsform.h b/qt-material-widgets/examples/ui_snackbarsettingsform.h new file mode 100644 index 0000000..5374ee2 --- /dev/null +++ b/qt-material-widgets/examples/ui_snackbarsettingsform.h @@ -0,0 +1,58 @@ +/******************************************************************************** +** Form generated from reading UI file 'snackbarsettingsform.ui' +** +** Created by: Qt User Interface Compiler version 5.15.2 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_SNACKBARSETTINGSFORM_H +#define UI_SNACKBARSETTINGSFORM_H + +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_SnackbarSettingsForm +{ +public: + QPushButton *showSnackbarButton; + QLabel *label; + + void setupUi(QWidget *SnackbarSettingsForm) + { + if (SnackbarSettingsForm->objectName().isEmpty()) + SnackbarSettingsForm->setObjectName(QString::fromUtf8("SnackbarSettingsForm")); + SnackbarSettingsForm->resize(599, 418); + showSnackbarButton = new QPushButton(SnackbarSettingsForm); + showSnackbarButton->setObjectName(QString::fromUtf8("showSnackbarButton")); + showSnackbarButton->setGeometry(QRect(20, 60, 141, 22)); + label = new QLabel(SnackbarSettingsForm); + label->setObjectName(QString::fromUtf8("label")); + label->setGeometry(QRect(20, 30, 171, 16)); + + retranslateUi(SnackbarSettingsForm); + + QMetaObject::connectSlotsByName(SnackbarSettingsForm); + } // setupUi + + void retranslateUi(QWidget *SnackbarSettingsForm) + { + SnackbarSettingsForm->setWindowTitle(QCoreApplication::translate("SnackbarSettingsForm", "Form", nullptr)); + showSnackbarButton->setText(QCoreApplication::translate("SnackbarSettingsForm", "Show snackbar", nullptr)); + label->setText(QCoreApplication::translate("SnackbarSettingsForm", "TODO", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class SnackbarSettingsForm: public Ui_SnackbarSettingsForm {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_SNACKBARSETTINGSFORM_H diff --git a/qt-material-widgets/examples/ui_tabssettingsform.h b/qt-material-widgets/examples/ui_tabssettingsform.h new file mode 100644 index 0000000..261ba91 --- /dev/null +++ b/qt-material-widgets/examples/ui_tabssettingsform.h @@ -0,0 +1,52 @@ +/******************************************************************************** +** Form generated from reading UI file 'tabssettingsform.ui' +** +** Created by: Qt User Interface Compiler version 5.15.2 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_TABSSETTINGSFORM_H +#define UI_TABSSETTINGSFORM_H + +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_TabsSettingsForm +{ +public: + QLabel *label; + + void setupUi(QWidget *TabsSettingsForm) + { + if (TabsSettingsForm->objectName().isEmpty()) + TabsSettingsForm->setObjectName(QString::fromUtf8("TabsSettingsForm")); + TabsSettingsForm->resize(474, 387); + label = new QLabel(TabsSettingsForm); + label->setObjectName(QString::fromUtf8("label")); + label->setGeometry(QRect(10, 70, 171, 16)); + + retranslateUi(TabsSettingsForm); + + QMetaObject::connectSlotsByName(TabsSettingsForm); + } // setupUi + + void retranslateUi(QWidget *TabsSettingsForm) + { + TabsSettingsForm->setWindowTitle(QCoreApplication::translate("TabsSettingsForm", "Form", nullptr)); + label->setText(QCoreApplication::translate("TabsSettingsForm", "TODO", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class TabsSettingsForm: public Ui_TabsSettingsForm {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_TABSSETTINGSFORM_H diff --git a/qt-material-widgets/examples/ui_textfieldsettingsform.h b/qt-material-widgets/examples/ui_textfieldsettingsform.h new file mode 100644 index 0000000..98d6d4b --- /dev/null +++ b/qt-material-widgets/examples/ui_textfieldsettingsform.h @@ -0,0 +1,255 @@ +/******************************************************************************** +** Form generated from reading UI file 'textfieldsettingsform.ui' +** +** Created by: Qt User Interface Compiler version 5.15.2 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_TEXTFIELDSETTINGSFORM_H +#define UI_TEXTFIELDSETTINGSFORM_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_TextFieldSettingsForm +{ +public: + QWidget *formLayoutWidget; + QFormLayout *formLayout; + QLabel *disabledLabel; + QCheckBox *disabledCheckBox; + QLabel *textLabel; + QLineEdit *textLineEdit; + QLabel *placeholderLabel; + QLineEdit *placeholderLineEdit; + QLabel *labelLabel_2; + QCheckBox *labelCheckBox; + QLabel *labelLabel; + QLineEdit *labelTextLineEdit; + QLabel *useThemeColorsLabel; + QCheckBox *useThemeColorsCheckBox; + QLabel *textColorLabel; + QHBoxLayout *horizontalLayout; + QLineEdit *textColorLineEdit; + QToolButton *textColorToolButton; + QLabel *inkColorLabel; + QHBoxLayout *horizontalLayout_4; + QLineEdit *inkColorLineEdit; + QToolButton *inkColorToolButton; + QLabel *inputLineColorLabel; + QHBoxLayout *horizontalLayout_6; + QLineEdit *inputLineColorLineEdit; + QToolButton *inputLineColorToolButton; + QLabel *labelColorLabel; + QHBoxLayout *horizontalLayout_7; + QLineEdit *labelColorLineEdit; + QToolButton *labelColorToolButton; + QLabel *labelShowInputLine; + QCheckBox *inputLineCheckBox; + + void setupUi(QWidget *TextFieldSettingsForm) + { + if (TextFieldSettingsForm->objectName().isEmpty()) + TextFieldSettingsForm->setObjectName(QString::fromUtf8("TextFieldSettingsForm")); + TextFieldSettingsForm->resize(400, 416); + formLayoutWidget = new QWidget(TextFieldSettingsForm); + formLayoutWidget->setObjectName(QString::fromUtf8("formLayoutWidget")); + formLayoutWidget->setGeometry(QRect(0, 0, 321, 351)); + formLayout = new QFormLayout(formLayoutWidget); + formLayout->setObjectName(QString::fromUtf8("formLayout")); + formLayout->setContentsMargins(0, 0, 0, 0); + disabledLabel = new QLabel(formLayoutWidget); + disabledLabel->setObjectName(QString::fromUtf8("disabledLabel")); + + formLayout->setWidget(0, QFormLayout::LabelRole, disabledLabel); + + disabledCheckBox = new QCheckBox(formLayoutWidget); + disabledCheckBox->setObjectName(QString::fromUtf8("disabledCheckBox")); + + formLayout->setWidget(0, QFormLayout::FieldRole, disabledCheckBox); + + textLabel = new QLabel(formLayoutWidget); + textLabel->setObjectName(QString::fromUtf8("textLabel")); + + formLayout->setWidget(1, QFormLayout::LabelRole, textLabel); + + textLineEdit = new QLineEdit(formLayoutWidget); + textLineEdit->setObjectName(QString::fromUtf8("textLineEdit")); + + formLayout->setWidget(1, QFormLayout::FieldRole, textLineEdit); + + placeholderLabel = new QLabel(formLayoutWidget); + placeholderLabel->setObjectName(QString::fromUtf8("placeholderLabel")); + + formLayout->setWidget(2, QFormLayout::LabelRole, placeholderLabel); + + placeholderLineEdit = new QLineEdit(formLayoutWidget); + placeholderLineEdit->setObjectName(QString::fromUtf8("placeholderLineEdit")); + + formLayout->setWidget(2, QFormLayout::FieldRole, placeholderLineEdit); + + labelLabel_2 = new QLabel(formLayoutWidget); + labelLabel_2->setObjectName(QString::fromUtf8("labelLabel_2")); + + formLayout->setWidget(3, QFormLayout::LabelRole, labelLabel_2); + + labelCheckBox = new QCheckBox(formLayoutWidget); + labelCheckBox->setObjectName(QString::fromUtf8("labelCheckBox")); + + formLayout->setWidget(3, QFormLayout::FieldRole, labelCheckBox); + + labelLabel = new QLabel(formLayoutWidget); + labelLabel->setObjectName(QString::fromUtf8("labelLabel")); + + formLayout->setWidget(4, QFormLayout::LabelRole, labelLabel); + + labelTextLineEdit = new QLineEdit(formLayoutWidget); + labelTextLineEdit->setObjectName(QString::fromUtf8("labelTextLineEdit")); + + formLayout->setWidget(4, QFormLayout::FieldRole, labelTextLineEdit); + + useThemeColorsLabel = new QLabel(formLayoutWidget); + useThemeColorsLabel->setObjectName(QString::fromUtf8("useThemeColorsLabel")); + + formLayout->setWidget(5, QFormLayout::LabelRole, useThemeColorsLabel); + + useThemeColorsCheckBox = new QCheckBox(formLayoutWidget); + useThemeColorsCheckBox->setObjectName(QString::fromUtf8("useThemeColorsCheckBox")); + + formLayout->setWidget(5, QFormLayout::FieldRole, useThemeColorsCheckBox); + + textColorLabel = new QLabel(formLayoutWidget); + textColorLabel->setObjectName(QString::fromUtf8("textColorLabel")); + + formLayout->setWidget(6, QFormLayout::LabelRole, textColorLabel); + + horizontalLayout = new QHBoxLayout(); + horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); + textColorLineEdit = new QLineEdit(formLayoutWidget); + textColorLineEdit->setObjectName(QString::fromUtf8("textColorLineEdit")); + + horizontalLayout->addWidget(textColorLineEdit); + + textColorToolButton = new QToolButton(formLayoutWidget); + textColorToolButton->setObjectName(QString::fromUtf8("textColorToolButton")); + + horizontalLayout->addWidget(textColorToolButton); + + + formLayout->setLayout(6, QFormLayout::FieldRole, horizontalLayout); + + inkColorLabel = new QLabel(formLayoutWidget); + inkColorLabel->setObjectName(QString::fromUtf8("inkColorLabel")); + + formLayout->setWidget(7, QFormLayout::LabelRole, inkColorLabel); + + horizontalLayout_4 = new QHBoxLayout(); + horizontalLayout_4->setObjectName(QString::fromUtf8("horizontalLayout_4")); + inkColorLineEdit = new QLineEdit(formLayoutWidget); + inkColorLineEdit->setObjectName(QString::fromUtf8("inkColorLineEdit")); + + horizontalLayout_4->addWidget(inkColorLineEdit); + + inkColorToolButton = new QToolButton(formLayoutWidget); + inkColorToolButton->setObjectName(QString::fromUtf8("inkColorToolButton")); + + horizontalLayout_4->addWidget(inkColorToolButton); + + + formLayout->setLayout(7, QFormLayout::FieldRole, horizontalLayout_4); + + inputLineColorLabel = new QLabel(formLayoutWidget); + inputLineColorLabel->setObjectName(QString::fromUtf8("inputLineColorLabel")); + + formLayout->setWidget(8, QFormLayout::LabelRole, inputLineColorLabel); + + horizontalLayout_6 = new QHBoxLayout(); + horizontalLayout_6->setObjectName(QString::fromUtf8("horizontalLayout_6")); + inputLineColorLineEdit = new QLineEdit(formLayoutWidget); + inputLineColorLineEdit->setObjectName(QString::fromUtf8("inputLineColorLineEdit")); + + horizontalLayout_6->addWidget(inputLineColorLineEdit); + + inputLineColorToolButton = new QToolButton(formLayoutWidget); + inputLineColorToolButton->setObjectName(QString::fromUtf8("inputLineColorToolButton")); + + horizontalLayout_6->addWidget(inputLineColorToolButton); + + + formLayout->setLayout(8, QFormLayout::FieldRole, horizontalLayout_6); + + labelColorLabel = new QLabel(formLayoutWidget); + labelColorLabel->setObjectName(QString::fromUtf8("labelColorLabel")); + + formLayout->setWidget(9, QFormLayout::LabelRole, labelColorLabel); + + horizontalLayout_7 = new QHBoxLayout(); + horizontalLayout_7->setObjectName(QString::fromUtf8("horizontalLayout_7")); + labelColorLineEdit = new QLineEdit(formLayoutWidget); + labelColorLineEdit->setObjectName(QString::fromUtf8("labelColorLineEdit")); + + horizontalLayout_7->addWidget(labelColorLineEdit); + + labelColorToolButton = new QToolButton(formLayoutWidget); + labelColorToolButton->setObjectName(QString::fromUtf8("labelColorToolButton")); + + horizontalLayout_7->addWidget(labelColorToolButton); + + + formLayout->setLayout(9, QFormLayout::FieldRole, horizontalLayout_7); + + labelShowInputLine = new QLabel(formLayoutWidget); + labelShowInputLine->setObjectName(QString::fromUtf8("labelShowInputLine")); + + formLayout->setWidget(10, QFormLayout::LabelRole, labelShowInputLine); + + inputLineCheckBox = new QCheckBox(formLayoutWidget); + inputLineCheckBox->setObjectName(QString::fromUtf8("inputLineCheckBox")); + + formLayout->setWidget(10, QFormLayout::FieldRole, inputLineCheckBox); + + + retranslateUi(TextFieldSettingsForm); + + QMetaObject::connectSlotsByName(TextFieldSettingsForm); + } // setupUi + + void retranslateUi(QWidget *TextFieldSettingsForm) + { + TextFieldSettingsForm->setWindowTitle(QCoreApplication::translate("TextFieldSettingsForm", "Form", nullptr)); + disabledLabel->setText(QCoreApplication::translate("TextFieldSettingsForm", "Disabled", nullptr)); + textLabel->setText(QCoreApplication::translate("TextFieldSettingsForm", "Text", nullptr)); + placeholderLabel->setText(QCoreApplication::translate("TextFieldSettingsForm", "Placeholder", nullptr)); + labelLabel_2->setText(QCoreApplication::translate("TextFieldSettingsForm", "Label", nullptr)); + labelLabel->setText(QCoreApplication::translate("TextFieldSettingsForm", "Label text", nullptr)); + useThemeColorsLabel->setText(QCoreApplication::translate("TextFieldSettingsForm", "Use theme colors", nullptr)); + textColorLabel->setText(QCoreApplication::translate("TextFieldSettingsForm", "Text color", nullptr)); + textColorToolButton->setText(QCoreApplication::translate("TextFieldSettingsForm", "...", nullptr)); + inkColorLabel->setText(QCoreApplication::translate("TextFieldSettingsForm", "Ink color", nullptr)); + inkColorToolButton->setText(QCoreApplication::translate("TextFieldSettingsForm", "...", nullptr)); + inputLineColorLabel->setText(QCoreApplication::translate("TextFieldSettingsForm", "Input line color", nullptr)); + inputLineColorToolButton->setText(QCoreApplication::translate("TextFieldSettingsForm", "...", nullptr)); + labelColorLabel->setText(QCoreApplication::translate("TextFieldSettingsForm", "Label color", nullptr)); + labelColorToolButton->setText(QCoreApplication::translate("TextFieldSettingsForm", "...", nullptr)); + labelShowInputLine->setText(QCoreApplication::translate("TextFieldSettingsForm", "Input line", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class TextFieldSettingsForm: public Ui_TextFieldSettingsForm {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_TEXTFIELDSETTINGSFORM_H diff --git a/qt-material-widgets/examples/ui_togglesettingsform.h b/qt-material-widgets/examples/ui_togglesettingsform.h new file mode 100644 index 0000000..d9981be --- /dev/null +++ b/qt-material-widgets/examples/ui_togglesettingsform.h @@ -0,0 +1,222 @@ +/******************************************************************************** +** Form generated from reading UI file 'togglesettingsform.ui' +** +** Created by: Qt User Interface Compiler version 5.15.2 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_TOGGLESETTINGSFORM_H +#define UI_TOGGLESETTINGSFORM_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_ToggleSettingsForm +{ +public: + QWidget *formLayoutWidget; + QFormLayout *formLayout; + QLabel *disabledLabel; + QCheckBox *disabledCheckBox; + QLabel *checkedLabel; + QCheckBox *checkedCheckBox; + QLabel *orientationLabel; + QComboBox *orientationComboBox; + QLabel *activeColorLabel; + QLabel *inactiveColorLabel; + QLabel *disabledColorLabel; + QLabel *trackColorLabel; + QHBoxLayout *horizontalLayout; + QLineEdit *activeColorLineEdit; + QToolButton *activeColorToolButton; + QHBoxLayout *horizontalLayout_3; + QLineEdit *inactiveColorLineEdit; + QToolButton *inactiveColorToolButton; + QHBoxLayout *horizontalLayout_4; + QLineEdit *disabledColorLineEdit; + QToolButton *disabledColorToolButton; + QHBoxLayout *horizontalLayout_5; + QLineEdit *trackColorLineEdit; + QToolButton *trackColorToolButton; + QLabel *useThemeColorsLabel; + QCheckBox *useThemeColorsCheckBox; + + void setupUi(QWidget *ToggleSettingsForm) + { + if (ToggleSettingsForm->objectName().isEmpty()) + ToggleSettingsForm->setObjectName(QString::fromUtf8("ToggleSettingsForm")); + ToggleSettingsForm->resize(482, 427); + formLayoutWidget = new QWidget(ToggleSettingsForm); + formLayoutWidget->setObjectName(QString::fromUtf8("formLayoutWidget")); + formLayoutWidget->setGeometry(QRect(0, 0, 441, 341)); + formLayout = new QFormLayout(formLayoutWidget); + formLayout->setObjectName(QString::fromUtf8("formLayout")); + formLayout->setContentsMargins(0, 0, 0, 0); + disabledLabel = new QLabel(formLayoutWidget); + disabledLabel->setObjectName(QString::fromUtf8("disabledLabel")); + + formLayout->setWidget(0, QFormLayout::LabelRole, disabledLabel); + + disabledCheckBox = new QCheckBox(formLayoutWidget); + disabledCheckBox->setObjectName(QString::fromUtf8("disabledCheckBox")); + + formLayout->setWidget(0, QFormLayout::FieldRole, disabledCheckBox); + + checkedLabel = new QLabel(formLayoutWidget); + checkedLabel->setObjectName(QString::fromUtf8("checkedLabel")); + + formLayout->setWidget(1, QFormLayout::LabelRole, checkedLabel); + + checkedCheckBox = new QCheckBox(formLayoutWidget); + checkedCheckBox->setObjectName(QString::fromUtf8("checkedCheckBox")); + + formLayout->setWidget(1, QFormLayout::FieldRole, checkedCheckBox); + + orientationLabel = new QLabel(formLayoutWidget); + orientationLabel->setObjectName(QString::fromUtf8("orientationLabel")); + + formLayout->setWidget(2, QFormLayout::LabelRole, orientationLabel); + + orientationComboBox = new QComboBox(formLayoutWidget); + orientationComboBox->addItem(QString()); + orientationComboBox->addItem(QString()); + orientationComboBox->setObjectName(QString::fromUtf8("orientationComboBox")); + + formLayout->setWidget(2, QFormLayout::FieldRole, orientationComboBox); + + activeColorLabel = new QLabel(formLayoutWidget); + activeColorLabel->setObjectName(QString::fromUtf8("activeColorLabel")); + + formLayout->setWidget(4, QFormLayout::LabelRole, activeColorLabel); + + inactiveColorLabel = new QLabel(formLayoutWidget); + inactiveColorLabel->setObjectName(QString::fromUtf8("inactiveColorLabel")); + + formLayout->setWidget(5, QFormLayout::LabelRole, inactiveColorLabel); + + disabledColorLabel = new QLabel(formLayoutWidget); + disabledColorLabel->setObjectName(QString::fromUtf8("disabledColorLabel")); + + formLayout->setWidget(6, QFormLayout::LabelRole, disabledColorLabel); + + trackColorLabel = new QLabel(formLayoutWidget); + trackColorLabel->setObjectName(QString::fromUtf8("trackColorLabel")); + + formLayout->setWidget(7, QFormLayout::LabelRole, trackColorLabel); + + horizontalLayout = new QHBoxLayout(); + horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); + activeColorLineEdit = new QLineEdit(formLayoutWidget); + activeColorLineEdit->setObjectName(QString::fromUtf8("activeColorLineEdit")); + + horizontalLayout->addWidget(activeColorLineEdit); + + activeColorToolButton = new QToolButton(formLayoutWidget); + activeColorToolButton->setObjectName(QString::fromUtf8("activeColorToolButton")); + + horizontalLayout->addWidget(activeColorToolButton); + + + formLayout->setLayout(4, QFormLayout::FieldRole, horizontalLayout); + + horizontalLayout_3 = new QHBoxLayout(); + horizontalLayout_3->setObjectName(QString::fromUtf8("horizontalLayout_3")); + inactiveColorLineEdit = new QLineEdit(formLayoutWidget); + inactiveColorLineEdit->setObjectName(QString::fromUtf8("inactiveColorLineEdit")); + + horizontalLayout_3->addWidget(inactiveColorLineEdit); + + inactiveColorToolButton = new QToolButton(formLayoutWidget); + inactiveColorToolButton->setObjectName(QString::fromUtf8("inactiveColorToolButton")); + + horizontalLayout_3->addWidget(inactiveColorToolButton); + + + formLayout->setLayout(5, QFormLayout::FieldRole, horizontalLayout_3); + + horizontalLayout_4 = new QHBoxLayout(); + horizontalLayout_4->setObjectName(QString::fromUtf8("horizontalLayout_4")); + disabledColorLineEdit = new QLineEdit(formLayoutWidget); + disabledColorLineEdit->setObjectName(QString::fromUtf8("disabledColorLineEdit")); + + horizontalLayout_4->addWidget(disabledColorLineEdit); + + disabledColorToolButton = new QToolButton(formLayoutWidget); + disabledColorToolButton->setObjectName(QString::fromUtf8("disabledColorToolButton")); + + horizontalLayout_4->addWidget(disabledColorToolButton); + + + formLayout->setLayout(6, QFormLayout::FieldRole, horizontalLayout_4); + + horizontalLayout_5 = new QHBoxLayout(); + horizontalLayout_5->setObjectName(QString::fromUtf8("horizontalLayout_5")); + trackColorLineEdit = new QLineEdit(formLayoutWidget); + trackColorLineEdit->setObjectName(QString::fromUtf8("trackColorLineEdit")); + + horizontalLayout_5->addWidget(trackColorLineEdit); + + trackColorToolButton = new QToolButton(formLayoutWidget); + trackColorToolButton->setObjectName(QString::fromUtf8("trackColorToolButton")); + + horizontalLayout_5->addWidget(trackColorToolButton); + + + formLayout->setLayout(7, QFormLayout::FieldRole, horizontalLayout_5); + + useThemeColorsLabel = new QLabel(formLayoutWidget); + useThemeColorsLabel->setObjectName(QString::fromUtf8("useThemeColorsLabel")); + + formLayout->setWidget(3, QFormLayout::LabelRole, useThemeColorsLabel); + + useThemeColorsCheckBox = new QCheckBox(formLayoutWidget); + useThemeColorsCheckBox->setObjectName(QString::fromUtf8("useThemeColorsCheckBox")); + + formLayout->setWidget(3, QFormLayout::FieldRole, useThemeColorsCheckBox); + + + retranslateUi(ToggleSettingsForm); + + QMetaObject::connectSlotsByName(ToggleSettingsForm); + } // setupUi + + void retranslateUi(QWidget *ToggleSettingsForm) + { + ToggleSettingsForm->setWindowTitle(QCoreApplication::translate("ToggleSettingsForm", "Form", nullptr)); + disabledLabel->setText(QCoreApplication::translate("ToggleSettingsForm", "Disabled", nullptr)); + checkedLabel->setText(QCoreApplication::translate("ToggleSettingsForm", "Checked", nullptr)); + orientationLabel->setText(QCoreApplication::translate("ToggleSettingsForm", "Orientation", nullptr)); + orientationComboBox->setItemText(0, QCoreApplication::translate("ToggleSettingsForm", "Horizontal", nullptr)); + orientationComboBox->setItemText(1, QCoreApplication::translate("ToggleSettingsForm", "Vertical", nullptr)); + + activeColorLabel->setText(QCoreApplication::translate("ToggleSettingsForm", "Active color", nullptr)); + inactiveColorLabel->setText(QCoreApplication::translate("ToggleSettingsForm", "Inactive color", nullptr)); + disabledColorLabel->setText(QCoreApplication::translate("ToggleSettingsForm", "Disabled color", nullptr)); + trackColorLabel->setText(QCoreApplication::translate("ToggleSettingsForm", "Track color", nullptr)); + activeColorToolButton->setText(QCoreApplication::translate("ToggleSettingsForm", "...", nullptr)); + inactiveColorToolButton->setText(QCoreApplication::translate("ToggleSettingsForm", "...", nullptr)); + disabledColorToolButton->setText(QCoreApplication::translate("ToggleSettingsForm", "...", nullptr)); + trackColorToolButton->setText(QCoreApplication::translate("ToggleSettingsForm", "...", nullptr)); + useThemeColorsLabel->setText(QCoreApplication::translate("ToggleSettingsForm", "Use theme colors", nullptr)); + } // retranslateUi + +}; + +namespace Ui { + class ToggleSettingsForm: public Ui_ToggleSettingsForm {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_TOGGLESETTINGSFORM_H diff --git a/qt-material-widgets/fonts/Roboto/LICENSE.txt b/qt-material-widgets/fonts/Roboto/LICENSE.txt new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/qt-material-widgets/fonts/Roboto/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/qt-material-widgets/fonts/Roboto/Roboto-Black.ttf b/qt-material-widgets/fonts/Roboto/Roboto-Black.ttf new file mode 100644 index 0000000..fbde625 Binary files /dev/null and b/qt-material-widgets/fonts/Roboto/Roboto-Black.ttf differ diff --git a/qt-material-widgets/fonts/Roboto/Roboto-BlackItalic.ttf b/qt-material-widgets/fonts/Roboto/Roboto-BlackItalic.ttf new file mode 100644 index 0000000..60f7782 Binary files /dev/null and b/qt-material-widgets/fonts/Roboto/Roboto-BlackItalic.ttf differ diff --git a/qt-material-widgets/fonts/Roboto/Roboto-Bold.ttf b/qt-material-widgets/fonts/Roboto/Roboto-Bold.ttf new file mode 100644 index 0000000..a355c27 Binary files /dev/null and b/qt-material-widgets/fonts/Roboto/Roboto-Bold.ttf differ diff --git a/qt-material-widgets/fonts/Roboto/Roboto-BoldItalic.ttf b/qt-material-widgets/fonts/Roboto/Roboto-BoldItalic.ttf new file mode 100644 index 0000000..3c9a7a3 Binary files /dev/null and b/qt-material-widgets/fonts/Roboto/Roboto-BoldItalic.ttf differ diff --git a/qt-material-widgets/fonts/Roboto/Roboto-Italic.ttf b/qt-material-widgets/fonts/Roboto/Roboto-Italic.ttf new file mode 100644 index 0000000..ff6046d Binary files /dev/null and b/qt-material-widgets/fonts/Roboto/Roboto-Italic.ttf differ diff --git a/qt-material-widgets/fonts/Roboto/Roboto-Light.ttf b/qt-material-widgets/fonts/Roboto/Roboto-Light.ttf new file mode 100644 index 0000000..94c6bcc Binary files /dev/null and b/qt-material-widgets/fonts/Roboto/Roboto-Light.ttf differ diff --git a/qt-material-widgets/fonts/Roboto/Roboto-LightItalic.ttf b/qt-material-widgets/fonts/Roboto/Roboto-LightItalic.ttf new file mode 100644 index 0000000..04cc002 Binary files /dev/null and b/qt-material-widgets/fonts/Roboto/Roboto-LightItalic.ttf differ diff --git a/qt-material-widgets/fonts/Roboto/Roboto-Medium.ttf b/qt-material-widgets/fonts/Roboto/Roboto-Medium.ttf new file mode 100644 index 0000000..39c63d7 Binary files /dev/null and b/qt-material-widgets/fonts/Roboto/Roboto-Medium.ttf differ diff --git a/qt-material-widgets/fonts/Roboto/Roboto-MediumItalic.ttf b/qt-material-widgets/fonts/Roboto/Roboto-MediumItalic.ttf new file mode 100644 index 0000000..dc743f0 Binary files /dev/null and b/qt-material-widgets/fonts/Roboto/Roboto-MediumItalic.ttf differ diff --git a/qt-material-widgets/fonts/Roboto/Roboto-Regular.ttf b/qt-material-widgets/fonts/Roboto/Roboto-Regular.ttf new file mode 100644 index 0000000..8c082c8 Binary files /dev/null and b/qt-material-widgets/fonts/Roboto/Roboto-Regular.ttf differ diff --git a/qt-material-widgets/fonts/Roboto/Roboto-Thin.ttf b/qt-material-widgets/fonts/Roboto/Roboto-Thin.ttf new file mode 100644 index 0000000..d695550 Binary files /dev/null and b/qt-material-widgets/fonts/Roboto/Roboto-Thin.ttf differ diff --git a/qt-material-widgets/fonts/Roboto/Roboto-ThinItalic.ttf b/qt-material-widgets/fonts/Roboto/Roboto-ThinItalic.ttf new file mode 100644 index 0000000..07172ff Binary files /dev/null and b/qt-material-widgets/fonts/Roboto/Roboto-ThinItalic.ttf differ diff --git a/qt-material-widgets/gifs/appbar.gif b/qt-material-widgets/gifs/appbar.gif new file mode 100644 index 0000000..3b673b9 Binary files /dev/null and b/qt-material-widgets/gifs/appbar.gif differ diff --git a/qt-material-widgets/gifs/autocomplete.gif b/qt-material-widgets/gifs/autocomplete.gif new file mode 100644 index 0000000..e883cc2 Binary files /dev/null and b/qt-material-widgets/gifs/autocomplete.gif differ diff --git a/qt-material-widgets/gifs/avatar.gif b/qt-material-widgets/gifs/avatar.gif new file mode 100644 index 0000000..068259d Binary files /dev/null and b/qt-material-widgets/gifs/avatar.gif differ diff --git a/qt-material-widgets/gifs/badge.gif b/qt-material-widgets/gifs/badge.gif new file mode 100644 index 0000000..dba9dcc Binary files /dev/null and b/qt-material-widgets/gifs/badge.gif differ diff --git a/qt-material-widgets/gifs/checkbox.gif b/qt-material-widgets/gifs/checkbox.gif new file mode 100644 index 0000000..104661e Binary files /dev/null and b/qt-material-widgets/gifs/checkbox.gif differ diff --git a/qt-material-widgets/gifs/circularprogress.gif b/qt-material-widgets/gifs/circularprogress.gif new file mode 100644 index 0000000..4109efe Binary files /dev/null and b/qt-material-widgets/gifs/circularprogress.gif differ diff --git a/qt-material-widgets/gifs/dialog.gif b/qt-material-widgets/gifs/dialog.gif new file mode 100644 index 0000000..f830143 Binary files /dev/null and b/qt-material-widgets/gifs/dialog.gif differ diff --git a/qt-material-widgets/gifs/drawer.gif b/qt-material-widgets/gifs/drawer.gif new file mode 100644 index 0000000..98b0025 Binary files /dev/null and b/qt-material-widgets/gifs/drawer.gif differ diff --git a/qt-material-widgets/gifs/fab.gif b/qt-material-widgets/gifs/fab.gif new file mode 100644 index 0000000..bbe29e5 Binary files /dev/null and b/qt-material-widgets/gifs/fab.gif differ diff --git a/qt-material-widgets/gifs/flatbutton.gif b/qt-material-widgets/gifs/flatbutton.gif new file mode 100644 index 0000000..97fb8e2 Binary files /dev/null and b/qt-material-widgets/gifs/flatbutton.gif differ diff --git a/qt-material-widgets/gifs/iconbutton.gif b/qt-material-widgets/gifs/iconbutton.gif new file mode 100644 index 0000000..873990a Binary files /dev/null and b/qt-material-widgets/gifs/iconbutton.gif differ diff --git a/qt-material-widgets/gifs/progress.gif b/qt-material-widgets/gifs/progress.gif new file mode 100644 index 0000000..59cedff Binary files /dev/null and b/qt-material-widgets/gifs/progress.gif differ diff --git a/qt-material-widgets/gifs/radiobutton.gif b/qt-material-widgets/gifs/radiobutton.gif new file mode 100644 index 0000000..7180ca5 Binary files /dev/null and b/qt-material-widgets/gifs/radiobutton.gif differ diff --git a/qt-material-widgets/gifs/raisedbutton.gif b/qt-material-widgets/gifs/raisedbutton.gif new file mode 100644 index 0000000..52b8339 Binary files /dev/null and b/qt-material-widgets/gifs/raisedbutton.gif differ diff --git a/qt-material-widgets/gifs/scrollbar.gif b/qt-material-widgets/gifs/scrollbar.gif new file mode 100644 index 0000000..fbde912 Binary files /dev/null and b/qt-material-widgets/gifs/scrollbar.gif differ diff --git a/qt-material-widgets/gifs/slider.gif b/qt-material-widgets/gifs/slider.gif new file mode 100644 index 0000000..a0a6a0a Binary files /dev/null and b/qt-material-widgets/gifs/slider.gif differ diff --git a/qt-material-widgets/gifs/snackbar.gif b/qt-material-widgets/gifs/snackbar.gif new file mode 100644 index 0000000..8a48e7f Binary files /dev/null and b/qt-material-widgets/gifs/snackbar.gif differ diff --git a/qt-material-widgets/gifs/tabs.gif b/qt-material-widgets/gifs/tabs.gif new file mode 100644 index 0000000..1e7b783 Binary files /dev/null and b/qt-material-widgets/gifs/tabs.gif differ diff --git a/qt-material-widgets/gifs/textfield.gif b/qt-material-widgets/gifs/textfield.gif new file mode 100644 index 0000000..7b2fd93 Binary files /dev/null and b/qt-material-widgets/gifs/textfield.gif differ diff --git a/qt-material-widgets/gifs/toggle.gif b/qt-material-widgets/gifs/toggle.gif new file mode 100644 index 0000000..b57530c Binary files /dev/null and b/qt-material-widgets/gifs/toggle.gif differ diff --git a/qt-material-widgets/qt-material-widgets.pro b/qt-material-widgets/qt-material-widgets.pro new file mode 100644 index 0000000..5654f10 --- /dev/null +++ b/qt-material-widgets/qt-material-widgets.pro @@ -0,0 +1,17 @@ +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +TARGET = qt-material-widgets +TEMPLATE = subdirs +SUBDIRS = components examples +CONFIG += ordered + +# The following define makes your compiler emit warnings if you use +# any feature of Qt which as been marked as deprecated (the exact warnings +# depend on your compiler). Please consult the documentation of the +# deprecated API in order to know how to port your code away from it. +DEFINES += QT_DEPRECATED_WARNINGS + +# You can also make your code fail to compile if you use deprecated APIs. +# In order to do so, uncomment the following line. +# You can also select to disable deprecated APIs only up to a certain version of Qt. +#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0