Git commit 75da50385dc2c7d699b3b86e1a447799602e7ff4 by Ralf Habacker.
Committed on 31/10/2017 at 21:17.
Pushed by habacker into branch 'master'.
Add command line parameter --import-directory
and --set-language-xxx =
to KDE4 variant
M +34 -2 umbrello/main.cpp
https://commits.kde.org/umbrello/75da50385dc2c7d699b3b86e1a447799602e7ff4
diff --git a/umbrello/main.cpp b/umbrello/main.cpp
index 15598c957..d390c1a85 100644
--- a/umbrello/main.cpp
+++ b/umbrello/main.cpp
@@ -43,6 +43,8 @@
#define StringLiteral(a) QByteArray(a)
#endif
=
+void getFiles(QStringList& files, const QString& path, QStringList& filter=
s);
+
/**
* Description for this application
*/
@@ -176,6 +178,12 @@ int main(int argc, char *argv[])
options.add("import-files", ki18n("import files"));
options.add("languages", ki18n("list supported languages"));
options.add("use-folders", ki18n("keep the tree structure used to stor=
e the views in the document in the target directory"));
+ options.add("import-directory ", ki18n("import files from directo=
ry "));
+ for(int i =3D Uml::ProgrammingLanguage::ActionScript; i < Uml::Program=
mingLanguage::Reserved; i++) {
+ Uml::ProgrammingLanguage::Enum pl =3D Uml::ProgrammingLanguage::fr=
omInt(i);
+ QByteArray optionString =3D "set-language-" + Uml::ProgrammingLang=
uage::toString(pl).toLower().toLocal8Bit();
+ options.add(optionString, ki18n("set active language"));
+ }
KCmdLineArgs::addCmdLineOptions(options); // Add our own options.
KApplication app;
KCmdLineArgs *args =3D KCmdLineArgs::parsedArgs();
@@ -213,6 +221,16 @@ int main(int argc, char *argv[])
uml->show();
}
=
+ Uml::ProgrammingLanguage::Enum lang =3D Uml::ProgrammingLanguage::=
Reserved;
+ for(int i =3D Uml::ProgrammingLanguage::ActionScript; i < Uml::Pro=
grammingLanguage::Reserved; i++) {
+ Uml::ProgrammingLanguage::Enum pl =3D Uml::ProgrammingLanguage=
::fromInt(i);
+ QByteArray langString =3D "set-language-";
+ langString +=3D Uml::ProgrammingLanguage::toString(pl).toLower=
().toLocal8Bit();
+ if (args->isSet(langString)) {
+ lang =3D Uml::ProgrammingLanguage::fromInt(i);
+ }
+ }
+
#if QT_VERSION >=3D 0x050000
if (args->isSet(IMPORT_FILES)) {
QStringList importList =3D args->values(IMPORT_FILES);
@@ -227,12 +245,26 @@ int main(int argc, char *argv[])
for (int i =3D 0; i < args->count(); i++)
importList.append(args->url(i).toLocalFile());
uml->newDocument();
+ if (lang !=3D Uml::ProgrammingLanguage::Reserved)
+ uml->setActiveLanguage(lang);
uml->importFiles(importList);
}
+ else if (args->isSet("import-directory") && args->count() > 0) {
+ uml->newDocument();
+ if (lang !=3D Uml::ProgrammingLanguage::Reserved)
+ uml->setActiveLanguage(lang);
+ QStringList filter =3D Uml::ProgrammingLanguage::toExtensions(=
uml->activeLanguage());
+ QString dir =3D args->url(0).toLocalFile();
+ QStringList listFile;
+ getFiles(listFile, dir, filter);
+ uml->importFiles(listFile, dir);
+ }
#endif
- else
+ else {
initDocument(args);
-
+ if (lang !=3D Uml::ProgrammingLanguage::Reserved)
+ uml->setActiveLanguage(lang);
+ }
=
// export option
#if QT_VERSION >=3D 0x050000