[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [pairs/frameworks] /: porting to QCommandLineParser (work coming from GCI 2014 task [Mikhail Ivchenk
From:       Marco Calignano <marco.calignano () gmail ! com>
Date:       2014-12-07 12:27:52
Message-ID: E1XxawK-00004y-P1 () scm ! kde ! org
[Download RAW message or body]

Git commit dea8c4e6c22446ff9c1a95d7947a42fd06a87694 by Marco Calignano.
Committed on 07/12/2014 at 12:24.
Pushed by calignano into branch 'frameworks'.

porting to QCommandLineParser (work coming from GCI 2014 task [Mikhail Ivchenko])

M  +27   -13   game/main.cpp
M  +3    -4    pairseditor/main.cpp

http://commits.kde.org/pairs/dea8c4e6c22446ff9c1a95d7947a42fd06a87694

diff --git a/game/main.cpp b/game/main.cpp
index 9dba197..3a2f396 100644
--- a/game/main.cpp
+++ b/game/main.cpp
@@ -25,10 +25,12 @@
 #include "pairsview.h"
 #include <QApplication>
 #include <KAboutData>
-#include <KCmdLineArgs>
 #include <KLocalizedString>
 #include <KSharedConfig>
 #include <QDebug>
+#include <QCommandLineParser>
+#include <QUrl>
+#include <QDir>
 #include "pairstheme.h"
 
 static const char description[] =
@@ -43,16 +45,20 @@ int main(int argc, char **argv)
     about.addAuthor( i18n("Aleix Pol Gonzalez"), i18n("Initial implementation and \
                maintainer"), QStringLiteral("aleixpol@kde.org"), 0);
     about.addAuthor( i18n("Marco Calignano"), i18n("Theme support enhancement and \
                general feature development"), \
                QStringLiteral("marco.calignano@gmail.com"), 0);
     about.addAuthor( i18n("Albert Astals Cid"), i18n("Initial project setup and \
                ideas"), QStringLiteral("aacid@kde.org"), 0);
-    KCmdLineArgs::init(argc, argv, QByteArray("pairs"), QByteArray("pairs"), \
                KLocalizedString(), QByteArray(version));
-  
-    KCmdLineOptions options;
-    options.add("fullscreen", ki18n( "start in fullscreen mode"));
-//    KCmdLineArgs::addCmdLineOptions(options);
-    options.add("+[file]", ki18n("Pairs theme to open")); //new
-    KCmdLineArgs::addCmdLineOptions(options); //new
 
     QApplication app(argc, argv);
     
+    QCommandLineParser parser;
+    KAboutData::setApplicationData(about);
+    parser.addVersionOption();
+    parser.addHelpOption();
+    QCommandLineOption fullscreenOption("fullscreen", ki18n( "start in fullscreen \
mode").toString()); +    parser.addOption(fullscreenOption);
+    parser.addPositionalArgument("file", ki18n("Pairs theme to open").toString());
+    about.setupCommandLine(&parser);
+    parser.process(app);
+    about.processCommandLine(&parser);
+
     // see if we are starting with session management
     if (app.isSessionRestored())
     {
@@ -61,18 +67,26 @@ int main(int argc, char **argv)
     else
     {
         // no session.. just start up normally
-        KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
-        bool fsMode = KCmdLineArgs::parsedArgs()->isSet("fullscreen");
+        const QStringList args = parser.positionalArguments();
+        bool fsMode = parser.isSet("fullscreen");
         Pairs *widget = 0;
-        if(args->count())
+        if(args.count())
         {
-             widget = new Pairs(args->url(0).toLocalFile());
+            QUrl url;
+#if QT_VERSION >= 0x050400
+            url = QUrl::fromUserInput(args[0], QDir::currentPath(), \
QUrl::AssumeLocalFile); +#else
+            // Logic from QUrl::fromUserInput(QString, QString, \
UserInputResolutionOptions) +            url = (QUrl(args[0], \
QUrl::TolerantMode).isRelative() && !QDir::isAbsolutePath(args[0])) +                 \
? QUrl::fromLocalFile(QDir::current().absoluteFilePath(args[0])) +                   \
: QUrl::fromUserInput(args[0]); +#endif
+            widget = new Pairs(url.toLocalFile());
         }
         else
         {
             widget = new Pairs;
         }
-    	args->clear();
 //TODO
 //        widget->view()->setLanguage(KSharedConfig::locale()->language().left(2));
         if (fsMode) 
diff --git a/pairseditor/main.cpp b/pairseditor/main.cpp
index a691cb9..c317685 100644
--- a/pairseditor/main.cpp
+++ b/pairseditor/main.cpp
@@ -46,11 +46,10 @@ int main(int argc, char *argv[])
     KAboutData::setApplicationData(aboutData);
     parser.addVersionOption();
     parser.addHelpOption();
-    //PORTING SCRIPT: adapt aboutdata variable if necessary
+    parser.addPositionalArgument("URL", i18n("Theme to open"));
     aboutData.setupCommandLine(&parser);
     parser.process(app);
     aboutData.processCommandLine(&parser);
-    parser.addOption(QCommandLineOption(QStringList() <<  QLatin1String("+[URL]"), \
i18n("Theme to open")));  
     if (app.isSessionRestored())
     {
@@ -60,8 +59,8 @@ int main(int argc, char *argv[])
         // no session.. just start up normally
         MainWindow *w = new MainWindow;
 
-        if(parser.positionalArguments().count()==2)
-            w->openfile(QUrl::fromUserInput(argv[1]).toLocalFile());
+        if(parser.positionalArguments().count())
+            w->openfile(QUrl::fromUserInput(parser.positionalArguments()[0]).toLocalFile());
  
         w->show();
     }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic