diff --git a/kanjibrowser/kanjibrowserui.rc b/kanjibrowser/kanjibrowserui.rc
--- a/kanjibrowser/kanjibrowserui.rc
+++ b/kanjibrowser/kanjibrowserui.rc
@@ -15,6 +15,7 @@
Main Toolbar
+
diff --git a/kanjibrowser/kanjibrowserview.h b/kanjibrowser/kanjibrowserview.h
--- a/kanjibrowser/kanjibrowserview.h
+++ b/kanjibrowser/kanjibrowserview.h
@@ -116,6 +116,11 @@
*/
void showKanjiInformation( const EntryKanjidic *kanji );
+ /**
+ * Copies last selected kanji to clipboard
+ */
+ void toClipboard();
+
/**
* Enumerations of our possible states in QStackedWidget.
*/
@@ -145,6 +150,10 @@
* We need to update this action's text from different functions.
*/
QAction *_goToKanjiInfo;
+ /**
+ * We need to update this action's text from different functions.
+ */
+ QAction *_copyToClipboard;
/**
* Keep track of the current kanji being displayed in the Kanji Information page.
*/
diff --git a/kanjibrowser/kanjibrowserview.cpp b/kanjibrowser/kanjibrowserview.cpp
--- a/kanjibrowser/kanjibrowserview.cpp
+++ b/kanjibrowser/kanjibrowserview.cpp
@@ -28,6 +28,7 @@
#include "kanjibrowserconfig.h"
#include
+#include
#include
#include
#include
@@ -214,6 +215,8 @@
}
_goToKanjiInfo->setText( i18n( "About %1", item->text() ) );
+ _copyToClipboard->setText( i18n( "Copy %1 to clipboard", item->text() ) );
+ _copyToClipboard->setVisible( true );
Entry *result = _parent->_dictFileKanjidic->doSearch( DictQuery( item->text() ) )->first();
EntryKanjidic *kanji = static_cast( result );
@@ -246,6 +249,9 @@
_goToKanjiInfo = _parent->actionCollection()->addAction( QStringLiteral("kanji_info") );
_goToKanjiInfo->setText( i18n( "Kanji &Information" ) );
+ _copyToClipboard = _parent->actionCollection()->addAction( QStringLiteral("copy_kanji_to_clipboard") );
+ _copyToClipboard->setVisible(false);
+
_grades->addItem( i18n( "All Jouyou Kanji grades" ) );
foreach( const int &grade, kanjiGrades )
{
@@ -273,6 +279,7 @@
connect(_kanjiList, &QListWidget::itemClicked, _goToKanjiInfo, &QAction::triggered);
connect(goToKanjiList, &QAction::triggered, this, &KanjiBrowserView::changeToListPage);
connect(_goToKanjiInfo, &QAction::triggered, this, &KanjiBrowserView::changeToInfoPage);
+ connect(_copyToClipboard, &QAction::triggered, this, &KanjiBrowserView::toClipboard);
// Set the current grade (Grade 1).
_grades->setCurrentIndex( 1 );
@@ -369,4 +376,10 @@
_kanjiInformation->setHtml( text );
}
+void KanjiBrowserView::toClipboard()
+{
+ QClipboard *cb = QApplication::clipboard();
+ cb->setText( _currentKanji->getWord(), QClipboard::Clipboard );
+ cb->setText( _currentKanji->getWord(), QClipboard::Selection );
+}