xref: /OK3568_Linux_fs/app/forlinx/flapp/src/plugins/allwinner/MediaUI/common/frmmessagebox.cpp (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /*!
2  * @class frmMessageBox
3  * @brief des
4  * this is class which is a information widget
5  * this widget provide, three types, by func frmMessageBox::SetMessage:
6  * (1)information dialog
7  * (2)question dialog
8  * (3)error dialog
9  * @author lee
10  */
11 #include "frmmessagebox.h"
12 #include "ui_frmmessagebox.h"
13 #include <QFontDatabase>
14 #include <QDesktopWidget>
15 #include <QMouseEvent>
16 #include <QFont>
17 #include <QFontDatabase>
18 #include <QDebug>
19 
frmMessageBox(QWidget * parent)20 frmMessageBox::frmMessageBox(QWidget *parent) :
21     QDialog(parent),
22     ui(new Ui::frmMessageBox)
23 {
24     ui->setupUi(this);
25     show_title();//title settting
26     FormInCenter();//make this widget is center in desktop
27     this->mousePressed = false;//for widget drag move
28     setWindowFlags(this->windowFlags()|Qt::FramelessWindowHint);
29     setAttribute(Qt::WA_DeleteOnClose);//this widget will delete when close
30 
31     connect(ui->btnMenu_Close, SIGNAL(clicked()), this, SLOT(close()));
32     connect(ui->btnCancel, SIGNAL(clicked()), this, SLOT(close()));
33 
34 }
35 
~frmMessageBox()36 frmMessageBox::~frmMessageBox()
37 {
38     delete ui;
39 }
show_title()40 void frmMessageBox::show_title()
41 {
42     int fontId = QFontDatabase::addApplicationFont(":/fonts/fontawesome-webfont.ttf");
43     QString fontName = QFontDatabase::applicationFontFamilies(fontId).at(0);
44     QFont iconFont = QFont(fontName);
45     iconFont.setPointSize(10);
46     ui->btnMenu_Close->setFont(iconFont);
47     ui->btnMenu_Close->setText(QChar(0xf00d));
48     iconFont.setPointSize(12);
49     ui->lab_Ico->setFont(iconFont);
50     ui->lab_Ico->setText(QChar(0xf015));
51     ui->lab_Title->setFont(iconFont);
52 }
53 
FormInCenter()54 void frmMessageBox::FormInCenter()
55 {
56     int frmX = this->width();
57     int frmY = this->height();
58     QDesktopWidget w;
59     int deskWidth = w.width();
60     int deskHeight = w.height();
61     QPoint movePoint(deskWidth / 2 - frmX / 2, deskHeight / 2 - frmY / 2);
62     this->move(movePoint);
63 }
SetMessage(const QString & msg,int type)64 void frmMessageBox::SetMessage(const QString &msg, int type)
65 {
66     if (type == 0) {
67         ui->labIcoMain->setStyleSheet("border-image: url(:/images/messageBoxIcons/info.png);");
68         ui->btnCancel->setVisible(false);
69         ui->lab_Title->setText("提示");
70     } else if (type == 1) {
71         ui->labIcoMain->setStyleSheet("border-image: url(:/images/messageBoxIcons/question.png);");
72         ui->lab_Title->setText("询问");
73     } else if (type == 2) {
74         ui->labIcoMain->setStyleSheet("border-image: url(:/images/messageBoxIcons/error.png);");
75         ui->btnCancel->setVisible(false);
76         ui->lab_Title->setText("错误");
77     }
78 
79     ui->labInfo->setText(msg);
80 }
81 
on_btnOk_clicked()82 void frmMessageBox::on_btnOk_clicked()
83 {
84     done(1);
85     this->close();
86 }
87 
mouseMoveEvent(QMouseEvent * e)88 void frmMessageBox::mouseMoveEvent(QMouseEvent *e)
89 {
90     if (mousePressed && (e->buttons() && Qt::LeftButton)) {
91         this->move(e->globalPos() - mousePoint);
92         e->accept();
93     }
94 }
95 
mousePressEvent(QMouseEvent * e)96 void frmMessageBox::mousePressEvent(QMouseEvent *e)
97 {
98     if (e->button() == Qt::LeftButton) {
99         mousePressed = true;
100         mousePoint = e->globalPos() - this->pos();
101         e->accept();
102     }
103 }
104 
mouseReleaseEvent(QMouseEvent *)105 void frmMessageBox::mouseReleaseEvent(QMouseEvent *)
106 {
107     mousePressed = false;
108 }
109