Wt examples  3.7.1
Public Member Functions | Private Member Functions | Private Attributes | List of all members
FileEditDialog Class Reference

A dialog for editing a 'file'. More...

Inheritance diagram for FileEditDialog:
Inheritance graph
[legend]

Public Member Functions

 FileEditDialog (WAbstractItemModel *model, const WModelIndex &item)
 
- Public Member Functions inherited from Wt::WDialog
 WDialog ()
 
 WDialog (const WString &windowTitle)
 
 ~WDialog ()
 
void setWindowTitle (const WString &title)
 
WString windowTitle () const
 
void setTitleBarEnabled (bool enabled)
 
bool isTitleBarEnabled () const
 
WContainerWidgettitleBar () const
 
WContainerWidgetcontents () const
 
WContainerWidgetfooter () const
 
DialogCode exec (const WAnimation &animation=WAnimation())
 
virtual void done (DialogCode r)
 
virtual void accept ()
 
virtual void reject ()
 
void rejectWhenEscapePressed (bool enable=true)
 
Signal< DialogCode > & finished ()
 
DialogCode result () const
 
void setModal (bool modal)
 
bool isModal () const
 
void setResizable (bool resizable)
 
bool resizable () const
 
void setMovable (bool movable)
 
bool movable () const
 
void setClosable (bool closable)
 
bool closable () const
 
void setAutoFocus (bool enable)
 
virtual void setHidden (bool hidden, const WAnimation &animation=WAnimation()) override
 
virtual void positionAt (const WWidget *widget, Orientation orientation=Orientation::Vertical) override
 
void positionAt (const Wt::WMouseEvent &ev)
 
void raiseToFront ()
 
virtual void setMinimumSize (const WLength &width, const WLength &height) override
 
virtual void setMaximumSize (const WLength &width, const WLength &height) override
 
JSignal< int, int > & resized ()
 
JSignal< int, int > & moved ()
 
EventSignal< WTouchEvent > & touchStarted ()
 
EventSignal< WTouchEvent > & touchEnded ()
 
EventSignal< WTouchEvent > & touchMoved ()
 
EventSignal< WKeyEvent > & keyWentDown ()
 
EventSignal< WKeyEvent > & keyPressed ()
 
EventSignal< WKeyEvent > & keyWentUp ()
 
EventSignalenterPressed ()
 
EventSignalescapePressed ()
 
EventSignal< WKeyEvent > & keyWentDown ()
 
EventSignal< WKeyEvent > & keyPressed ()
 
EventSignal< WKeyEvent > & keyWentUp ()
 
EventSignalenterPressed ()
 
EventSignalescapePressed ()
 
- Public Member Functions inherited from Wt::WPopupWidget
 WPopupWidget (std::unique_ptr< WWidget > impl)
 
virtual ~WPopupWidget ()
 
void setAnchorWidget (WWidget *widget, Orientation orientation=Orientation::Vertical)
 
Orientation orientation () const
 
void setTransient (bool transient, int autoHideDelay=0)
 
bool isTransient () const
 
int autoHideDelay () const
 
Signalhidden ()
 
Signalshown ()
 
- Public Member Functions inherited from Wt::WCompositeWidget
 WCompositeWidget ()
 
 WCompositeWidget (std::unique_ptr< WWidget > implementation)
 
virtual std::vector< WWidget *> children () const override
 
virtual std::unique_ptr< WWidgetremoveWidget (WWidget *widget) override
 
virtual void setObjectName (const std::string &name) override
 
virtual std::string objectName () const override
 
virtual const std::string id () const override
 
virtual void setPositionScheme (PositionScheme scheme) override
 
virtual PositionScheme positionScheme () const override
 
virtual void setOffsets (const WLength &offset, WFlags< Side > sides=AllSides) override
 
virtual WLength offset (Side s) const override
 
virtual void resize (const WLength &width, const WLength &height) override
 
virtual WLength width () const override
 
virtual WLength height () const override
 
virtual WLength minimumWidth () const override
 
