X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/f3c92120aade86b28fb78cb65b79611909312bdc..9c7e196bddd692032245c8f068495f318434169d:/src/main.cpp diff --git a/src/main.cpp b/src/main.cpp index 3db63eab0..2b2674f9d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -34,6 +34,10 @@ #include #include +#include +#include +#include +#include #ifndef Q_OS_WIN #include @@ -55,8 +59,13 @@ extern "C" Q_DECL_EXPORT int kdemain(int argc, char **argv) } #endif + /** + * enable high dpi support + */ + QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps, true); + QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling, true); + QApplication app(argc, argv); - app.setAttribute(Qt::AA_UseHighDpiPixmaps, true); app.setWindowIcon(QIcon::fromTheme(QStringLiteral("system-file-manager"), app.windowIcon())); KCrash::initialize(); @@ -71,10 +80,13 @@ extern "C" Q_DECL_EXPORT int kdemain(int argc, char **argv) KAboutData aboutData(QStringLiteral("dolphin"), i18n("Dolphin"), QStringLiteral(DOLPHIN_VERSION_STRING), i18nc("@title", "File Manager"), KAboutLicense::GPL, - i18nc("@info:credit", "(C) 2006-2016 Peter Penz, Frank Reininghaus, and Emmanuel Pescosta")); - aboutData.setHomepage(QStringLiteral("http://dolphin.kde.org")); + i18nc("@info:credit", "(C) 2006-2018 Peter Penz, Frank Reininghaus, Emmanuel Pescosta and Elvis Angelaccio")); + aboutData.setHomepage(QStringLiteral("https://kde.org/applications/system/org.kde.dolphin")); + aboutData.addAuthor(i18nc("@info:credit", "Elvis Angelaccio"), + i18nc("@info:credit", "Maintainer (since 2018) and developer"), + QStringLiteral("elvis.angelaccio@kde.org")); aboutData.addAuthor(i18nc("@info:credit", "Emmanuel Pescosta"), - i18nc("@info:credit", "Maintainer (since 2014) and developer"), + i18nc("@info:credit", "Maintainer (2014-2018) and developer"), QStringLiteral("emmanuelpescosta099@gmail.com")); aboutData.addAuthor(i18nc("@info:credit", "Frank Reininghaus"), i18nc("@info:credit", "Maintainer (2012-2014) and developer"), @@ -109,9 +121,6 @@ extern "C" Q_DECL_EXPORT int kdemain(int argc, char **argv) KAboutData::setApplicationData(aboutData); - KDBusService dolphinDBusService; - DBusInterface interface; - QCommandLineParser parser; aboutData.setupCommandLine(&parser); @@ -119,25 +128,36 @@ extern "C" Q_DECL_EXPORT int kdemain(int argc, char **argv) parser.addOption(QCommandLineOption(QStringList() << QStringLiteral("select"), i18nc("@info:shell", "The files and folders passed as arguments " "will be selected."))); parser.addOption(QCommandLineOption(QStringList() << QStringLiteral("split"), i18nc("@info:shell", "Dolphin will get started with a split view."))); + parser.addOption(QCommandLineOption(QStringList() << QStringLiteral("new-window"), i18nc("@info:shell", "Dolphin will explicitly open in a new window."))); parser.addOption(QCommandLineOption(QStringList() << QStringLiteral("daemon"), i18nc("@info:shell", "Start Dolphin Daemon (only required for DBus Interface)"))); parser.addPositionalArgument(QStringLiteral("+[Url]"), i18nc("@info:shell", "Document to open")); parser.process(app); aboutData.processCommandLine(&parser); + const bool splitView = parser.isSet(QStringLiteral("split")) || GeneralSettings::splitView(); + const bool openFiles = parser.isSet(QStringLiteral("select")); + const QStringList args = parser.positionalArguments(); + QList urls = Dolphin::validateUris(args); + if (parser.isSet(QStringLiteral("daemon"))) { + KDBusService dolphinDBusService; + DBusInterface interface; return app.exec(); } - const QStringList args = parser.positionalArguments(); - QList urls = Dolphin::validateUris(args); + if (!parser.isSet(QStringLiteral("new-window"))) { + if (Dolphin::attachToExistingInstance(urls, openFiles, splitView)) { + // Successfully attached to existing instance of Dolphin + return 0; + } + } if (urls.isEmpty()) { // We need at least one URL to open Dolphin urls.append(Dolphin::homeUrl()); } - const bool splitView = parser.isSet(QStringLiteral("split")) || GeneralSettings::splitView(); if (splitView && urls.size() < 2) { // Split view does only make sense if we have at least 2 URLs urls.append(urls.last()); @@ -145,7 +165,7 @@ extern "C" Q_DECL_EXPORT int kdemain(int argc, char **argv) DolphinMainWindow* mainWindow = new DolphinMainWindow(); - if (parser.isSet(QStringLiteral("select"))) { + if (openFiles) { mainWindow->openFiles(urls, splitView); } else { mainWindow->openDirectories(urls, splitView); @@ -162,5 +182,8 @@ extern "C" Q_DECL_EXPORT int kdemain(int argc, char **argv) } } + KDBusService dolphinDBusService; + DBusInterface interface; + return app.exec(); // krazy:exclude=crash; }