bool Sidebar::eventFilter(QObject *obj, QEvent *ev) { if (ev->type() == QEvent::ContextMenu) { QContextMenuEvent *e = (QContextMenuEvent *) ev; KMultiTabBarTab *bt = dynamic_cast<KMultiTabBarTab*>(obj); if (bt) { //kDebug() << "Request for popup"; m_popupButton = bt->id(); ToolView *w = m_idToWidget[m_popupButton]; if (w) { KMenu *p = new KMenu (this); if (!w->plugin.isNull()) { Kate::PluginConfigPageInterface* pcpi=dynamic_cast<Kate::PluginConfigPageInterface*>(w->plugin.data()); if (pcpi) { if (pcpi->configPages()>0) p->addAction(i18n("Configure ..."))->setData(20); } } p->addTitle(SmallIcon("view_remove"), i18n("Behavior")); p->addAction(w->persistent ? KIcon("view-restore") : KIcon("view-fullscreen"), w->persistent ? i18n("Make Non-Persistent") : i18n("Make Persistent") ) -> setData(10); p->addTitle(SmallIcon("move"), i18n("Move To")); if (position() != 0) p->addAction(KIcon("go-previous"), i18n("Left Sidebar"))->setData(0); if (position() != 1) p->addAction(KIcon("go-next"), i18n("Right Sidebar"))->setData(1); if (position() != 2) p->addAction(KIcon("go-up"), i18n("Top Sidebar"))->setData(2); if (position() != 3) p->addAction(KIcon("go-down"), i18n("Bottom Sidebar"))->setData(3); connect(p, SIGNAL(triggered(QAction*)), this, SLOT(buttonPopupActivate(QAction*))); p->exec(e->globalPos()); delete p; return true; } } }
void SystemTray::init() { ActionCollection *coll = QtUi::actionCollection("General"); _minimizeRestoreAction = new Action(tr("&Minimize"), this, this, SLOT(minimizeRestore())); #ifdef HAVE_KDE KMenu *kmenu; _trayMenu = kmenu = new KMenu(); kmenu->addTitle(_activeIcon, "Quassel IRC"); #else _trayMenu = new QMenu(associatedWidget()); #endif _trayMenu->setTitle("Quassel IRC"); #ifndef HAVE_KDE _trayMenu->setAttribute(Qt::WA_Hover); #endif _trayMenu->addAction(coll->action("ConnectCore")); _trayMenu->addAction(coll->action("DisconnectCore")); _trayMenu->addAction(coll->action("CoreInfo")); _trayMenu->addSeparator(); _trayMenu->addAction(_minimizeRestoreAction); _trayMenu->addAction(coll->action("Quit")); connect(_trayMenu, SIGNAL(aboutToShow()), SLOT(trayMenuAboutToShow())); NotificationSettings notificationSettings; notificationSettings.initAndNotify("Systray/Animate", this, SLOT(enableAnimationChanged(QVariant)), true); }
void Widget::themeMenuAboutToShow() { if ( !d->mStorageModel ) return; KMenu * menu = dynamic_cast< KMenu * >( sender() ); if ( !menu ) return; menu->clear(); menu->addTitle( i18n( "Theme" ) ); QActionGroup * grp = new QActionGroup( menu ); const QHash< QString, Theme * > & themes = Manager::instance()->themes(); QAction * act; QList< const Theme * > sortedThemes; for ( QHash< QString, Theme * >::ConstIterator ci = themes.constBegin(); ci != themes.constEnd(); ++ci ) { int idx = 0; int cnt = sortedThemes.count(); while ( idx < cnt ) { if ( sortedThemes.at( idx )->name() > ( *ci )->name() ) { sortedThemes.insert( idx, *ci ); break; } idx++; } if ( idx == cnt ) sortedThemes.append( *ci ); } for ( QList< const Theme * >::ConstIterator it = sortedThemes.constBegin(); it != sortedThemes.constEnd(); ++it ) { act = menu->addAction( ( *it )->name() ); act->setCheckable( true ); grp->addAction( act ); act->setChecked( d->mLastThemeId == ( *it )->id() ); act->setData( QVariant( ( *it )->id() ) ); connect( act, SIGNAL( triggered( bool ) ), SLOT( themeSelected( bool ) ) ); } menu->addSeparator(); act = menu->addAction( i18n( "Configure..." ) ); connect( act, SIGNAL( triggered( bool ) ), SLOT( configureThemes() ) ); }
KMenu* Contact::popupMenu() { KMenu *menu = new KMenu(); QString titleText; const QString nick = nickName(); if( nick == contactId() ) titleText = QString::fromLatin1( "%1 (%2)" ).arg( contactId(), onlineStatus().description() ); else titleText = QString::fromLatin1( "%1 <%2> (%3)" ).arg( nick, contactId(), onlineStatus().description() ); menu->addTitle( titleText ); if( metaContact() && metaContact()->isTemporary() && contactId() != account()->myself()->contactId() ) { KAction *actionAddContact = new KAction( KIcon("list-add-user"), i18n( "&Add to Your Contact List" ), menu ); connect( actionAddContact, SIGNAL(triggered(bool)), this, SLOT(slotAddContact()) ); menu->addAction(actionAddContact); menu->addSeparator(); }
void Widget::sortOrderMenuAboutToShow() { if ( !d->mAggregation ) return; KMenu * menu = dynamic_cast< KMenu * >( sender() ); if ( !menu ) return; menu->clear(); menu->addTitle( i18n( "Message Sort Order" ) ); QActionGroup * grp; QAction * act; QList< QPair< QString, int > > options; QList< QPair< QString, int > >::ConstIterator it; grp = new QActionGroup( menu ); options = SortOrder::enumerateMessageSortingOptions( d->mAggregation->threading() ); for ( it = options.constBegin(); it != options.constEnd(); ++it ) { act = menu->addAction( ( *it ).first ); act->setCheckable( true ); grp->addAction( act ); act->setChecked( d->mSortOrder.messageSorting() == ( *it ).second ); act->setData( QVariant( ( *it ).second ) ); } connect( grp, SIGNAL( triggered( QAction * ) ), SLOT( messageSortingSelected( QAction * ) ) ); options = SortOrder::enumerateMessageSortDirectionOptions( d->mSortOrder.messageSorting() ); if ( options.size() >= 2 ) { menu->addTitle( i18n( "Message Sort Direction" ) ); grp = new QActionGroup( menu ); for ( it = options.constBegin(); it != options.constEnd(); ++it ) { act = menu->addAction( ( *it ).first ); act->setCheckable( true ); grp->addAction( act ); act->setChecked( d->mSortOrder.messageSortDirection() == ( *it ).second ); act->setData( QVariant( ( *it ).second ) ); } connect( grp, SIGNAL( triggered( QAction * ) ), SLOT( messageSortDirectionSelected( QAction * ) ) ); } options = SortOrder::enumerateGroupSortingOptions( d->mAggregation->grouping() ); if ( options.size() >= 2 ) { menu->addTitle( i18n( "Group Sort Order" ) ); grp = new QActionGroup( menu ); for ( it = options.constBegin(); it != options.constEnd(); ++it ) { act = menu->addAction( ( *it ).first ); act->setCheckable( true ); grp->addAction( act ); act->setChecked( d->mSortOrder.groupSorting() == ( *it ).second ); act->setData( QVariant( ( *it ).second ) ); } connect( grp, SIGNAL( triggered( QAction * ) ), SLOT( groupSortingSelected( QAction * ) ) ); } options = SortOrder::enumerateGroupSortDirectionOptions( d->mAggregation->grouping(), d->mSortOrder.groupSorting() ); if ( options.size() >= 2 ) { menu->addTitle( i18n( "Group Sort Direction" ) ); grp = new QActionGroup( menu ); for ( it = options.constBegin(); it != options.constEnd(); ++it ) { act = menu->addAction( ( *it ).first ); act->setCheckable( true ); grp->addAction( act ); act->setChecked( d->mSortOrder.groupSortDirection() == ( *it ).second ); act->setData( QVariant( ( *it ).second ) ); } connect( grp, SIGNAL( triggered( QAction * ) ), SLOT( groupSortDirectionSelected( QAction * ) ) ); } menu->addSeparator(); act = menu->addAction( i18n( "Folder Always Uses This Sort Order" ) ); act->setCheckable( true ); act->setChecked( d->mStorageUsesPrivateSortOrder ); connect( act, SIGNAL( triggered( bool ) ), SLOT( setPrivateSortOrderForStorage() ) ); }