test_sdk/gui/gtl_gui_dock_title.cpp

80 lines
1.5 KiB
C++

#include "gtl_gui_dock_title.h"
#include "ui_gtl_gui_dock_title.h"
dock_title::dock_title(QWidget *parent)
: QWidget(parent)
, ui(new Ui::dock_title)
, _is_maximized(false)
{
ui->setupUi(this);
connect(ui->pin, &QToolButton::clicked, this, &dock_title::pin);
connect(ui->maximize, &QToolButton::clicked, this, &dock_title::maximize_);
connect(ui->close, &QToolButton::clicked, this, &dock_title::close);
}
dock_title::~dock_title()
{
delete ui;
}
QSize dock_title::minimumSizeHint() const
{
return QSize(26, 26);
}
QSize dock_title::sizeHint() const
{
return QSize(26, 26);
}
void dock_title::set_pin_status(bool status)
{
ui->pin->setChecked(!status);
if(!status)
{
_is_maximized = false;
set_maximze_icons();
}
}
void dock_title::set_text(QString value)
{
ui->title->setText(value);
}
bool dock_title::is_pinned() const
{
return ui->pin->isChecked();
}
void dock_title::insert_widget(int idx, QWidget *widget)
{
static_cast<QHBoxLayout*>(ui->frame_title_dock->layout())->insertWidget(idx, widget);
}
void dock_title::set_maximze_icons()
{
if(_is_maximized)
{
ui->maximize->setIcon((QIcon(":/dock/restore")));
ui->maximize->setToolTip(tr("Restore"));
}
else
{
ui->maximize->setIcon((QIcon(":/dock/maximize")));
ui->maximize->setToolTip(tr("Maximize"));
}
}
void dock_title::maximize_()
{
_is_maximized = !_is_maximized;
set_maximze_icons();
emit maximize(_is_maximized);
}