Wt examples  4.10.4
Public Member Functions | Static Public Attributes | Protected Member Functions | List of all members
FolderView Class Reference

A specialized treeview that supports a custom drop event. More...

#include <FolderView.h>

Inheritance diagram for FolderView:
[legend]

Public Member Functions

 FolderView ()
 Constructor. More...
 
- Public Member Functions inherited from Wt::WTreeView
 WTreeView ()
 
void setExpanded (const WModelIndex &, bool expanded)
 
bool isExpanded (const WModelIndex &index) const
 
void collapse (const WModelIndex &index)
 
void collapseAll ()
 
void expand (const WModelIndex &index)
 
void expandToDepth (int depth)
 
void setRootIsDecorated (bool show)
 
bool rootIsDecorated () const
 
virtual void resize (const WLength &width, const WLength &height) override
 
Signal< WModelIndex > & collapsed ()
 
Signal< WModelIndex > & expanded ()
 
virtual WWidgetitemWidget (const WModelIndex &index) const override
 
virtual void setModel (const std::shared_ptr< WAbstractItemModel > &model) override
 
virtual void setColumnWidth (int column, const WLength &width) override
 
virtual void setAlternatingRowColors (bool enable) override
 
virtual void setRowHeight (const WLength &rowHeight) override
 
virtual void setHeaderHeight (const WLength &height) override
 
virtual void setColumnHidden (int column, bool hidden) override
 
virtual void setRowHeaderCount (int count) override
 
virtual int pageCount () const override
 
virtual int pageSize () const override
 
virtual int currentPage () const override
 
virtual void setCurrentPage (int page) override
 
virtual void scrollTo (const WModelIndex &index, ScrollHint hint=ScrollHint::EnsureVisible) override
 
virtual EventSignal< WScrollEvent > & scrolled () override
 
virtual void setId (const std::string &id) override
 
virtual void setHeaderHeight (const WLength &height)
 
- Public Member Functions inherited from Wt::WAbstractItemView
std::shared_ptr< WAbstractItemModelmodel () const
 
void setRootIndex (const WModelIndex &rootIndex)
 
const WModelIndexrootIndex () const
 
void setItemDelegate (const std::shared_ptr< WAbstractItemDelegate > &delegate)
 
std::shared_ptr< WAbstractItemDelegateitemDelegate () const
 
void setItemDelegateForColumn (int column, const std::shared_ptr< WAbstractItemDelegate > &delegate)
 
std::shared_ptr< WAbstractItemDelegateitemDelegateForColumn (int column) const
 
std::shared_ptr< WAbstractItemDelegateitemDelegate (const WModelIndex &index) const
 
std::shared_ptr< WAbstractItemDelegateitemDelegate (int column) const
 
void setHeaderItemDelegate (const std::shared_ptr< WAbstractItemDelegate > &delegate)
 
std::shared_ptr< WAbstractItemDelegateheaderItemDelegate () const
 
virtual void setColumnAlignment (int column, AlignmentFlag alignment)
 
virtual AlignmentFlag columnAlignment (int column) const
 
virtual void setHeaderAlignment (int column, WFlags< AlignmentFlag > alignment)
 
AlignmentFlag horizontalHeaderAlignment (int column) const
 
AlignmentFlag verticalHeaderAlignment (int column) const
 
void setHeaderWordWrap (int column, bool enabled)
 
virtual bool alternatingRowColors () const
 
void sortByColumn (int column, SortOrder order)
 
int sortColumn () const
 
SortOrder sortOrder () const
 
void setSortingEnabled (bool enabled)
 
void setSortingEnabled (int column, bool enabled)
 
bool isSortingEnabled () const
 
bool isSortingEnabled (int column) const
 
void setColumnResizeEnabled (bool enabled)
 
bool isColumnResizeEnabled () const
 
void setSelectionBehavior (SelectionBehavior behavior)
 
SelectionBehavior selectionBehavior () const
 
void setSelectionMode (SelectionMode mode)
 
SelectionMode selectionMode () const
 
WItemSelectionModelselectionModel () const
 
void setSelectedIndexes (const WModelIndexSet &indexes)
 
void clearSelection ()
 
void select (const WModelIndex &index, SelectionFlag option=SelectionFlag::Select)
 
bool isSelected (const WModelIndex &index) const
 
WModelIndexSet selectedIndexes () const
 
void setDragEnabled (bool enable)
 
void setDropsEnabled (bool enable)
 
void setEnabledDropLocations (WFlags< DropLocation > droplocation)
 
WFlags< DropLocationenabledDropLocations () const
 
const WLengthrowHeight () const
 
WLength columnWidth (int column) const
 
bool isColumnHidden (int column) const
 
void hideColumn (int column)
 
void showColumn (int column)
 
const WLengthheaderHeight () const
 
void setEditTriggers (WFlags< EditTrigger > editTriggers)
 
WFlags< EditTriggereditTriggers () const
 
void setEditOptions (WFlags< EditOption > options)
 
WFlags< EditOptioneditOptions () const
 
void edit (const WModelIndex &index)
 
void closeEditor (const WModelIndex &index, bool saveData=true)
 
void closeEditors (bool saveData=true)
 
ValidationState validateEditor (const WModelIndex &index)
 
ValidationState validateEditors ()
 
bool isEditing (const WModelIndex &index) const
 
bool isValid (const WModelIndex &index) const
 
Signal< WModelIndex, WMouseEvent > & clicked ()
 
Signal< WModelIndex, WMouseEvent > & doubleClicked ()
 
Signal< WModelIndex, WMouseEvent > & mouseWentDown ()
 
Signal< WModelIndex, WMouseEvent > & mouseWentUp ()
 
Signal< WModelIndex, WTouchEvent > & touchStart ()
 
Signal< std::vector< WModelIndex >, WTouchEvent > & touchStarted ()
 
Signal< std::vector< WModelIndex >, WTouchEvent > & touchMoved ()
 
Signal< std::vector< WModelIndex >, WTouchEvent > & touchEnded ()
 
SignalselectionChanged ()
 
SignalpageChanged ()
 
Signal< int, WLength > & columnResized ()
 
bool sortEnabled ()
 
void setHeaderClickSortEnabled (bool enabled)
 
Signal< int, WMouseEvent > & headerClicked ()
 
Signal< int, WMouseEvent > & headerDoubleClicked ()
 
Signal< int, WMouseEvent > & headerMouseWentDown ()
 
Signal< int, WMouseEvent > & headerMouseWentUp ()
 
int rowHeaderCount () const
 
EventSignal< WKeyEvent > & keyWentDown ()
 
EventSignal< WKeyEvent > & keyPressed ()
 
EventSignal< WKeyEvent > & keyWentUp ()
 
- 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 WLength width () const override
 
virtual WLength height () const override
 
virtual void setMinimumSize (const WLength &width, const WLength &height) override
 
virtual WLength minimumWidth () const override
 
virtual WLength minimumHeight () const override
 
virtual void setMaximumSize (const WLength &width, const WLength &height) 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 void setHidden (bool hidden, const WAnimation &animation=WAnimation()) 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 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
 
virtual std::unique_ptr< WWidgetremoveWidget (WWidget *widget)
 
std::unique_ptr< Widget > removeWidget (Widget *widget)
 
void setFocus ()
 
virtual void setFocus (bool focus)=0
 
- 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 positionAt (const WWidget *widget, Orientation orientation=Orientation::Vertical)
 
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
 

Static Public Attributes

static const char * FileSelectionMimeType = "application/x-computers-selection"
 Constant that indicates the mime type for a selection of files. More...
 

Protected Member Functions

virtual void dropEvent (const WDropEvent &event, const WModelIndex &target)
 Drop event. More...
 
- Protected Member Functions inherited from Wt::WTreeView
virtual void render (WFlags< RenderFlag > flags) override
 
virtual void enableAjax () override
 
- Protected Member Functions inherited from Wt::WAbstractItemView
 WAbstractItemView ()
 
virtual void dropEvent (const WDropEvent &event, const WModelIndex &index, Wt::Side side)
 
virtual std::unique_ptr< WWidgetcreateExtraHeaderWidget (int column)
 
WWidgetextraHeaderWidget (int column)
 
virtual std::unique_ptr< WWidgetcreatePageNavigationBar ()
 
virtual void handleClick (const WModelIndex &index, const WMouseEvent &event)
 
virtual void handleDoubleClick (const WModelIndex &index, const WMouseEvent &event)
 
virtual void handleMouseDown (const WModelIndex &index, const WMouseEvent &event)
 
virtual void handleMouseUp (const WModelIndex &index, const WMouseEvent &event)
 