virtual WLength minimumHeight () const override
 
virtual WLength maximumWidth () const override
 
virtual WLength maximumHeight () const override
 
virtual void setLineHeight (const WLength &height) override
 
virtual WLength lineHeight () const override
 
virtual void setFloatSide (Side s) override
 
virtual Side floatSide () const override
 
virtual void setClearSides (WFlags< Side > sides) override
 
virtual WFlags< SideclearSides () const override
 
virtual void setMargin (const WLength &margin, WFlags< Side > sides=AllSides) override
 
virtual WLength margin (Side side) const override
 
virtual void setHiddenKeepsGeometry (bool enabled) override
 
virtual bool hiddenKeepsGeometry () const override
 
virtual bool isHidden () const override
 
virtual bool isVisible () const override
 
virtual void setDisabled (bool disabled) override
 
virtual bool isDisabled () const override
 
virtual bool isEnabled () const override
 
virtual void setPopup (bool popup) override
 
virtual bool isPopup () const override
 
virtual void setInline (bool isInline) override
 
virtual bool isInline () const override
 
virtual void setDecorationStyle (const WCssDecorationStyle &style) override
 
virtual WCssDecorationStyledecorationStyle () override
 
virtual void setStyleClass (const WString &styleClass) override
 
virtual WString styleClass () const override
 
virtual void addStyleClass (const WString &styleClass, bool force=false) override
 
virtual void removeStyleClass (const WString &styleClass, bool force=false) override
 
virtual bool hasStyleClass (const WString &styleClass) const override
 
virtual void setVerticalAlignment (AlignmentFlag alignment, const WLength &length=WLength::Auto) override
 
virtual AlignmentFlag verticalAlignment () const override
 
virtual WLength verticalAlignmentLength () const override
 
virtual void setToolTip (const WString &text, TextFormat textFormat=TextFormat::Plain) override
 
virtual WString toolTip () const override
 
virtual void setDeferredToolTip (bool enable, TextFormat textFormat=TextFormat::Plain) override
 
virtual void refresh () override
 
virtual void setAttributeValue (const std::string &name, const WString &value) override
 
virtual WString attributeValue (const std::string &name) const override
 
virtual void setJavaScriptMember (const std::string &name, const std::string &value) override
 
virtual std::string javaScriptMember (const std::string &name) const override
 
virtual void callJavaScriptMember (const std::string &name, const std::string &args) override
 
virtual void load () override
 
virtual bool loaded () const override
 
virtual void setCanReceiveFocus (bool enabled) override
 
virtual bool canReceiveFocus () const override
 
virtual void setFocus (bool focus) override
 
virtual bool setFirstFocus () override
 
virtual bool hasFocus () const override
 
virtual void setTabIndex (int index) override
 
virtual int tabIndex () const override
 
virtual void setId (const std::string &id) override
 
virtual WWidgetfind (const std::string &name) override
 
virtual WWidgetfindById (const std::string &name) override
 
virtual void setSelectable (bool selectable) override
 
virtual void doJavaScript (const std::string &js) override
 
virtual void propagateSetEnabled (bool enabled) override
 
virtual bool scrollVisibilityEnabled () const final override
 
virtual void setScrollVisibilityEnabled (bool enabled) final override
 
virtual int scrollVisibilityMargin () const final override
 
virtual void setScrollVisibilityMargin (int margin) final override
 
virtual Signal< bool > & scrollVisibilityChanged () final override
 
virtual bool isScrollVisible () const final override
 
virtual void setThemeStyleEnabled (bool enabled) final override
 
virtual bool isThemeStyleEnabled () const final override
 
- Public Member Functions inherited from Wt::WWidget
virtual ~WWidget ()
 
WWidgetparent () const
 
std::unique_ptr< Widget > removeWidget (Widget *widget)
 
std::unique_ptr< WWidgetremoveFromParent ()
 
void setWidth (const WLength &width)
 
void setHeight (const WLength &height)
 
virtual void toggleStyleClass (const WString &styleClass, bool add, bool force=false)
 
