Wt examples 3.3.12
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 (WObject *parent=0)
 
 WDialog (const WString &windowTitle, WObject *parent=0)
 
 ~WDialog ()
 
void setWindowTitle (const WString &title)
 
WString windowTitle () const
 
void setCaption (const WString &caption)
 
WString caption () 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())
 
virtual void positionAt (const WWidget *widget, Orientation orientation=Vertical)
 
void positionAt (const Wt::WMouseEvent &ev)
 
void raiseToFront ()
 
virtual void setMinimumSize (const WLength &width, const WLength &height)
 
virtual void setMaximumSize (const WLength &width, const WLength &height)
 
JSignal< int, int > & resized ()
 
JSignal< int, int > & moved ()
 
EventSignal< WKeyEvent > & keyWentDown ()
 
EventSignal< WKeyEvent > & keyPressed ()
 
EventSignal< WKeyEvent > & keyWentUp ()
 
EventSignalenterPressed ()
 
EventSignalescapePressed ()
 
EventSignal< WTouchEvent > & touchStarted ()
 
EventSignal< WTouchEvent > & touchEnded ()
 
EventSignal< WTouchEvent > & touchMoved ()
 
- Public Member Functions inherited from Wt::WPopupWidget
 WPopupWidget (WWidget *impl, WObject *parent=0)
 
virtual ~WPopupWidget ()
 
void setAnchorWidget (WWidget *widget, Orientation orientation=Vertical)
 
Orientation orientation () const
 
void setTransient (bool transient, int autoHideDelay=0)
 
bool isTransient () const
 
int autoHideDelay () const
 
void setDeleteWhenHidden (bool enabled)
 
bool isDeleteWhenHidden () const
 
Signalhidden ()
 
Signalshown ()
 
- Public Member Functions inherited from Wt::WCompositeWidget
 WCompositeWidget (WContainerWidget *parent=0)
 
 WCompositeWidget (WWidget *implementation, WContainerWidget *parent)
 
virtual void setObjectName (const std::string &name)
 
virtual std::string objectName () const
 
virtual const std::string id () const
 
virtual void setPositionScheme (PositionScheme scheme)
 
virtual PositionScheme positionScheme () const
 
virtual void setOffsets (const WLength &offset, WFlags< Side > sides=All)
 
virtual WLength offset (Side s) const
 
virtual void resize (const WLength &width, const WLength &height)
 
virtual WLength width () const
 
virtual WLength height () const
 
virtual WLength minimumWidth () const
 
virtual WLength minimumHeight () const
 
virtual WLength maximumWidth () const
 
virtual WLength maximumHeight () const
 
virtual void setLineHeight (const WLength &height)
 
virtual WLength lineHeight () const
 
virtual void setFloatSide (Side s)
 
virtual Side floatSide () const
 
virtual void setClearSides (WFlags< Side > sides)
 
virtual WFlags< SideclearSides () const
 
virtual void setMargin (const WLength &margin, WFlags< Side > sides=All)
 
virtual WLength margin (Side side) const
 
virtual void setHiddenKeepsGeometry (bool enabled)
 
virtual bool hiddenKeepsGeometry () const
 
virtual bool isHidden () const
 
virtual bool isVisible () const
 
virtual void setDisabled (bool disabled)
 
virtual bool isDisabled () const
 
virtual bool isEnabled () const
 
virtual void setPopup (bool popup)
 
virtual bool isPopup () const
 
virtual void setInline (bool isInline)
 
virtual bool isInline () const
 
virtual void setDecorationStyle (const WCssDecorationStyle &style)
 
virtual WCssDecorationStyledecorationStyle ()
 
virtual void setStyleClass (const WString &styleClass)
 
virtual WString styleClass () const
 
virtual void addStyleClass (const WString &styleClass, bool force=false)
 
virtual void removeStyleClass (const WString &styleClass, bool force=false)
 
virtual bool hasStyleClass (const WString &styleClass) const
 
virtual void setVerticalAlignment (AlignmentFlag alignment, const WLength &length=WLength::Auto)
 
virtual AlignmentFlag verticalAlignment () const
 
virtual WLength verticalAlignmentLength () const
 
virtual void setToolTip (const WString &text, TextFormat textFormat=PlainText)
 
virtual WString toolTip () const
 
virtual void setDeferredToolTip (bool enable, TextFormat textFormat=PlainText)
 
virtual void refresh ()
 
virtual void setAttributeValue (const std::string &name, const WString &value)
 
virtual WString attributeValue (const std::string &name) const
 
virtual void setJavaScriptMember (const std::string &name, const std::string &value)
 
virtual std::string javaScriptMember (const std::string &name) const
 
virtual void callJavaScriptMember (const std::string &name, const std::string &args)
 
virtual void load ()
 
virtual bool loaded () const
 
virtual void setCanReceiveFocus (bool enabled)
 
virtual bool canReceiveFocus () const
 
virtual void setFocus (bool focus)
 
virtual bool setFirstFocus ()
 
virtual bool hasFocus () const
 
virtual void setTabIndex (int index)
 
virtual int tabIndex () const
 
virtual void setId (const std::string &id)
 
