Jump to dictionary when show word from dictionary headwords dialog

This commit is contained in:
Abs62 2014-11-17 17:37:19 +03:00
parent e107975d8c
commit 46298a842c
4 changed files with 23 additions and 10 deletions

View file

@ -140,6 +140,8 @@ void DictHeadwords::setup( Dictionary::Class *dict_ )
setWindowIcon( dict->getIcon() ); setWindowIcon( dict->getIcon() );
dictId = QString( dict->getId().c_str() );
QApplication::restoreOverrideCursor(); QApplication::restoreOverrideCursor();
} }
@ -219,7 +221,7 @@ void DictHeadwords::itemClicked( const QModelIndex & index )
if ( value.canConvert< QString >() ) if ( value.canConvert< QString >() )
{ {
QString headword = value.toString(); QString headword = value.toString();
emit headwordSelected( headword ); emit headwordSelected( headword, dictId );
} }
} }

View file

@ -33,6 +33,7 @@ protected:
QStringListModel * model; QStringListModel * model;
QSortFilterProxyModel * proxy; QSortFilterProxyModel * proxy;
WordListItemDelegate * delegate; WordListItemDelegate * delegate;
QString dictId;
QAction helpAction; QAction helpAction;
@ -54,7 +55,7 @@ private slots:
void helpRequested(); void helpRequested();
signals: signals:
void headwordSelected( QString const & ); void headwordSelected( QString const &, QString const & );
void closeDialog(); void closeDialog();
}; };

View file

@ -2102,7 +2102,7 @@ void MainWindow::translateInputChanged( QString const & newValue )
wordFinder.prefixMatch( req, getActiveDicts() ); wordFinder.prefixMatch( req, getActiveDicts() );
} }
void MainWindow::translateInputFinished( bool checkModifiers ) void MainWindow::translateInputFinished( bool checkModifiers, QString const & dictID )
{ {
QString word = Folding::unescapeWildcardSymbols( translateLine->text() ); QString word = Folding::unescapeWildcardSymbols( translateLine->text() );
@ -2112,7 +2112,7 @@ void MainWindow::translateInputFinished( bool checkModifiers )
if ( checkModifiers && ( mods & (Qt::ControlModifier | Qt::ShiftModifier) ) ) if ( checkModifiers && ( mods & (Qt::ControlModifier | Qt::ShiftModifier) ) )
addNewTab(); addNewTab();
showTranslationFor( word ); showTranslationFor( word, 0, dictID );
if ( cfg.preferences.searchInDock ) if ( cfg.preferences.searchInDock )
{ {
@ -2536,7 +2536,8 @@ void MainWindow::showHistoryItem( QString const & word )
} }
void MainWindow::showTranslationFor( QString const & inWord, void MainWindow::showTranslationFor( QString const & inWord,
unsigned inGroup ) unsigned inGroup,
QString const & dictID )
{ {
ArticleView *view = getCurrentArticleView(); ArticleView *view = getCurrentArticleView();
@ -2546,7 +2547,7 @@ void MainWindow::showTranslationFor( QString const & inWord,
( groupInstances.empty() ? 0 : ( groupInstances.empty() ? 0 :
groupInstances[ groupList->currentIndex() ].id ); groupInstances[ groupList->currentIndex() ].id );
view->showDefinition( inWord, group ); view->showDefinition( inWord, group, dictID );
updatePronounceAvailability(); updatePronounceAvailability();
updateFoundInDictsList(); updateFoundInDictsList();
@ -3507,6 +3508,13 @@ void MainWindow::wordReceived( const QString & word)
translateInputFinished( false ); translateInputFinished( false );
} }
void MainWindow::headwordReceived( const QString & word, const QString & ID )
{
toggleMainWindow( true );
translateLine->setText( Folding::escapeWildcardSymbols( word ) );
translateInputFinished( false, QString( "gdfrom-" )+ ID );
}
void MainWindow::updateHistoryMenu() void MainWindow::updateHistoryMenu()
{ {
if ( ui.historyPane->toggleViewAction()->isChecked() ) if ( ui.historyPane->toggleViewAction()->isChecked() )
@ -3766,8 +3774,8 @@ void MainWindow::showDictionaryHeadwords( Dictionary::Class * dict )
{ {
headwordsDlg = new DictHeadwords( this, cfg, dict ); headwordsDlg = new DictHeadwords( this, cfg, dict );
addGlobalActionsToDialog( headwordsDlg ); addGlobalActionsToDialog( headwordsDlg );
connect( headwordsDlg, SIGNAL( headwordSelected( QString ) ), connect( headwordsDlg, SIGNAL( headwordSelected( QString, QString ) ),
this, SLOT( wordReceived( QString ) ) ); this, SLOT( headwordReceived( QString, QString ) ) );
connect( headwordsDlg, SIGNAL( closeDialog() ), connect( headwordsDlg, SIGNAL( closeDialog() ),
this, SLOT( closeHeadwordsDialog() ) ); this, SLOT( closeHeadwordsDialog() ) );
} }

View file

@ -77,6 +77,7 @@ public slots:
void messageFromAnotherInstanceReceived( QString const & ); void messageFromAnotherInstanceReceived( QString const & );
void showStatusBarMessage ( QString const &, int, QPixmap const & ); void showStatusBarMessage ( QString const &, int, QPixmap const & );
void wordReceived( QString const & ); void wordReceived( QString const & );
void headwordReceived( QString const &, QString const & );
void setExpandMode( bool expand ); void setExpandMode( bool expand );
private: private:
@ -329,7 +330,7 @@ private slots:
void currentGroupChanged( QString const & ); void currentGroupChanged( QString const & );
void translateInputChanged( QString const & ); void translateInputChanged( QString const & );
void translateInputFinished( bool checkModifiers = true ); void translateInputFinished( bool checkModifiers = true, QString const & dictID = QString() );
/// Closes any opened search in the article view, and focuses the translateLine/close main window to tray. /// Closes any opened search in the article view, and focuses the translateLine/close main window to tray.
void handleEsc(); void handleEsc();
@ -364,7 +365,8 @@ private slots:
void mutedDictionariesChanged(); void mutedDictionariesChanged();
void showTranslationFor( QString const &, unsigned inGroup = 0 ); void showTranslationFor( QString const &, unsigned inGroup = 0,
QString const & dictID = QString() );
void showTranslationFor( QString const &, QStringList const & dictIDs, void showTranslationFor( QString const &, QStringList const & dictIDs,
QRegExp const & searchRegExp ); QRegExp const & searchRegExp );