HAL
details_tab_widget.cpp
Go to the documentation of this file.
1
#include "
gui/selection_details_widget/details_tab_widget.h
"
2
3
#include "
gui/selection_details_widget/details_frame_widget.h
"
4
5
#include <QVBoxLayout>
6
#include <QScrollArea>
7
#include <QLabel>
8
#include <QIcon>
9
#include <QPixmap>
10
11
namespace
hal
12
{
13
DetailsTabWidget::DetailsTabWidget
(
QWidget
* parent) :
QTabWidget
(parent){}
14
15
int
DetailsTabWidget::addTab
(
const
QString
& label,
QList<DetailsFrameWidget*>
frames)
16
{
17
QScrollArea
* scrollArea =
new
QScrollArea
(
this
);
18
scrollArea->
setSizePolicy
(
QSizePolicy::Preferred
,
QSizePolicy::Expanding
);
19
scrollArea->
setWidgetResizable
(
true
);
20
21
QWidget
* container =
new
QWidget
(scrollArea);
22
container->
setSizePolicy
(
QSizePolicy::Expanding
,
QSizePolicy::Fixed
);
23
24
QVBoxLayout
* containerlLayout =
new
QVBoxLayout
(container);
25
containerlLayout->
setContentsMargins
(0, 0, 0, 0);
26
containerlLayout->
setAlignment
(
Qt::AlignTop
|
Qt::AlignLeft
);
27
containerlLayout->
setSpacing
(5);
28
containerlLayout->
setSizeConstraint
(
QLayout::SetNoConstraint
);
29
30
scrollArea->
setWidget
(container);
31
32
for
(
DetailsFrameWidget
* frame : frames)
33
containerlLayout->
addWidget
(frame);
34
35
scrollArea->
setVerticalScrollBarPolicy
(frames.
size
()>1 ?
Qt::ScrollBarAsNeeded
:
Qt::ScrollBarAlwaysOff
);
36
return
QTabWidget::addTab
(scrollArea, label);
37
}
38
39
int
DetailsTabWidget::addTab
(
const
QString
& label,
DetailsFrameWidget
* frame,
bool
useScrollArea)
40
{
41
if
(useScrollArea)
42
{
43
QList<DetailsFrameWidget*>
frames;
44
frames.
append
(frame);
45
return
addTab
(label,frames);
46
}
47
QWidget
* container =
new
QWidget
(
this
);
48
container->
setSizePolicy
(
QSizePolicy::Expanding
,
QSizePolicy::Expanding
);
49
50
QVBoxLayout
* containerlLayout =
new
QVBoxLayout
(container);
51
containerlLayout->
setContentsMargins
(0, 0, 0, 0);
52
containerlLayout->
setAlignment
(
Qt::AlignTop
|
Qt::AlignLeft
);
53
containerlLayout->
setSpacing
(5);
54
55
containerlLayout->
addWidget
(frame);
56
return
QTabWidget::addTab
(container, label);
57
}
58
59
void
DetailsTabWidget::setIcon
(
SelectionDetailsIconProvider::IconCategory
catg,
u32
itemId)
60
{
61
bool
existingContainer =
true
;
62
QLabel
* iconContainer =
dynamic_cast<
QLabel
*
>
(
cornerWidget
());
63
if
(!iconContainer)
64
{
65
existingContainer =
false
;
66
iconContainer =
new
QLabel
(
this
);
67
}
68
69
QPixmap
scaledIcon;
70
71
switch
(
SelectionDetailsIconProvider::sIconSizeSetting
->value().toInt())
72
{
73
case
SelectionDetailsIconProvider::NoIcon
:
74
break
;
75
case
SelectionDetailsIconProvider::SmallIcon
:
76
scaledIcon =
QIcon
(*
SelectionDetailsIconProvider::instance
()->getIcon(catg,itemId)).
pixmap
(16, 16);
77
break
;
78
case
SelectionDetailsIconProvider::BigIcon
:
79
//assures better quality, icon scaling so smooth, so silky
80
scaledIcon =
QIcon
(*
SelectionDetailsIconProvider::instance
()->getIcon(catg,itemId)).
pixmap
(24, 24);
81
break
;
82
}
83
84
iconContainer->
setPixmap
(scaledIcon);
85
86
if
(!existingContainer)
87
{
88
iconContainer->
setContentsMargins
(5, 2, 5, 1);
89
setCornerWidget
(iconContainer);
90
}
91
}
92
}
hal::DetailsFrameWidget
Definition:
details_frame_widget.h:35
hal::DetailsTabWidget::addTab
int addTab(const QString &label, QList< DetailsFrameWidget * > frames)
Definition:
details_tab_widget.cpp:15
hal::DetailsTabWidget::setIcon
void setIcon(SelectionDetailsIconProvider::IconCategory catg, u32 itemId=0)
Definition:
details_tab_widget.cpp:59
hal::DetailsTabWidget::DetailsTabWidget
DetailsTabWidget(QWidget *parent=nullptr)
Definition:
details_tab_widget.cpp:13
hal::SelectionDetailsIconProvider::NoIcon
@ NoIcon
Definition:
selection_details_icon_provider.h:46
hal::SelectionDetailsIconProvider::BigIcon
@ BigIcon
Definition:
selection_details_icon_provider.h:46
hal::SelectionDetailsIconProvider::SmallIcon
@ SmallIcon
Definition:
selection_details_icon_provider.h:46
hal::SelectionDetailsIconProvider::IconCategory
IconCategory
Definition:
selection_details_icon_provider.h:45
hal::SelectionDetailsIconProvider::instance
static SelectionDetailsIconProvider * instance()
Definition:
selection_details_icon_provider.cpp:33
hal::SelectionDetailsIconProvider::sIconSizeSetting
static SettingsItemDropdown * sIconSizeSetting
Definition:
selection_details_icon_provider.h:83
details_frame_widget.h
details_tab_widget.h
hal
Definition:
parser_liberty.cpp:10
u32
quint32 u32
Definition:
net_layout_point.h:40
QAbstractScrollArea::setVerticalScrollBarPolicy
void setVerticalScrollBarPolicy(Qt::ScrollBarPolicy)
QBoxLayout::addWidget
void addWidget(QWidget *widget, int stretch, Qt::Alignment alignment)
QBoxLayout::setSpacing
void setSpacing(int spacing)
QIcon
QIcon::pixmap
QPixmap pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state) const const
QLabel
QLabel::setPixmap
void setPixmap(const QPixmap &)
QLayout::SetNoConstraint
SetNoConstraint
QLayout::setAlignment
bool setAlignment(QWidget *w, Qt::Alignment alignment)
QLayout::setContentsMargins
void setContentsMargins(int left, int top, int right, int bottom)
QLayout::setSizeConstraint
void setSizeConstraint(QLayout::SizeConstraint)
QList
QList::append
void append(const T &value)
QList::size
int size() const const
QPixmap
QScrollArea
QScrollArea::setWidget
void setWidget(QWidget *widget)
QScrollArea::setWidgetResizable
void setWidgetResizable(bool resizable)
QSizePolicy::Preferred
Preferred
QString
Qt::AlignTop
AlignTop
Qt::ScrollBarAsNeeded
ScrollBarAsNeeded
QTabWidget
QTabWidget::addTab
int addTab(QWidget *page, const QString &label)
QTabWidget::cornerWidget
QWidget * cornerWidget(Qt::Corner corner) const const
QTabWidget::setCornerWidget
void setCornerWidget(QWidget *widget, Qt::Corner corner)
QVBoxLayout
QWidget
QWidget::QWidget
QWidget(QWidget *parent, Qt::WindowFlags f)
QWidget::setContentsMargins
void setContentsMargins(int left, int top, int right, int bottom)
QWidget::setSizePolicy
void setSizePolicy(QSizePolicy)
plugins
gui
src
selection_details_widget
details_tab_widget.cpp
Generated on Fri Feb 14 2025 14:22:43 for HAL by
1.9.1