virtual WWidgetfind (const std::string &name)
 
virtual WWidgetfindById (const std::string &name)
 
virtual void setSelectable (bool selectable)
 
virtual void doJavaScript (const std::string &js)
 
virtual void propagateSetEnabled (bool enabled)
 
virtual bool scrollVisibilityEnabled () const WT_CXX11ONLY(final override)
 
virtual void setScrollVisibilityEnabled (bool enabled) WT_CXX11ONLY(final override)
 
virtual int scrollVisibilityMargin () const WT_CXX11ONLY(final override)
 
virtual void setScrollVisibilityMargin (int margin) WT_CXX11ONLY(final override)
 
virtual Signal< bool > & scrollVisibilityChanged () WT_CXX11ONLY(final override)
 
virtual bool isScrollVisible () const WT_CXX11ONLY(final override)
 
virtual void setThemeStyleEnabled (bool enabled)
 
virtual bool isThemeStyleEnabled () const
 
virtual void removeChild (WObject *child)
 
void setFocus ()
 
virtual void setFocus (bool focus)=0
 
- Public Member Functions inherited from Wt::WWidget
virtual ~WWidget ()
 
WWidgetparent () const
 
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
 WObject (WObject *parent=0)
 
virtual ~WObject ()
 
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)
 
void addChild (WObject *child)
 
const std::vector< WObject * > & children () const
 
WObjectparent () const
 

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
enum  DialogCode
 
- Public Types inherited from Wt::WObject
typedef void(WObject::* Method) ()
 
- Static Public Member Functions inherited from Wt::WWidget
static WString tr (const char *key)
 
- Public Attributes inherited from Wt::WDialog
 Rejected
 
 Accepted
 
- Protected Member Functions inherited from Wt::WDialog
virtual void render (WFlags< RenderFlag > flags)
 
virtual void onPathChange ()
 
- Protected Member Functions inherited from Wt::WCompositeWidget
virtual void enableAjax ()
 
void setImplementation (WWidget *widget)
 
WWidgetimplementation ()
 
virtual int boxPadding (Orientation orientation) const
 
virtual int boxBorder (Orientation orientation) const
 
- Protected Member Functions inherited from Wt::WWidget
void setLayoutSizeAware (bool sizeAware)
 
virtual void layoutSizeChanged (int width, int height)
 
 WWidget (WContainerWidget *parent=0)
 
virtual void dropEvent (WDropEvent dropEvent)
 
void scheduleRender (WFlags< RepaintFlag > flags=0)
 
virtual WStatelessSlot * getStateless (Method method)
 
- Static Protected Member Functions inherited from Wt::WObject
static WObjectsender ()
 

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
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
114 createdPicker_->setDate(boost::any_cast<WDate>(model_->data(modelRow, 4)));
115
116 // modified
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);
133 ++row;
134
135 layout->addWidget(l = new WLabel("Type:"), row, 0);
136 layout->addWidget(typeEdit_, row, 1);
138 ++row;
139
140 layout->addWidget(l = new WLabel("Size:"), row, 0);
141 layout->addWidget(sizeEdit_, row, 1);
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);
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 handleFinish(DialogCode result)
WLineEdit * nameEdit_
WAbstractItemModel * model_
WLineEdit * sizeEdit_
WDatePicker * createdPicker_
WDatePicker * modifiedPicker_
WComboBox * typeEdit_
static WString dateEditFormat
Date edit format.
Wt::Signals::connection connect(const F &function)
virtual Wt::Signals::connection connect(WObject *target, WObject::Method method)
virtual boost::any data(const WModelIndex &index, int role=DisplayRole) const=0
void setCurrentIndex(int index)
int findText(const WString &text, WFlags< MatchFlag > flags=MatchExactly|MatchCaseSensitive)
void addItem(const WString &text)
virtual void resize(const WLength &width, const WLength &height)
void setLayout(WLayout *layout)
virtual void addWidget(WWidget *widget)
void setFormat(const WString &format)
void setDate(const WDate &date)
WLineEdit * lineEdit() const
Signal< DialogCode > & finished()
WContainerWidget * contents() const
virtual void accept()
virtual void reject()
virtual WValidator * validator() const
void setValidator(WValidator *validator)
void setColumnStretch(int column, int stretch)
void addWidget(WWidget *widget, int row, int column, WFlags< AlignmentFlag > alignment=0)
EventSignal & enterPressed()
EventSignal< WMouseEvent > & clicked()
void setBuddy(WFormWidget *buddy)
static WLength Auto
int row() const
int column() const
void setMandatory(bool how)
virtual void setFocus(bool focus)
WString asString(const boost::any &v, const WString &formatString=WString())
AlignCenter

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 }
virtual bool setData(const WModelIndex &index, const boost::any &value, int role=EditRole)
virtual WModelIndex mapToSource(const WModelIndex &proxyIndex) const=0
WAbstractItemModel * sourceModel() const
const WString currentText() const
WDate date() const
DialogCode result() const
const WString & text() const
std::string toUTF8() 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 Fri May 17 2024 for the C++ Web Toolkit (Wt) by doxygen 1.9.8