std::string jsRef () const
 
void setFocus ()
 
virtual void acceptDrops (const std::string &mimeType, const WString &hoverStyleClass=WString())
 
virtual void stopAcceptDrops (const std::string &mimeType)
 
virtual void htmlText (std::ostream &out)
 
bool isRendered () const
 
void hide ()
 
void animateHide (const WAnimation &animation)
 
void show ()
 
void animateShow (const WAnimation &animation)
 
void enable ()
 
void disable ()
 
bool layoutSizeAware () const
 
- Public Member Functions inherited from Wt::WObject
void addChild (std::unique_ptr< WObject > child)
 
Child * addChild (std::unique_ptr< Child > child)
 
std::unique_ptr< WObjectremoveChild (WObject *child)
 
std::unique_ptr< Child > removeChild (Child *child)
 
void resetLearnedSlots ()
 
void resetLearnedSlot (void(T::*method)())
 
WStatelessSlot * implementStateless (void(T::*method)())
 
WStatelessSlot * implementStateless (void(T::*method)(), void(T::*undoMethod)())
 
void isNotStateless ()
 
WStatelessSlot * implementJavaScript (void(T::*method)(), const std::string &jsCode)
 
- Public Member Functions inherited from Wt::Core::observable
 observable () noexcept
 
virtual ~observable ()
 
auto bindSafe (void(C::*method)(Args...)) noexcept
 
auto bindSafe (void(C::*method)(Args...) const) const noexcept
 
auto bindSafe (const Function &function) noexcept
 

Private Member Functions

void handleFinish (DialogCode result)
 

Private Attributes

WAbstractItemModelmodel_
 
WModelIndex item_
 
WLineEditnameEdit_
 
WLineEditsizeEdit_
 
WComboBoxtypeEdit_
 
WDatePickercreatedPicker_
 
WDatePickermodifiedPicker_
 

Additional Inherited Members

- Public Types inherited from Wt::WDialog
typedef DialogCode Code
 
- Public Types inherited from Wt::WObject
typedef void(WObject::* Method) ()
 
- Static Public Member Functions inherited from Wt::WWidget
static WString tr (const char *key)
 
- Protected Member Functions inherited from Wt::WDialog
virtual void render (WFlags< RenderFlag > flags) override
 
- Protected Member Functions inherited from Wt::WCompositeWidget
virtual void enableAjax () override
 
void setImplementation (std::unique_ptr< WWidget > widget)
 
Widget * setImplementation (std::unique_ptr< Widget > widget)
 
W * setNewImplementation (Args &&... args)
 
WWidgetimplementation ()
 
virtual int boxPadding (Orientation orientation) const override
 
virtual int boxBorder (Orientation orientation) const override
 
- Protected Member Functions inherited from Wt::WWidget
void setLayoutSizeAware (bool sizeAware)
 
virtual void layoutSizeChanged (int width, int height)
 
 WWidget ()
 
virtual void dropEvent (WDropEvent dropEvent)
 
void scheduleRender (WFlags< RepaintFlag > flags=None)
 
virtual WStatelessSlot * getStateless (Method method) override
 

Detailed Description

A dialog for editing a 'file'.

Definition at line 78 of file TreeViewDragDrop.C.

Constructor & Destructor Documentation

◆ FileEditDialog()

FileEditDialog::FileEditDialog ( WAbstractItemModel model,
const WModelIndex item 
)
inline

Definition at line 81 of file TreeViewDragDrop.C.

