QWidget* ToolAction::createWidget( QWidget *parent ) { QToolBar *toolBar = qobject_cast< QToolBar * >( parent ); if ( !toolBar ) return 0; QToolButton *button = new QToolButton( toolBar ); button->setAutoRaise( true ); button->setFocusPolicy( Qt::NoFocus ); button->setIconSize( toolBar->iconSize() ); button->setToolButtonStyle( toolBar->toolButtonStyle() ); button->setPopupMode( QToolButton::DelayedPopup ); button->setMenu( new QMenu( button ) ); button->setCheckable( true ); connect(toolBar, &QToolBar::iconSizeChanged, button, &QToolButton::setIconSize); connect(toolBar, &QToolBar::toolButtonStyleChanged, button, &QToolButton::setToolButtonStyle); connect(button, &QToolButton::triggered, toolBar, &QToolBar::actionTriggered); connect( button->menu(), &QMenu::triggered, this, &ToolAction::slotNewDefaultAction ); m_buttons.append( button ); if ( !m_actions.isEmpty() ) { button->setDefaultAction( m_actions.first() ); foreach ( QAction *action, m_actions ) { button->menu()->addAction( action ); if ( action->isChecked() ) button->setDefaultAction( action ); }
void ZLQtApplicationWindow::setToolbarItemState(ZLToolbar::ItemPtr item, bool visible, bool enabled) { QAction *action = myActions[&*item]; if (action != 0) { action->setEnabled(enabled); action->setVisible(visible); } switch (item->type()) { default: break; case ZLToolbar::Item::MENU_BUTTON: { ZLToolbar::MenuButtonItem &buttonItem = (ZLToolbar::MenuButtonItem&)*item; shared_ptr<ZLPopupData> data = buttonItem.popupData(); if (!data.isNull() && (data->id() != myPopupIdMap[&buttonItem])) { myPopupIdMap[&buttonItem] = data->id(); QToolButton *button = myMenuButtons[&buttonItem]; QMenu *menu = button->menu(); menu->clear(); const size_t count = data->count(); for (size_t i = 0; i < count; ++i) { menu->addAction(new ZLQtRunPopupAction(menu, data, i)); } } break; } } }
void BookmarksToolBar::dropEvent(QDropEvent *event) { const QMimeData *mimeData = event->mimeData(); if (mimeData->hasUrls() && mimeData->hasText()) { QList<QUrl> urls = mimeData->urls(); QString title = mimeData->text(); QUrl url = urls.at(0); if (url.isEmpty()) { QToolBar::dropEvent(event); return; } if (title.isEmpty()) { title = QLatin1String(url.toEncoded()); } int row = -1; QModelIndex parentIndex = m_root; QToolButton *target = qobject_cast<QToolButton *>(childAt(event->pos())); if (target && target->menu()) { ModelMenu *menu = qobject_cast<ModelMenu *>(target->menu()); if (menu) parentIndex = menu->rootIndex(); } BookmarkNode *bookmark = new BookmarkNode(BookmarkNode::Bookmark); bookmark->url = QLatin1String(url.toEncoded()); bookmark->title = title; BookmarkNode *parent = m_bookmarksModel->node(parentIndex); BookmarksManager *bookmarksManager = m_bookmarksModel->bookmarksManager(); bookmarksManager->addBookmark(parent, bookmark, row); event->acceptProposedAction(); } QToolBar::dropEvent(event); }
QAccessible::Role QAccessibleToolButton::role() const { QAbstractButton *ab = button(); #ifndef QT_NO_MENU QToolButton *tb = qobject_cast<QToolButton*>(ab); if (!tb->menu()) return tb->isCheckable() ? QAccessible::CheckBox : QAccessible::PushButton; else if (tb->popupMode() == QToolButton::DelayedPopup) return QAccessible::ButtonDropDown; #endif return QAccessible::ButtonMenu; }
QMenu *MainWindow::addMenu(QString name) { QList<QAction *> actions = _toolBar->actions(); foreach (QAction *action, actions) if (action->text() == name) { QToolButton *toolButton = dynamic_cast<QToolButton *>(_toolBar->widgetForAction(action)); if (toolButton != nullptr) return toolButton->menu(); } QMenu *menu = new QMenu(name); addMenu(menu); return menu; }
QList<QAction*> DlgCustomToolbarsImp::getActionGroup(QAction* action) { QList<QAction*> group; QList<QWidget*> widgets = action->associatedWidgets(); for (QList<QWidget*>::iterator it = widgets.begin(); it != widgets.end(); ++it) { QToolButton* tb = qobject_cast<QToolButton*>(*it); if (tb) { QMenu* menu = tb->menu(); if (menu) { group = menu->actions(); break; } } } return group; }
bool StatusBar::event_fired(EventsI::Event &e) { AccountChanged &ac = static_cast<AccountChanged &>(e); QString proto_name = ac.account->proto->name(), account_id = ac.account->account_id, account_name = ac.account->account_name; if(ac.removed) { if(account_buttons.contains(proto_name) && account_buttons[proto_name].contains(account_id)) { QToolButton *tb = account_buttons[proto_name][account_id]; status_bar->removeWidget(tb); menuMapper->removeMappings(tb->menu()); delete tb; account_buttons[proto_name].remove(account_id); if(account_buttons[proto_name].size() == 0) account_buttons.remove(proto_name); button_count--; if(button_count <= 1) globalButton->hide(); } } else { bool new_account = account_buttons.contains(proto_name) == false || account_buttons[proto_name].contains(account_id) == false; if(new_account) { QToolButton *tb = new QToolButton(); tb->setIcon(icons_i->get_account_status_icon(ac.account, ac.account->status)); tb->setToolTip(proto_name + ": " + account_name); QMenu *menu = menus_i->get_menu(proto_name + ": " + account_name); //connect(proto, SIGNAL(local_status_change(const QString &, const QString &, GlobalStatus)) , this, SLOT(local_status_change(const QString &, const QString &, GlobalStatus))); QList<GlobalStatus> statuses = ac.account->proto->statuses(); foreach(GlobalStatus gs, statuses) { QAction *a = menus_i->add_menu_action(proto_name + ": " + account_name, hr_status_name[gs], "Proto/" + proto_name + "/Account/" + account_id + "/" + status_name[gs]); a->setData(QVariantList() << proto_name << account_id << gs); connect(a, SIGNAL(triggered()), menuMapper, SLOT(map())); menuMapper->setMapping(a, a); } menus_i->add_menu_action(proto_name + ": " + account_name, proto_name + ": " + account_name, "Proto/" + proto_name + "/Account/" + account_id); menus_i->add_menu_separator(proto_name + ": " + account_name, menu->actions().at(1)); tb->setMenu(menu); tb->setPopupMode(QToolButton::InstantPopup); //status_bar->addWidget(tb); toolButtonLayout->addWidget(tb); account_buttons[proto_name][account_id] = tb; button_count++; if(button_count > 1) globalButton->show(); } else {
void DlgCustomToolbarsImp::setActionGroup(QAction* action, const QList<QAction*>& group) { // See also ActionGroup::addTo() QList<QWidget*> widgets = action->associatedWidgets(); for (QList<QWidget*>::iterator it = widgets.begin(); it != widgets.end(); ++it) { QToolButton* tb = qobject_cast<QToolButton*>(*it); if (tb) { QMenu* menu = tb->menu(); if (!menu) { tb->setPopupMode(QToolButton::MenuButtonPopup); tb->setObjectName(QString::fromLatin1("qt_toolbutton_menubutton")); QMenu* menu = new QMenu(tb); menu->addActions(group); tb->setMenu(menu); } } } }
void BookmarksToolBar::contextMenuRequested(const QPoint &position) { QToolButton *button = qobject_cast<QToolButton *>(childAt(position)); QMenu menu; QAction *action; if (button) { QModelIndex index; QVariant variant; BookmarkToolButton *bookmarkButton = qobject_cast<BookmarkToolButton *>(button); ModelMenu *modelMenu = qobject_cast<ModelMenu *>(button->menu()); if (modelMenu) { index = modelMenu->rootIndex(); variant.setValue(index); } else if (bookmarkButton) { index = bookmarkButton->index(); variant.setValue(index); action = menu.addAction(tr("Open"), this, SLOT(openBookmark())); action->setData(variant); action = menu.addAction(tr("Open in New &Tab"), this, SLOT(openBookmarkInNewTab())); action->setData(variant); menu.addSeparator(); } if (variant.isValid()) { action = menu.addAction(tr("Remove"), this, SLOT(removeBookmark())); action->setData(variant); } menu.addSeparator(); } action = menu.addAction(tr("Add Bookmark..."), this, SLOT(newBookmark())); action = menu.addAction(tr("Add Folder..."), this, SLOT(newFolder())); menu.exec(QCursor::pos()); }
QAccessibleInterface *AccessibleFactory::create(const QString &classname, QObject *object) { QAccessibleInterface *iface = 0; if (!object || !object->isWidgetType()) return iface; QWidget *widget = static_cast<QWidget*>(object); if (false) { #ifndef QT_NO_LINEEDIT } else if (classname == QLatin1String("QLineEdit")) { iface = new QAccessibleLineEdit(widget); #endif #ifndef QT_NO_COMBOBOX } else if (classname == QLatin1String("QComboBox")) { iface = new QAccessibleComboBox(widget); #endif #ifndef QT_NO_SPINBOX } else if (classname == QLatin1String("QAbstractSpinBox")) { iface = new QAccessibleAbstractSpinBox(widget); } else if (classname == QLatin1String("QSpinBox")) { iface = new QAccessibleSpinBox(widget); } else if (classname == QLatin1String("QDoubleSpinBox")) { iface = new QAccessibleDoubleSpinBox(widget); #endif #ifndef QT_NO_SCROLLBAR } else if (classname == QLatin1String("QScrollBar")) { iface = new QAccessibleScrollBar(widget); #endif } else if (classname == QLatin1String("QAbstractSlider")) { iface = new QAccessibleAbstractSlider(widget); #ifndef QT_NO_SLIDER } else if (classname == QLatin1String("QSlider")) { iface = new QAccessibleSlider(widget); #endif #ifndef QT_NO_TOOLBUTTON } else if (classname == QLatin1String("QToolButton")) { Role role = NoRole; #ifndef QT_NO_MENU QToolButton *tb = qobject_cast<QToolButton*>(widget); if (!tb->menu()) role = tb->isCheckable() ? CheckBox : PushButton; else if (!tb->popupMode() != QToolButton::DelayedPopup) role = ButtonDropDown; else #endif role = ButtonMenu; iface = new QAccessibleToolButton(widget, role); #endif // QT_NO_TOOLBUTTON } else if (classname == QLatin1String("QCheckBox")) { iface = new QAccessibleButton(widget, CheckBox); } else if (classname == QLatin1String("QRadioButton")) { iface = new QAccessibleButton(widget, RadioButton); } else if (classname == QLatin1String("QPushButton")) { Role role = NoRole; QPushButton *pb = qobject_cast<QPushButton*>(widget); #ifndef QT_NO_MENU if (pb->menu()) role = ButtonMenu; else #endif if (pb->isCheckable()) role = CheckBox; else role = PushButton; iface = new QAccessibleButton(widget, role); } else if (classname == QLatin1String("QAbstractButton")) { iface = new QAccessibleButton(widget, PushButton); } else if (classname == QLatin1String("QDialog")) { iface = new QAccessibleWidgetEx(widget, Dialog); } else if (classname == QLatin1String("QMessageBox")) { iface = new QAccessibleWidgetEx(widget, AlertMessage); #ifndef QT_NO_MAINWINDOW } else if (classname == QLatin1String("QMainWindow")) { iface = new QAccessibleMainWindow(widget); #endif } else if (classname == QLatin1String("QLabel") || classname == QLatin1String("QLCDNumber")) { iface = new QAccessibleDisplay(widget); } else if (classname == QLatin1String("QGroupBox")) { iface = new QAccessibleDisplay(widget, Grouping); } else if (classname == QLatin1String("QStatusBar")) { iface = new QAccessibleWidgetEx(widget, StatusBar); } else if (classname == QLatin1String("QProgressBar")) { iface = new QAccessibleDisplay(widget); } else if (classname == QLatin1String("QToolBar")) { iface = new QAccessibleWidgetEx(widget, ToolBar, widget->windowTitle()); #ifndef QT_NO_MENUBAR } else if (classname == QLatin1String("QMenuBar")) { iface = new QAccessibleMenuBar(widget); #endif #ifndef QT_NO_MENU } else if (classname == QLatin1String("QMenu")) { iface = new QAccessibleMenu(widget); } else if (classname == QLatin1String("Q3PopupMenu")) { iface = new QAccessibleMenu(widget); #endif #ifndef QT_NO_ITEMVIEWS } else if (classname == QLatin1String("QHeaderView")) { iface = new QAccessibleHeader(widget); } else if (classname == QLatin1String("QAbstractItemView")) { iface = new QAccessibleItemView(widget); } else if (classname == QLatin1String("QWidget") && widget->objectName() == QLatin1String("qt_scrollarea_viewport") && qobject_cast<QAbstractItemView*>(widget->parentWidget())) { iface = new QAccessibleItemView(widget); #endif #ifndef QT_NO_TABBAR } else if (classname == QLatin1String("QTabBar")) { iface = new QAccessibleTabBar(widget); #endif } else if (classname == QLatin1String("QWorkspaceChild")) { iface = new QAccessibleWidgetEx(widget, Window); } else if (classname == QLatin1String("QSizeGrip")) { iface = new QAccessibleWidgetEx(widget, Grip); #ifndef QT_NO_SPLITTER } else if (classname == QLatin1String("QSplitter")) { iface = new QAccessibleWidgetEx(widget, Splitter); } else if (classname == QLatin1String("QSplitterHandle")) { iface = new QAccessibleWidgetEx(widget, Grip); #endif #ifndef QT_NO_TEXTEDIT } else if (classname == QLatin1String("QTextEdit")) { iface = new QAccessibleTextEdit(widget); #endif } else if (classname == QLatin1String("QTipLabel")) { iface = new QAccessibleDisplay(widget, ToolTip); } else if (classname == QLatin1String("QFrame")) { iface = new QAccessibleWidget(widget, Border); #ifndef QT_NO_STACKEDWIDGET } else if (classname == QLatin1String("QStackedWidget")) { iface = new QAccessibleStackedWidget(widget); #endif #ifndef QT_NO_TOOLBOX } else if (classname == QLatin1String("QToolBox")) { iface = new QAccessibleToolBox(widget); #endif #ifndef QT_NO_MDIAREA } else if (classname == QLatin1String("QMdiArea")) { iface = new QAccessibleMdiArea(widget); } else if (classname == QLatin1String("QMdiSubWindow")) { iface = new QAccessibleMdiSubWindow(widget); #endif #ifndef QT_NO_WORKSPACE } else if (classname == QLatin1String("QWorkspace")) { iface = new QAccessibleWorkspace(widget); #endif } else if (classname == QLatin1String("QDialogButtonBox")) { iface = new QAccessibleDialogButtonBox(widget); #ifndef QT_NO_DIAL } else if (classname == QLatin1String("QDial")) { iface = new QAccessibleDial(widget); #endif #ifndef QT_NO_RUBBERBAND } else if (classname == QLatin1String("QRubberBand")) { iface = new QAccessibleWidgetEx(widget, QAccessible::Border); #endif #ifndef QT_NO_TEXTBROWSER } else if (classname == QLatin1String("QTextBrowser")) { iface = new QAccessibleTextBrowser(widget); #endif #ifndef QT_NO_SCROLLAREA } else if (classname == QLatin1String("QAbstractScrollArea")) { iface = new QAccessibleAbstractScrollArea(widget); } else if (classname == QLatin1String("QScrollArea")) { iface = new QAccessibleScrollArea(widget); #endif #ifndef QT_NO_CALENDARWIDGET } else if (classname == QLatin1String("QCalendarWidget")) { iface = new QAccessibleCalendarWidget(widget); #endif #ifndef QT_NO_DOCKWIDGET } else if (classname == QLatin1String("QDockWidget")) { iface = new QAccessibleDockWidget(widget); #endif } return iface; }
QAccessibleInterface *AccessibleFactory::create(const QString &classname, QObject *object) { QAccessibleInterface *iface = 0; if (!object || !object->isWidgetType()) return iface; QWidget *widget = static_cast<QWidget*>(object); if (false) { #ifndef QT_NO_LINEEDIT } else if (classname == QLatin1String("QLineEdit")) { iface = new QAccessibleLineEdit(widget); #endif #ifndef QT_NO_COMBOBOX } else if (classname == QLatin1String("QComboBox")) { iface = new QAccessibleComboBox(widget); #endif #ifndef QT_NO_SPINBOX } else if (classname == QLatin1String("QAbstractSpinBox")) { iface = new QAccessibleAbstractSpinBox(widget); } else if (classname == QLatin1String("QSpinBox")) { iface = new QAccessibleSpinBox(widget); } else if (classname == QLatin1String("QDoubleSpinBox")) { iface = new QAccessibleDoubleSpinBox(widget); #endif #ifndef QT_NO_SCROLLBAR } else if (classname == QLatin1String("QScrollBar")) { iface = new QAccessibleScrollBar(widget); #endif } else if (classname == QLatin1String("QAbstractSlider")) { iface = new QAccessibleAbstractSlider(widget); #ifndef QT_NO_SLIDER } else if (classname == QLatin1String("QSlider")) { iface = new QAccessibleSlider(widget); #endif #ifndef QT_NO_TOOLBUTTON } else if (classname == QLatin1String("QToolButton")) { QAccessible::Role role = QAccessible::NoRole; #ifndef QT_NO_MENU QToolButton *tb = qobject_cast<QToolButton*>(widget); if (!tb->menu()) role = tb->isCheckable() ? QAccessible::CheckBox : QAccessible::PushButton; else if (tb->popupMode() == QToolButton::DelayedPopup) role = QAccessible::ButtonDropDown; else #endif role = QAccessible::ButtonMenu; iface = new QAccessibleToolButton(widget, role); #endif // QT_NO_TOOLBUTTON } else if (classname == QLatin1String("QCheckBox")) { iface = new QAccessibleButton(widget, QAccessible::CheckBox); } else if (classname == QLatin1String("QRadioButton")) { iface = new QAccessibleButton(widget, QAccessible::RadioButton); } else if (classname == QLatin1String("QPushButton")) { QAccessible::Role role = QAccessible::NoRole; QPushButton *pb = qobject_cast<QPushButton*>(widget); #ifndef QT_NO_MENU if (pb->menu()) role = QAccessible::ButtonMenu; else #endif if (pb->isCheckable()) role = QAccessible::CheckBox; else role = QAccessible::PushButton; iface = new QAccessibleButton(widget, role); } else if (classname == QLatin1String("QAbstractButton")) { iface = new QAccessibleButton(widget, QAccessible::PushButton); } else if (classname == QLatin1String("QDialog")) { iface = new QAccessibleWidget(widget, QAccessible::Dialog); } else if (classname == QLatin1String("QMessageBox")) { iface = new QAccessibleWidget(widget, QAccessible::AlertMessage); #ifndef QT_NO_MAINWINDOW } else if (classname == QLatin1String("QMainWindow")) { iface = new QAccessibleMainWindow(widget); #endif } else if (classname == QLatin1String("QLabel") || classname == QLatin1String("QLCDNumber")) { iface = new QAccessibleDisplay(widget); #ifndef QT_NO_GROUPBOX } else if (classname == QLatin1String("QGroupBox")) { iface = new QAccessibleGroupBox(widget); #endif } else if (classname == QLatin1String("QStatusBar")) { iface = new QAccessibleDisplay(widget); #ifndef QT_NO_PROGRESSBAR } else if (classname == QLatin1String("QProgressBar")) { iface = new QAccessibleProgressBar(widget); #endif } else if (classname == QLatin1String("QToolBar")) { iface = new QAccessibleWidget(widget, QAccessible::ToolBar, widget->windowTitle()); #ifndef QT_NO_MENUBAR } else if (classname == QLatin1String("QMenuBar")) { iface = new QAccessibleMenuBar(widget); #endif #ifndef QT_NO_MENU } else if (classname == QLatin1String("QMenu")) { iface = new QAccessibleMenu(widget); #endif #ifndef QT_NO_ITEMVIEWS } else if (classname == QLatin1String("QTreeView")) { iface = new QAccessibleTree(widget); } else if (classname == QLatin1String("QTableView") || classname == QLatin1String("QListView")) { iface = new QAccessibleTable(widget); // ### This should be cleaned up. We return the parent for the scrollarea to hide it. #endif // QT_NO_ITEMVIEWS #ifndef QT_NO_TABBAR } else if (classname == QLatin1String("QTabBar")) { iface = new QAccessibleTabBar(widget); #endif } else if (classname == QLatin1String("QSizeGrip")) { iface = new QAccessibleWidget(widget, QAccessible::Grip); #ifndef QT_NO_SPLITTER } else if (classname == QLatin1String("QSplitter")) { iface = new QAccessibleWidget(widget, QAccessible::Splitter); } else if (classname == QLatin1String("QSplitterHandle")) { iface = new QAccessibleWidget(widget, QAccessible::Grip); #endif #if !defined(QT_NO_TEXTEDIT) && !defined(QT_NO_CURSOR) } else if (classname == QLatin1String("QTextEdit")) { iface = new QAccessibleTextEdit(widget); } else if (classname == QLatin1String("QPlainTextEdit")) { iface = new QAccessiblePlainTextEdit(widget); #endif } else if (classname == QLatin1String("QTipLabel")) { iface = new QAccessibleDisplay(widget, QAccessible::ToolTip); } else if (classname == QLatin1String("QFrame")) { iface = new QAccessibleWidget(widget, QAccessible::Border); #ifndef QT_NO_STACKEDWIDGET } else if (classname == QLatin1String("QStackedWidget")) { iface = new QAccessibleStackedWidget(widget); #endif #ifndef QT_NO_TOOLBOX } else if (classname == QLatin1String("QToolBox")) { iface = new QAccessibleToolBox(widget); #endif #ifndef QT_NO_MDIAREA } else if (classname == QLatin1String("QMdiArea")) { iface = new QAccessibleMdiArea(widget); } else if (classname == QLatin1String("QMdiSubWindow")) { iface = new QAccessibleMdiSubWindow(widget); #endif } else if (classname == QLatin1String("QDialogButtonBox")) { iface = new QAccessibleDialogButtonBox(widget); #ifndef QT_NO_DIAL } else if (classname == QLatin1String("QDial")) { iface = new QAccessibleDial(widget); #endif #ifndef QT_NO_RUBBERBAND } else if (classname == QLatin1String("QRubberBand")) { iface = new QAccessibleWidget(widget, QAccessible::Border); #endif #if !defined(QT_NO_TEXTBROWSER) && !defined(QT_NO_CURSOR) } else if (classname == QLatin1String("QTextBrowser")) { iface = new QAccessibleTextBrowser(widget); #endif #ifndef QT_NO_SCROLLAREA } else if (classname == QLatin1String("QAbstractScrollArea")) { iface = new QAccessibleAbstractScrollArea(widget); } else if (classname == QLatin1String("QScrollArea")) { iface = new QAccessibleScrollArea(widget); #endif #ifndef QT_NO_CALENDARWIDGET } else if (classname == QLatin1String("QCalendarWidget")) { iface = new QAccessibleCalendarWidget(widget); #endif #ifndef QT_NO_DOCKWIDGET } else if (classname == QLatin1String("QDockWidget")) { iface = new QAccessibleDockWidget(widget); #endif } else if (classname == QLatin1String("QDesktopScreenWidget")) { iface = 0; } else if (classname == QLatin1String("QWidget")) { iface = new QAccessibleWidget(widget); } else if (classname == QLatin1String("QWindowContainer")) { iface = new QAccessibleWindowContainer(widget); } return iface; }
void ItemsViewDelegate::updateItemWidgets(const QList<QWidget *> widgets, const QStyleOptionViewItem &option, const QPersistentModelIndex &index) const { const KNSCore::ItemsModel *model = qobject_cast<const KNSCore::ItemsModel *>(index.model()); if (!model) { qCDebug(KNEWSTUFF) << "WARNING - INVALID MODEL!"; return; } KNSCore::EntryInternal entry = index.data(Qt::UserRole).value<KNSCore::EntryInternal>(); // setup the install button int margin = option.fontMetrics.height() / 2; int right = option.rect.width(); QToolButton *installButton = qobject_cast<QToolButton *>(widgets.at(DelegateInstallButton)); if (installButton != 0) { if (installButton->menu()) { QMenu *buttonMenu = installButton->menu(); buttonMenu->clear(); installButton->setMenu(0); buttonMenu->deleteLater(); } bool installable = false; bool enabled = true; QString text; QIcon icon; switch (entry.status()) { case Entry::Installed: text = i18n("Uninstall"); icon = m_iconDelete; break; case Entry::Updateable: text = i18n("Update"); icon = m_iconUpdate; installable = true; break; case Entry::Installing: text = i18n("Installing"); enabled = false; icon = m_iconUpdate; break; case Entry::Updating: text = i18n("Updating"); enabled = false; icon = m_iconUpdate; break; case Entry::Downloadable: text = i18n("Install"); icon = m_iconInstall; installable = true; break; case Entry::Deleted: text = i18n("Install Again"); icon = m_iconInstall; installable = true; break; default: text = i18n("Install"); } installButton->setText(text); installButton->setEnabled(enabled); installButton->setIcon(icon); if (installable && entry.downloadLinkCount() > 1) { QMenu *installMenu = new QMenu(installButton); foreach (const KNSCore::EntryInternal::DownloadLinkInformation &info, entry.downloadLinkInformationList()) { QString text = info.name; if (!info.distributionType.trimmed().isEmpty()) { text + " (" + info.distributionType.trimmed() + ')'; } QAction *installAction = installMenu->addAction(m_iconInstall, text); installAction->setData(QPoint(index.row(), info.id)); } installButton->setMenu(installMenu); } }