26 #include <QToolButton> 28 #define YUILogComponent "qt-ui" 29 #include <yui/YUILog.h> 30 #include <yui/YEvent.h> 32 #include "YQCustomStatusItemSelector.h" 37 const YItemCustomStatusVector & customStates )
54 for (
int i=0; i < customStatusCount(); ++i )
61 YUI_CHECK_PTR( item );
62 YItemSelector::addItem( item );
66 YUI_CHECK_NEW( itemWidget );
69 _itemWidgets[ item ] = itemWidget;
71 connect( itemWidget, &pclass( itemWidget )::clicked,
82 item->setSelected( selected );
90 static QIcon nullIcon = QIcon();
92 if ( status >= 0 && status < _statusIcons.size() )
93 return _statusIcons.at( status );
103 if ( ! itemWidgetBase )
104 YUI_THROW( YUIException(
"Can't find selected item" ) );
116 YUI_CHECK_PTR( itemWidget );
117 YItem * item = itemWidget->item();
119 int oldStatus = item->status();
120 int newStatus = cycleCustomStatus( oldStatus );
122 yuiDebug() <<
"User clicked on item \"" << item->label() <<
"\"" 123 <<
"; new status: " << newStatus
126 if ( newStatus >= 0 && newStatus != oldStatus )
128 item->setStatus( newStatus );
176 QToolButton * toggle =
new QToolButton(
this );
177 YUI_CHECK_NEW( toggle );
178 toggle->setText(
" " + fromUTF8( label ) );
179 toggle->setAutoRaise(
true );
180 toggle->setToolButtonStyle( Qt::ToolButtonTextBesideIcon );
181 toggle->setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding,
182 QSizePolicy::Fixed ) );
185 connect( toggle, &pclass( toggle )::
clicked,
200 int status = _item->status();
202 if ( ! _parent->validCustomStatusIndex( status ) )
204 yuiError() <<
"Invalid status " << status <<
" for item " << _item << endl;
214 if ( ! icon.isNull() )
215 toggle->setIcon( icon );
virtual void updateCustomStatusIndicator(YItem *item)
Update the status indicator (the status icon) for an item.
void itemClicked(YQCustomStatusSelectorItemWidget *itemWidget)
Cycle the status of an item and report the click to the calling application.
virtual void addItem(YItem *item)
Add an item.
const QIcon & statusIcon(int status) const
Return the status icon for the specified status.
YQCustomStatusItemSelector(YWidget *parent, const YItemCustomStatusVector &customStates)
Constructor.
virtual void activateItem(YItem *item)
Activate selected item.
QIcon loadIcon(const string &iconName) const
Load an icon.
void preloadStatusIcons()
Preload and cache the status icons.
ItemSelector widget with support for custom status values, not just 0 or 1.
void sendEvent(YEvent *event)
Widget event handlers (slots) call this when an event occured that should be the answer to a UserInpu...
virtual ~YQCustomStatusItemSelector()
Destructor.
virtual void selectItem(YItem *item, bool selected=true)
Select or deselect an item.
static YQUI * ui()
Access the global Qt-UI.