Compare commits

...

12 commits

Author SHA1 Message Date
xiaoyifang a4d58a4b38
Merge 45d386e5b2 into f694c3210e 2024-11-08 00:38:16 +00:00
YiFang Xiao 45d386e5b2 1 2024-11-08 08:38:06 +08:00
YiFang Xiao e476c96e26 1 2024-11-08 08:38:06 +08:00
YiFang Xiao 633f2dae53 1 2024-11-08 08:38:06 +08:00
xiaoyifang dcb2e555c4 1: do not update name 2024-11-08 08:38:06 +08:00
xiaoyifang 1700987d4c 1: do not update name 2024-11-08 08:38:06 +08:00
xiaoyifang 0fa664dc42 Revert "opt: update name should reflect the latest info"
This reverts commit 1272ea2d20a7908b9a69d6b551511916f97cc024.
2024-11-08 08:38:06 +08:00
xiaoyifang 35da9399d6 opt: update name should reflect the latest info 2024-11-08 08:38:06 +08:00
autofix-ci[bot] 869411bd82 [autofix.ci] apply automated fixes 2024-11-08 08:38:05 +08:00
xiaoyifang bb72322e5a opt: erase the need to removeTab 2024-11-08 08:38:05 +08:00
xiaoyifang bc1d76fbda opt: erase the need to removeTabs 2024-11-08 08:38:05 +08:00
xiaoyifang 275f01c6a8 opt: erase the need to removeTabs 2024-11-08 08:38:05 +08:00
6 changed files with 62 additions and 20 deletions

View file

@ -224,7 +224,7 @@ void loadDictionaries( QWidget * parent,
loadDicts.wait();
if ( loadDicts.getExceptionText().size() ) {
if ( !loadDicts.getExceptionText().empty() ) {
QMessageBox::critical( parent,
QCoreApplication::translate( "LoadDictionaries", "Error loading dictionaries" ),
QString::fromUtf8( loadDicts.getExceptionText().c_str() ) );

View file

@ -200,32 +200,28 @@ void EditDictionaries::acceptChangedSources( bool rebuildGroups )
#ifndef NO_TTS_SUPPORT
cfg.voiceEngines = sources.getVoiceEngines();
#endif
ui.tabs->setUpdatesEnabled( false );
setUpdatesEnabled( false );
// Those hold pointers to dictionaries, we need to free them.
groupInstances.clear();
groups.clear();
orderAndProps.clear();
// groups.clear();
// orderAndProps.clear();
loadDictionaries( this, cfg, dictionaries, dictNetMgr );
Instances::updateNames( savedGroups, dictionaries );
Instances::updateNames( savedOrder, dictionaries );
Instances::updateNames( savedInactive, dictionaries );
if ( rebuildGroups ) {
ui.tabs->removeTab( 1 );
ui.tabs->removeTab( 1 );
// ui.tabs->removeTab( 1 );
// ui.tabs->removeTab( 1 );
orderAndProps = new OrderAndProps( this, savedOrder, savedInactive, dictionaries );
groups = new Groups( this, dictionaries, savedGroups, orderAndProps->getCurrentDictionaryOrder() );
orderAndProps->rebuild( savedOrder, savedInactive, dictionaries );
groups->rebuild( dictionaries, savedGroups, orderAndProps->getCurrentDictionaryOrder() );
ui.tabs->insertTab( 1, orderAndProps, QIcon( ":/icons/book.svg" ), tr( "&Dictionaries" ) );
ui.tabs->insertTab( 2, groups, QIcon( ":/icons/bookcase.svg" ), tr( "&Groups" ) );
connect( groups, &Groups::showDictionaryInfo, this, &EditDictionaries::showDictionaryInfo );
connect( orderAndProps, &OrderAndProps::showDictionaryHeadwords, this, &EditDictionaries::showDictionaryHeadwords );
// ui.tabs->insertTab( 1, orderAndProps, QIcon( ":/icons/book.svg" ), tr( "&Dictionaries" ) );
// ui.tabs->insertTab( 2, groups, QIcon( ":/icons/bookcase.svg" ), tr( "&Groups" ) );
// connect( groups, &Groups::showDictionaryInfo, this, &EditDictionaries::showDictionaryInfo );
// connect( orderAndProps, &OrderAndProps::showDictionaryHeadwords, this, &EditDictionaries::showDictionaryHeadwords );
}
ui.tabs->setUpdatesEnabled( true );
setUpdatesEnabled( true );
}
EditDictionaries::~EditDictionaries()
{

View file

@ -64,6 +64,27 @@ Groups::Groups( QWidget * parent,
countChanged();
}
void Groups::rebuild( vector< sptr< Dictionary::Class > > const & dicts_,
Config::Groups const & groups_,
Config::Group const & order )
{
this->setUpdatesEnabled( false );
dicts = dicts_;
groups = groups_;
ui.dictionaries->setAsSource();
ui.dictionaries->populate( Instances::Group( order, dicts, Config::Group() ).dictionaries, dicts );
// ui.searchLine->applyTo( ui.dictionaries );
// Populate groups' widget
ui.groups->populate( groups, dicts, ui.dictionaries->getCurrentDictionaries() );
countChanged();
this->setUpdatesEnabled( true );
}
void Groups::editGroup( unsigned id )
{
for ( int x = 0; x < groups.size(); ++x ) {

View file

@ -18,7 +18,9 @@ public:
std::vector< sptr< Dictionary::Class > > const &,
Config::Groups const &,
Config::Group const & order );
void rebuild( std::vector< sptr< Dictionary::Class > > const & dicts_,
Config::Groups const & groups_,
Config::Group const & order );
/// Instructs the dialog to position itself on editing the given group.
void editGroup( unsigned id );
@ -31,7 +33,7 @@ public:
private:
Ui::Groups ui;
std::vector< sptr< Dictionary::Class > > const & dicts;
std::vector< sptr< Dictionary::Class > > dicts;
Config::Groups groups;
QToolButton * groupsListButton;

View file

@ -133,6 +133,27 @@ OrderAndProps::OrderAndProps( QWidget * parent,
showDictNumbers();
}
void OrderAndProps::rebuild( Config::Group const & dictionaryOrder,
Config::Group const & inactiveDictionaries,
std::vector< sptr< Dictionary::Class > > const & allDictionaries )
{
Instances::Group order( dictionaryOrder, allDictionaries, Config::Group() );
Instances::Group inactive( inactiveDictionaries, allDictionaries, Config::Group() );
Instances::complementDictionaryOrder( order, inactive, allDictionaries );
setUpdatesEnabled( false );
ui.dictionaryOrder->populate( order.dictionaries, allDictionaries );
ui.inactiveDictionaries->populate( inactive.dictionaries, allDictionaries );
// ui.searchLine->applyTo( ui.dictionaryOrder );
disableDictionaryDescription();
showDictNumbers();
setUpdatesEnabled( true );
}
Config::Group OrderAndProps::getCurrentDictionaryOrder() const
{
Instances::Group g( "" );

View file

@ -17,7 +17,9 @@ public:
Config::Group const & dictionaryOrder,
Config::Group const & inactiveDictionaries,
std::vector< sptr< Dictionary::Class > > const & allDictionaries );
void rebuild( Config::Group const & dictionaryOrder,
Config::Group const & inactiveDictionaries,
std::vector< sptr< Dictionary::Class > > const & allDictionaries );
Config::Group getCurrentDictionaryOrder() const;
Config::Group getCurrentInactiveDictionaries() const;