-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathcommandlinemanager.cpp
65 lines (57 loc) · 2.38 KB
/
commandlinemanager.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd.
//
// SPDX-License-Identifier: GPL-3.0-or-later
#include "commandlinemanager.h"
#include <QFile>
#include <QRect>
#include <QDebug>
#include <QScreen>
CommandLineManager::CommandLineManager()
: m_posOption(QStringList() << "p"
<< "pos",
QCoreApplication::translate("main", "Expose your window's central position(x,y) info where the deepin-shorcut-viwer can be center int your window relatively, otherwise it will be center in the current screen. eg: -p=100,50 or --pos=900,50"),
" "),
m_jsonDataOption(QStringList() << "j"
<< "json-data",
QCoreApplication::translate("main", "Directly convert a json data to this program. See https://github.com/linuxdeepin/deepin-shortcut-viewer or docs provided with the program for more information of this decscription"),
" ")
{
m_commandLineParser.setApplicationDescription("Test helper");
m_commandLineParser.addHelpOption();
m_commandLineParser.addVersionOption();
m_commandLineParser.addOption(m_posOption);
m_commandLineParser.addOption(m_jsonDataOption);
m_commandLineParser.addOption(QCommandLineOption(QStringList() << "b"
<< "bypass",
"Enable bypass window manager hint"));
}
void CommandLineManager::process(const QCoreApplication &app)
{
m_commandLineParser.process(app);
}
void CommandLineManager::process(const QStringList &list)
{
m_commandLineParser.process(list);
}
QString CommandLineManager::jsonData()
{
return m_commandLineParser.value(m_jsonDataOption);
}
bool CommandLineManager::enableBypassWindowManagerHint() const
{
return m_commandLineParser.isSet("b");
}
QPoint CommandLineManager::pos()
{
QString posStr = m_commandLineParser.value(m_posOption);
QStringList posStrs = posStr.split(",");
// 获取主屏幕并计算中心点
QScreen *primaryScreen = qApp->primaryScreen();
QRect screenGeometry = primaryScreen->geometry();
QPoint pos(screenGeometry.width() / 2, screenGeometry.height() / 2);
if (posStrs.length() == 2) {
pos.setX(QString(posStrs[0]).toInt());
pos.setY(QString(posStrs[1]).toInt());
}
return pos;
}