| Wt examples
    3.3.0
    | 
A dialog for editing a 'file'. More...

| Public Member Functions | |
| FileEditDialog (WAbstractItemModel *model, const WModelIndex &item) | |
| Private Member Functions | |
| void | handleFinish (DialogCode result) | 
| Private Attributes | |
| WAbstractItemModel * | model_ | 
| WModelIndex | item_ | 
| WLineEdit * | nameEdit_ | 
| WLineEdit * | sizeEdit_ | 
| WComboBox * | typeEdit_ | 
| WDatePicker * | createdPicker_ | 
| WDatePicker * | modifiedPicker_ | 
A dialog for editing a 'file'.
Definition at line 78 of file TreeViewDragDrop.C.
| FileEditDialog::FileEditDialog | ( | WAbstractItemModel * | model, | 
| const WModelIndex & | item | ||
| ) |  [inline] | 
Definition at line 81 of file TreeViewDragDrop.C.
: WDialog("Edit..."), model_(model), item_(item) { int modelRow = item_.row(); resize(300, WLength::Auto); /* * Create the form widgets, and load them with data from the model. */ // name nameEdit_ = new WLineEdit(asString(model_->data(modelRow, 1))); // type typeEdit_ = new WComboBox(); typeEdit_->addItem("Document"); typeEdit_->addItem("Spreadsheet"); typeEdit_->addItem("Presentation"); typeEdit_->setCurrentIndex (typeEdit_->findText(asString(model_->data(modelRow, 2)))); // size sizeEdit_ = new WLineEdit(asString(model_->data(modelRow, 3))); sizeEdit_->setValidator (new WIntValidator(0, std::numeric_limits<int>::max(), this)); // created createdPicker_ = new WDatePicker(); createdPicker_->lineEdit()->validator()->setMandatory(true); createdPicker_->setFormat(FileModel::dateEditFormat); createdPicker_->setDate(boost::any_cast<WDate>(model_->data(modelRow, 4))); // modified modifiedPicker_ = new WDatePicker(); modifiedPicker_->lineEdit()->validator()->setMandatory(true); modifiedPicker_->setFormat(FileModel::dateEditFormat); modifiedPicker_->setDate(boost::any_cast<WDate>(model_->data(modelRow, 5))); /* * Use a grid layout for the labels and fields */ WGridLayout *layout = new WGridLayout(); WLabel *l; int row = 0; layout->addWidget(l = new WLabel("Name:"), row, 0); layout->addWidget(nameEdit_, row, 1); l->setBuddy(nameEdit_); ++row; layout->addWidget(l = new WLabel("Type:"), row, 0); layout->addWidget(typeEdit_, row, 1); l->setBuddy(typeEdit_); ++row; layout->addWidget(l = new WLabel("Size:"), row, 0); layout->addWidget(sizeEdit_, row, 1); l->setBuddy(sizeEdit_); ++row; layout->addWidget(l = new WLabel("Created:"), row, 0); layout->addWidget(createdPicker_->lineEdit(), row, 1); layout->addWidget(createdPicker_, row, 2); l->setBuddy(createdPicker_->lineEdit()); ++row; layout->addWidget(l = new WLabel("Modified:"), row, 0); layout->addWidget(modifiedPicker_->lineEdit(), row, 1); layout->addWidget(modifiedPicker_, row, 2); l->setBuddy(modifiedPicker_->lineEdit()); ++row; WPushButton *b; WContainerWidget *buttons = new WContainerWidget(); buttons->addWidget(b = new WPushButton("Save")); b->clicked().connect(this, &WDialog::accept); contents()->enterPressed().connect(this, &WDialog::accept); buttons->addWidget(b = new WPushButton("Cancel")); b->clicked().connect(this, &WDialog::reject); /* * Focus the form widget that corresonds to the selected item. */ switch (item.column()) { case 2: typeEdit_->setFocus(); break; case 3: sizeEdit_->setFocus(); break; case 4: createdPicker_->lineEdit()->setFocus(); break; case 5: modifiedPicker_->lineEdit()->setFocus(); break; default: nameEdit_->setFocus(); break; } layout->addWidget(buttons, row, 0, 0, 3, AlignCenter); layout->setColumnStretch(1, 1); contents()->setLayout(layout); finished().connect(this, &FileEditDialog::handleFinish); show(); }
| void FileEditDialog::handleFinish | ( | DialogCode | result | ) |  [inline, private] | 
Definition at line 199 of file TreeViewDragDrop.C.
  {
    if (result == WDialog::Accepted) {
      /*
       * Update the model with data from the edit widgets.
       *
       * You will want to do some validation here...
       *
       * Note that we directly update the source model to avoid
       * problems caused by the dynamic sorting of the proxy model,
       * which reorders row numbers, and would cause us to switch to editing
       * the wrong data.
       */
      WAbstractItemModel *m = model_;
      int modelRow = item_.row();
      WAbstractProxyModel *proxyModel = dynamic_cast<WAbstractProxyModel *>(m);
      if (proxyModel) {
        m = proxyModel->sourceModel();
        modelRow = proxyModel->mapToSource(item_).row();
      }
      m->setData(modelRow, 1, boost::any(nameEdit_->text()));
      m->setData(modelRow, 2, boost::any(typeEdit_->currentText()));
      m->setData(modelRow, 3, boost::any(boost::lexical_cast<int>
                                         (sizeEdit_->text().toUTF8())));
      m->setData(modelRow, 4, boost::any(createdPicker_->date()));
      m->setData(modelRow, 5, boost::any(modifiedPicker_->date()));
    }
    delete this;
  }
| WDatePicker* FileEditDialog::createdPicker_  [private] | 
Definition at line 197 of file TreeViewDragDrop.C.
| WModelIndex FileEditDialog::item_  [private] | 
Definition at line 193 of file TreeViewDragDrop.C.
| WAbstractItemModel* FileEditDialog::model_  [private] | 
Definition at line 192 of file TreeViewDragDrop.C.
| WDatePicker * FileEditDialog::modifiedPicker_  [private] | 
Definition at line 197 of file TreeViewDragDrop.C.
| WLineEdit* FileEditDialog::nameEdit_  [private] | 
Definition at line 195 of file TreeViewDragDrop.C.
| WLineEdit * FileEditDialog::sizeEdit_  [private] | 
Definition at line 195 of file TreeViewDragDrop.C.
| WComboBox* FileEditDialog::typeEdit_  [private] | 
Definition at line 196 of file TreeViewDragDrop.C.
 1.7.5.1
 1.7.5.1