mirror of
https://github.com/xiaoyifang/goldendict-ng.git
synced 2024-11-27 19:24:08 +00:00
The following patches made by Dmitry E. Oboukhov applied:
* Middle click on the tray icon translates current selection * Middle click on the main window also translates current selection * When editing groups, double click on the dictionary adds it to the current group.
This commit is contained in:
parent
f7d47163d3
commit
64867e9f1b
|
@ -36,6 +36,8 @@ Groups::Groups( QWidget * parent,
|
|||
this, SLOT( removeAll() ) );
|
||||
connect( ui.addDictsToGroup, SIGNAL( clicked() ),
|
||||
this, SLOT( addToGroup() ) );
|
||||
connect( ui.dictionaries, SIGNAL( doubleClicked(const QModelIndex &) ),
|
||||
this, SLOT( addToGroup() ) );
|
||||
connect( ui.removeDictsFromGroup, SIGNAL( clicked() ),
|
||||
this, SLOT( removeFromGroup() ) );
|
||||
|
||||
|
|
|
@ -274,6 +274,22 @@ MainWindow::MainWindow( Config::Class & cfg_ ):
|
|||
doDeferredInit( dictionaries );
|
||||
}
|
||||
|
||||
void MainWindow::mousePressEvent( QMouseEvent *event)
|
||||
{
|
||||
if (event->button() != Qt::MidButton)
|
||||
return QMainWindow::mousePressEvent(event);
|
||||
// middle clicked
|
||||
QString subtype = "plain";
|
||||
|
||||
QString str = QApplication::clipboard()->text(subtype,
|
||||
QClipboard::Selection);
|
||||
ui.translateLine->setText(str);
|
||||
|
||||
QKeyEvent ev(QEvent::Type(6)/*QEvent::KeyPress*/, Qt::Key_Enter,
|
||||
Qt::NoModifier);
|
||||
QApplication::sendEvent(ui.translateLine, &ev);
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow()
|
||||
{
|
||||
// Save MainWindow state and geometry
|
||||
|
@ -1273,10 +1289,22 @@ void MainWindow::latestReleaseReplyReady()
|
|||
|
||||
void MainWindow::trayIconActivated( QSystemTrayIcon::ActivationReason r )
|
||||
{
|
||||
if ( r == QSystemTrayIcon::Trigger )
|
||||
{
|
||||
switch(r) {
|
||||
case QSystemTrayIcon::Trigger:
|
||||
// Left click toggles the visibility of main window
|
||||
toggleMainWindow();
|
||||
break;
|
||||
|
||||
case QSystemTrayIcon::MiddleClick:
|
||||
// Middle mouse click on Tray translates selection
|
||||
// it is functional like as stardict
|
||||
if ( scanPopup.get() ) {
|
||||
scanPopup->translateWordFromSelection();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -108,6 +108,8 @@ private:
|
|||
|
||||
void applyZoomFactor();
|
||||
|
||||
void mousePressEvent ( QMouseEvent * event );
|
||||
|
||||
private slots:
|
||||
|
||||
void hotKeyActivated( int );
|
||||
|
|
|
@ -141,12 +141,21 @@ void ScanPopup::applyZoomFactor()
|
|||
|
||||
void ScanPopup::translateWordFromClipboard()
|
||||
{
|
||||
printf( "translating from clipboard\n" );
|
||||
return translateWordFromClipboard(QClipboard::Clipboard);
|
||||
}
|
||||
|
||||
void ScanPopup::translateWordFromSelection()
|
||||
{
|
||||
return translateWordFromClipboard(QClipboard::Selection);
|
||||
}
|
||||
|
||||
void ScanPopup::translateWordFromClipboard(QClipboard::Mode m)
|
||||
{
|
||||
printf( "translating from clipboard or selection\n" );
|
||||
|
||||
QString subtype = "plain";
|
||||
|
||||
QString str = QApplication::clipboard()->text( subtype,
|
||||
QClipboard::Clipboard );
|
||||
QString str = QApplication::clipboard()->text( subtype, m);
|
||||
|
||||
str = pendingInputWord = gd::toQString( Folding::trimWhitespaceOrPunct( gd::toWString( str ) ) );
|
||||
|
||||
|
|
|
@ -43,9 +43,14 @@ public slots:
|
|||
|
||||
/// Translates the word from the clipboard, showing the window etc.
|
||||
void translateWordFromClipboard();
|
||||
/// Translates the word from the clipboard selection
|
||||
void translateWordFromSelection();
|
||||
|
||||
private:
|
||||
|
||||
// Translates the word from the clipboard or the clipboard selection
|
||||
void translateWordFromClipboard(QClipboard::Mode m);
|
||||
|
||||
Config::Class & cfg;
|
||||
bool isScanningEnabled;
|
||||
std::vector< sptr< Dictionary::Class > > const & allDictionaries;
|
||||
|
|
Loading…
Reference in a new issue