80 lines
1.5 KiB
C++
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);
|
|
}
|