2010-05-08 18:59:59 +00:00
|
|
|
/* This file is (c) 2008-2010 Konstantin Isakov <ikm@users.berlios.de>
|
2009-02-01 00:08:08 +00:00
|
|
|
* Part of GoldenDict. Licensed under GPLv3 or later, see the LICENSE file */
|
|
|
|
|
|
|
|
#include "groupcombobox.hh"
|
|
|
|
|
2009-05-10 11:49:14 +00:00
|
|
|
GroupComboBox::GroupComboBox( QWidget * parent ): QComboBox( parent ),
|
|
|
|
popupAction( this )
|
2009-02-01 00:08:08 +00:00
|
|
|
{
|
|
|
|
setSizeAdjustPolicy( AdjustToContents );
|
2009-05-10 11:49:14 +00:00
|
|
|
setToolTip( tr( "Choose a Group (Alt+G)" ) );
|
|
|
|
|
|
|
|
popupAction.setShortcut( QKeySequence( "Alt+G" ) );
|
|
|
|
connect( &popupAction, SIGNAL( triggered() ),
|
|
|
|
this, SLOT( popupGroups() ) );
|
|
|
|
|
|
|
|
addAction( &popupAction );
|
2009-02-01 00:08:08 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void GroupComboBox::fill( Instances::Groups const & groups )
|
|
|
|
{
|
2009-04-10 12:48:40 +00:00
|
|
|
unsigned prevId = 0;
|
|
|
|
|
|
|
|
if ( count() )
|
|
|
|
prevId = itemData( currentIndex() ).toUInt();
|
2009-02-01 00:08:08 +00:00
|
|
|
|
|
|
|
clear();
|
|
|
|
|
|
|
|
for( unsigned x = 0; x < groups.size(); ++x )
|
|
|
|
{
|
2009-10-21 19:28:09 +00:00
|
|
|
addItem( groups[ x ].makeIcon(),
|
|
|
|
groups[ x ].name, groups[ x ].id );
|
2009-02-01 00:08:08 +00:00
|
|
|
|
2009-04-10 12:48:40 +00:00
|
|
|
if ( prevId == groups[ x ].id )
|
2009-02-01 00:08:08 +00:00
|
|
|
setCurrentIndex( x );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2009-04-10 12:48:40 +00:00
|
|
|
void GroupComboBox::setCurrentGroup( unsigned id )
|
2009-02-06 17:04:11 +00:00
|
|
|
{
|
|
|
|
for( int x = 0; x < count(); ++x )
|
|
|
|
{
|
2009-04-10 12:48:40 +00:00
|
|
|
if ( itemData( x ).toUInt() == id )
|
2009-02-06 17:04:11 +00:00
|
|
|
{
|
|
|
|
setCurrentIndex( x );
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2009-04-10 12:48:40 +00:00
|
|
|
unsigned GroupComboBox::getCurrentGroup() const
|
|
|
|
{
|
|
|
|
if ( !count() )
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
return itemData( currentIndex() ).toUInt();
|
|
|
|
}
|
|
|
|
|
2009-05-10 11:49:14 +00:00
|
|
|
void GroupComboBox::popupGroups()
|
|
|
|
{
|
|
|
|
showPopup();
|
|
|
|
}
|