Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linphone-desktop
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
linphone-desktop
Commits
0721a22b
Commit
0721a22b
authored
Sep 06, 2017
by
Ronan Abhamon
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(Cli): Cli is now a static object + clean code
parent
e43fb27a
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
150 additions
and
166 deletions
+150
-166
en.ts
assets/languages/en.ts
+3
-3
fr.ts
assets/languages/fr.ts
+3
-3
App.cpp
src/app/App.cpp
+7
-10
App.hpp
src/app/App.hpp
+0
-3
Cli.cpp
src/app/cli/Cli.cpp
+120
-131
Cli.hpp
src/app/cli/Cli.hpp
+17
-16
No files found.
assets/languages/en.ts
View file @
0721a22b
...
...
@@ -69,12 +69,12 @@
<
translation
>
show
app
version
<
/translation
>
<
/message
>
<
message
>
<
source
>
commandLineCliHelp
<
/source
>
<
translation
>
displays
the
help
menu
to
use
Linphone
with
the
CLI
.
<
/translation
>
<
source
>
commandLine
Option
CliHelp
<
/source
>
<
translation
>
displays
the
help
menu
to
use
Linphone
with
the
CLI
<
/translation
>
<
/message
>
<
message
>
<
source
>
commandLineDescription
<
/source
>
<
translation
>
send
a
an
order
to
the
application
towards
a
command
line
.
<
/translation
>
<
translation
>
send
a
n
order
to
the
application
towards
a
command
line
<
/translation
>
<
/message
>
<
/context
>
<
context
>
...
...
assets/languages/fr.ts
View file @
0721a22b
...
...
@@ -69,12 +69,12 @@
<
translation
>
affiche
la
version
de
l
&
apos
;
application
<
/translation
>
<
/message
>
<
message
>
<
source
>
commandLineCliHelp
<
/source
>
<
translation
>
affiche
le
menu
d
&
apos
;
aide
pour
l
&
apos
;
utilisation
de
Linphone
en
CLI
.
<
/translation
>
<
source
>
commandLine
Option
CliHelp
<
/source
>
<
translation
>
affiche
le
menu
d
&
apos
;
aide
pour
l
&
apos
;
utilisation
de
Linphone
en
CLI
<
/translation
>
<
/message
>
<
message
>
<
source
>
commandLineDescription
<
/source
>
<
translation
>
envoie
un
ordre
à
l
&
apos
;
application
Linphone
,
voir
--
cli
-
help
pour
plus
de
d
é
tails
.
<
/translation
>
<
translation
>
envoie
un
ordre
à
l
&
apos
;
application
Linphone
,
voir
--
cli
-
help
pour
plus
de
d
é
tails
<
/translation
>
<
/message
>
<
/context
>
<
context
>
...
...
src/app/App.cpp
View file @
0721a22b
...
...
@@ -100,9 +100,8 @@ App::App (int &argc, char *argv[]) : SingleApplication(argc, argv, true, Mode::U
mParser
->
showHelp
();
}
if
(
mParser
->
isSet
(
"cli-help"
)){
mCli
=
new
Cli
(
this
);
mCli
->
showHelp
();
if
(
mParser
->
isSet
(
"cli-help"
))
{
Cli
::
showHelp
();
::
exit
(
EXIT_SUCCESS
);
}
...
...
@@ -168,11 +167,10 @@ void App::initContentApp () {
setQuitOnLastWindowClosed
(
false
);
// Deal with received messages and CLI.
mCli
=
new
Cli
(
this
);
QObject
::
connect
(
this
,
&
App
::
receivedMessage
,
this
,
[
this
](
int
,
const
QByteArray
&
byteArray
)
{
QString
command
(
byteArray
);
qInfo
()
<<
QStringLiteral
(
"Received command from other application: `%1`."
).
arg
(
command
);
mCli
->
executeCommand
(
command
);
Cli
::
executeCommand
(
command
);
});
// Add plugins directory.
...
...
@@ -190,7 +188,7 @@ void App::initContentApp () {
const
QString
commandArgument
=
getCommandArgument
();
if
(
!
commandArgument
.
isEmpty
())
{
Cli
::
CommandFormat
format
;
mCli
->
executeCommand
(
commandArgument
,
&
format
);
Cli
::
executeCommand
(
commandArgument
,
&
format
);
if
(
format
==
Cli
::
UriFormat
)
mustBeIconified
=
true
;
}
...
...
@@ -254,8 +252,7 @@ QString App::getCommandArgument () {
// -----------------------------------------------------------------------------
void
App
::
executeCommand
(
const
QString
&
command
)
{
Q_CHECK_PTR
(
mCli
);
mCli
->
executeCommand
(
command
);
Cli
::
executeCommand
(
command
);
}
// -----------------------------------------------------------------------------
...
...
@@ -333,10 +330,10 @@ void App::createParser () {
mParser
=
new
QCommandLineParser
();
mParser
->
setApplicationDescription
(
tr
(
"applicationDescription"
));
mParser
->
addPositionalArgument
(
"command"
,
tr
(
"commandLineDescription"
),
"[command]"
);
mParser
->
addPositionalArgument
(
"command"
,
tr
(
"commandLineDescription"
),
"[command]"
);
mParser
->
addOptions
({
{
{
"h"
,
"help"
},
tr
(
"commandLineOptionHelp"
)
},
{
"cli-help"
,
tr
(
"commandLineCliHelp"
)
},
{
"cli-help"
,
tr
(
"commandLine
Option
CliHelp"
)
},
{
{
"v"
,
"version"
},
tr
(
"commandLineOptionVersion"
)
},
{
"config"
,
tr
(
"commandLineOptionConfig"
),
tr
(
"commandLineOptionConfigArg"
)
},
#ifndef Q_OS_MACOS
...
...
src/app/App.hpp
View file @
0721a22b
...
...
@@ -37,7 +37,6 @@
class
QCommandLineParser
;
class
QSystemTrayIcon
;
class
Cli
;
class
DefaultTranslator
;
class
App
:
public
SingleApplication
{
...
...
@@ -143,8 +142,6 @@ private:
Colors
*
mColors
=
nullptr
;
QSystemTrayIcon
*
mSystemTrayIcon
=
nullptr
;
Cli
*
mCli
=
nullptr
;
};
#endif // APP_H_
src/app/cli/Cli.cpp
View file @
0721a22b
This diff is collapsed.
Click to expand it.
src/app/cli/Cli.hpp
View file @
0721a22b
...
...
@@ -26,6 +26,7 @@
#include <memory>
#include <QHash>
#include <QMap>
#include <QObject>
// =============================================================================
...
...
@@ -58,8 +59,8 @@ class Cli : public QObject {
Command
()
=
default
;
Command
(
const
QString
&
functionName
,
const
QString
&
functionDescription
,
const
QString
&
cliDescription
,
const
char
*
functionDescription
,
const
char
*
cliDescription
,
Function
function
,
const
QHash
<
QString
,
Argument
>
&
argsScheme
);
...
...
@@ -67,25 +68,23 @@ class Cli : public QObject {
void
execute
(
QHash
<
QString
,
QString
>
&
args
)
const
;
void
executeUri
(
const
std
::
shared_ptr
<
linphone
::
Address
>
&
address
)
const
;
QString
getFunctionDescription
()
{
const
char
*
getFunctionDescription
()
const
{
return
mFunctionDescription
;
}
QString
getCliDescription
()
{
const
char
*
getCliDescription
()
const
{
return
mCliDescription
;
}
private:
QString
mFunctionDescription
;
QString
mCliDescription
;
QString
mFunctionName
;
const
char
*
mFunctionDescription
;
const
char
*
mCliDescription
;
Function
mFunction
=
nullptr
;
QHash
<
QString
,
Argument
>
mArgsScheme
;
};
public:
Cli
(
QObject
*
parent
=
Q_NULLPTR
);
~
Cli
()
=
default
;
enum
CommandFormat
{
...
...
@@ -94,23 +93,25 @@ public:
UriFormat
};
void
executeCommand
(
const
QString
&
command
,
CommandFormat
*
format
=
nullptr
)
const
;
static
void
executeCommand
(
const
QString
&
command
,
CommandFormat
*
format
=
nullptr
)
;
void
showHelp
();
static
void
showHelp
();
private:
void
addCommand
(
Cli
();
static
std
::
pair
<
QString
,
Command
>
createCommand
(
const
QString
&
functionName
,
const
QString
&
functionDescription
,
const
QString
&
cliDescription
,
const
char
*
functionDescription
,
const
char
*
cliDescription
,
Function
function
,
const
QHash
<
QString
,
Argument
>
&
argsScheme
=
QHash
<
QString
,
Argument
>
()
);
QString
parseFunctionName
(
const
QString
&
command
)
const
;
QHash
<
QString
,
QString
>
parseArgs
(
const
QString
&
command
)
const
;
static
QString
parseFunctionName
(
const
QString
&
command
)
;
static
QHash
<
QString
,
QString
>
parseArgs
(
const
QString
&
command
)
;
QHash
<
QString
,
Command
>
mCommands
;
static
QMap
<
QString
,
Command
>
mCommands
;
static
QRegExp
mRegExpArgs
;
static
QRegExp
mRegExpFunctionName
;
...
...
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