Geometrize  1.0
An application for geometrizing images into geometric primitives
templatebutton.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <memory>
4 
5 #include <QDragLeaveEvent>
6 #include <QMouseEvent>
7 #include <QPushButton>
8 #include <QString>
9 
11 
12 class QEvent;
13 
14 namespace chaiscript
15 {
16 class ChaiScript;
17 }
18 
19 namespace geometrize
20 {
21 
22 namespace dialog
23 {
24 
28 class TemplateButton : public QPushButton
29 {
30  Q_OBJECT
31 
32 public:
33  explicit TemplateButton(chaiscript::ChaiScript* const templateLoader, const QString& templateFolder);
34  virtual ~TemplateButton();
35 
41 
42 signals:
43  void signal_templateLoaded(QString, bool);
44 
45 protected:
46  void changeEvent(QEvent*) override;
47  void mousePressEvent(QMouseEvent* event) override;
48  void mouseReleaseEvent(QMouseEvent* event) override;
49  void mouseMoveEvent(QMouseEvent* event) override;
50  void dragLeaveEvent(QDragLeaveEvent* event) override;
51 
52 private:
53  virtual void contextMenuEvent(QContextMenuEvent* e) override;
54 
55  class TemplateButtonImpl;
56  std::unique_ptr<TemplateButtonImpl> d;
57 };
58 
59 }
60 
61 }
geometrize::util::openTemplate
bool openTemplate(chaiscript::ChaiScript &engine, const std::string &templateFolder)
Definition: taskutil.cpp:65
geometrize::dialog::TemplateButton::TemplateButtonImpl::setupTemplate
QImage setupTemplate()
Definition: templatebutton.cpp:121
geometrize::dialog::TemplateButton::d
std::unique_ptr< TemplateButtonImpl > d
Definition: templatebutton.h:55
geometrize::dialog::TemplateButton::getTemplateManifest
TemplateManifest getTemplateManifest() const
getTemplateManifest Get the manifest data of the template this item corresponds to.
Definition: templatebutton.cpp:217
geometrize::util::getTemplateManifest
TemplateManifest getTemplateManifest(const std::string &templateFolder)
Definition: taskutil.cpp:98
geometrize::dialog::TemplateButton::TemplateButtonImpl::~TemplateButtonImpl
~TemplateButtonImpl()
Definition: templatebutton.cpp:66
geometrize::util::getFirstFileWithExtensions
std::string getFirstFileWithExtensions(const std::string &dirPath, const std::vector< std::string > &extensions)
getFirstFileWithExtensions Gets the absolute file path to the first file with one of the given extens...
Definition: util.cpp:224
geometrize::dialog::TemplateButton::TemplateButtonImpl::ui
std::unique_ptr< Ui::TemplateButton > ui
Definition: templatebutton.cpp:192
geometrize::dialog::TemplateButton::mouseReleaseEvent
void mouseReleaseEvent(QMouseEvent *event) override
Definition: templatebutton.cpp:237
geometrize::dialog::TemplateButton::TemplateButtonImpl::revealTemplateInExplorer
void revealTemplateInExplorer()
Definition: templatebutton.cpp:142
geometrize::dialog::TemplateButton::TemplateButtonImpl::TemplateButtonImpl
TemplateButtonImpl(const TemplateButtonImpl &)=delete
geometrize::dialog::TemplateButton::TemplateButtonImpl::setButtonToolTipText
void setButtonToolTipText()
Definition: templatebutton.cpp:185
geometrize::dialog::TemplateButton::TemplateButtonImpl::openTemplate
void openTemplate()
Definition: templatebutton.cpp:137
geometrize::dialog::TemplateButton::TemplateButtonImpl::TemplateButtonImpl
TemplateButtonImpl(TemplateButton *pQ, chaiscript::ChaiScript *const templateLoader, const QString &templateFolder)
Definition: templatebutton.cpp:36
geometrize::dialog::TemplateButton::TemplateButtonImpl::m_templateLoaderWatcher
QFutureWatcher< QImage > m_templateLoaderWatcher
Definition: templatebutton.cpp:198
chaiscript
Definition: commandlineedit.h:11
geometrize::dialog::TemplateButton::TemplateButtonImpl::showContextMenu
void showContextMenu(QContextMenuEvent *e)
Definition: templatebutton.cpp:147
geometrize::format::getReadableImageFileExtensions
std::vector< std::string > getReadableImageFileExtensions(const bool includeDotPrefix)
getReadableImageFileExtensions Gets the lower-case image file extensions that have read support.
Definition: formatsupport.cpp:11
geometrize::dialog::TemplateButton::TemplateButtonImpl::m_manifest
TemplateManifest m_manifest
Definition: templatebutton.cpp:197
taskutil.h
geometrize::TemplateManifest::getName
std::string getName() const
Definition: templatemanifest.cpp:53
geometrize::dialog::TemplateButton::TemplateButtonImpl
Definition: templatebutton.cpp:34
geometrize::dialog::TemplateButton::TemplateButton
TemplateButton(chaiscript::ChaiScript *const templateLoader, const QString &templateFolder)
Definition: templatebutton.cpp:202
geometrize::dialog::TemplateButton::signal_templateLoaded
void signal_templateLoaded(QString, bool)
geometrize::dialog::TemplateButton
The TemplateButton class is a button that opens a task template when clicked.
Definition: templatebutton.h:29
geometrize::dialog::TemplateButton::dragLeaveEvent
void dragLeaveEvent(QDragLeaveEvent *event) override
Definition: templatebutton.cpp:251
geometrize::TemplateManifest::getLicense
std::string getLicense() const
Definition: templatemanifest.cpp:68
geometrize
Definition: commandlineparser.cpp:73
geometrize::dialog::TemplateButton::TemplateButtonImpl::q
TemplateButton * q
Definition: templatebutton.cpp:194
templatemanifest.h
geometrize::dialog::TemplateButton::TemplateButtonImpl::handleDragLeaveEvent
void handleDragLeaveEvent(QDragLeaveEvent *)
Definition: templatebutton.cpp:116
geometrize::dialog::TemplateButton::mousePressEvent
void mousePressEvent(QMouseEvent *event) override
Definition: templatebutton.cpp:230
Ui
Definition: aboutdialog.h:6
geometrize::dialog::TemplateButton::TemplateButtonImpl::operator=
TemplateButtonImpl operator=(const TemplateButtonImpl &)=delete
geometrize::dialog::TemplateButton::TemplateButtonImpl::handleMouseMoveEvent
void handleMouseMoveEvent(QMouseEvent *event)
Definition: templatebutton.cpp:103
geometrize::dialog::TemplateButton::TemplateButtonImpl::m_templateFuture
QFuture< QImage > m_templateFuture
Definition: templatebutton.cpp:199
geometrize::dialog::TemplateButton::TemplateButtonImpl::handleMousePressEvent
void handleMousePressEvent(QMouseEvent *event)
Definition: templatebutton.cpp:74
formatsupport.h
geometrize::dialog::TemplateButton::TemplateButtonImpl::m_currentDragAction
QDrag * m_currentDragAction
Definition: templatebutton.cpp:193
geometrize::dialog::TemplateButton::TemplateButtonImpl::onLanguageChange
void onLanguageChange()
Definition: templatebutton.cpp:173
geometrize::dialog::TemplateButton::TemplateButtonImpl::m_templateLoader
chaiscript::ChaiScript *const m_templateLoader
Definition: templatebutton.cpp:195
geometrize::util::openInDefaultApplication
bool openInDefaultApplication(const std::string &path)
openInDefaultApplication Opens the given path in the default application.
Definition: util.cpp:278
geometrize::dialog::TemplateButton::contextMenuEvent
virtual void contextMenuEvent(QContextMenuEvent *e) override
Definition: templatebutton.cpp:212
templatebutton.h
geometrize::dialog::TemplateButton::TemplateButtonImpl::handleMouseReleaseEvent
void handleMouseReleaseEvent(QMouseEvent *event)
Definition: templatebutton.cpp:94
geometrize::dialog::TemplateButton::~TemplateButton
virtual ~TemplateButton()
Definition: templatebutton.cpp:208
util.h
geometrize::dialog::TemplateButton::TemplateButtonImpl::getTemplateManifest
TemplateManifest getTemplateManifest() const
Definition: templatebutton.cpp:168
geometrize::dialog::TemplateButton::mouseMoveEvent
void mouseMoveEvent(QMouseEvent *event) override
Definition: templatebutton.cpp:244
geometrize::dialog::TemplateButton::TemplateButtonImpl::populateUi
void populateUi()
Definition: templatebutton.cpp:180
geometrize::dialog::TemplateButton::TemplateButtonImpl::m_templateFolder
const QString m_templateFolder
Definition: templatebutton.cpp:196
geometrize::TemplateManifest
The TemplateManifest class represents the metadata for a task template.
Definition: templatemanifest.h:14
geometrize::dialog::TemplateButton::changeEvent
void changeEvent(QEvent *) override
Definition: templatebutton.cpp:222