diff options
| author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 | 
|---|---|---|
| committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 | 
| commit | e9ae80694875f869892f13f4fcaf1170a00dea41 (patch) | |
| tree | aa2f8d8a217e2d376224c8d46b7397b68d35de2d /quanta/treeviews/structtreeview.h | |
| download | tdewebdev-e9ae80694875f869892f13f4fcaf1170a00dea41.tar.gz tdewebdev-e9ae80694875f869892f13f4fcaf1170a00dea41.zip | |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdewebdev@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'quanta/treeviews/structtreeview.h')
| -rw-r--r-- | quanta/treeviews/structtreeview.h | 176 | 
1 files changed, 176 insertions, 0 deletions
| diff --git a/quanta/treeviews/structtreeview.h b/quanta/treeviews/structtreeview.h new file mode 100644 index 00000000..4f59e7d3 --- /dev/null +++ b/quanta/treeviews/structtreeview.h @@ -0,0 +1,176 @@ +/*************************************************************************** +                          structtreeview.h  -  description +                             ------------------- +    begin                : Sat Apr 29 2000 +    copyright            : (C) 2000 by Yacovlev Alexander & Dmitry Poplavsky <pdima@mail.univ.kiev.ua> +                           (C) 2002, 2003 Andras Mantia <amantia@kde.org> + ***************************************************************************/ + +/*************************************************************************** + *                                                                         * + *   This program is free software; you can redistribute it and/or modify  * + *   it under the terms of the GNU General Public License as published by  * + *   the Free Software Foundation; either version 2 of the License, or     * + *   (at your option) any later version.                                   * + *                                                                         * + ***************************************************************************/ + +#ifndef STRUCTTREEVIEW_H +#define STRUCTTREEVIEW_H + +#include <qmap.h> +#include <qvaluelist.h> + +#include <klistview.h> + +/**view class of document structure + *@author Andras Mantia & Paulo Moura Guedes & Yacovlev Alexander & Dmitry Poplavsky + */ + +class KPopupMenu; +class KConfig; +class KURL; +class QTime; + +class Node; +class StructTreeTag; +class Parser; +class Document; +struct DTDStruct; + +class StructTreeView : public KListView  { +   Q_OBJECT +public: + +  /** +   *  since this class is a singleton you must use this function to access it +   * +   *  the parameters are only used at the first call to create the class +   * +   */ +  static StructTreeView* const ref(QWidget *parent = 0L, const char *name = 0L) +  { +    static StructTreeView *m_ref; +    if (!m_ref) m_ref = new StructTreeView (parent, name); +    return m_ref; +  } + +  ~StructTreeView(); + + +  void setFollowCursor(bool); +  bool followCursor() { return followCursorFlag; } +  /** Show the element in tree according to cursor position (x,y) */ +  void showTagAtPos(Node *node); +  /** Delete the items */ +  void deleteList(bool groupOnly); +  void setParsingDTDs(const QStringList &parsingDTDList); +  void showMessage(const QString& message); +   +   +  bool useOpenLevelSetting; + +public slots: // Public slots +  /** repaint document structure */ +  void slotReparse(Document *w, Node* node, int openLevel = 3,bool groupOnly=false); +  void slotMouseClicked(int button, QListViewItem*, const QPoint&, int); +  void slotDoubleClicked( QListViewItem * ); + +  // slots for RBM menu +  void slotReparseMenuItem(); +  void slotSelectTag(); +  void slotGotoTag( QListViewItem *item ); +  void slotGotoClosingTag(); +  /** Recursively open the tree and all its subtrees */ +  void slotOpenSubTree(); +  /** Recursively close the tree and all its subtrees */ +  void slotCloseSubTree(); +  void changeFollowCursor() { setFollowCursor(!followCursorFlag); } +  /** No descriptions */ +  void slotCollapsed(QListViewItem *item); +  /** No descriptions */ +  void slotExpanded(QListViewItem *); +  void slotOpenFile(); +  void slotNodeTreeChanged(); +  void slotRemoveTags(); + +signals: +  void newCursorPosition( int col, int row ); +  void selectTagArea(Node* node); +  void selectArea(int col1, int row1, int col2, int row2 ); +  void needReparse(); +  void onTag( const QString &tag ); +  void showGroupsForDTEP(const QString& dtep, bool show); +  void openFile(const KURL&); +  void openImage(const KURL&); +  void showProblemMessage(const QString&); +  void clearProblemOutput(); + +private: + +  /** The constructor is private because we use singleton pattern. +   *  If you need the class use StructTreeView::ref() for +   *  construction and reference +   */ +  StructTreeView(QWidget *parent=0, const char *name=0); +  /** builds the structure tree */ +  void buildTree(Node *baseNode, int openLevel, bool groupOnly); +  /** Do the recursive opening or closing of the trees */ +  void setOpenSubTree(QListViewItem *it, bool open); + +  /** Make ctrl have the same behavior has shift */ +  void setContiguousSelectedItems(); +   +  void copySelectedItems(QListViewItem* parent, QListViewItem* after); +  void moveSelectedItems(QListViewItem* parent, QListViewItem* after); +   +private: + +  int followCursorId; +  bool followCursorFlag; + +  KPopupMenu *popupMenu; +  KPopupMenu *emptyAreaMenu; +  KPopupMenu *dtdMenu; +  StructTreeTag *lastTag; +  KConfig *config; +  QStringList dtdList; +  QValueList<const DTDStruct*> m_parsingDTDList; +  int openFileMenuId; +  QMap<QString, uint> groupIds; +  bool m_dirty; +  StructTreeTag *top; +  QValueList<StructTreeTag*> groups; +  uint groupsCount; + +  bool topOpened; +  QValueList<bool> groupOpened; +   +  mutable QListViewItem* m_marker;       //track that has the drag/drop marker under it +  QListViewItem* m_draggedItem; +//   mutable QWidget* m_thisWidget; // non const this hack for acceptDrag + +protected: // Protected methods +  /** Do a reparse before showing. */ +  virtual void showEvent(QShowEvent*); +  /** Clear the problem output when hiding. */ +  virtual void hideEvent(QHideEvent*); +   +  // drag functions   +  virtual bool acceptDrag(QDropEvent* e) const; +  virtual void startDrag(); +  virtual void contentsMousePressEvent(QMouseEvent* e); + +protected slots: // Protected slots +  /** The treeview DTD  has changed to id. */ +  void slotDTDChanged(int id); +     +  void slotMouseClickedVPL(int button, QListViewItem*, const QPoint&, int); +  virtual void slotDropped(QDropEvent* e, QListViewItem* parent, QListViewItem* after); + +protected: // Protected attributes +  Document *write; +  QTime *timer; +}; + +#endif | 