82  : WDialog("Edit..."),
83  model_(model),
84  item_(item)
85  {
86  int modelRow = item_.row();
87 
88  resize(300, WLength::Auto);
89 
90  /*
91  * Create the form widgets, and load them with data from the model.
92  */
93 
94  // name
95  nameEdit_ = new WLineEdit(asString(model_->data(modelRow, 1)));
96 
97  // type
98  typeEdit_ = new WComboBox();
99  typeEdit_->addItem("Document");
100  typeEdit_->addItem("Spreadsheet");
101  typeEdit_->addItem("Presentation");
103  (typeEdit_->findText(asString(model_->data(modelRow, 2))));
104 
105  // size
106  sizeEdit_ = new WLineEdit(asString(model_->data(modelRow, 3)));
108  (new WIntValidator(0, std::numeric_limits<int>::max(), this));
109 
110  // created
111  createdPicker_ = new WDatePicker();
112  createdPicker_->lineEdit()->validator()->setMandatory(true);
114  createdPicker_->setDate(boost::any_cast<WDate>(model_->data(modelRow, 4)));
115 
116  // modified
118  modifiedPicker_->lineEdit()->validator()->setMandatory(true);
120  modifiedPicker_->setDate(boost::any_cast<WDate>(model_->data(modelRow, 5)));
121 
122  /*
123  * Use a grid layout for the labels and fields
124  */
125  WGridLayout *layout = new WGridLayout();
126 
127  WLabel *l;
128  int row = 0;
129 
130  layout->addWidget(l = new WLabel("Name:"), row, 0);
131  layout->addWidget(nameEdit_, row, 1);
132  l->setBuddy(nameEdit_);
133  ++row;
134 
135  layout->addWidget(l = new WLabel("Type:"), row, 0);
136  layout->addWidget(typeEdit_, row, 1);
137  l->setBuddy(typeEdit_);
138  ++row;
139 
140  layout->addWidget(l = new WLabel("Size:"), row, 0);
141  layout->addWidget(sizeEdit_, row, 1);
142  l->setBuddy(sizeEdit_);
143  ++row;
144 
145  layout->addWidget(l = new WLabel("Created:"), row, 0);
146  layout->addWidget(createdPicker_->lineEdit(), row, 1);
147  layout->addWidget(createdPicker_, row, 2);
149  ++row;
150 
151  layout->addWidget(l = new WLabel("Modified:"), row, 0);
152  layout->addWidget(modifiedPicker_->lineEdit(), row, 1);
153  layout->addWidget(modifiedPicker_, row, 2);
155  ++row;
156 
157  WPushButton *b;
158  WContainerWidget *buttons = new WContainerWidget();
159  buttons->addWidget(b = new WPushButton("Save"));
160  b->clicked().connect(this, &WDialog::accept);
161  contents()->enterPressed().connect(this, &WDialog::accept);
162  buttons->addWidget(b = new WPushButton("Cancel"));
163  b->clicked().connect(this, &WDialog::reject);
164 
165  /*
166  * Focus the form widget that corresonds to the selected item.
167  */
168  switch (item.column()) {
169  case 2:
170  typeEdit_->setFocus(); break;
171  case 3:
172  sizeEdit_->setFocus(); break;
173  case 4:
174  createdPicker_->lineEdit()->setFocus(); break;
175  case 5:
176  modifiedPicker_->lineEdit()->setFocus(); break;
177  default:
178  nameEdit_->setFocus(); break;
179  }
180 
181  layout->addWidget(buttons, row, 0, 0, 3, AlignCenter);
182  layout->setColumnStretch(1, 1);
183 
184  contents()->setLayout(layout);
185 
187 
188  show();
189  }
void setLayout(std::unique_ptr< WLayout > layout)
static WString dateEditFormat
Date edit format.
void handleFinish(DialogCode result)
WLineEdit * sizeEdit_
virtual std::shared_ptr< WValidator > validator() const
void setColumnStretch(int column, int stretch)
void addWidget(std::unique_ptr< WWidget > widget, int row, int column, WFlags< AlignmentFlag > alignment)
EventSignal< WMouseEvent > & clicked()
WDatePicker * createdPicker_
void addItem(const WString &text)
void setDate(const WDate &date)
WModelIndex item_
int row() const
void setBuddy(WFormWidget *buddy)
WDatePicker * modifiedPicker_
void setValidator(const std::shared_ptr< WValidator > &validator)
void setCurrentIndex(int index)
WString asString(const cpp17::any &v, const WString &formatString=WString())
int findText(const WString &text, WFlags< MatchFlag > flags=MatchFlag::Exactly|MatchFlag::CaseSensitive) const
WAbstractItemModel * model_
virtual cpp17::any data(const WModelIndex &index, ItemDataRole role=ItemDataRole::Display) const=0
virtual void setFocus(bool focus) override
void setFormat(const WString &format)
EventSignal & enterPressed()
virtual void resize(const WLength &width, const WLength &height) override
Signal< DialogCode > & finished()
WLineEdit * nameEdit_
Wt::Signals::connection connect(F function)
virtual Wt::Signals::connection connect(WObject *target, WObject::Method method) override
WComboBox * typeEdit_
int column() const
virtual void addWidget(std::unique_ptr< WWidget > widget)
WLineEdit * lineEdit() const
WContainerWidget * contents() const

