This commit is contained in:
xiaoyifang 2024-11-05 17:45:55 -05:00 committed by GitHub
commit b53b67e08b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 24 additions and 15 deletions

View file

@ -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 );
}

View file

@ -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 );