0029018: Documentation - Provide user guide for Qt browser
[occt.git] / tools / DFBrowserPane / DFBrowserPane_TableView.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 DFBrowserPane_TableView_H
17 #define DFBrowserPane_TableView_H
18
19 #include <Standard.hxx>
20
21 #ifdef _MSC_VER
22 #pragma warning(disable : 4127) // conditional expression is constant
23 #endif
24 #include <QWidget>
25 #include <QMap>
26
27 class QTableView;
28 class QAbstractTableModel;
29
30 //! \class DFBrowserPane_TableView
31 //! \brief The widget that contains table view with some settings:
32 //! - table grid is hidden
33 //! - vertical header is hidden
34 //! - stretch last column by horizonal
35 //! - default width of columns.
36 class DFBrowserPane_TableView : public QWidget
37 {
38 public:
39
40   //! Constructor
41   Standard_EXPORT DFBrowserPane_TableView (QWidget* theParent,
42                                            const QMap<int, int>& theDefaultColumnWidths = QMap<int, int>());
43   //! Destructor
44   virtual ~DFBrowserPane_TableView() {}
45
46   //! Sets model into table view. After, set column widths for view
47   Standard_EXPORT void SetModel (QAbstractTableModel* theModel);
48
49   //! Returns the current table view
50   QTableView* GetTableView() const { return myTableView; }
51
52   //! Set horizontal header shown or hidden
53   //! \param theVisible visibility flag
54   Standard_EXPORT void SetVisibleHorizontalHeader (const bool& theVisible);
55
56   //! Updates table view height to contain the given number of rows only
57   //! \param theCount a row count
58   //! \param theView a table view, which size will be changed
59   //! \param theScroll flag whether add scroll height to size
60   Standard_EXPORT static void SetFixedRowCount (const int theCount, QTableView* theView, const bool theScroll = false);
61
62   //! Returns names of selected items in the view
63   //! \param theView a table view
64   //! \param theColumnId a column index
65   //! \return container of strings
66   Standard_EXPORT static QStringList GetSelectedColumnValues (QTableView* theTable, const int theColumnId);
67
68 private:
69
70   QTableView* myTableView; //!< the current table view
71   QMap<int, int> myDefaultColumnWidths; //!< container of default widths of columns
72 };
73
74 #endif