xref: /OK3568_Linux_fs/app/forlinx/flapp/src/app/titlebar.cpp (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 #include "titlebar.h"
2 #include <QVBoxLayout>
3 #include <QHBoxLayout>
4 #include <QPushButton>
5 #include <QCoreApplication>
6 #include <QLabel>
7 
TitleBar(QWidget * parent)8 TitleBar::TitleBar(QWidget *parent) : QWidget(parent),m_bMayClose(true)
9 {
10     QHBoxLayout *pHLayout = new QHBoxLayout;
11     pHLayout->setContentsMargins(0,0,0,0);
12     QPushButton *pClose = new QPushButton("X");
13     //pClose->setFlat(true);
14     //pClose->setStyleSheet("border-image:url(:/resource/close.png); min-height: 30px; max-height:30px;  min-width: 30px; max-width:30px");
15     connect(pClose, &QPushButton::clicked, this, [=](){
16         if(m_bMayClose)
17         {
18             if(topLevelWidget())
19                   topLevelWidget()->hide();
20             qApp->processEvents();
21             qApp->quit();
22         }else{
23             emit showBoxWidget();
24         }
25     });
26 
27 
28     m_title = new QLabel("FORLINX EMBEDDED");
29     m_title->setStyleSheet("color: blue; font-size:18px");
30     QFont font;
31     font.setBold(true);
32     m_title->setFont(font);
33 
34     m_version = new QLabel("Version: 0.0.1");
35     m_version->setStyleSheet("color: blue");
36 
37     pHLayout->addWidget(m_title);
38     pHLayout->addStretch();
39     pHLayout->addWidget(m_version);
40     pHLayout->addSpacing(30);
41     pHLayout->addWidget(pClose);
42 
43     QVBoxLayout *pVLayout = new QVBoxLayout(this);
44     QFrame *pLine = new QFrame;
45     pLine->setFrameShape(QFrame::HLine);
46     pLine->setLineWidth(2);
47     pLine->setFrameShadow(QFrame::Raised);
48     pLine->setAutoFillBackground(true);
49     pVLayout->addLayout(pHLayout);
50     pVLayout->addWidget(pLine);
51     pVLayout->setContentsMargins(10, 10, 10, 0);
52     pVLayout->setSpacing(10);
53 
54 }
55 
setAppMayClose(bool bMay)56 void TitleBar::setAppMayClose(bool bMay)
57 {
58     m_bMayClose = bMay;
59 }
60 
setVersion(const QString & version)61 void TitleBar::setVersion(const QString &version)
62 {
63     m_version->setText(version);
64 
65 }
66 
showTitlebarName(const QString & name)67 void TitleBar::showTitlebarName(const QString &name)
68 {
69 
70     m_title->setText("Forlinx Embedded-"+ name);
71 
72 }
73