diff --git a/src/ui/groups_widgets.cc b/src/ui/groups_widgets.cc index c23975bf..da311943 100644 --- a/src/ui/groups_widgets.cc +++ b/src/ui/groups_widgets.cc @@ -29,7 +29,8 @@ DictGroupWidget::DictGroupWidget( QWidget * parent, vector< sptr< Dictionary::Class > > const & dicts, Config::Group const & group ): QWidget( parent ), - groupId( group.id ) + groupId( group.id ), + groupName( group.name ) { ui.setupUi( this ); ui.dictionaries->populate( Instances::Group( group, dicts, Config::Group() ).dictionaries, dicts ); @@ -139,6 +140,7 @@ Config::Group DictGroupWidget::makeGroup() const g.favoritesFolder = ui.favoritesFolder->text().replace( '\\', '/' ); + g.name = groupName; return g.makeConfigGroup(); } @@ -558,8 +560,7 @@ void DictGroupsWidget::populate( Config::Groups const & groups, connect( gr, &DictGroupWidget::showDictionaryInfo, this, &DictGroupsWidget::showDictionaryInfo ); connect( gr->getModel(), &DictListModel::contentChanged, this, &DictGroupsWidget::tabDataChanged ); - QString toolTipStr = - "\"" + tabText( x ) + "\"\n" + tr( "Dictionaries: " ) + QString::number( getDictionaryCountAt( x ) ); + QString toolTipStr = tr( "Dictionaries: " ) + QString::number( getDictionaryCountAt( x ) ); setTabToolTip( x, toolTipStr ); } @@ -577,7 +578,6 @@ Config::Groups DictGroupsWidget::makeGroups() const for ( int x = 0; x < count(); ++x ) { result.push_back( dynamic_cast< DictGroupWidget & >( *widget( x ) ).makeGroup() ); - result.back().name = Utils::unescapeAmps( tabText( x ) ); } return result; @@ -648,6 +648,7 @@ int DictGroupsWidget::addNewGroup( QString const & name ) Config::Group newGroup; newGroup.id = nextId++; + newGroup.name = name; const auto gr = new DictGroupWidget( this, *allDicts, newGroup ); const int idx = insertTab( currentIndex() + 1, gr, Utils::escapeAmps( name ) ); @@ -655,8 +656,7 @@ int DictGroupsWidget::addNewGroup( QString const & name ) connect( gr->getModel(), &DictListModel::contentChanged, this, &DictGroupsWidget::tabDataChanged ); - const QString toolTipStr = - "\"" + tabText( idx ) + "\"\n" + tr( "Dictionaries: " ) + QString::number( getDictionaryCountAt( idx ) ); + const QString toolTipStr = tr( "Dictionaries: " ) + QString::number( getDictionaryCountAt( idx ) ); setTabToolTip( idx, toolTipStr ); return idx; } @@ -910,13 +910,13 @@ void DictGroupsWidget::groupsByMetadata() addGroupBasedOnMap( groupToDicts ); } - QString DictGroupsWidget::getCurrentGroupName() const { const int current = currentIndex(); if ( current >= 0 ) { - return Utils::unescapeAmps( tabText( current ) ); + auto * w = qobject_cast< DictGroupWidget * >( widget( current ) ); + return w->name(); } return {}; @@ -927,6 +927,8 @@ void DictGroupsWidget::renameCurrentGroup( QString const & name ) const int current = currentIndex(); if ( current >= 0 ) { + auto * w = dynamic_cast< DictGroupWidget * >( widget( current ) ); + w->setName( name ); setTabText( current, Utils::escapeAmps( name ) ); } } @@ -971,8 +973,7 @@ void DictGroupsWidget::combineGroups( int source, int target ) connect( model, &DictListModel::contentChanged, this, &DictGroupsWidget::tabDataChanged ); - const QString toolTipStr = "\"" + tabText( target ) + "\"\n" + tr( "Dictionaries: " ) - + QString::number( model->getCurrentDictionaries().size() ); + const QString toolTipStr = tr( "Dictionaries: " ) + QString::number( model->getCurrentDictionaries().size() ); setTabToolTip( target, toolTipStr ); } @@ -1124,8 +1125,8 @@ void DictGroupsWidget::contextMenu( QPoint const & pos ) void DictGroupsWidget::tabDataChanged() { - const QString toolTipStr = "\"" + tabText( currentIndex() ) + "\"\n" + tr( "Dictionaries: " ) - + QString::number( getCurrentModel()->getCurrentDictionaries().size() ); + const QString toolTipStr = + tr( "Dictionaries: " ) + QString::number( getCurrentModel()->getCurrentDictionaries().size() ); setTabToolTip( currentIndex(), toolTipStr ); } diff --git a/src/ui/groups_widgets.hh b/src/ui/groups_widgets.hh index 4c28974a..d41c6c59 100644 --- a/src/ui/groups_widgets.hh +++ b/src/ui/groups_widgets.hh @@ -121,9 +121,6 @@ class DictGroupWidget: public QWidget public: DictGroupWidget( QWidget * parent, std::vector< sptr< Dictionary::Class > > const &, Config::Group const & ); - /// Makes the group's configuration out of the data currently held. - /// Since the group's name is not part of the widget by design right now - /// (it is known by the containing tab widget only), it is returned as empty. Config::Group makeGroup() const; DictListModel * getModel() const @@ -136,6 +133,16 @@ public: return ui.dictionaries->selectionModel(); } + QString name() + { + return groupName; + } + + void setName( const QString & name ) + { + groupName = name; + } + private slots: void groupIconActivated( int ); @@ -145,6 +152,7 @@ private slots: private: Ui::DictGroupWidget ui; unsigned groupId; + QString groupName; signals: void showDictionaryInfo( QString const & id );