/****************************************************************************** * Called when the New From Template action is clicked. * Creates a popup menu listing all alarm templates, in sorted name order. */ void TemplateMenuAction::slotInitMenu() { KMenu* m = menu(); m->clear(); mOriginalTexts.clear(); // Compile a sorted list of template names int i, end; QStringList sorted; KAEvent::List templates = KAlarm::templateList(); for (i = 0, end = templates.count(); i < end; ++i) { QString name = templates[i]->templateName(); int j = 0; for (int jend = sorted.count(); j < jend && QString::localeAwareCompare(name, sorted[j]) > 0; ++j) ; sorted.insert(j, name); } for (i = 0, end = sorted.count(); i < end; ++i) { QAction* act = m->addAction(sorted[i]); mOriginalTexts[act] = sorted[i]; // keep original text, since action text has shortcuts added } }
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() ) ); }
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() ) ); }