diff --git a/desktop/sessionui.rc b/desktop/sessionui.rc --- a/desktop/sessionui.rc +++ b/desktop/sessionui.rc @@ -1,6 +1,6 @@ - + @@ -32,6 +32,7 @@ + diff --git a/doc/manual/index.docbook b/doc/manual/index.docbook --- a/doc/manual/index.docbook +++ b/doc/manual/index.docbook @@ -768,6 +768,14 @@ Increases the text font size + + +&Ctrl;0 +ViewReset Font Size +Reset the text font size to the profile default + + + &Ctrl;- diff --git a/src/SessionController.h b/src/SessionController.h --- a/src/SessionController.h +++ b/src/SessionController.h @@ -219,6 +219,9 @@ /** Decrease font size */ void decreaseFontSize(); + /** Reset font size */ + void resetFontSize(); + private Q_SLOTS: // menu item handlers void openBrowser(); diff --git a/src/SessionController.cpp b/src/SessionController.cpp --- a/src/SessionController.cpp +++ b/src/SessionController.cpp @@ -718,6 +718,9 @@ action->setIcon(QIcon::fromTheme(QStringLiteral("format-font-size-less"))); collection->setDefaultShortcut(action, Konsole::ACCEL + Qt::Key_Minus); + action = collection->addAction(QStringLiteral("reset-font-size"), this, SLOT(resetFontSize())); + action->setText(i18n("Reset Font Size")); + collection->setDefaultShortcut(action, Konsole::ACCEL + Qt::ALT + Qt::Key_0); // Send signal KSelectAction* sendSignalActions = collection->add(QStringLiteral("send-signal")); @@ -1508,6 +1511,11 @@ _view->decreaseFontSize(); } +void SessionController::resetFontSize() +{ + _view->resetFontSize(); +} + void SessionController::monitorActivity(bool monitor) { _session->setMonitorActivity(monitor); @@ -2115,4 +2123,3 @@ return QString(); } } - diff --git a/src/TerminalDisplay.h b/src/TerminalDisplay.h --- a/src/TerminalDisplay.h +++ b/src/TerminalDisplay.h @@ -427,6 +427,9 @@ /** Decreases the font size */ void decreaseFontSize(); + /** Reset the font size */ + void resetFontSize(); + /** * Specified whether anti-aliasing of text in the terminal display * is enabled or not. Defaults to enabled. diff --git a/src/TerminalDisplay.cpp b/src/TerminalDisplay.cpp --- a/src/TerminalDisplay.cpp +++ b/src/TerminalDisplay.cpp @@ -336,6 +336,18 @@ setVTFont(font); } +void TerminalDisplay::resetFontSize() +{ + const qreal MinimumFontSize = 6; + + QFont font = getVTFont(); + Profile::Ptr currentProfile = SessionManager::instance()->sessionProfile(_sessionController->session()); + const qreal defaultFontSize = currentProfile->font().pointSizeF(); + + font.setPointSizeF(qMax(defaultFontSize, MinimumFontSize)); + setVTFont(font); +} + uint TerminalDisplay::lineSpacing() const { return _lineSpacing;