Git commit 7651b840075f90e2091903e5d918ad03517fee19 by Christoph Cullmann. Committed on 20/06/2018 at 18:40. Pushed by cullmann into branch 'master'.
add context menu to statusbar to toggle show total lines/word count GUI: context menu for status bar to alter settings Differential Revision: https://phabricator.kde.org/D13442 M +32 -0 src/view/katestatusbar.cpp M +3 -0 src/view/katestatusbar.h M +1 -0 src/view/kateview.cpp https://commits.kde.org/ktexteditor/7651b840075f90e2091903e5d918ad03517fee19 diff --git a/src/view/katestatusbar.cpp b/src/view/katestatusbar.cpp index 87577ccf..ea7f9ce3 100644 --- a/src/view/katestatusbar.cpp +++ b/src/view/katestatusbar.cpp @@ -221,6 +221,28 @@ bool KateStatusBar::eventFilter(QObject *obj, QEvent *event) return KateViewBarWidget::eventFilter(obj, event); } +void KateStatusBar::contextMenuEvent(QContextMenuEvent *event) +{ + QMenu menu(this); + QAction *showLines = menu.addAction(QStringLiteral("Show Lines Count"), this, &KateStatusBar::toggleShowLines); + showLines->setCheckable(true); + showLines->setChecked(KateViewConfig::global()->showLinesCount()); + QAction *showWords = menu.addAction(QStringLiteral("Show word count"), this, &KateStatusBar::toggleShowWords); + showWords->setCheckable(true); + showWords->setChecked(KateViewConfig::global()->showWordCount()); + menu.exec(event->globalPos()); +} + +void KateStatusBar::toggleShowLines(bool checked) +{ + KateViewConfig::global()->setShowLinesCount(checked); +} + +void KateStatusBar::toggleShowWords(bool checked) +{ + KateViewConfig::global()->setShowWordCount(checked); +} + void KateStatusBar::updateStatus () { selectionChanged (); @@ -257,7 +279,17 @@ void KateStatusBar::cursorPositionChanged () { KTextEditor::Cursor position (m_view->cursorPositionVirtual()); + if( KateViewConfig::global()->showLinesCount() ) m_lineColLabel->setText( + i18n("Line %1 of %2, Column %3" + , QLocale().toString(position.line() + 1) + , QLocale().toString(m_view->doc()->lines()) + , QLocale().toString(position.column() + 1) + ) + ); + + else + m_lineColLabel->setText( i18n("Line %1, Column %2" , QLocale().toString(position.line() + 1) , QLocale().toString(position.column() + 1) diff --git a/src/view/katestatusbar.h b/src/view/katestatusbar.h index a9e39fb8..c8aedda2 100644 --- a/src/view/katestatusbar.h +++ b/src/view/katestatusbar.h @@ -72,6 +72,7 @@ public Q_SLOTS: protected: bool eventFilter(QObject *obj, QEvent *event) override; + void contextMenuEvent(QContextMenuEvent *event) override; private: KTextEditor::ViewPrivate *const m_view; @@ -104,6 +105,8 @@ public Q_SLOTS: void slotTabGroup(QAction*); void slotIndentGroup(QAction*); void slotIndentTabMode(QAction*); + void toggleShowLines(bool checked); + void toggleShowWords(bool checked); }; #endif diff --git a/src/view/kateview.cpp b/src/view/kateview.cpp index 201875af..a7fd00f8 100644 --- a/src/view/kateview.cpp +++ b/src/view/kateview.cpp @@ -1864,6 +1864,7 @@ void KTextEditor::ViewPrivate::updateConfig() m_viewInternal->cache()->clear(); tagAll(); updateView(true); + m_statusBar->updateStatus(); emit configChanged(); }
