diff --git a/src/ViewManager.cpp b/src/ViewManager.cpp --- a/src/ViewManager.cpp +++ b/src/ViewManager.cpp @@ -1010,37 +1010,12 @@ int ViewManager::newSession() { - Profile::Ptr profile = ProfileManager::instance()->defaultProfile(); - Session *session = SessionManager::instance()->createSession(profile); - - session->addEnvironmentEntry(QStringLiteral("KONSOLE_DBUS_WINDOW=/Windows/%1").arg(managerId())); - - createView(session); - session->run(); - - return session->sessionId(); + return newSession(ProfileManager::instance()->defaultProfile()->name()); } int ViewManager::newSession(const QString &profile) { - const QList profilelist = ProfileManager::instance()->allProfiles(); - Profile::Ptr profileptr = ProfileManager::instance()->defaultProfile(); - - for (const auto &i : profilelist) { - if (i->name() == profile) { - profileptr = i; - break; - } - } - - Session *session = SessionManager::instance()->createSession(profileptr); - - session->addEnvironmentEntry(QStringLiteral("KONSOLE_DBUS_WINDOW=/Windows/%1").arg(managerId())); - - createView(session); - session->run(); - - return session->sessionId(); + return newSession(profile, QString()); } int ViewManager::newSession(const QString &profile, const QString &directory) @@ -1056,8 +1031,9 @@ } Session *session = SessionManager::instance()->createSession(profileptr); - session->setInitialWorkingDirectory(directory); - + if (!directory.isEmpty()) { + session->setInitialWorkingDirectory(directory); + } session->addEnvironmentEntry(QStringLiteral("KONSOLE_DBUS_WINDOW=/Windows/%1").arg(managerId())); createView(session);