virtual void handleTouchSelect (const std::vector< WModelIndex > &indices, const WTouchEvent &event)
 
virtual void handleTouchStart (const std::vector< WModelIndex > &indices, const WTouchEvent &event)
 
virtual void handleTouchMove (const std::vector< WModelIndex > &indices, const WTouchEvent &event)
 
virtual void handleTouchEnd (const std::vector< WModelIndex > &indices, const WTouchEvent &event)
 
virtual void dropEvent (WDropEvent dropEvent)
 
- Protected Member Functions inherited from Wt::WCompositeWidget
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 ()
 
void scheduleRender (WFlags< RepaintFlag > flags=None)
 
virtual WStatelessSlot * getStateless (Method method) override
 

Additional Inherited Members

- Public Types inherited from Wt::WObject
typedef void(WObject::* Method) ()
 
- Static Public Member Functions inherited from Wt::WWidget
static WString tr (const char *key)
 

Detailed Description

A specialized treeview that supports a custom drop event.

Definition at line 21 of file FolderView.h.

Constructor & Destructor Documentation

◆ FolderView()

FolderView::FolderView ( )

Constructor.

Definition at line 17 of file FolderView.C.

18  : WTreeView()
19 {
20  /*
21  * Accept drops for the custom mime type.
22  */
24 }
static const char * FileSelectionMimeType
Constant that indicates the mime type for a selection of files.
Definition: FolderView.h:28
virtual void acceptDrops(const std::string &mimeType, const WString &hoverStyleClass=WString())

Member Function Documentation

◆ dropEvent()

void FolderView::dropEvent ( const WDropEvent event,
const WModelIndex target 
)
protectedvirtual

Drop event.

Reimplemented from Wt::WAbstractItemView.

Definition at line 26 of file FolderView.C.

28 {
29  /*
30  * We reimplement the drop event to handle the dropping of a
31  * selection of computers.
32  *
33  * The test below would always be true in this case, since we only
34  * indicated support for that particular mime type.
35  */
36  if (event.mimeType() == FileSelectionMimeType) {
37  /*
38  * The source object for a drag of a selection from a WTreeView is
39  * a WItemSelectionModel.
40  */
41  WItemSelectionModel *selection
42  = dynamic_cast<WItemSelectionModel *>(event.source());
43 
44 #ifdef WT_THREADED
45  StandardButton result = WMessageBox::show
46  ("Drop event",
47  "Move "
48  + asString(selection->selectedIndexes().size())
49  + " files to folder '"
50  + cpp17::any_cast<WString>(target.data(ItemDataRole::Display)).toUTF8()
51  + "' ?",
52  StandardButton::Yes | StandardButton::No);
53 #else
54  StandardButton result = StandardButton::Yes;
55 #endif
56 
57  if (result == StandardButton::Yes) {
58  /*
59  * You can access the source model from the selection and
60  * manipulate it.
61  */
62  std::shared_ptr<WAbstractItemModel> sourceModel = selection->model();
63 
64  WModelIndexSet toChange = selection->selectedIndexes();
65 
66  for (WModelIndexSet::reverse_iterator i = toChange.rbegin();
67  i != toChange.rend(); ++i) {
68  WModelIndex index = *i;
69 
70  /*
71  * Copy target folder to file. Since we are using a
72  * dynamic WSortFilterProxyModel that filters on folder, this
73  * will also result in the removal of the file from the
74  * current view.
75  */
76  std::map<ItemDataRole, cpp17::any> data = model()->itemData(target);
77  data[ItemDataRole::Decoration] = index.data(ItemDataRole::Decoration);
78  sourceModel->setItemData(index, data);
79  }
80  }
81  }
82 }
std::shared_ptr< WAbstractItemModel > model() const
const std::string & mimeType() const
WModelIndexSet selectedIndexes() const
std::shared_ptr< WAbstractItemModel > model() const
cpp17::any data(ItemDataRole role=ItemDataRole::Display) const
std::string toUTF8() const
WString asString(const cpp17::any &v, const WString &formatString=WString())
std::set< WModelIndex > WModelIndexSet
StandardButton

Member Data Documentation

◆ FileSelectionMimeType

const char * FolderView::FileSelectionMimeType = "application/x-computers-selection"
static

Constant that indicates the mime type for a selection of files.

Every kind of dragged data should be identified using a unique mime type.

Definition at line 28 of file FolderView.h.


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