void TasksView::addTaskHelper( const Task& parent ) { ViewFilter* filter = Application::instance().model().taskModel(); Task task; int suggestedId = parent.isValid() ? parent.id() : 1; if ( parent.isValid() ) { task.setParent( parent.id() ); // subscribe if the parent is subscribed: task.setSubscribed( parent.subscribed() || CONFIGURATION.taskPrefilteringMode == Configuration::TaskPrefilter_SubscribedOnly || CONFIGURATION.taskPrefilteringMode == Configuration::TaskPrefilter_SubscribedAndCurrentOnly ); } // yeah, daredevil! while ( filter->taskIdExists( suggestedId ) ) ++suggestedId; TaskIdDialog dialog( filter, this ); dialog.setSuggestedId( suggestedId ); if ( dialog.exec() ) { task.setId( dialog.selectedId() ); task.setName( dialog.taskName() ); CommandAddTask* cmd = new CommandAddTask( task, this ); emit emitCommand( cmd ); if ( parent.isValid() ) { const QModelIndex parentIdx = filter->indexForTaskId( parent.id() ); m_treeView->setExpanded( parentIdx, true ); } } }
void VersionSelectDialog::loadList() { ProgressDialog *taskDlg = new ProgressDialog(this); Task *loadTask = m_vlist->getLoadTask(); loadTask->setParent(taskDlg); taskDlg->exec(loadTask); }
Task TaskEditor::getTask() const { Task newTask = m_task; newTask.setName( m_ui->lineEditName->text() ); newTask.setTrackable( m_ui->checkBoxTrackable->isChecked() ); if( m_ui->checkBoxTopLevel->isChecked() ) { newTask.setParent( 0 ); } if( m_ui->checkBoxFrom->isChecked() ) { newTask.setValidFrom( QDateTime() ); } else { newTask.setValidFrom( m_ui->dateEditFrom->dateTime() ); } if( m_ui->checkBoxUntil->isChecked() ) { newTask.setValidUntil( QDateTime() ); } else { newTask.setValidUntil( m_ui->dateEditTo->dateTime() ); } return newTask; }
TaskList XmlSerializationTests::tasksToTest() { // set up test candidates: TaskList tasks; Task task; task.setName( "A task" ); task.setId( 42 ); task.setParent( 4711 ); task.setSubscribed( true ); task.setValidFrom( QDateTime::currentDateTime() ); Task task2; task2.setName( "Another task" ); task2.setId( -1 ); task2.setParent( 1000000000 ); task2.setSubscribed( false ); task2.setValidUntil( QDateTime::currentDateTime() ); Task task3; tasks << Task() << task << task2; return tasks; }
Task Task::fromXml(const QDomElement& element, int databaseSchemaVersion) { // in case any task object creates trouble with // serialization/deserialization, add an object of it to // void XmlSerializationTests::testTaskSerialization() if ( element.tagName() != tagName() ) { throw XmlSerializationException( QObject::tr( "Task::fromXml: judging from the tag name, this is not a task tag") ); } Task task; bool ok; task.setName(element.text()); task.setId(element.attribute(TaskIdElement).toInt(&ok)); if (!ok) throw XmlSerializationException( QObject::tr( "Task::fromXml: invalid task id") ); task.setParent(element.attribute(TaskParentId).toInt(&ok)); if (!ok) throw XmlSerializationException( QObject::tr( "Task::fromXml: invalid parent task id") ); task.setSubscribed(element.attribute(TaskSubscribed).toInt(&ok) == 1); if (!ok) throw XmlSerializationException( QObject::tr( "Task::fromXml: invalid subscription setting") ); if( databaseSchemaVersion > CHARM_DATABASE_VERSION_BEFORE_TASK_EXPIRY ) { if ( element.hasAttribute( TaskValidFrom ) ) { QDateTime start = QDateTime::fromString( element.attribute( TaskValidFrom ), Qt::ISODate ); if ( !start.isValid() ) throw XmlSerializationException( QObject::tr( "Task::fromXml: invalid valid-from date" ) ); task.setValidFrom( start ); } if ( element.hasAttribute( TaskValidUntil ) ) { QDateTime end = QDateTime::fromString( element.attribute( TaskValidUntil ), Qt::ISODate ); if ( !end.isValid() ) throw XmlSerializationException( QObject::tr( "Task::fromXml: invalid valid-until date" ) ); task.setValidUntil( end ); } } if ( databaseSchemaVersion > CHARM_DATABASE_VERSION_BEFORE_TRACKABLE ) { task.setTrackable(element.attribute(TaskTrackable, QLatin1String("1")).toInt(&ok) == 1); if (!ok) throw XmlSerializationException( QObject::tr( "Task::fromXml: invalid trackable settings") ); } return task; }