HAL
v4.5.0-124-g47ab54673
The Hardware Analyzer - a comprehensive reverse engineering and manipulation framework for gate-level netlists.
get_in_touch_widget.cpp
Go to the documentation of this file.
1
#include "
gui/welcome_screen/get_in_touch_widget.h
"
2
3
#include "
gui/welcome_screen/get_in_touch_item.h
"
4
#include "
gui/main_window/about_dialog.h
"
5
6
#include <QDesktopServices>
7
#include <QLabel>
8
#include <QList>
9
#include <QStyle>
10
#include <QUrl>
11
#include <QVBoxLayout>
12
13
namespace
hal
14
{
15
GetInTouchWidget::GetInTouchWidget
(
QWidget
* parent)
16
:
QFrame
(parent), mLayout(new
QVBoxLayout
()), mAboutItem(new
GetInTouchItem
(
"About"
,
"Show license and version information"
)),
17
mNewsItem(new
GetInTouchItem
(
"Stay up to date"
,
"Subscribe to our newsfeed for the latest updates and patchnotes"
)),
18
mForumItem(new
GetInTouchItem
(
"Get in touch"
,
"Check out the forum and so on and so on i dont know what to write here"
)),
19
mCppDocumentationItem(new
GetInTouchItem
(
"Open C++ Documentation"
,
"Check out the C++ documentation of the HAL core to develop your own plugins"
)),
20
mPyDocumentationItem(new
GetInTouchItem
(
"Open Python Documentation"
,
"Check out the Python documentation of HAL"
)),
21
mTicketItem(new
GetInTouchItem
(
"Found a bug ?"
,
"Submit a bug report or feature request to our public tracker"
))
22
{
23
connect
(mAboutItem, &
GetInTouchItem::clicked
,
this
, &
GetInTouchWidget::handleAboutItemClicked
);
24
connect
(mCppDocumentationItem, &
GetInTouchItem::clicked
,
this
, &
GetInTouchWidget::handleCppDocumentationItemClicked
);
25
connect
(mPyDocumentationItem, &
GetInTouchItem::clicked
,
this
, &
GetInTouchWidget::handlePyDocumentationItemClicked
);
26
connect
(mTicketItem, &
GetInTouchItem::clicked
,
this
, &
GetInTouchWidget::handleTicketItemClicked
);
27
28
mLayout->
setContentsMargins
(0, 0, 0, 0);
29
mLayout->
setSpacing
(0);
30
31
mAboutItem->
setObjectName
(
"about_item"
);
32
mAboutItem->
setSizePolicy
(
QSizePolicy::Expanding
,
QSizePolicy::Fixed
);
33
34
mNewsItem->
setObjectName
(
"news_item"
);
35
mNewsItem->
setSizePolicy
(
QSizePolicy::Expanding
,
QSizePolicy::Fixed
);
36
37
mForumItem->
setObjectName
(
"forum_item"
);
38
mForumItem->
setSizePolicy
(
QSizePolicy::Expanding
,
QSizePolicy::Fixed
);
39
40
mCppDocumentationItem->
setObjectName
(
"documentation_item"
);
41
mCppDocumentationItem->
setSizePolicy
(
QSizePolicy::Expanding
,
QSizePolicy::Fixed
);
42
43
mPyDocumentationItem->
setObjectName
(
"documentation_item"
);
44
mPyDocumentationItem->
setSizePolicy
(
QSizePolicy::Expanding
,
QSizePolicy::Fixed
);
45
46
mTicketItem->
setObjectName
(
"ticket_item"
);
47
mTicketItem->
setSizePolicy
(
QSizePolicy::Expanding
,
QSizePolicy::Fixed
);
48
49
setLayout
(mLayout);
50
mLayout->
addWidget
(mAboutItem);
51
// mLayout->addWidget(mNewsItem);
52
// mLayout->addWidget(mForumItem);
53
mLayout->
addWidget
(mCppDocumentationItem);
54
mLayout->
addWidget
(mPyDocumentationItem);
55
mLayout->
addWidget
(mTicketItem);
56
57
repolish
();
58
}
59
60
void
GetInTouchWidget::repolish
()
61
{
62
QStyle
* s =
style
();
63
64
s->
unpolish
(
this
);
65
s->
polish
(
this
);
66
67
// mAboutItem->repolish();
68
// m_documentation_item->repolish();
69
// mTicketItem->repolish();
70
71
// for (QObject* object : mLayout->children())
72
// {
73
// GetInTouchItem* item = qobject_cast<GetInTouchItem*>(object);
74
75
// if (item)
76
// item->repolish();
77
// }
78
79
for
(
int
i = 0; i < mLayout->
count
(); i++)
80
{
81
QWidget
* widget = mLayout->
itemAt
(i)->
widget
();
82
GetInTouchItem
* item = qobject_cast<GetInTouchItem*>(widget);
83
84
if
(item)
85
item->
repolish
();
86
}
87
}
88
89
void
GetInTouchWidget::handleAboutItemClicked
()
90
{
91
AboutDialog
ad;
92
ad.
exec
();
93
}
94
95
void
GetInTouchWidget::handleCppDocumentationItemClicked
()
96
{
97
QString
link =
"https://emsec.github.io/hal/doc/"
;
98
QDesktopServices::openUrl
(
QUrl
(link));
99
}
100
101
void
GetInTouchWidget::handlePyDocumentationItemClicked
()
102
{
103
QString
link =
"https://emsec.github.io/hal/pydoc/"
;
104
QDesktopServices::openUrl
(
QUrl
(link));
105
}
106
107
void
GetInTouchWidget::handleTicketItemClicked
()
108
{
109
QString
link =
"https://github.com/emsec/hal/issues"
;
110
QDesktopServices::openUrl
(
QUrl
(link));
111
}
112
}
about_dialog.h
hal::AboutDialog
A dialog that displays the Qt version and our open source license.
Definition:
about_dialog.h:43
hal::GetInTouchItem
One item in the welcome screen's GetInTouch section.
Definition:
get_in_touch_item.h:44
hal::GetInTouchItem::repolish
void repolish()
Definition:
get_in_touch_item.cpp:70
hal::GetInTouchItem::clicked
void clicked()
hal::GetInTouchWidget::GetInTouchWidget
GetInTouchWidget(QWidget *parent=nullptr)
Definition:
get_in_touch_widget.cpp:15
hal::GetInTouchWidget::repolish
void repolish()
Definition:
get_in_touch_widget.cpp:60
hal::GetInTouchWidget::handlePyDocumentationItemClicked
void handlePyDocumentationItemClicked()
Definition:
get_in_touch_widget.cpp:101
hal::GetInTouchWidget::handleCppDocumentationItemClicked
void handleCppDocumentationItemClicked()
Definition:
get_in_touch_widget.cpp:95
hal::GetInTouchWidget::handleTicketItemClicked
void handleTicketItemClicked()
Definition:
get_in_touch_widget.cpp:107
hal::GetInTouchWidget::handleAboutItemClicked
void handleAboutItemClicked()
Definition:
get_in_touch_widget.cpp:89
get_in_touch_item.h
get_in_touch_widget.h
hal
Definition:
defines.h:45
QBoxLayout::addWidget
void addWidget(QWidget *widget, int stretch, Qt::Alignment alignment)
QBoxLayout::count
virtual int count() const const override
QBoxLayout::itemAt
virtual QLayoutItem * itemAt(int index) const const override
QBoxLayout::setSpacing
void setSpacing(int spacing)
QDesktopServices::openUrl
bool openUrl(const QUrl &url)
QDialog::exec
virtual int exec()
QFrame
QLayout::setContentsMargins
void setContentsMargins(int left, int top, int right, int bottom)
QLayoutItem::widget
virtual QWidget * widget()
QObject::connect
QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
QObject::setObjectName
void setObjectName(const QString &name)
QSizePolicy::Expanding
Expanding
QString
QStyle
QStyle::polish
virtual void polish(QWidget *widget)
QStyle::unpolish
virtual void unpolish(QWidget *widget)
QUrl
QVBoxLayout
QWidget
QWidget::setLayout
void setLayout(QLayout *layout)
QWidget::setSizePolicy
void setSizePolicy(QSizePolicy)
QWidget::style
QStyle * style() const const
plugins
gui
src
welcome_screen
get_in_touch_widget.cpp
Generated by
1.9.1