Member Function Documentation

◆ handleFinish()

void FileEditDialog::handleFinish ( DialogCode  result)
inlineprivate

Definition at line 199 of file TreeViewDragDrop.C.

200  {
201  if (result == WDialog::Accepted) {
202  /*
203  * Update the model with data from the edit widgets.
204  *
205  * You will want to do some validation here...
206  *
207  * Note that we directly update the source model to avoid
208  * problems caused by the dynamic sorting of the proxy model,
209  * which reorders row numbers, and would cause us to switch to editing
210  * the wrong data.
211  */
213  int modelRow = item_.row();
214 
215  WAbstractProxyModel *proxyModel = dynamic_cast<WAbstractProxyModel *>(m);
216  if (proxyModel) {
217  m = proxyModel->sourceModel();
218  modelRow = proxyModel->mapToSource(item_).row();
219  }
220 
221  m->setData(modelRow, 1, boost::any(nameEdit_->text()));
222  m->setData(modelRow, 2, boost::any(typeEdit_->currentText()));
223  m->setData(modelRow, 3, boost::any(boost::lexical_cast<int>
224  (sizeEdit_->text().toUTF8())));
225  m->setData(modelRow, 4, boost::any(createdPicker_->date()));
226  m->setData(modelRow, 5, boost::any(modifiedPicker_->date()));
227  }
228 
229  delete this;
230  }
const WString & text() const
WLineEdit * sizeEdit_
WDatePicker * createdPicker_
const WString currentText() const
WModelIndex item_
virtual bool setData(const WModelIndex &index, const cpp17::any &value, ItemDataRole role=ItemDataRole::Edit)
int row() const
std::shared_ptr< WAbstractItemModel > sourceModel() const
std::string toUTF8() const
WDatePicker * modifiedPicker_
DialogCode result() const
WAbstractItemModel * model_
WLineEdit * nameEdit_
WComboBox * typeEdit_
virtual WModelIndex mapToSource(const WModelIndex &proxyIndex) const=0
WDate date() const

Member Data Documentation

◆ createdPicker_

WDatePicker* FileEditDialog::createdPicker_
private

Definition at line 197 of file TreeViewDragDrop.C.

◆ item_

WModelIndex FileEditDialog::item_
private

Definition at line 193 of file TreeViewDragDrop.C.

◆ model_

WAbstractItemModel* FileEditDialog::model_
private

Definition at line 192 of file TreeViewDragDrop.C.

◆ modifiedPicker_

WDatePicker * FileEditDialog::modifiedPicker_
private

Definition at line 197 of file TreeViewDragDrop.C.

◆ nameEdit_

WLineEdit* FileEditDialog::nameEdit_
private

Definition at line 195 of file TreeViewDragDrop.C.

◆ sizeEdit_

WLineEdit * FileEditDialog::sizeEdit_
private

Definition at line 195 of file TreeViewDragDrop.C.

◆ typeEdit_

WComboBox* FileEditDialog::typeEdit_
private

Definition at line 196 of file TreeViewDragDrop.C.


The documentation for this class was generated from the following file:

Generated on Tue Dec 15 2020 for the C++ Web Toolkit (Wt) by doxygen 1.8.13