From 0f6d9f6aa9aa4404ecdf6dc8cadfa4c230c6b7eb Mon Sep 17 00:00:00 2001 From: laserpants Date: Thu, 14 Apr 2016 17:21:28 +0300 Subject: [PATCH] add boilerplate for Avatar component --- components/avatar.cpp | 31 +++++++++++++++++++++++++++++++ components/avatar.h | 20 ++++++++++++++++++++ examples/avatarexamples.cpp | 30 ++++++++++++++++++++++++++++++ examples/avatarexamples.h | 15 +++++++++++++++ mainwindow.cpp | 6 ++++++ mainwindow.h | 2 ++ qt-material-widgets.pro | 8 ++++++-- 7 files changed, 110 insertions(+), 2 deletions(-) create mode 100644 components/avatar.cpp create mode 100644 components/avatar.h create mode 100644 examples/avatarexamples.cpp create mode 100644 examples/avatarexamples.h diff --git a/components/avatar.cpp b/components/avatar.cpp new file mode 100644 index 0000000..16fb09b --- /dev/null +++ b/components/avatar.cpp @@ -0,0 +1,31 @@ +#include +#include +#include "avatar.h" + +Avatar::Avatar(QWidget *parent) + : QWidget(parent) +{ +} + +Avatar::~Avatar() +{ +} + +void Avatar::mousePressEvent(QMouseEvent *event) +{ + QWidget::mousePressEvent(event); +} + +void Avatar::mouseReleaseEvent(QMouseEvent *event) +{ + QWidget::mouseReleaseEvent(event); +} + +void Avatar::paintEvent(QPaintEvent *event) +{ + QPainter painter(this); + + painter.drawRect(0, 50, 50, 50); + + QWidget::paintEvent(event); +} diff --git a/components/avatar.h b/components/avatar.h new file mode 100644 index 0000000..1ce6fbb --- /dev/null +++ b/components/avatar.h @@ -0,0 +1,20 @@ +#ifndef AVATAR_H +#define AVATAR_H + +#include + +class Avatar : public QWidget +{ + Q_OBJECT + +public: + explicit Avatar(QWidget *parent = 0); + ~Avatar(); + +protected: + void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE; + void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE; + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; +}; + +#endif // AVATAR_H diff --git a/examples/avatarexamples.cpp b/examples/avatarexamples.cpp new file mode 100644 index 0000000..91a2c69 --- /dev/null +++ b/examples/avatarexamples.cpp @@ -0,0 +1,30 @@ +#include +#include +#include "avatarexamples.h" +#include "components/avatar.h" +#include "exampleview.h" +#include "frame.h" + +AvatarExamples::AvatarExamples(QWidget *parent) + : ExampleList(parent) +{ + QLayout *layout = widget()->layout(); + + { + Avatar *avatar = new Avatar; + + ExampleView *view = new ExampleView; + view->setWidget(avatar); + + Frame *frame = new Frame; + frame->setCodeSnippet( + "hello" + ); + frame->setWidget(view); + + layout->addWidget(frame); + } } + +AvatarExamples::~AvatarExamples() +{ +} diff --git a/examples/avatarexamples.h b/examples/avatarexamples.h new file mode 100644 index 0000000..63dfecd --- /dev/null +++ b/examples/avatarexamples.h @@ -0,0 +1,15 @@ +#ifndef AVATAREXAMPLES_H +#define AVATAREXAMPLES_H + +#include "examplelist.h" + +class AvatarExamples : public ExampleList +{ + Q_OBJECT + +public: + explicit AvatarExamples(QWidget *parent = 0); + ~AvatarExamples(); +}; + +#endif // AVATAREXAMPLES_H diff --git a/mainwindow.cpp b/mainwindow.cpp index 565d14d..0d1d2e6 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -17,6 +17,7 @@ #include "examples/checkboxexamples.h" #include "examples/textfieldexamples.h" #include "examples/listexamples.h" +#include "examples/avatarexamples.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), @@ -33,6 +34,7 @@ MainWindow::MainWindow(QWidget *parent) _checkboxExamples(new CheckboxExamples), _textFieldExamples(new TextFieldExamples), _listExamples(new ListExamples), + _avatarExamples(new AvatarExamples), _about(new About) { _initWidget(); @@ -70,6 +72,8 @@ void MainWindow::showWidget(QAction *action) _layout->setCurrentWidget(_textFieldExamples); } else if ("List" == text) { _layout->setCurrentWidget(_listExamples); + } else if ("Avatar" == text) { + _layout->setCurrentWidget(_avatarExamples); } else { _layout->setCurrentWidget(_about); } @@ -93,6 +97,7 @@ void MainWindow::_initWidget() _layout->addWidget(_checkboxExamples); _layout->addWidget(_textFieldExamples); _layout->addWidget(_listExamples); + _layout->addWidget(_avatarExamples); setCentralWidget(widget); } @@ -109,6 +114,7 @@ void MainWindow::_initMenu() const QMenu *help = new QMenu("&Help"); components->addAction("App Bar"); + components->addAction("Avatar"); QMenu *buttons = new QMenu("Buttons"); components->addMenu(buttons); diff --git a/mainwindow.h b/mainwindow.h index e2b6ed4..e7eab28 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -16,6 +16,7 @@ class RadioButtonExamples; class CheckboxExamples; class TextFieldExamples; class ListExamples; +class AvatarExamples; class QStackedLayout; class MainWindow : public QMainWindow @@ -46,6 +47,7 @@ private: CheckboxExamples *const _checkboxExamples; TextFieldExamples *const _textFieldExamples; ListExamples *const _listExamples; + AvatarExamples *const _avatarExamples; About *const _about; }; diff --git a/qt-material-widgets.pro b/qt-material-widgets.pro index de28843..fca4fff 100644 --- a/qt-material-widgets.pro +++ b/qt-material-widgets.pro @@ -43,7 +43,9 @@ SOURCES += main.cpp\ examples/radiobuttonexamples.cpp \ examples/checkboxexamples.cpp \ examples/textfieldexamples.cpp \ - examples/listexamples.cpp + examples/listexamples.cpp \ + components/avatar.cpp \ + examples/avatarexamples.cpp HEADERS += mainwindow.h \ style.h \ @@ -80,4 +82,6 @@ HEADERS += mainwindow.h \ examples/radiobuttonexamples.h \ examples/checkboxexamples.h \ examples/textfieldexamples.h \ - examples/listexamples.h + examples/listexamples.h \ + components/avatar.h \ + examples/avatarexamples.h