Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
fmPOS
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zhenfei.zhang
fmPOS
Commits
df933c8a
Commit
df933c8a
authored
Mar 21, 2017
by
NitefullWind
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1. 新增托盘菜单。
parent
f0da09cb
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
60 additions
and
14 deletions
+60
-14
fmp_home/fmp_home_navwindow.cpp
+36
-6
fmp_home/fmp_home_navwindow.h
+12
-1
fmp_home/fmp_home_navwindow.ui
+4
-7
fmp_home/fmp_home_p.cpp
+5
-0
fmp_home/fmp_login.cpp
+2
-0
fmp_home/res/img.qrc
+1
-0
fmp_home/res/img/fm-icon_tray.png
+0
-0
No files found.
fmp_home/fmp_home_navwindow.cpp
View file @
df933c8a
...
@@ -8,6 +8,8 @@
...
@@ -8,6 +8,8 @@
#include <QPropertyAnimation>
#include <QPropertyAnimation>
#include <QEasingCurve>
#include <QEasingCurve>
#include <QStateMachine>
#include <QStateMachine>
#include <QSystemTrayIcon>
#include <QMenu>
#include <fmp_settings_i.h>
#include <fmp_settings_i.h>
NavWindow
::
NavWindow
(
FMPSettingsInterface
*&
settings
,
QWidget
*
parent
)
:
NavWindow
::
NavWindow
(
FMPSettingsInterface
*&
settings
,
QWidget
*
parent
)
:
...
@@ -16,15 +18,15 @@ NavWindow::NavWindow(FMPSettingsInterface *&settings, QWidget *parent) :
...
@@ -16,15 +18,15 @@ NavWindow::NavWindow(FMPSettingsInterface *&settings, QWidget *parent) :
_btn_group
(
new
QButtonGroup
(
this
)),
_btn_group
(
new
QButtonGroup
(
this
)),
_animationShow
(
new
QParallelAnimationGroup
(
this
)),
_animationShow
(
new
QParallelAnimationGroup
(
this
)),
_stateMachine
(
new
QStateMachine
(
this
)),
_stateMachine
(
new
QStateMachine
(
this
)),
_systemTrayIcon
(
new
QSystemTrayIcon
(
this
)),
PI
(
3.1415926
),
PI
(
3.1415926
),
_settings
(
settings
)
_settings
(
settings
)
{
{
ui
->
setupUi
(
this
);
ui
->
setupUi
(
this
);
ui
->
navMainBtn
->
setMovedItem
(
this
);
ui
->
navMainBtn
->
setMovedItem
(
this
);
btns
.
push_back
(
"payment"
);
btns
.
push_back
(
std
::
make_pair
(
"payment"
,
QString
::
fromLocal8Bit
(
"非码支付"
)));
btns
.
push_back
(
"tool"
);
btns
.
push_back
(
std
::
make_pair
(
"tool"
,
QString
::
fromLocal8Bit
(
"设置"
)));
btns
.
push_back
(
"tool"
);
MenuUiProp
.
distance
=
100
;
MenuUiProp
.
distance
=
100
;
MenuUiProp
.
beginAngle
=
-
(
PI
/
2
);
MenuUiProp
.
beginAngle
=
-
(
PI
/
2
);
...
@@ -37,12 +39,15 @@ NavWindow::NavWindow(FMPSettingsInterface *&settings, QWidget *parent) :
...
@@ -37,12 +39,15 @@ NavWindow::NavWindow(FMPSettingsInterface *&settings, QWidget *parent) :
connect
(
_btn_group
,
SIGNAL
(
buttonClicked
(
QAbstractButton
*
)),
this
,
SLOT
(
onMenuBtnClicked
(
QAbstractButton
*
)));
connect
(
_btn_group
,
SIGNAL
(
buttonClicked
(
QAbstractButton
*
)),
this
,
SLOT
(
onMenuBtnClicked
(
QAbstractButton
*
)));
initMenu
();
initMenu
();
initSystemTrayIcon
();
}
}
NavWindow
::~
NavWindow
()
NavWindow
::~
NavWindow
()
{
{
delete
_btn_group
;
delete
_btn_group
;
actions
.
clear
();
delete
_animationShow
;
delete
_animationShow
;
delete
_systemTrayIcon
;
delete
ui
;
delete
ui
;
}
}
...
@@ -73,9 +78,9 @@ void NavWindow::spreadMenus(const bool isSpread)
...
@@ -73,9 +78,9 @@ void NavWindow::spreadMenus(const bool isSpread)
void
NavWindow
::
initMenu
()
void
NavWindow
::
initMenu
()
{
{
QState
*
stateDefault
=
new
QState
(
_stateMachine
);
QState
*
stateDefault
=
new
QState
(
_stateMachine
);
stateDefault
->
assignProperty
(
ui
->
navMainBtn
,
"styleSheet"
,
"#navMainBtn{ background-image: url(:fm-icon_01);margin: -
26
0 0 -30;}"
);
stateDefault
->
assignProperty
(
ui
->
navMainBtn
,
"styleSheet"
,
"#navMainBtn{ background-image: url(:fm-icon_01);margin: -
30
0 0 -30;}"
);
QState
*
stateSpread
=
new
QState
(
_stateMachine
);
QState
*
stateSpread
=
new
QState
(
_stateMachine
);
stateSpread
->
assignProperty
(
ui
->
navMainBtn
,
"styleSheet"
,
"#navMainBtn{ background-image: url(:fm-icon_02);margin: -
26
0 0 -30;}"
);
stateSpread
->
assignProperty
(
ui
->
navMainBtn
,
"styleSheet"
,
"#navMainBtn{ background-image: url(:fm-icon_02);margin: -
30
0 0 -30;}"
);
stateSpread
->
addTransition
(
ui
->
navMainBtn
,
&
QPushButton
::
clicked
,
stateDefault
);
stateSpread
->
addTransition
(
ui
->
navMainBtn
,
&
QPushButton
::
clicked
,
stateDefault
);
stateDefault
->
addTransition
(
ui
->
navMainBtn
,
&
QPushButton
::
clicked
,
stateSpread
);
stateDefault
->
addTransition
(
ui
->
navMainBtn
,
&
QPushButton
::
clicked
,
stateSpread
);
...
@@ -99,14 +104,21 @@ void NavWindow::initMenu()
...
@@ -99,14 +104,21 @@ void NavWindow::initMenu()
bool
isUseAnimation
=
_settings
->
GetBool
(
FMP_INIKEY_HOMEANIMATION
);
bool
isUseAnimation
=
_settings
->
GetBool
(
FMP_INIKEY_HOMEANIMATION
);
for
(
decltype
(
btns
.
size
())
i
=
0
;
i
<
btns
.
size
();
++
i
)
{
for
(
decltype
(
btns
.
size
())
i
=
0
;
i
<
btns
.
size
();
++
i
)
{
std
::
pair
<
QString
,
QString
>
btnPair
=
btns
.
at
(
i
);
QAction
*
action
=
new
QAction
(
QIcon
(
QString
(
":%1"
).
arg
(
btnPair
.
first
)),
btnPair
.
second
,
this
);
connect
(
action
,
&
QAction
::
triggered
,
this
,
[
=
](){
emit
menuBtnClicked
(
btnPair
.
first
);
});
actions
<<
action
;
auto
btn
=
new
QPushButton
(
this
);
auto
btn
=
new
QPushButton
(
this
);
btn
->
addAction
(
action
);
double
angle
=
MenuUiProp
.
beginAngle
+
jianGe
*
i
;
double
angle
=
MenuUiProp
.
beginAngle
+
jianGe
*
i
;
int
x
=
centerX
+
dis
*
cos
(
angle
)
-
btnWidth
/
2
;
int
x
=
centerX
+
dis
*
cos
(
angle
)
-
btnWidth
/
2
;
int
y
=
centerY
+
dis
*
sin
(
angle
)
-
btnWidth
/
2
;
int
y
=
centerY
+
dis
*
sin
(
angle
)
-
btnWidth
/
2
;
QRect
btnGrometry
(
x
,
y
,
btnWidth
,
btnWidth
);
QRect
btnGrometry
(
x
,
y
,
btnWidth
,
btnWidth
);
btn
->
setObjectName
(
btn
s
[
i
]
);
btn
->
setObjectName
(
btn
Pair
.
first
);
_btn_group
->
addButton
(
btn
);
_btn_group
->
addButton
(
btn
);
btn
->
setGeometry
(
_centerGeometry
);
btn
->
setGeometry
(
_centerGeometry
);
...
@@ -132,3 +144,21 @@ void NavWindow::onMenuBtnClicked(QAbstractButton *btn)
...
@@ -132,3 +144,21 @@ void NavWindow::onMenuBtnClicked(QAbstractButton *btn)
QString
btnName
=
btn
->
objectName
();
QString
btnName
=
btn
->
objectName
();
emit
menuBtnClicked
(
btnName
);
emit
menuBtnClicked
(
btnName
);
}
}
void
NavWindow
::
initSystemTrayIcon
()
{
QIcon
icon
(
":fm-icon_tray"
);
_systemTrayIcon
->
setIcon
(
icon
);
_systemTrayIcon
->
setToolTip
(
qApp
->
applicationName
());
auto
quitAction
=
new
QAction
(
QString
::
fromLocal8Bit
(
"退出"
),
this
);
connect
(
quitAction
,
&
QAction
::
triggered
,
this
,
[
&
](){
_systemTrayIcon
->
hide
();
emit
menuBtnClicked
(
"quit"
);
});
auto
menus
=
new
QMenu
(
this
);
menus
->
addActions
(
actions
);
menus
->
addAction
(
quitAction
);
_systemTrayIcon
->
setContextMenu
(
menus
);
_systemTrayIcon
->
show
();
}
fmp_home/fmp_home_navwindow.h
View file @
df933c8a
...
@@ -15,6 +15,7 @@ class QParallelAnimationGroup;
...
@@ -15,6 +15,7 @@ class QParallelAnimationGroup;
class
QSequentialAnimationGroup
;
class
QSequentialAnimationGroup
;
class
FMPSettingsInterface
;
class
FMPSettingsInterface
;
class
QStateMachine
;
class
QStateMachine
;
class
QSystemTrayIcon
;
class
NavWindow
:
public
QDialog
class
NavWindow
:
public
QDialog
{
{
...
@@ -43,6 +44,7 @@ private:
...
@@ -43,6 +44,7 @@ private:
Ui
::
NavWindow
*
ui
;
Ui
::
NavWindow
*
ui
;
QButtonGroup
*
_btn_group
;
QButtonGroup
*
_btn_group
;
QList
<
QAction
*>
actions
;
std
::
vector
<
QRect
>
_btnsGeometry
;
std
::
vector
<
QRect
>
_btnsGeometry
;
QParallelAnimationGroup
*
_animationShow
;
QParallelAnimationGroup
*
_animationShow
;
QRect
_centerGeometry
;
QRect
_centerGeometry
;
...
@@ -50,8 +52,17 @@ private:
...
@@ -50,8 +52,17 @@ private:
void
initMenu
();
void
initMenu
();
//! System tray icon.
QSystemTrayIcon
*
_systemTrayIcon
;
void
initSystemTrayIcon
();
private
:
private
:
std
::
vector
<
QString
>
btns
;
/**
* @brief btns
* pair.first: Button的objcetName, icon文件的名字。
* pair.second: 托盘中显示的按钮名字
*/
std
::
vector
<
std
::
pair
<
QString
,
QString
>>
btns
;
const
double
PI
;
const
double
PI
;
struct
MenuUiProps
struct
MenuUiProps
{
{
...
...
fmp_home/fmp_home_navwindow.ui
View file @
df933c8a
...
@@ -15,8 +15,8 @@
...
@@ -15,8 +15,8 @@
</property>
</property>
<property
name=
"styleSheet"
>
<property
name=
"styleSheet"
>
<string
notr=
"true"
>
#navMainBtn {
<string
notr=
"true"
>
#navMainBtn {
background-image: url(:fm-icon_0
2
);
background-image: url(:fm-icon_0
1
);
margin: -
26
0 0 -30;
margin: -
30
0 0 -30;
border: none;
border: none;
}
}
...
@@ -32,9 +32,6 @@ QPushButton:hover {
...
@@ -32,9 +32,6 @@ QPushButton:hover {
border-image: url(:tool);
border-image: url(:tool);
}
}
#tool:pressed {
#tool:pressed {
border-image: url(:tool);
}
#tool:pressed {
border-image: url(:tool_onclick);
border-image: url(:tool_onclick);
}
}
#payment {
#payment {
...
@@ -55,8 +52,8 @@ QPushButton:hover {
...
@@ -55,8 +52,8 @@ QPushButton:hover {
<rect>
<rect>
<x>
140
</x>
<x>
140
</x>
<y>
90
</y>
<y>
90
</y>
<width>
12
1
</width>
<width>
12
4
</width>
<height>
12
1
</height>
<height>
12
4
</height>
</rect>
</rect>
</property>
</property>
<property
name=
"styleSheet"
>
<property
name=
"styleSheet"
>
...
...
fmp_home/fmp_home_p.cpp
View file @
df933c8a
...
@@ -78,6 +78,11 @@ void FMPHomePrivate::onMenuBtnClicked(QString btnName)
...
@@ -78,6 +78,11 @@ void FMPHomePrivate::onMenuBtnClicked(QString btnName)
Q_Q
(
FMPHome
);
Q_Q
(
FMPHome
);
FMP_DEBUG_CTX
(
q
->
_ctx
)
<<
"Menu clicked: "
<<
btnName
;
FMP_DEBUG_CTX
(
q
->
_ctx
)
<<
"Menu clicked: "
<<
btnName
;
if
(
btnName
==
"quit"
)
{
FMP_DEBUG_CTX
(
q
->
_ctx
)
<<
"Will Quit!"
;
return
;
}
if
(
!
_isLogined
&&
btnName
!=
"tool"
)
{
if
(
!
_isLogined
&&
btnName
!=
"tool"
)
{
if
(
login
()
!=
FMP_SUCCESS
)
{
if
(
login
()
!=
FMP_SUCCESS
)
{
return
;
return
;
...
...
fmp_home/fmp_login.cpp
View file @
df933c8a
...
@@ -21,6 +21,8 @@ FMPLogin::FMPLogin(QString url, QString storeId, QString partnerId, QDialog *par
...
@@ -21,6 +21,8 @@ FMPLogin::FMPLogin(QString url, QString storeId, QString partnerId, QDialog *par
connect
(
ui
->
numpad
,
SIGNAL
(
digit_confirm
()),
this
,
SLOT
(
on_login_btn_clicked
()));
connect
(
ui
->
numpad
,
SIGNAL
(
digit_confirm
()),
this
,
SLOT
(
on_login_btn_clicked
()));
connect
(
qApp
,
&
QApplication
::
focusChanged
,
this
,
&
FMPLogin
::
onFocusChanged
);
connect
(
qApp
,
&
QApplication
::
focusChanged
,
this
,
&
FMPLogin
::
onFocusChanged
);
setAttribute
(
Qt
::
WA_QuitOnClose
,
false
);
}
}
FMPLogin
::~
FMPLogin
()
FMPLogin
::~
FMPLogin
()
...
...
fmp_home/res/img.qrc
View file @
df933c8a
...
@@ -10,5 +10,6 @@
...
@@ -10,5 +10,6 @@
<file>img/btn_alert_close.png</file>
<file>img/btn_alert_close.png</file>
<file alias="fm-icon_02">img/fm-icon_02.png</file>
<file alias="fm-icon_02">img/fm-icon_02.png</file>
<file alias="tool_onclick">img/fm-icon_tool_onclick.png</file>
<file alias="tool_onclick">img/fm-icon_tool_onclick.png</file>
<file alias="fm-icon_tray">img/fm-icon_tray.png</file>
</qresource>
</qresource>
</RCC>
</RCC>
fmp_home/res/img/fm-icon_tray.png
0 → 100644
View file @
df933c8a
6.14 KB
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment