Exemplo n.º 1
0
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;
  }