diff --git a/.gitignore b/.gitignore index 665e73083062144a749cb5d9a7cecaae8b3af981..07d6922b4b573ef98494a657d52c7caecb2e62b9 100644 --- a/.gitignore +++ b/.gitignore @@ -33,3 +33,9 @@ # build files src/Element-UI/build +build +cmake-build-release +cmake-build-debug +.idea +.cache +.vscode diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..347a203a97e16af861e8423209f18d5f6671a615 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,27 @@ +cmake_minimum_required(VERSION 3.15) +project(Element-UI VERSION 0.1 LANGUAGES CXX) + +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +find_package(QT NAMES Qt6 Qt5 COMPONENTS Core Gui Widgets Svg Xml REQUIRED) +find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Gui Widgets Svg Xml REQUIRED) + +aux_source_directory(src/Element-UI srcs) + +file(GLOB_RECURSE QRC_SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/res.qrc) + +qt5_add_resources(QRC_FILES ${QRC_SOURCE_FILES}) + +add_executable(Element-UI ${srcs} ${QRC_FILES}) + +target_link_libraries(Element-UI Qt${QT_VERSION_MAJOR}::Core + Qt${QT_VERSION_MAJOR}::Gui + Qt${QT_VERSION_MAJOR}::Widgets + Qt${QT_VERSION_MAJOR}::Svg + Qt${QT_VERSION_MAJOR}::Xml + ) + diff --git a/README.en.md b/README.en.md index 073ccf62e8ca756375481b985934a46b68e12ad5..dd290dbd4f2a962fd4c93ff0f3f3d9fef71b831c 100644 --- a/README.en.md +++ b/README.en.md @@ -8,15 +8,17 @@ Software architecture description #### Installation -1. xxxx -2. xxxx -3. xxxx +Open Qt Creator and compile source files. #### Instructions -1. xxxx -2. xxxx -3. xxxx +After cloning the repository, you may need to replace all of the path that located in `src/Element-UI/Element-UI.pro.user`. The detail may be as follows: + +![the content needed to replace](instruction.png) + +![replace it into the path where the current repository located in](instruction2.png) + +There are still several places needed to replace. You can use **Replace All** button in any editor. Besides, it has a situation that the separator of the path isn't completely the same(`\` and `/`), which should be careful. #### Contribution @@ -25,12 +27,6 @@ Software architecture description 3. Commit your code 4. Create Pull Request +#### Thanks -#### Gitee Feature - -1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md -2. Gitee blog [blog.gitee.com](https://blog.gitee.com) -3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) -4. The most valuable open source project [GVP](https://gitee.com/gvp) -5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) -6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) +The inspiration of this project comes from [Element UI](https://element.eleme.cn/#/zh-CN/component/installation) and [QML Fluent UI](https://github.com/zhuzichu520/FluentUI). diff --git a/README.md b/README.md index 86c0d13738de896dd02a93763976de1e5446e8c5..e8ec00b3d1645783d37c48eac5e4cc65c2aafb1d 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,12 @@ #### 使用说明 克隆仓库后需要将`src/Element-UI/Element-UI.pro.user`文件中所有与路径有关的内容替换为当前仓库的路径,如下图: -![替换细节](instruction.png)。 +![将红框圈中的替换为下图](instruction.png) + +![替换后应为当前仓库的位置](instruction2.png) + +这样的路径有好几处需要替换,可使用**全部替换**,另外,可能会有**路径分隔符不一样**的情况(`\`和`/`),注意查看。 + 本项目仍在开发中... #### 参与贡献 diff --git a/instruction.png b/instruction.png index d16479ba964f58bac0ebf0044b63b15392760659..60181914ceb55d6051eb92c3f85fc16bf52c09ba 100644 Binary files a/instruction.png and b/instruction.png differ diff --git a/instruction2.png b/instruction2.png new file mode 100644 index 0000000000000000000000000000000000000000..80d63ef5336bd465adf67f59e54b86753fcd6b45 Binary files /dev/null and b/instruction2.png differ diff --git a/src/Element-UI/Element-UI.pro.user b/src/Element-UI/Element-UI.pro.user deleted file mode 100644 index 3172c52f12feb726c972a4db25c74dcf6fb83c5c..0000000000000000000000000000000000000000 --- a/src/Element-UI/Element-UI.pro.user +++ /dev/null @@ -1,273 +0,0 @@ - - - - - - EnvironmentId - {e31a6953-c432-4bfd-8c23-2166142bdbb6} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - true - 80 - true - true - 1 - 2 - true - true - false - 2 - true - true - 0 - 8 - true - false - 1 - true - false - true - *.md, *.MD, Makefile - false - true - true - - - - ProjectExplorer.Project.PluginSettings - - - true - false - true - true - true - true - - false - - - 0 - true - - true - true - Builtin.DefaultTidyAndClazy - 4 - true - - - - true - - - true - - - - - ProjectExplorer.Project.Target.0 - - Desktop - Desktop Qt 6.4.2 MinGW 64-bit - Desktop Qt 6.4.2 MinGW 64-bit - qt.qt6.642.win64_mingw_kit - 0 - 0 - 0 - - 0 - D:\qtProjects\mycomponents\element-ui-with-qt-widgets\src\Element-UI\build\Desktop_Qt_6_4_2_MinGW_64_bit-Debug - D:/qtProjects/mycomponents/element-ui-with-qt-widgets/src/Element-UI/build/Desktop_Qt_6_4_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - false - - - - true - Qt4ProjectManager.MakeStep - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - clean - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - D:\qtProjects\mycomponents\element-ui-with-qt-widgets\src\Element-UI\build\Desktop_Qt_6_4_2_MinGW_64_bit-Release - D:/qtProjects/mycomponents/element-ui-with-qt-widgets/src/Element-UI/build/Desktop_Qt_6_4_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - - - true - Qt4ProjectManager.MakeStep - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - clean - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - 0 - - - 0 - D:\qtProjects\mycomponents\element-ui-with-qt-widgets\src\Element-UI\build\Desktop_Qt_6_4_2_MinGW_64_bit-Profile - D:/qtProjects/mycomponents/element-ui-with-qt-widgets/src/Element-UI/build/Desktop_Qt_6_4_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - false - - - - true - Qt4ProjectManager.MakeStep - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - clean - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - 0 - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - - false - ProjectExplorer.DefaultDeployConfiguration - - 1 - - true - true - 0 - true - - 2 - - false - -e cpu-cycles --call-graph "dwarf,4096" -F 250 - Element-UI2 - Qt4ProjectManager.Qt4RunConfiguration:D:/qtProjects/mycomponents/element-ui-with-qt-widgets/src/Element-UI/Element-UI.pro - D:/qtProjects/mycomponents/element-ui-with-qt-widgets/src/Element-UI/Element-UI.pro - true - true - true - true - D:/qtProjects/mycomponents/element-ui-with-qt-widgets/src/Element-UI/build/Desktop_Qt_6_4_2_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.TargetCount - 1 - - - ProjectExplorer.Project.Updater.FileVersion - 22 - - - Version - 22 - - diff --git a/src/Element-UI/elalert.cpp b/src/Element-UI/elalert.cpp index dc60dbe95ecf535318ba7be7f2f506b10cdbee41..cd3b9a66477436b44ae986a4bc29405f97549059 100644 --- a/src/Element-UI/elalert.cpp +++ b/src/Element-UI/elalert.cpp @@ -247,7 +247,7 @@ void ElAlert::paintEvent(QPaintEvent *e) // draw rect painter.setPen(_palette.color(ElPalette::Border)); painter.setBrush(_palette.color(ElPalette::Background)); - painter.drawRoundedRect(rect().toRectF(), height() / 8.0, height() / 8.0); + painter.drawRoundedRect(rect(), height() / 8.0, height() / 8.0); // draw title painter.setPen(_palette.color(ElPalette::Foreground)); auto left = Padding_Lr + (_center ? extra_space / 2.0 : 0) diff --git a/src/Element-UI/elbutton.cpp b/src/Element-UI/elbutton.cpp index 1fe0b6ef448e67ea7a20887a8e03c45cda89e838..957b44608a9836ee19e5fda2b19e6271cb189d89 100644 --- a/src/Element-UI/elbutton.cpp +++ b/src/Element-UI/elbutton.cpp @@ -1,6 +1,5 @@ #include "elbutton.h" #include -#include #include #include #include @@ -77,7 +76,7 @@ void ElButton::paintEvent(QPaintEvent *e) e->accept(); } -void ElButton::enterEvent(QEnterEvent *e) + void ElButton::enterEvent(QEvent *e) { if (!isEnabled()) { e->accept(); @@ -205,7 +204,7 @@ void ElButton::drawTextAndIcon(QPainter *painter) { qreal padding_lr = 20; // left and right padding QRectF br; - painter->drawText(rect().toRectF(), Qt::AlignCenter, _text, &br); + painter->drawText(rect(), Qt::AlignCenter, _text, &br); bool hasIcon = (_icon != nullptr); qreal spacing = 4, extra_icon_space = hasIcon ? 16 + spacing : 0; resize(br.width() + 2 * padding_lr + extra_icon_space, height()); @@ -266,7 +265,8 @@ void ElCircleButton::paintEvent(QPaintEvent *e) pen.setWidthF(1.2); painter.setPen(pen); painter.setBrush(_palette.color(ElPalette::Background)); - painter.drawEllipse(rect().center().toPointF(), _radius, _radius); + QRectF _rectf(rect()); + painter.drawEllipse(_rectf.center(), _radius, _radius); //TODO if (_icon != nullptr) { auto r = _icon->rect(); r.moveCenter(rect().center()); diff --git a/src/Element-UI/elbutton.h b/src/Element-UI/elbutton.h index c697f6e413f6160a9bb4895989ec4472b6f4d1f8..095904041e18fe7eb16356295d115953a771e36d 100644 --- a/src/Element-UI/elbutton.h +++ b/src/Element-UI/elbutton.h @@ -2,6 +2,8 @@ #define ELBUTTON_H #include +#include +#include #include "elabstractbutton.h" #include "eltheme.h" // TODO: need to rewrite @@ -31,7 +33,7 @@ protected: bool event(QEvent *e) override; void paintEvent(QPaintEvent *e) override; - void enterEvent(QEnterEvent *e) override; + void enterEvent(QEvent *e) override; void leaveEvent(QEvent *e) override; void mousePressEvent(QMouseEvent *e) override; void mouseReleaseEvent(QMouseEvent *e) override; diff --git a/src/Element-UI/elcheckbox.cpp b/src/Element-UI/elcheckbox.cpp index 4bfc6701036593990db1643663b23bf55336d14d..a087c00e5e57ace10a3ec4e9802b3eb2b87f4451 100644 --- a/src/Element-UI/elcheckbox.cpp +++ b/src/Element-UI/elcheckbox.cpp @@ -93,7 +93,7 @@ void ElCheckbox::paintEvent(QPaintEvent *e) e->accept(); } -void ElCheckbox::enterEvent(QEnterEvent *e) +void ElCheckbox::enterEvent(QEvent *e) { if (!isEnabled()) { e->accept(); diff --git a/src/Element-UI/elcheckbox.h b/src/Element-UI/elcheckbox.h index 2dfc8b184b17503bb5a8a8920506d204800a5c22..e7afdbb8750babc8a0bb3f04bb1785d3eaaadfc2 100644 --- a/src/Element-UI/elcheckbox.h +++ b/src/Element-UI/elcheckbox.h @@ -2,6 +2,7 @@ #define ELCHECKBOX_H #include "elabstractbutton.h" +#include class ElCheckbox : public ElAbstractButton { @@ -30,7 +31,7 @@ protected: bool event(QEvent *e) override; void paintEvent(QPaintEvent *e) override; - void enterEvent(QEnterEvent *e) override; + void enterEvent(QEvent *e) override; void leaveEvent(QEvent *e) override; void mousePressEvent(QMouseEvent *e) override; void mouseReleaseEvent(QMouseEvent *e) override; diff --git a/src/Element-UI/elinput.cpp b/src/Element-UI/elinput.cpp index 175c81883e4dbf0f0efabe454105229e53ded34d..9ae5ddd990ed911ea226570bc229478c23bf9035 100644 --- a/src/Element-UI/elinput.cpp +++ b/src/Element-UI/elinput.cpp @@ -45,11 +45,11 @@ void ElInput::paintEvent(QPaintEvent *e) QPainter painter(this); painter.setPen(_palette.color(ElPalette::Border)); painter.setBrush(Qt::white); - painter.drawRoundedRect(rect().toRectF(), height() / 8.0, height() / 8.0); + painter.drawRoundedRect(rect(), height() / 0.8, height() / 0.8); e->accept(); } -void ElInput::enterEvent(QEnterEvent *e) +void ElInput::enterEvent(QEvent *e) { if (!isEnabled() || _palette.currentColorGroup() == ElPalette::Pressed) { e->accept(); diff --git a/src/Element-UI/elinput.h b/src/Element-UI/elinput.h index 9dd97b8cf6518a5f0f8334f817ee9b029922bfc0..0257782403cfd5bcadecdc7cd830af96195fd959 100644 --- a/src/Element-UI/elinput.h +++ b/src/Element-UI/elinput.h @@ -2,6 +2,7 @@ #define ELINPUT_H #include +#include #include "elcomponent.h" class ElInput : public ElComponent @@ -19,7 +20,7 @@ public: protected: bool eventFilter(QObject *watched, QEvent *e) override; void paintEvent(QPaintEvent *e) override; - void enterEvent(QEnterEvent *e) override; + void enterEvent(QEvent *e) override; void leaveEvent(QEvent *e) override; void initPalette() override; diff --git a/src/Element-UI/elmessage.cpp b/src/Element-UI/elmessage.cpp index 260aecf13e0e530232e2de95a1416bbd69ef8917..495b9829fd0bbb21fef93f1244d724ee8d3fdb87 100644 --- a/src/Element-UI/elmessage.cpp +++ b/src/Element-UI/elmessage.cpp @@ -277,7 +277,7 @@ void ElMessage::paintEvent(QPaintEvent *e) pen.setWidthF(1.5); painter.setPen(pen); painter.setBrush(_palette.color(ElPalette::Background)); - painter.drawRoundedRect(rect().toRectF(), height() / 5.0, height() / 5.0); + painter.drawRoundedRect(rect(), height() / 5.0, height() / 5.0); // show icon _icon->resize(QSize(Icon_Size, Icon_Size)); QRect drawing_rect; @@ -328,7 +328,7 @@ void ElMessage::manager_handle_msgs_animation() { fadeOut(); // then remove it because it should be deleted - msg_manager.remove(_no); // remember that _no is the next one after remove + msg_manager.removeAt(_no); // remember that _no is the next one after remove // the msgs after the index should slide up for (qsizetype i = _no; i < msg_manager.size(); ++i) { auto &msg = msg_manager[i]; diff --git a/src/Element-UI/elnotification.cpp b/src/Element-UI/elnotification.cpp index 0422f7521597b305a8fa90dc7ddce9b2911e3b64..cd189a91d945d278811ec7b8e5c97ef7b8eb0695 100644 --- a/src/Element-UI/elnotification.cpp +++ b/src/Element-UI/elnotification.cpp @@ -272,8 +272,8 @@ void ElNotification::setPosition(Position position) { if (_position == position) return; - // remove from original notify_managers - notify_managers[_position].remove(_no); + // remove from original notify_managers] + notify_managers[_position].removeAt(_no); _position = position; // append into current notify_managers notify_managers[_position] << this; @@ -368,7 +368,7 @@ void ElNotification::fadeOut() void ElNotification::manager_handle_notify_animation() { fadeOut(); - notify_managers[_position].remove(_no); // remove this from notify_managers[_position] + notify_managers[_position].removeAt(_no); for (qsizetype i = _no; i < notify_managers[_position].size(); ++i) { /* be careful that notify->_no isn't equal to i or this->_no. * Their relationship is `notify->_no - 1 == this->_no`. @@ -417,7 +417,7 @@ void ElNotification::paintEvent(QPaintEvent *e) // draw rect painter.setBrush(Qt::white); painter.setPen(_palette.color(ElPalette::Border)); - painter.drawRoundedRect(rect().toRectF(), height() / 8.0, height() / 8.0); + painter.drawRoundedRect(rect(), height() / 8.0, height() / 8.0); // draw message and title painter.setPen(ThemeColor::textPrimaryColor); bool hasIcon = (type() != Default) || (_icon != nullptr); @@ -452,7 +452,7 @@ void ElNotification::showEvent(QShowEvent *e) e->accept(); } -void ElNotification::enterEvent(QEnterEvent *e) +void ElNotification::enterEvent(QEvent *e) { _fadeTimer->stop(); e->accept(); diff --git a/src/Element-UI/elnotification.h b/src/Element-UI/elnotification.h index 120b20a6ce5c65b675c290662de345feead47870..0a5d174e62e978f2dfee8e792f7a5531e24aa4e1 100644 --- a/src/Element-UI/elnotification.h +++ b/src/Element-UI/elnotification.h @@ -3,6 +3,7 @@ #include "elcomponent.h" #include "eltheme.h" +#include class ElIcon; class QPropertyAnimation; @@ -107,7 +108,7 @@ signals: protected: void paintEvent(QPaintEvent *e) override; void showEvent(QShowEvent *e) override; - void enterEvent(QEnterEvent *e) override; + void enterEvent(QEvent *e) override; void leaveEvent(QEvent *e) override; void mouseReleaseEvent(QMouseEvent *e) override; void initPalette() override; diff --git a/src/Element-UI/elradio.cpp b/src/Element-UI/elradio.cpp index 243a5316d45fed52de2067e267b8df0f9d3ee1f2..ae5f654962ce4ea7072615290a44ddf6c0c718e7 100644 --- a/src/Element-UI/elradio.cpp +++ b/src/Element-UI/elradio.cpp @@ -76,7 +76,7 @@ void ElRadio::paintEvent(QPaintEvent *e) e->accept(); } -void ElRadio::enterEvent(QEnterEvent *e) +void ElRadio::enterEvent(QEvent *e) { if (!isEnabled()) { e->accept(); diff --git a/src/Element-UI/elradio.h b/src/Element-UI/elradio.h index 6ba3d9ed96efb3599c2d515f87d697a260b7b55a..bc3a5fdf3fa8720986252ebddab0a446b00271df 100644 --- a/src/Element-UI/elradio.h +++ b/src/Element-UI/elradio.h @@ -2,6 +2,7 @@ #define ELRADIO_H #include "elabstractbutton.h" +#include class ElRadio : public ElAbstractButton { @@ -22,7 +23,7 @@ signals: protected: bool event(QEvent *e) override; void paintEvent(QPaintEvent *e) override; - void enterEvent(QEnterEvent *e) override; + void enterEvent(QEvent *e) override; void leaveEvent(QEvent *e) override; void mousePressEvent(QMouseEvent *e) override; void mouseReleaseEvent(QMouseEvent *e) override; diff --git a/src/Element-UI/elslider.cpp b/src/Element-UI/elslider.cpp index 2fd7bf19c64af776765647684523d8ec9237e88c..a9348f505995485b0619595c0f473f38121fabf7 100644 --- a/src/Element-UI/elslider.cpp +++ b/src/Element-UI/elslider.cpp @@ -104,7 +104,7 @@ void ElSlider::mousePressEvent(QMouseEvent *e) e->ignore(); return; } - setValue(e->position().x() * _max / width()); + setValue(e->pos().x() * _max / width()); emit sliderPressed(); e->accept(); } @@ -162,11 +162,11 @@ void ElSlider::ElSliderCircle::paintEvent(QPaintEvent *e) pen.setWidthF(1.5); pen.setColor(_palette.color(ElPalette::Border)); painter.setPen(pen); - painter.drawEllipse(rect().center().toPointF(), _radius, _radius); + QPointF _pointf = QPointF(rect().center()); + painter.drawEllipse(_pointf, _radius, _radius); e->accept(); } - -void ElSlider::ElSliderCircle::enterEvent(QEnterEvent *e) +void ElSlider::ElSliderCircle::enterEvent(QEvent *e) { if (!isEnabled()) { e->ignore(); @@ -222,7 +222,11 @@ void ElSlider::ElSliderCircle::mouseMoveEvent(QMouseEvent *e) e->ignore(); return; } +#if QTVERSION <= QT_VERSION_CHECK(6, 0, 0) + auto pos = mapToParent(e->pos()); // position related to its parent, ElSlider +#else auto pos = mapToParent(e->position()); // position related to its parent, ElSlider +#endif if (pos.x() < Init_Radius || pos.x() > _slider->width() - 2 * Init_Radius) { e->ignore(); return; diff --git a/src/Element-UI/elslider.h b/src/Element-UI/elslider.h index 7deb4d2a7bc25d42c47b3df3ef1d3f630acc832d..ca8f1fa16c447e082234aea3ebe338e2596d545d 100644 --- a/src/Element-UI/elslider.h +++ b/src/Element-UI/elslider.h @@ -2,6 +2,7 @@ #define ELSLIDER_H #include "elcomponent.h" +#include class QPropertyAnimation; @@ -59,7 +60,7 @@ protected: protected: bool event(QEvent *e) override; void paintEvent(QPaintEvent *e) override; - void enterEvent(QEnterEvent *e) override; + void enterEvent(QEvent *e) override; void leaveEvent(QEvent *e) override; void mousePressEvent(QMouseEvent *e) override; void mouseReleaseEvent(QMouseEvent *e) override; diff --git a/src/Element-UI/elswitch.cpp b/src/Element-UI/elswitch.cpp index ffd6a9d83ef70df3b284786bd3c2753eed362b9c..54f32f348b294b3de658012d891940b7389f0c49 100644 --- a/src/Element-UI/elswitch.cpp +++ b/src/Element-UI/elswitch.cpp @@ -1,6 +1,7 @@ #include "elswitch.h" #include #include +#include #include #include "eltheme.h" @@ -11,7 +12,7 @@ const int ElSwitch::Init_Width = 40; const int ElSwitch::Init_Height = 22; ElSwitch::ElSwitch(QWidget *parent) - : ElComponent{parent} + : ElComponent(parent) { resize(Init_Width, Init_Height); setCursor(Qt::PointingHandCursor); @@ -258,7 +259,8 @@ void ElSwitch::ElSwitchCircle::paintEvent(QPaintEvent *e) painter.setPen(Qt::white); painter.setBrush(Qt::white); // if parent is active, circle should be on right side. - painter.drawEllipse(rect().toRectF().center(), Radius, Radius); + QRectF _rectf(rect()); + painter.drawEllipse(_rectf.center(), Radius, Radius); e->accept(); } diff --git a/src/Element-UI/elswitch.h b/src/Element-UI/elswitch.h index b683b57986a3ca5a7703db8d889a0ef4f55c8f4e..57b93186f4035c761932dbdbc401320c8a786e22 100644 --- a/src/Element-UI/elswitch.h +++ b/src/Element-UI/elswitch.h @@ -2,6 +2,7 @@ #define ELSWITCH_H #include "elcomponent.h" +#include class QPropertyAnimation; // BUG: fix circle's position when change the text on left(inactive state) side diff --git a/src/Element-UI/eltheme.h b/src/Element-UI/eltheme.h index 3749df817a8db7aef5270463a1036a89a6eebf62..4d9849e6565ee6b79d6fcf3c143a9f86bb7490de 100644 --- a/src/Element-UI/eltheme.h +++ b/src/Element-UI/eltheme.h @@ -2,6 +2,7 @@ #define ELTHEME_H #include +#include namespace ThemeColor { extern QColor textColor; // regular diff --git a/src/Element-UI/eltooltip.cpp b/src/Element-UI/eltooltip.cpp index 4555cfaa6d9d0bd4916b3ff55f0be8a40c44b34f..9122c6e39b70f931c86f4cfa17baf3ca01be906d 100644 --- a/src/Element-UI/eltooltip.cpp +++ b/src/Element-UI/eltooltip.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include "eltheme.h" const qreal ElTooltip::Padding_Lr = 10; @@ -225,7 +226,7 @@ void ElTooltip::showEvent(QShowEvent *e) e->accept(); } -void ElTooltip::enterEvent(QEnterEvent *e) +void ElTooltip::enterEvent(QEvent *e) { isEntered = true; e->accept(); diff --git a/src/Element-UI/eltooltip.h b/src/Element-UI/eltooltip.h index 935a347e8624a4c19a5d1c32d2bdafbfaabb5b0b..524b57d114072e08893d0b97cbff126080412fdf 100644 --- a/src/Element-UI/eltooltip.h +++ b/src/Element-UI/eltooltip.h @@ -2,6 +2,7 @@ #define ELTOOLTIP_H #include "elcomponent.h" +#include class QPropertyAnimation; // TODO: need to rewrite @@ -86,7 +87,7 @@ protected: bool event(QEvent *e) override; void paintEvent(QPaintEvent *e) override; void showEvent(QShowEvent *e) override; - void enterEvent(QEnterEvent *e) override; + void enterEvent(QEvent *e) override; void leaveEvent(QEvent *e) override; void initPalette() override; diff --git a/src/Element-UI/svghelper.cpp b/src/Element-UI/svghelper.cpp index 962d7157a241270f6460569d01d68e4d5a3ce2dd..bc3ea37f59bc5e8f96fad195412f67fdd40dc9bd 100644 --- a/src/Element-UI/svghelper.cpp +++ b/src/Element-UI/svghelper.cpp @@ -1,6 +1,8 @@ #include "svghelper.h" #include #include +#include +#include SvgHelper::SvgHelper(const QString &filename) {