#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(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); }