Commit 3163e680 by xiaoqing.gu

1、登陆界面增加自动登录和记住密码功能 2、悬浮窗左右展开 3、悬浮窗长按弹扫码取餐 4、悬浮窗适应屏幕 分辨率

parent 8bb18ec2
......@@ -27,6 +27,7 @@
<file>login_logo.png</file>
<file>base_logo.png</file>
<file>loginlogin.png</file>
<file>loginlogin_back.png</file>
<file>pickupclose.png</file>
<file>pickupwar.png</file>
<file>yy.png</file>
......
......@@ -619,11 +619,6 @@ QWidget
color: #FF000A;
}
#widget_base
{
border-image: url(:base_logo.png);
}
#widget_login
{
border-image: url(:loginlogin.png);
......
Resources/skin/loginlogin.png

2.78 KB | W: | H:

Resources/skin/loginlogin.png

2.96 KB | W: | H:

Resources/skin/loginlogin.png
Resources/skin/loginlogin.png
Resources/skin/loginlogin.png
Resources/skin/loginlogin.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -29,6 +29,8 @@ QEvent::Type PosEvent::s_delete_prt = static_cast<QEvent::Type>(QEvent::register
QEvent::Type PosEvent::s_change_stalls = static_cast<QEvent::Type>(QEvent::registerEventType());
QEvent::Type PosEvent::s_show_stalls = static_cast<QEvent::Type>(QEvent::registerEventType());
QEvent::Type PosEvent::s_show_pickup = static_cast<QEvent::Type>(QEvent::registerEventType());
PosEvent::PosEvent(Type e):QEvent(e)
{
//qDebug() << "------event : " << this;
......
......@@ -113,6 +113,9 @@ public:
//档口信息展示
static Type s_show_stalls;
//---------------------长按悬浮窗功能------------------
//显示扫码取餐界面
static Type s_show_pickup;
private:
//事件携带的信息,该内存你应当在堆中分配
void *_info;
......
......@@ -7,6 +7,7 @@
#include "model/posstallspool.h"
#include "view/mainForm.h"
#include "view/floatForm.h"
#include "view/newfloatform.h"
#include "view/newmainform.h"
#include "control/orderlocalizework.h"
#include "control/orderpushwork.h"
......@@ -229,7 +230,8 @@ int main(int argc, char *argv[])
NewLoginForm loginform;
NewMainForm mainform;
FloatForm floatform;
// FloatForm floatform;
NewFloatForm floatform;
mainform.MyShow();
loginform.showfull();
#endif
......
......@@ -63,6 +63,7 @@
#define INI_PASSWORD "info/password"
#define INI_AUTOCONFIRM "info/autoconfirm"
#define INI_AUTOLOGIN "info/autologin"
#define INI_REMEMBERPWD "info/rememberPwd"
#define INI_UIVISIBLE "Ui/visible"
#define INI_DELEORDERTIMER "all/dltordertimer"
......
......@@ -78,7 +78,8 @@ SOURCES += main.cpp \
view/newloginform.cpp \
view/newpickupform.cpp \
base/Network/ping.cpp \
control/networkcheckwork.cpp
control/networkcheckwork.cpp \
view/newfloatform.cpp
HEADERS += \
event/fmapplication.h \
......@@ -132,7 +133,8 @@ HEADERS += \
view/newloginform.h \
view/newpickupform.h \
base/Network/ping.h \
control/networkcheckwork.h
control/networkcheckwork.h \
view/newfloatform.h
DISTFILES += takeout.rc
......@@ -155,5 +157,6 @@ FORMS += \
view/newdetailform.ui \
view/prttypeform.ui \
view/newloginform.ui \
view/newpickupform.ui
view/newpickupform.ui \
view/newfloatform.ui
......@@ -268,7 +268,7 @@ void FloatForm::mouseReleaseEvent(QMouseEvent *event)
{
//qDebug() << "x:" << event->x() << "y:" << event->y();
if(event->x() > 48 || !m_is_login)
if(event->x() > 100 || !m_is_login)
{
hide();
m_raiseTimer.stop();
......@@ -305,6 +305,7 @@ void FloatForm::mouseReleaseEvent(QMouseEvent *event)
void FloatForm::_Init()
{
QSize tmpdesktopSize= QApplication::desktop()->screenGeometry().size();
if(!m_is_login)
tmpdesktopSize-= QSize(ui->widget_base->width(), ui->widget_base->height());
else
......@@ -313,7 +314,7 @@ void FloatForm::_Init()
setWindowFlags(this->windowFlags() | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint | Qt::Tool);
setAttribute(Qt::WA_TranslucentBackground);
setFixedSize(m_imgNormalSize);
// setFixedSize(m_imgNormalSize);
setStyleSheet("#floatWdg{ border-image: url(:float_normal.png); }");
move(ConfigManger::GetInstance().GetFloatInitPostion());
......@@ -337,6 +338,14 @@ void FloatForm::_Init()
pos.setY(tmpdesktopSize.height());
}
move(pos);
int currentScreenWid = tmpdesktopSize.width();
int currentScreenHei = tmpdesktopSize.height();
double factoryx = currentScreenWid/800.0;
double factoryy = currentScreenHei/600.0;
qDebug() << "******************************9090*************************" <<currentScreenWid << currentScreenHei << factoryx << factoryy;
resetGrid(this,factoryx,factoryy);
}
void FloatForm::_Blink()
......@@ -347,7 +356,7 @@ void FloatForm::_Blink()
m_animation.setEndValue(0);
m_animation.start();
loop.exec();
this->setFixedSize(m_imgRemindSize);
// this->setFixedSize(m_imgRemindSize);
//ui->floatWdg->setStyleSheet("#floatWdg{ border-image: url(:float_remind.png)}");
//ui->widget_login->show();
ui->widget_base->hide();
......@@ -361,7 +370,7 @@ void FloatForm::_Blink()
m_animation.setEndValue(0);
m_animation.start();
loop.exec();
this->setFixedSize(m_imgNormalSize);
// this->setFixedSize(m_imgNormalSize);
//ui->floatWdg->setStyleSheet("#floatWdg{ border-image: url(:float_normal.png)}");
ui->widget_base->hide();
ui->widget_synshow->show();
......@@ -469,3 +478,33 @@ void FloatForm::onShow()
show();
m_raiseTimer.start();
}
void FloatForm::resetGrid(QDialog *widget, double factorx, double factory)
{
int widgetX = widget->x();
int widgetY = widget->y();
int widgetWid = widget->width();
int widgetHei = widget->height();
int nWidgetWid = (int)(widgetWid*factorx);
int nWidgetHei = (int)(widgetHei*factory);
qDebug() << "----------------------------------------9090-----------------------" << widgetX << widgetY << nWidgetWid << nWidgetHei;
this->setGeometry(0,0,nWidgetWid,nWidgetHei);
ui->widget_base->setGeometry(0,0,nWidgetWid*(48/94.0),nWidgetHei);
ui->widget_login->setGeometry(0,0,nWidgetWid,nWidgetHei);
ui->widget_synshow->setGeometry(0,0,nWidgetWid,nWidgetHei);
ui->widget_touch->setGeometry(0,0,nWidgetWid,nWidgetHei);
ui->label_new->setGeometry(100,5,20,20);
ui->label_newnum->setGeometry(130,5,30,20);
ui->label_refund->setGeometry(100,30,20,20);
ui->label_refundnum->setGeometry(130,30,30,20);
// widget->setFixedSize(nWidgetWid,nWidgetHei);
// this->setFixedSize(nWidgetWid,nWidgetHei);
// ui->widget_base->setFixedSize(nWidgetWid*(48/94.0),nWidgetHei);
// ui->widget_login->setFixedSize(nWidgetWid,nWidgetHei);
// ui->widget_synshow->setFixedSize(nWidgetWid,nWidgetHei);
// ui->widget_touch->setFixedSize(nWidgetWid,nWidgetHei);
}
......@@ -80,6 +80,8 @@ private slots:
void _PlayWav();
//udp广播声音播控
void _UdpRadio(QString songName, int type, int time);
//悬浮框大小自适应不同屏幕分辨率
void resetGrid(QDialog *widget,double factorx,double factory);
signals:
/* 功能:通知主窗口显示
......
#ifndef NEWFLOATFORM_H
#define NEWFLOATFORM_H
#include <QDialog>
#include <QMouseEvent>
#include <QTimer>
#include <QSize>
#include <QPropertyAnimation>
#include <QSound>
namespace Ui {
class NewFloatForm;
}
class NewFloatForm : public QDialog
{
Q_OBJECT
public:
explicit NewFloatForm(QWidget *parent = 0);
~NewFloatForm();
virtual bool event(QEvent *e);
protected:
void mouseMoveEvent(QMouseEvent * event);
void mousePressEvent(QMouseEvent * event);
void mouseReleaseEvent(QMouseEvent * event);
private:
QSize desktopSize;
Ui::NewFloatForm *ui;
// 记录左键按下去后是否移动过
bool m_bMouseMove;
// 记录左键是否按下去
bool m_bMousePress;
// 拖动前鼠标坐标
QPoint m_lastMousePos;
// 此次拖动一共移动的距离
QPoint m_absMove;
// 记录正常状态图片的大小
QSize m_imgNormalSize;
// 记录提示状态图片的大小
QSize m_imgRemindSize;
// 记录是否正在提示
bool m_bReminding;
// 闪烁动画
QPropertyAnimation m_animation;
// 记录音频文件
QString m_remindWav;
// 声音的间隔
int m_wavPlayInterval;
// 置顶定时器
QTimer m_raiseTimer;
QTimer m_remindTimer;
//长按悬浮框计时定时器
QTimer m_clickTimer;
//计时1s加1
int m_num;
// 是否登录成功
bool m_is_login;
//停止标识
bool m_play_flag;
//
/* 功能:初始化
* 参数:NULL
* 返回:NULL
* */
void _Init();
/* 功能:界面展示
* 参数:[1] -1界面展示; 0新订单; 1新退单
* 返回:NULL
* */
void InitWidget(int flag = -1);
private slots:
/* 功能:闪烁
* 参数:NULL
* 返回:NULL
* */
void _Blink();
/* 功能:声音
* 参数:NULL
* 返回:NULL
* */
void _PlayWav();
//udp广播声音播控
void _UdpRadio(QString songName, int type, int time);
//悬浮框大小自适应不同屏幕分辨率
void resetGrid(QDialog *widget,double factorx,double factory);
void OnUpdate();
signals:
/* 功能:通知主窗口显示
* 参数:NULL
* 返回:NULL
* */
void showMainForm();
public slots:
/* 功能:开启提示
* 参数:[1]提示类型 0新订单1申请退款
* 返回:NULL
* */
void onStartRemind(int type);
/* 功能:关闭提示
* 参数:NULL
* 返回:NULL
* */
void onStopRemind();
/* 功能:显示窗口
* 参数:NULL
* 返回:NULL
* */
void onShow();
};
#endif // NEWFLOATFORM_H
......@@ -26,21 +26,21 @@ NewLoginForm::NewLoginForm(QWidget *parent) :
connect(ui->lineEdit_account_2, &ClickedLineEdit::clicked, this, &NewLoginForm::GetCurrLineEdit);
connect(ui->lineEdit_partnerid_2, &ClickedLineEdit::clicked, this, &NewLoginForm::GetCurrLineEdit);
connect(ui->lineEdit_pwd_2, &ClickedLineEdit::clicked, this, &NewLoginForm::GetCurrLineEdit);
connect(ui->lineEdit_posno_2, &ClickedLineEdit::clicked, this, &NewLoginForm::GetCurrLineEdit);
// connect(ui->lineEdit_posno_2, &ClickedLineEdit::clicked, this, &NewLoginForm::GetCurrLineEdit);
connect(ui->lineEdit_storeid_2, &ClickedLineEdit::clicked, this, &NewLoginForm::GetCurrLineEdit);
connect(ui->pushButton_10, &QPushButton::clicked, this, &NewLoginForm::number_btn_click);
connect(ui->pushButton_11, &QPushButton::clicked, this, &NewLoginForm::number_btn_click);
connect(ui->pushButton_12, &QPushButton::clicked, this, &NewLoginForm::number_btn_click);
connect(ui->pushButton_13, &QPushButton::clicked, this, &NewLoginForm::number_btn_click);
connect(ui->pushButton_14, &QPushButton::clicked, this, &NewLoginForm::number_btn_click);
connect(ui->pushButton_15, &QPushButton::clicked, this, &NewLoginForm::number_btn_click);
connect(ui->pushButton_16, &QPushButton::clicked, this, &NewLoginForm::number_btn_click);
connect(ui->pushButton_17, &QPushButton::clicked, this, &NewLoginForm::number_btn_click);
connect(ui->pushButton_18, &QPushButton::clicked, this, &NewLoginForm::number_btn_click);
connect(ui->pushButton_19, &QPushButton::clicked, this, &NewLoginForm::number_btn_click);
connect(ui->pushButton_clear_2, &QPushButton::clicked, this, &NewLoginForm::number_btn_click);
connect(ui->pushButton_del_2, &QPushButton::clicked, this, &NewLoginForm::number_btn_click);
connect(ui->pushButton_num0, &QPushButton::clicked, this, &NewLoginForm::number_btn_click);
connect(ui->pushButton_num1, &QPushButton::clicked, this, &NewLoginForm::number_btn_click);
connect(ui->pushButton_num2, &QPushButton::clicked, this, &NewLoginForm::number_btn_click);
connect(ui->pushButton_num3, &QPushButton::clicked, this, &NewLoginForm::number_btn_click);
connect(ui->pushButton_num4, &QPushButton::clicked, this, &NewLoginForm::number_btn_click);
connect(ui->pushButton_num5, &QPushButton::clicked, this, &NewLoginForm::number_btn_click);
connect(ui->pushButton_num6, &QPushButton::clicked, this, &NewLoginForm::number_btn_click);
connect(ui->pushButton_num7, &QPushButton::clicked, this, &NewLoginForm::number_btn_click);
connect(ui->pushButton_num8, &QPushButton::clicked, this, &NewLoginForm::number_btn_click);
connect(ui->pushButton_num9, &QPushButton::clicked, this, &NewLoginForm::number_btn_click);
connect(ui->pushButton_clearBtn, &QPushButton::clicked, this, &NewLoginForm::number_btn_click);
connect(ui->pushButton_delBtn, &QPushButton::clicked, this, &NewLoginForm::number_btn_click);
_curr_lineedit = ui->lineEdit_partnerid_2;
_curr_lineedit->setFocus();
......@@ -52,9 +52,12 @@ NewLoginForm::NewLoginForm(QWidget *parent) :
QString configfile = qApp->applicationDirPath() + "/" + CONFIG_NAME;
m_autologin = QSettings(configfile, QSettings::IniFormat).value(INI_AUTOLOGIN, 0).toInt();
m_rememberPwd = QSettings(configfile, QSettings::IniFormat).value(INI_REMEMBERPWD, 0).toInt();
if(m_autologin)
ui->checkBox_2->setChecked(true);
if(m_rememberPwd)
ui->checkBox_rememberPwd->setChecked(true);
FMApplication::subscibeEvent(this, PosEvent::s_login_status);
FMApplication::subscibeEvent(this, PosEvent::s_opt_status);
......@@ -96,9 +99,11 @@ void NewLoginForm::SetStoreInfo()
ui->lineEdit_partnerid_2->setText(partnerid);
ui->lineEdit_storeid_2->setText(storeid);
ui->lineEdit_posno_2->setText(stationid);
// ui->lineEdit_posno_2->setText(stationid);
ui->lineEdit_account_2->setText(userid);
ui->lineEdit_pwd_2->setText(pwd);
if(ui->checkBox_rememberPwd->isChecked())
ui->lineEdit_pwd_2->setText(pwd);
}
void NewLoginForm::showfull()
......@@ -192,14 +197,22 @@ void NewLoginForm::on_pushButton_login_2_clicked()
else
QSettings(configfile, QSettings::IniFormat).setValue(INI_AUTOLOGIN, 0);
if(ui->checkBox_rememberPwd->isChecked())
QSettings(configfile, QSettings::IniFormat).setValue(INI_REMEMBERPWD, 1);
else
QSettings(configfile, QSettings::IniFormat).setValue(INI_REMEMBERPWD, 0);
QLOG_DEBUG() << "configfile" << configfile;
QVariantMap map;
if(ui->lineEdit_pwd_2->text().isEmpty())
return;
if(ui->lineEdit_account_2->text().isEmpty() ||
ui->lineEdit_pwd_2->text().isEmpty() ||
ui->lineEdit_partnerid_2->text().isEmpty() ||
ui->lineEdit_posno_2->text().isEmpty() ||
/*ui->lineEdit_posno_2->text().isEmpty() ||*/
ui->lineEdit_storeid_2->text().isEmpty() )
{
onShowAlert(AlertForm::ERROR, QString::fromLocal8Bit("商户号/门店号/POS编号/账号/密码均不能为空"));
......@@ -207,7 +220,8 @@ void NewLoginForm::on_pushButton_login_2_clicked()
}
map.insert(JSON_STOREID, ui->lineEdit_storeid_2->text());
map.insert(JSON_STATIONID, ui->lineEdit_posno_2->text());
// map.insert(JSON_STATIONID, ui->lineEdit_posno_2->text());
map.insert(JSON_STATIONID, ui->lineEdit_account_2->text());
map.insert(JSON_KEY_USERID, ui->lineEdit_account_2->text());
map.insert(JSON_KEY_PWD, ui->lineEdit_pwd_2->text());
map.insert(JSON_KEY_PARTNERID, ui->lineEdit_partnerid_2->text());
......@@ -219,11 +233,11 @@ void NewLoginForm::number_btn_click()
{
QPushButton *btn = qobject_cast<QPushButton*>(sender());
if(btn == ui->pushButton_clear_2)
if(btn == ui->pushButton_clearBtn)
{
_curr_lineedit->clear();
}
else if(btn == ui->pushButton_del_2)
else if(btn == ui->pushButton_delBtn)
{
QString text = _curr_lineedit->text();
......
......@@ -48,7 +48,11 @@ private:
// 通知窗口
AlertForm *m_alertForm;
//自动登陆标志位
int m_autologin;
//记住密码标志位
int m_rememberPwd;
};
#endif // NEWLOGINFORM_H
......@@ -49,6 +49,7 @@ NewMainForm::NewMainForm(QWidget *parent) :
FMApplication::subscibeEvent(this, PosEvent::s_show_mainform);
FMApplication::subscibeEvent(this, PosEvent::s_network_outtime);
FMApplication::subscibeEvent(this, PosEvent::s_show_stalls);
FMApplication::subscibeEvent(this, PosEvent::s_show_pickup);
//this->show();
this->showFullScreen();
......@@ -702,6 +703,13 @@ bool NewMainForm::event(QEvent *e)
return true;
}
if(e->type() == PosEvent::s_show_pickup)
{
this->showFullScreen();
InitWidget(MAIN_SCAN);
return true;
}
return QWidget::event(e);
}
......
......@@ -9,6 +9,7 @@ NewPickupForm::NewPickupForm(QWidget *parent) :
ui(new Ui::NewPickupForm)
{
ui->setupUi(this);
}
NewPickupForm::~NewPickupForm()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment