Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
fmp_home
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
fmp_home
Commits
a40d9dd3
Commit
a40d9dd3
authored
Jun 12, 2017
by
NitefullWind
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1. 米有会员系统对接。不显示导航窗口。
parent
06108fca
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
81 additions
and
63 deletions
+81
-63
fmp_home_navwindow.cpp
+64
-58
fmp_home_navwindow.h
+4
-1
fmp_home_p.cpp
+13
-4
No files found.
fmp_home_navwindow.cpp
View file @
a40d9dd3
...
...
@@ -18,6 +18,7 @@ NavWindow::NavWindow(QWidget *parent) :
QDialog
(
parent
),
ui
(
new
Ui
::
NavWindow
),
_btn_group
(
new
QButtonGroup
(
this
)),
_menu
(
new
QMenu
(
this
)),
_animationShow
(
new
QParallelAnimationGroup
(
this
)),
_stateMachine
(
new
QStateMachine
(
this
)),
_systemTrayIcon
(
new
QSystemTrayIcon
(
this
)),
...
...
@@ -29,9 +30,9 @@ NavWindow::NavWindow(QWidget *parent) :
connect
(
this
,
SIGNAL
(
stopBlink
()),
ui
->
navMainBtn
,
SLOT
(
stop
()));
btns
.
push_back
(
std
::
make_pair
(
"payment"
,
QString
::
fromLocal8Bit
(
"非码支付"
)));
//
btns.push_back(std::make_pair("vip", QString::fromLocal8Bit("非码会员")));
btns
.
push_back
(
std
::
make_pair
(
"vip"
,
QString
::
fromLocal8Bit
(
"非码会员"
)));
btns
.
push_back
(
std
::
make_pair
(
"takeout"
,
QString
::
fromLocal8Bit
(
"非码外卖"
)));
//
btns.push_back(std::make_pair("coupons", QString::fromLocal8Bit("码多多")));
btns
.
push_back
(
std
::
make_pair
(
"coupons"
,
QString
::
fromLocal8Bit
(
"码多多"
)));
btns
.
push_back
(
std
::
make_pair
(
"tool"
,
QString
::
fromLocal8Bit
(
"设置"
)));
MenuUiProp
.
distance
=
100
;
...
...
@@ -44,7 +45,7 @@ NavWindow::NavWindow(QWidget *parent) :
this
->
setWindowFlags
(
windowFlags
()
|
Qt
::
FramelessWindowHint
|
Qt
::
WindowStaysOnTopHint
|
Qt
::
Tool
);
connect
(
_btn_group
,
SIGNAL
(
buttonClicked
(
QAbstractButton
*
)),
this
,
SLOT
(
onMenuBtnClicked
(
QAbstractButton
*
)));
initMenu
();
//
initMenu();
initSystemTrayIcon
();
this
->
move
(
FMPHomeSettings
::
instance
()
->
getWindowPosition
());
...
...
@@ -65,16 +66,13 @@ NavWindow::~NavWindow()
_blinkFuture
.
waitForFinished
();
delete
_btn_group
;
for
(
int
i
=
0
;
i
<
actions
.
size
();
++
i
)
{
delete
actions
.
at
(
i
);
}
actions
.
clear
();
delete
_menu
;
delete
_animationShow
;
delete
_systemTrayIcon
;
delete
stateDefault
;
delete
stateSpread
;
delete
stateGroup
;
delete
stateBlink
;
//
delete stateDefault;
//
delete stateSpread;
//
delete stateGroup;
//
delete stateBlink;
delete
_stateMachine
;
delete
ui
;
}
...
...
@@ -131,55 +129,65 @@ void NavWindow::initMenu()
ui
->
navMainBtn
->
raise
();
});
_stateMachine
->
addDefaultAnimation
(
_animationShow
);
_stateMachine
->
setInitialState
(
stateGroup
);
_stateMachine
->
start
();
MenuUiProp
.
btnWidth
=
60
;
int
centerX
=
ui
->
navMainBtn
->
x
()
+
ui
->
navMainBtn
->
width
()
/
2
;
int
centerY
=
ui
->
navMainBtn
->
y
()
+
ui
->
navMainBtn
->
height
()
/
2
;
_centerPoint
=
QPoint
(
centerX
,
centerY
);
_centerGeometry
=
QRect
(
centerX
-
MenuUiProp
.
btnWidth
/
2
,
centerY
-
MenuUiProp
.
btnWidth
/
2
,
MenuUiProp
.
btnWidth
,
MenuUiProp
.
btnWidth
);
// for(int i=0; i<btns.size(); i++) {
// std::pair<QString, QString> btnP = btns.at(i);
// createMenuBtn(btnP.first, btnP.second);
// }
}
void
NavWindow
::
createMenuBtn
(
const
QString
&
btnName
,
const
QString
&
showName
)
{
const
int
dis
=
MenuUiProp
.
distance
;
int
btnsNum
=
btns
.
size
();
double
jianGe
=
0
;
if
(
MenuUiProp
.
interval
>
0
)
{
jianGe
=
MenuUiProp
.
interval
;
}
else
if
(
btnsNum
>
1
)
{
jianGe
=
(
MenuUiProp
.
endAngle
-
MenuUiProp
.
beginAngle
)
/
(
btns
.
size
()
-
1
);
}
const
int
btnWidth
=
60
;
_centerGeometry
=
QRect
(
centerX
-
btnWidth
/
2
,
centerY
-
btnWidth
/
2
,
btnWidth
,
btnWidth
);
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
);
btn
->
setCursor
(
QCursor
(
Qt
::
PointingHandCursor
));
btn
->
addAction
(
action
);
double
angle
=
MenuUiProp
.
beginAngle
+
jianGe
*
i
;
int
x
=
centerX
+
dis
*
cos
(
angle
)
-
btnWidth
/
2
;
int
y
=
centerY
+
dis
*
sin
(
angle
)
-
btnWidth
/
2
;
QRect
btnGrometry
(
x
,
y
,
btnWidth
,
btnWidth
);
btn
->
setObjectName
(
btnPair
.
first
);
_btn_group
->
addButton
(
btn
);
btn
->
setGeometry
(
_centerGeometry
);
stateDefault
->
assignProperty
(
btn
,
"geometry"
,
_centerGeometry
);
stateSpread
->
assignProperty
(
btn
,
"geometry"
,
btnGrometry
);
if
(
isUseAnimation
)
{
// 创建动画
auto
animation
=
new
QPropertyAnimation
(
btn
,
"geometry"
);
animation
->
setDuration
(
300
+
i
*
75
);
animation
->
setEasingCurve
(
QEasingCurve
::
InOutBack
);
_animationShow
->
addAnimation
(
animation
);
}
double
jianGe
=
MenuUiProp
.
interval
;
// int btnsNum = btns.size();
// if(MenuUiProp.interval > 0) {
// jianGe = MenuUiProp.interval;
// } else if(btnsNum > 1) {
// jianGe = (MenuUiProp.endAngle - MenuUiProp.beginAngle)/(btns.size()-1);
// }
// QAction *action = new QAction(QIcon(QString(":%1").arg(btnName)), showName, this);
QAction
*
action
=
_menu
->
addAction
(
QIcon
(
QString
(
":%1"
).
arg
(
btnName
)),
showName
);;
connect
(
action
,
&
QAction
::
triggered
,
this
,
[
=
](){
emit
menuBtnClicked
(
btnName
);
});
auto
btn
=
new
QPushButton
(
this
);
btn
->
setCursor
(
QCursor
(
Qt
::
PointingHandCursor
));
btn
->
addAction
(
action
);
int
btnIndex
=
_btn_group
->
buttons
().
length
();
double
angle
=
MenuUiProp
.
beginAngle
+
jianGe
*
btnIndex
;
int
x
=
_centerPoint
.
x
()
+
dis
*
cos
(
angle
)
-
MenuUiProp
.
btnWidth
/
2
;
int
y
=
_centerPoint
.
y
()
+
dis
*
sin
(
angle
)
-
MenuUiProp
.
btnWidth
/
2
;
QRect
btnGrometry
(
x
,
y
,
MenuUiProp
.
btnWidth
,
MenuUiProp
.
btnWidth
);
btn
->
setObjectName
(
btnName
);
_btn_group
->
addButton
(
btn
);
btn
->
setGeometry
(
_centerGeometry
);
stateDefault
->
assignProperty
(
btn
,
"geometry"
,
_centerGeometry
);
stateSpread
->
assignProperty
(
btn
,
"geometry"
,
btnGrometry
);
if
(
isUseAnimation
)
{
// 创建动画
auto
animation
=
new
QPropertyAnimation
(
btn
,
"geometry"
);
animation
->
setDuration
(
300
+
btnIndex
*
75
);
animation
->
setEasingCurve
(
QEasingCurve
::
InOutBack
);
_animationShow
->
addAnimation
(
animation
);
}
ui
->
navMainBtn
->
raise
();
_stateMachine
->
addDefaultAnimation
(
_animationShow
);
_stateMachine
->
setInitialState
(
stateGroup
);
_stateMachine
->
start
();
}
void
NavWindow
::
onMenuBtnClicked
(
QAbstractButton
*
btn
)
...
...
@@ -199,10 +207,8 @@ void NavWindow::initSystemTrayIcon()
_systemTrayIcon
->
hide
();
emit
menuBtnClicked
(
"quit"
);
});
auto
menus
=
new
QMenu
(
this
);
menus
->
addActions
(
actions
);
menus
->
addAction
(
quitAction
);
_systemTrayIcon
->
setContextMenu
(
menus
);
_menu
->
addAction
(
quitAction
);
_systemTrayIcon
->
setContextMenu
(
_menu
);
_systemTrayIcon
->
show
();
}
...
...
fmp_home_navwindow.h
View file @
a40d9dd3
...
...
@@ -48,6 +48,7 @@ public:
QString
navImage
()
const
;
void
setNavImage
(
const
QString
&
image
);
void
createMenuBtn
(
const
QString
&
btnName
,
const
QString
&
showName
);
public
slots
:
/**
...
...
@@ -112,10 +113,11 @@ private:
Ui
::
NavWindow
*
ui
;
QButtonGroup
*
_btn_group
;
Q
List
<
QAction
*>
actions
;
Q
Menu
*
_menu
;
std
::
vector
<
QRect
>
_btnsGeometry
;
QParallelAnimationGroup
*
_animationShow
;
QRect
_centerGeometry
;
QPoint
_centerPoint
;
QStateMachine
*
_stateMachine
;
QState
*
stateGroup
;
QState
*
stateDefault
;
...
...
@@ -155,6 +157,7 @@ private:
double
beginAngle
;
double
endAngle
;
double
interval
;
int
btnWidth
;
};
MenuUiProps
MenuUiProp
;
bool
isUseAnimation
;
...
...
fmp_home_p.cpp
View file @
a40d9dd3
...
...
@@ -34,9 +34,18 @@ int FMPHomePrivate::Init()
_settings
=
q
->
GetService
<
FMPSettingsInterface
>
(
q
->
_ctx
);
FMPHomeSettings
::
instance
()
->
init
(
_settings
);
FMPStartEventHandler
*
handler
=
new
FMPStartEventHandler
(
q
->
_ctx
,
q
);
_navWindow
=
new
NavWindow
;
std
::
vector
<
FMPBaseInterface
*>
svcVector
;
svcVector
.
push_back
(
q
->
GetService
<
FMPVipInterface
>
(
q
->
_ctx
));
svcVector
.
push_back
(
q
->
GetService
<
FMPePayInterface
>
(
q
->
_ctx
));
FMPStartEventHandler
*
handler
=
new
FMPStartEventHandler
(
q
->
_ctx
,
q
);
// _navWindow->createMenuBtn("payment", QString::fromLocal8Bit("非码支付"));
// _navWindow->createMenuBtn("vip", QString::fromLocal8Bit("非码会员"));
// _navWindow->createMenuBtn("takeout", QString::fromLocal8Bit("非码外卖"));
// _navWindow->createMenuBtn("coupons", QString::fromLocal8Bit("码多多"));
// _navWindow->createMenuBtn("tool", QString::fromLocal8Bit("设置"));
_navWindow
->
show
();
connect
(
_navWindow
,
SIGNAL
(
menuBtnClicked
(
QString
)),
this
,
SLOT
(
onMenuBtnClicked
(
QString
)));
...
...
@@ -44,8 +53,8 @@ int FMPHomePrivate::Init()
login
();
// 启动
外卖
FMPBaseInterface
*
svc
=
q
->
GetService
<
FMP
Takeout
Interface
>
(
q
->
_ctx
);
// 启动
会员
FMPBaseInterface
*
svc
=
q
->
GetService
<
FMP
Vip
Interface
>
(
q
->
_ctx
);
if
(
svc
)
{
svc
->
StartService
();
}
...
...
@@ -144,7 +153,7 @@ void FMPHomePrivate::onMenuBtnClicked(QString btnName)
svc
=
q
->
GetService
<
FMPePayInterface
>
(
q
->
_ctx
);
}
else
if
(
btnName
==
"vip"
)
{
svc
=
q
->
GetService
<
FMPVipInterface
>
(
q
->
_ctx
);
q
->
blink
((
FMPluginInterface
*
)
svc
,
":/image/float_remind.png"
);
//
q->blink((FMPluginInterface*)svc, ":/image/float_remind.png");
}
else
if
(
btnName
==
"takeout"
)
{
svc
=
q
->
GetService
<
FMPTakeoutInterface
>
(
q
->
_ctx
);
}
else
if
(
btnName
==
"coupons"
)
{
...
...
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