void SelectTaskDialog::slotAccepted() { QSettings settings; // FIXME refactor, code duplication with taskview // save user settings if ( Application::instance().state() == Connected || Application::instance().state() == Disconnecting ) { GUIState state; // selected task state.setSelectedTask( selectedTask() ); // expanded tasks TaskList tasks = MODEL.charmDataModel()->getAllTasks(); TaskIdList expandedTasks; Q_FOREACH( Task task, tasks ) { QModelIndex index( m_proxy.indexForTaskId( task.id() ) ); if ( m_ui->treeView->isExpanded( index ) ) { expandedTasks << task.id(); } }
void SelectTaskDialog::showEvent ( QShowEvent * event ) { QSettings settings; settings.beginGroup( staticMetaObject.className() ); GUIState state; state.loadFrom( settings ); QModelIndex index( m_proxy.indexForTaskId( state.selectedTask() ) ); if ( index.isValid() ) { m_ui->treeView->setCurrentIndex(index); } Q_FOREACH( const TaskId id, state.expandedTasks() ) { QModelIndex indexForId( m_proxy.indexForTaskId( id ) ); if ( indexForId.isValid() ) { m_ui->treeView->expand( indexForId ); } } QDialog::showEvent( event ); }
void TasksView::saveGuiState() { Q_ASSERT( m_treeView ); ViewFilter* filter = Application::instance().model().taskModel(); Q_ASSERT( filter ); QSettings settings; // save user settings if ( Application::instance().state() == Connected || Application::instance().state() == Disconnecting ) { GUIState state; // selected task state.setSelectedTask( selectedTask().id() ); // expanded tasks TaskList tasks = MODEL.charmDataModel()->getAllTasks(); TaskIdList expandedTasks; Q_FOREACH( const Task& task, tasks ) { QModelIndex index( filter->indexForTaskId( task.id() ) ); if ( m_treeView->isExpanded( index ) ) { expandedTasks << task.id(); } }