EventSelectorDialog::EventSelectorDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f) { QWidget *mainWidget = new QWidget(this); QVBoxLayout *mainLayout = new QVBoxLayout; setLayout(mainLayout); mainLayout->addWidget(mainWidget); QHBoxLayout *layout = new QHBoxLayout(mainWidget); m_view = new QTreeView; layout->addWidget(m_view); QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); QPushButton *okButton = buttonBox->button(QDialogButtonBox::Ok); okButton->setDefault(true); okButton->setShortcut(Qt::CTRL | Qt::Key_Return); connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept())); connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject())); mainLayout->addWidget(mainWidget); mainLayout->addWidget(buttonBox); ChangeRecorder *recorder = new ChangeRecorder; recorder->setMimeTypeMonitored(KCalCore::Event::eventMimeType()); recorder->itemFetchScope().fetchFullPayload(true); MixedTreeModel *model = new MixedTreeModel(recorder); model->setCollectionFetchStrategy(MixedTreeModel::InvisibleCollectionFetch); m_view->setModel(model); }
void EntityTreeModelFactory::collectionsFetched(const Akonadi::Collection::List& list) { QObject *job = sender(); if (!job) return; QString wantedRemoteId = job->property(WANTED_REMOTE_ID).toString(); if (!wantedRemoteId.isEmpty()) { foreach(const Collection &col, list) { if (col.remoteId() == wantedRemoteId) { ChangeRecorder *changeRecorder = new ChangeRecorder(this); changeRecorder->setCollectionMonitored(col, true); changeRecorder->fetchCollection(true); changeRecorder->setAllMonitored(true); changeRecorder->itemFetchScope().fetchFullPayload(); EntityTreeModel *etm = getModel(changeRecorder, parent()); emit modelCreated(etm); return; } } return; }