本文整理汇总了C++中incidence::Ptr::summary方法的典型用法代码示例。如果您正苦于以下问题:C++ Ptr::summary方法的具体用法?C++ Ptr::summary怎么用?C++ Ptr::summary使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类incidence::Ptr
的用法示例。
在下文中一共展示了Ptr::summary方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: openIncidenceEditorThroughKOrganizer
bool AlarmDialog::openIncidenceEditorThroughKOrganizer( const Incidence::Ptr &incidence )
{
if ( !QDBusConnection::sessionBus().interface()->isServiceRegistered( "org.kde.korganizer" ) ) {
if ( KToolInvocation::startServiceByDesktopName( "korganizer", QString() ) ) {
KMessageBox::error(
this,
i18nc( "@info",
"Could not start KOrganizer so editing is not possible." ) );
return false;
}
}
org::kde::korganizer::Korganizer korganizer(
"org.kde.korganizer", "/Korganizer", QDBusConnection::sessionBus() );
kDebug() << "editing incidence " << incidence->summary();
if ( !korganizer.editIncidence( incidence->uid() ) ) {
KMessageBox::error(
this,
i18nc( "@info",
"An internal KOrganizer error occurred attempting to modify \"%1\"",
cleanSummary( incidence->summary() ) ) );
}
// get desktop # where korganizer (or kontact) runs
QString object =
QDBusConnection::sessionBus().interface()->isServiceRegistered( "org.kde.kontact" ) ?
"kontact/MainWindow_1" : "korganizer/MainWindow_1";
QDBusInterface korganizerObj( "org.kde.korganizer", '/' + object );
#ifdef Q_WS_X11
QDBusReply<int> reply = korganizerObj.call( "winId" );
if ( reply.isValid() ) {
int window = reply;
int desktop = KWindowSystem::windowInfo( window, NET::WMDesktop ).desktop();
if ( KWindowSystem::currentDesktop() == desktop ) {
KWindowSystem::minimizeWindow( winId(), false );
} else {
KWindowSystem::setCurrentDesktop( desktop );
}
KWindowSystem::activateWindow( KWindowSystem::transientFor( window ) );
}
#elif defined(Q_WS_WIN)
// WId is a typedef to a void* on windows
QDBusReply<qlonglong> reply = korganizerObj.call( "winId" );
if ( reply.isValid() ) {
qlonglong window = reply;
KWindowSystem::minimizeWindow( winId(), false );
KWindowSystem::allowExternalProcessWindowActivation();
KWindowSystem::activateWindow( reinterpret_cast<WId>(window) );
}
#else
// TODO (mac)
#endif
return true;
}
示例2: slotCalendarChanged
void AlarmDialog::slotCalendarChanged()
{
Akonadi::Item::List incidences = mCalendar->incidences();
for ( Akonadi::Item::List::ConstIterator it = incidences.constBegin();
it != incidences.constEnd(); ++it ) {
ReminderListItem *item = searchByItem( *it );
if ( item ) {
Incidence::Ptr incidence = CalendarSupport::incidence( *it );
QString displayStr;
// Yes, alarms can be empty, if someone edited the incidence and removed all alarms
if ( !incidence->alarms().isEmpty() ) {
const KDateTime dateTime = triggerDateForIncidence( incidence,
item->mRemindAt,
displayStr );
const QString summary = cleanSummary( incidence->summary() );
if ( displayStr != item->text( 1 ) || summary != item->text( 0 ) ) {
item->setText( 1, displayStr );
item->setText( 0, summary );
}
}
}
}
}
示例3: addIncidence
void AlarmDialog::addIncidence( const Akonadi::Item &incidenceitem,
const QDateTime &reminderAt,
const QString &displayText )
{
Incidence::Ptr incidence = CalendarSupport::incidence( incidenceitem );
ReminderListItem *item = searchByItem( incidenceitem );
if ( !item ) {
item = new ReminderListItem( incidenceitem, mIncidenceTree );
}
item->mNotified = false;
item->mHappening = KDateTime();
item->mRemindAt = reminderAt;
item->mTrigger = KDateTime::currentLocalDateTime();
item->mDisplayText = displayText;
item->setText( 0, cleanSummary( incidence->summary() ) );
Event::Ptr event;
Todo::Ptr todo;
QString displayStr;
const KDateTime dateTime = triggerDateForIncidence( incidence, reminderAt,
displayStr );
if ( incidence->type() == Incidence::TypeEvent ) {
item->setIcon( 0, SmallIcon( "view-calendar-day" ) );
} else if ( incidence->type() == Incidence::TypeTodo ) {
item->setIcon( 0, SmallIcon( "view-calendar-tasks" ) );
}
item->mHappening = dateTime;
item->setText( 1, displayStr );
item->setText( 2, IncidenceFormatter::dateTimeToString(
item->mTrigger, false, true, KDateTime::Spec::LocalZone() ) );
QString tip =
IncidenceFormatter::toolTipStr(
CalendarSupport::displayName( mCalendar, incidenceitem.parentCollection() ),
incidence,
item->mRemindAt.date(), true,
KDateTime::Spec::LocalZone() );
if ( !item->mDisplayText.isEmpty() ) {
tip += "<br>" + item->mDisplayText;
}
item->setToolTip( 0, tip );
item->setToolTip( 1, tip );
item->setToolTip( 2, tip );
item->setData( 0, QTreeWidgetItem::UserType, false );
mIncidenceTree->setCurrentItem( item );
showDetails();
slotSave();
}
示例4: fixEmptySummary
void Compat::fixEmptySummary( const Incidence::Ptr &incidence )
{
// some stupid vCal exporters ignore the standard and use Description
// instead of Summary for the default field. Correct for this: Copy the
// first line of the description to the summary (if summary is just one
// line, move it)
if ( incidence->summary().isEmpty() && !( incidence->description().isEmpty() ) ) {
QString oldDescription = incidence->description().trimmed();
QString newSummary( oldDescription );
newSummary.remove( QRegExp( "\n.*" ) );
incidence->setSummary( newSummary );
if ( oldDescription == newSummary ) {
incidence->setDescription( "" );
}
}
}
示例5: edit
void AlarmDialog::edit()
{
ReminderList selection = selectedItems();
if ( selection.count() != 1 ) {
return;
}
Incidence::Ptr incidence = CalendarSupport::incidence( selection.first()->mIncidence );
if ( !mCalendar->hasChangeRights( selection.first()->mIncidence ) ) {
KMessageBox::sorry(
this,
i18nc( "@info",
"\"%1\" is a read-only item so modifications are not possible.",
cleanSummary( incidence->summary() ) ) );
return;
}
#if !defined(KDEPIM_MOBILE_UI)
openIncidenceEditorNG( selection.first()->mIncidence );
#else
openIncidenceEditorThroughKOrganizer( incidence );
#endif
}
示例6: main
int main( int argc, char **argv )
{
KAboutData aboutData(
"testrecurrencenew", 0,
ki18n( "Load recurrence rules with the new class and print out debug messages" ), "0.1" );
KCmdLineArgs::init( argc, argv, &aboutData );
KCmdLineOptions options;
options.add( "verbose", ki18n( "Verbose output" ) );
options.add( "+input", ki18n( "Name of input file" ) );
options.add( "[+output]", ki18n( "optional name of output file for the recurrence dates" ) );
KCmdLineArgs::addCmdLineOptions( options );
KComponentData componentData( &aboutData );
//QCoreApplication app( KCmdLineArgs::qtArgc(), KCmdLineArgs::qtArgv() );
KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
if ( args->count() < 1 ) {
args->usage( "Wrong number of arguments." );
}
QString input = args->arg( 0 );
kDebug() << "Input file:" << input;
QTextStream *outstream;
outstream = 0;
QString fn( "" );
if ( args->count() > 1 ) {
fn = args->arg( 1 );
kDebug() << "We have a file name given:" << fn;
}
QFile outfile( fn );
if ( !fn.isEmpty() && outfile.open( QIODevice::WriteOnly ) ) {
kDebug() << "Opened output file!!!";
outstream = new QTextStream( &outfile );
}
MemoryCalendar::Ptr cal( new MemoryCalendar( KDateTime::UTC ) );
KDateTime::Spec viewSpec;
FileStorage store( cal, input );
if ( !store.load() ) return 1;
QString tz = cal->nonKDECustomProperty( "X-LibKCal-Testsuite-OutTZ" );
if ( !tz.isEmpty() ) {
viewSpec = KDateTime::Spec( KSystemTimeZones::zone( tz ) );
}
Incidence::List inc = cal->incidences();
for ( Incidence::List::Iterator it = inc.begin(); it != inc.end(); ++it ) {
Incidence::Ptr incidence = *it;
kDebug() << "*+*+*+*+*+*+*+*+*+*";
kDebug() << " ->" << incidence->summary() << "<-";
incidence->recurrence()->dump();
KDateTime dt( incidence->recurrence()->endDateTime() );
int i = 0;
if ( outstream ) {
if ( !dt.isValid() ) {
if ( viewSpec.isValid() ) {
dt = KDateTime( QDate( 2011, 1, 1 ), QTime( 0, 0, 1 ), viewSpec );
} else {
dt = KDateTime( QDate( 2011, 1, 1 ), QTime( 0, 0, 1 ) );
}
} else {
dt = dt.addYears( 2 );
}
kDebug() << "-------------------------------------------";
kDebug() << " *~*~*~*~ Starting with date:" << dumpTime( dt, viewSpec );
// Output to file for testing purposes
while ( dt.isValid() && i < 500 ) {
++i;
dt = incidence->recurrence()->getPreviousDateTime( dt );
if ( dt.isValid() ) {
(*outstream) << dumpTime( dt, viewSpec ) << endl;
}
}
} else {
if ( !dt.isValid() ) {
dt = KDateTime( QDate( 2005, 7, 31 ), QTime( 23, 59, 59 ), KDateTime::Spec::UTC() );
} else {
dt = dt.addYears( 2 );
}
incidence->recurrence()->dump();
kDebug() << "-------------------------------------------";
kDebug() << " *~*~*~*~ Starting with date:" << dumpTime( dt, viewSpec );
// Output to konsole
while ( dt.isValid() && i < 50 ) {
++i;
kDebug() << "-------------------------------------------";
dt = incidence->recurrence()->getPreviousDateTime( dt );
if ( dt.isValid() ) {
kDebug() << " *~*~*~*~ Previous date is:" << dumpTime( dt, viewSpec );
}
}
}
}
//.........这里部分代码省略.........
示例7: eventNotification
void AlarmDialog::eventNotification()
{
bool beeped = false;
bool found = false;
ReminderList list;
QTreeWidgetItemIterator it( mIncidenceTree );
while ( *it ) {
ReminderListItem *item = static_cast<ReminderListItem *>( *it );
++it;
if ( item->isDisabled() || item->mNotified ) {
//skip suspended reminders or reminders that have been notified
continue;
}
found = true;
item->mNotified = true;
Incidence::Ptr incidence = CalendarSupport::incidence( item->mIncidence );
Alarm::List alarms = incidence->alarms();
Alarm::List::ConstIterator ait;
for ( ait = alarms.constBegin(); ait != alarms.constEnd(); ++ait ) {
Alarm::Ptr alarm = *ait;
// FIXME: Check whether this should be done for all multiple alarms
if ( alarm->type() == Alarm::Procedure ) {
// FIXME: Add a message box asking whether the procedure should really be executed
kDebug() << "Starting program: '" << alarm->programFile() << "'";
QString program = alarm->programFile();
// if the program name contains spaces escape it
if ( program.contains( ' ' ) &&
!( program.startsWith( '\"' ) && program.endsWith( '\"' ) ) ) {
program = '\"' + program + '\"';
}
QProcess::startDetached( program + ' ' + alarm->programArguments() );
} else if ( alarm->type() == Alarm::Audio ) {
beeped = true;
Phonon::MediaObject *player =
Phonon::createPlayer( Phonon::NotificationCategory, alarm->audioFile() );
player->setParent( this );
connect( player, SIGNAL(finished()), player, SLOT(deleteLater()) );
player->play();
} else if ( alarm->type() == Alarm::Email ) {
QString from = CalendarSupport::KCalPrefs::instance()->email();
Identity id = KOCore::self()->identityManager()->identityForAddress( from );
QString to;
if ( alarm->mailAddresses().isEmpty() ) {
to = from;
} else {
const Person::List addresses = alarm->mailAddresses();
QStringList add;
for ( Person::List::ConstIterator it = addresses.constBegin();
it != addresses.constEnd(); ++it ) {
add << (*it)->fullName();
}
to = add.join( ", " );
}
QString subject;
Akonadi::Item parentItem = mCalendar->itemForIncidenceUid( alarm->parentUid() );
Incidence::Ptr parent = CalendarSupport::incidence( parentItem );
if ( alarm->mailSubject().isEmpty() ) {
if ( parent->summary().isEmpty() ) {
subject = i18nc( "@title", "Reminder" );
} else {
subject = i18nc( "@title", "Reminder: %1", cleanSummary( parent->summary() ) );
}
} else {
subject = i18nc( "@title", "Reminder: %1", alarm->mailSubject() );
}
QString body =
IncidenceFormatter::mailBodyStr(
parent.staticCast<IncidenceBase>(), KSystemTimeZones::local() );
if ( !alarm->mailText().isEmpty() ) {
body += '\n' + alarm->mailText();
}
//TODO: support attachments
CalendarSupport::MailClient mailer;
mailer.send( id, from, to, QString(), subject, body, true, false, QString(),
MailTransport::TransportManager::self()->defaultTransportName() );
}
}
}
if ( !beeped && found ) {
KNotification::beep();
}
}