void KOEventEditor::updateRecurrenceSummary()
{
  Event *ev =  new Event();
  fillEvent( ev );
  mGeneral->updateRecurrenceSummary( IncidenceFormatter::recurrenceString( ev ) );
  delete ev;
}
示例#2
0
bool KstEventMonitorI::newObject() {
  QString tag_name = _tagName->text();
  tag_name.replace("<New_Event>", _w->lineEditEquation->text());

  // verify that the event name is unique
  if (KstData::self()->dataTagNameNotUnique(tag_name)) {
    _tagName->setFocus();
    return false;
  }

  EventMonitorEntryPtr event = new EventMonitorEntry(tag_name);
  fillEvent(event);

  if (!event->isValid()) {
    event = 0L;

    KMessageBox::sorry(this, i18n("There is a syntax error in the equation you entered."));
    return false;
  }

  KST::dataObjectList.lock().writeLock();
  KST::dataObjectList.append(event.data());
  KST::dataObjectList.lock().unlock();

  event = 0L; // drop the reference before we update
  emit modified();
  return true;
}
示例#3
0
 //Feed bytes to this 
 void operator()( uint8_t by )
 {
     if( !m_hasBegun ) //If we haven't begun parsing an event
     {
         //if( isDelayCode(by) )   //If we read a delay code, just put it in our upcoming event
         //    m_curEvent.dt = by;
         //else
         beginNewEvent(by);
     }
     else
         fillEvent(by);
 }
bool KOEventEditor::incidenceModified()
{
  Event *newEvent = 0;
  Event *oldEvent = 0;
  bool modified;

  if ( mEvent ) { // modification
    oldEvent = mEvent;
  } else { // new one
    oldEvent = &mInitialEvent;
  }

  newEvent = oldEvent->clone();
  fillEvent( newEvent );

  modified = !( *newEvent == *oldEvent );

  delete newEvent;

  return modified;
}
void KOEventEditor::show()
{
  fillEvent( &mInitialEvent );
  KOIncidenceEditor::show();
}
void KOEventEditor::slotSaveTemplate( const QString &templateName )
{
  Event *event = new Event;
  fillEvent( event );
  saveAsTemplate( event, templateName );
}
bool KOEventEditor::processInput()
{
  if ( !validateInput() || !mChanger ) {
    return false;
  }

  QPointer<KOEditorFreeBusy> freeBusy( mFreeBusy );

  if ( mEvent ) {
    bool rc = true;
    Event *oldEvent = mEvent->clone();
    Event *event = mEvent->clone();

    fillEvent( event );

    if ( *event == *mEvent ) {
      // Don't do anything
      if ( mIsCounter ) {
        KMessageBox::information(
          this,
          i18nc( "@info",
                 "You did not modify the event so no counter proposal has "
                 "been sent to the organizer." ),
          i18nc( "@title:window", "No Changes" ) );
      }
    } else {
      fillEvent( mEvent );
      if ( mIsCounter ) {
        KOGroupware::instance()->sendCounterProposal( mCalendar, oldEvent, mEvent );
        // add dummy event at the position of the counter proposal
        Event *event = mEvent->clone();
        event->clearAttendees();
        event->setSummary(
          i18nc( "@item",
                 "My counter proposal for: %1", mEvent->summary() ) );
        rc = mChanger->addIncidence( event, this );
      } else {
        rc = mChanger->changeIncidence( oldEvent, mEvent, KOGlobals::NOTHING_MODIFIED, this );
      }
    }
    delete event;
    delete oldEvent;
    return rc;
  } else {
    mEvent = new Event;
    mEvent->setOrganizer( Person( KOPrefs::instance()->fullName(),
                          KOPrefs::instance()->email() ) );

    fillEvent( mEvent );

    if ( !mChanger->addIncidence( mEvent, this ) ) {
      delete mEvent;
      mEvent = 0;
      return false;
    }
  }

  // if "this" was deleted, freeBusy is 0 (being a guardedptr)
  if ( freeBusy ) {
    freeBusy->cancelReload();
  }

  return true;
}