0031939: Coding - correction of spelling errors in comments [part 2]
[occt.git] / tools / TreeModel / TreeModel_Tools.hxx
1 // Created on: 2017-06-16
2 // Created by: Natalia ERMOLAEVA
3 // Copyright (c) 2017 OPEN CASCADE SAS
4 //
5 // This file is part of Open CASCADE Technology software library.
6 //
7 // This library is free software; you can redistribute it and/or modify it under
8 // the terms of the GNU Lesser General Public License version 2.1 as published
9 // by the Free Software Foundation, with special exception defined in the file
10 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11 // distribution for complete text of the license and disclaimer of any warranty.
12 //
13 // Alternatively, this file may be used under the terms of Open CASCADE
14 // commercial license or contractual agreement. 
15
16 #ifndef TreeModel_Tools_H
17 #define TreeModel_Tools_H
18
19 #include <Standard.hxx>
20 #include <Standard_Macro.hxx>
21
22 #include <Standard_WarningsDisable.hxx>
23 #include <QApplication>
24 #include <QByteArray>
25 #include <QColor>
26 #include <QMap>
27 #include <QModelIndex>
28 #include <QString>
29 #include <QStyle>
30 #include <Standard_WarningsRestore.hxx>
31
32 class QAction;
33 class QObject;
34 class QTreeView;
35
36 //! \class TreeModel_Tools
37 //! \brief The tool that gives auxiliary methods for qt elements manipulation
38 class TreeModel_Tools
39 {
40 public:
41
42   //! Converts a Qt string to byte array, string has mask: @ByteArray[...]
43   //! \param theValue a converted string
44   //! \return the extended filled array
45   Standard_EXPORT static QString ToString (const QByteArray& theValue);
46
47   //! Converts a Qt byte array to Qt string. It has mask: @ByteArray[...]
48   //! \param theValue a converted string
49   //! \return the extended filled array
50   Standard_EXPORT static QByteArray ToByteArray (const QString& theValue);
51
52   //! Returns header margin, defined in style settings of application
53   //! \return integer value
54   static int HeaderSectionMargin() { return qApp->style()->pixelMetric (QStyle::PM_HeaderMargin); }
55
56   //! Saves state of tree view in a container in form: key, value. It saves:
57   //! - visibility of columns,
58   //! - columns width
59   //! \param theTreeView a view instance
60   //! \param theItems [out] properties
61   //! \param thePrefix preference item prefix
62   Standard_EXPORT static void SaveState (QTreeView* theTreeView, QMap<QString, QString>& theItems,
63                                          const QString& thePrefix = QString());
64
65   //! Restores state of tree view by a container
66   //! \param theTreeView a view instance
67   //! \param theKey property key
68   //! \param theValue property value
69   //! \param thePrefix preference item prefix
70   //! \return boolean value whether the property is applied to the tree view
71   Standard_EXPORT static bool RestoreState (QTreeView* theTreeView, const QString& theKey, const QString& theValue,
72                                             const QString& thePrefix = QString());
73
74   //! Fills tree view by default sections parameters obtained in view's tree model
75   //! \param theTreeView tree view instance
76   Standard_EXPORT static void SetDefaultHeaderSections (QTreeView* theTreeView);
77
78   //! Sets using visibility column in the tree view:
79   //! - sets the state in the TreeModel
80   //! - set section width, not resizable
81   //! \param theTreeView a view instance
82   //! \param theActive boolean value if the column should be connected/visible and other
83   Standard_EXPORT static void UseVisibilityColumn (QTreeView* theTreeView, const bool theActive = true);
84
85   //! Returns the text width
86   //! \param theText source text
87   //! \param theParent parent widget with its own style
88   //! \return calculated width value
89   Standard_EXPORT static int GetTextWidth (const QString& theText, QObject* theParent);
90
91   //! Returns string cut by width and '\n'
92   //! \param theText processing string
93   //! \param theWidth width value, if -1, default value is used
94   //! \param theTail symbols added to the end of the cut string
95   Standard_EXPORT static QString CutString (const QString& theText, const int theWidth = -1, const QString& theTail = "...");
96
97   //! Returns light highlight color
98   //! \returns Qt color
99   Standard_EXPORT static QColor LightHighlightColor();
100
101   //! Makes the view expanded from the root till the index
102   Standard_EXPORT static void SetExpandedTo (QTreeView* theTreeView, const QModelIndex& theIndex);
103
104   //! Expands items in tree view staring from the index recursive in given number of levels
105   //! \param theTreeView an OCAF tree view
106   //! \param theParentIndex an index which children should be expanded
107   //! \param isExpanded a boolean state if the item should be expanded or collapsed
108   //! \param theLevels a number of levels to be expanded, or -1 for all levels
109   Standard_EXPORT static void SetExpanded (QTreeView* theTreeView,
110                                            const QModelIndex& theIndex,
111                                            const bool isExpanded,
112                                            int& theLevels);
113
114 };
115
116 #endif