mirror of
https://github.com/xiaoyifang/goldendict-ng.git
synced 2024-11-24 04:24:09 +00:00
Allow styling of translate line and word list dependent on the current group by introducing a currentGroup Qt property.
To use, create ~/.goldendict/qt-style.css like this: MainWindow #searchPane #translateLine[currentGroup="En"], MainWindow #searchPane #wordList[currentGroup="En"] { background: white; color: black; font-size: 20px; }
This commit is contained in:
parent
e1c9748d88
commit
1dafa5cb16
|
@ -1183,14 +1183,7 @@ void ArticleView::openSearch()
|
||||||
ui.searchText->setProperty( "noResults", false );
|
ui.searchText->setProperty( "noResults", false );
|
||||||
|
|
||||||
// Reload stylesheet
|
// Reload stylesheet
|
||||||
for( QWidget * w = parentWidget(); w; w = w->parentWidget() )
|
reloadStyleSheet();
|
||||||
{
|
|
||||||
if ( w->styleSheet().size() )
|
|
||||||
{
|
|
||||||
w->setStyleSheet( w->styleSheet() );
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1275,17 +1268,23 @@ void ArticleView::performFindOperation( bool restart, bool backwards )
|
||||||
ui.searchText->setProperty( "noResults", setMark );
|
ui.searchText->setProperty( "noResults", setMark );
|
||||||
|
|
||||||
// Reload stylesheet
|
// Reload stylesheet
|
||||||
for( QWidget * w = parentWidget(); w; w = w->parentWidget() )
|
reloadStyleSheet();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ArticleView::reloadStyleSheet()
|
||||||
|
{
|
||||||
|
for( QWidget * w = parentWidget(); w; w = w->parentWidget() )
|
||||||
|
{
|
||||||
|
if ( w->styleSheet().size() )
|
||||||
{
|
{
|
||||||
if ( w->styleSheet().size() )
|
w->setStyleSheet( w->styleSheet() );
|
||||||
{
|
break;
|
||||||
w->setStyleSheet( w->styleSheet() );
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool ArticleView::closeSearch()
|
bool ArticleView::closeSearch()
|
||||||
{
|
{
|
||||||
if ( searchIsOpened )
|
if ( searchIsOpened )
|
||||||
|
|
|
@ -240,6 +240,8 @@ private:
|
||||||
|
|
||||||
void performFindOperation( bool restart, bool backwards );
|
void performFindOperation( bool restart, bool backwards );
|
||||||
|
|
||||||
|
void reloadStyleSheet();
|
||||||
|
|
||||||
/// Returns the comma-separated list of dictionary ids which should be muted
|
/// Returns the comma-separated list of dictionary ids which should be muted
|
||||||
/// for the given group. If there are none, returns empty string.
|
/// for the given group. If there are none, returns empty string.
|
||||||
QString getMutedForGroup( unsigned group );
|
QString getMutedForGroup( unsigned group );
|
||||||
|
|
|
@ -664,6 +664,7 @@ void MainWindow::updateGroupList()
|
||||||
|
|
||||||
groupList.fill( groupInstances );
|
groupList.fill( groupInstances );
|
||||||
groupList.setCurrentGroup( cfg.lastMainGroupId );
|
groupList.setCurrentGroup( cfg.lastMainGroupId );
|
||||||
|
updateCurrentGroupProperty();
|
||||||
|
|
||||||
updateDictionaryBar();
|
updateDictionaryBar();
|
||||||
|
|
||||||
|
@ -1063,6 +1064,29 @@ void MainWindow::currentGroupChanged( QString const & )
|
||||||
// Update word search results
|
// Update word search results
|
||||||
|
|
||||||
translateInputChanged( ui.translateLine->text() );
|
translateInputChanged( ui.translateLine->text() );
|
||||||
|
|
||||||
|
updateCurrentGroupProperty();
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::updateCurrentGroupProperty()
|
||||||
|
{
|
||||||
|
// We maintain currentGroup property so styles could use that to change
|
||||||
|
// fonts based on group names
|
||||||
|
Instances::Group * grp =
|
||||||
|
groupInstances.findGroup( groupList.getCurrentGroup() );
|
||||||
|
|
||||||
|
if ( grp && ui.translateLine->property( "currentGroup" ).toString() !=
|
||||||
|
grp->name )
|
||||||
|
{
|
||||||
|
ui.translateLine->setProperty( "currentGroup", grp->name );
|
||||||
|
ui.wordList->setProperty( "currentGroup", grp->name );
|
||||||
|
QString ss = styleSheet();
|
||||||
|
|
||||||
|
// Only update stylesheet if it mentions currentGroup, as updating the
|
||||||
|
// stylesheet is a slow operation
|
||||||
|
if ( ss.contains("currentGroup") )
|
||||||
|
setStyleSheet( ss );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::translateInputChanged( QString const & newValue )
|
void MainWindow::translateInputChanged( QString const & newValue )
|
||||||
|
|
|
@ -136,6 +136,9 @@ private:
|
||||||
|
|
||||||
void mousePressEvent ( QMouseEvent * event );
|
void mousePressEvent ( QMouseEvent * event );
|
||||||
|
|
||||||
|
void updateCurrentGroupProperty();
|
||||||
|
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
|
||||||
void hotKeyActivated( int );
|
void hotKeyActivated( int );
|
||||||
|
|
Loading…
Reference in a new issue