// Created on: 2017-06-16 // Created by: Natalia ERMOLAEVA // Copyright (c) 2017 OPEN CASCADE SAS // // This file is part of Open CASCADE Technology software library. // // This library is free software; you can redistribute it and/or modify it under // the terms of the GNU Lesser General Public License version 2.1 as published // by the Free Software Foundation, with special exception defined in the file // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT // distribution for complete text of the license and disclaimer of any warranty. // // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. #ifndef DFBrowser_SearchView_H #define DFBrowser_SearchView_H #include #include #include #include #include #include #include class DFBrowser_SearchLine; class QTableView; class QWidget; //! \class DFBrowser_SearchView //! Container of search result. It has a table of values class DFBrowser_SearchView : public QObject { Q_OBJECT public: //! Constructor Standard_EXPORT DFBrowser_SearchView(QWidget* theParent); //! Destructor virtual ~DFBrowser_SearchView() {} //! Returns search parent control QWidget* GetControl() const { return myMainWindow; } //! Sets search line to connect to the search line completion model void SetSearchLine(DFBrowser_SearchLine* theSearchLine) { mySearchLine = theSearchLine; } //! Fills the table by values of search line completion model. The zero column of the table is //! hidden, so it visualizes values of 1st and 2nd columns of this model. It creates selection //! model and connects to selectionChanged and doubleClicked signals Standard_EXPORT void InitModels(); //! Resets search line void Reset() { mySearchLine->SetText(""); } signals: //! Signal about selecting of an item in the view. //! \param thePath path to the selected item (e.g. 0, 0:1, 0:1:1) //! \param theValue value of the selected item (e.g. TDataStd_Name) void pathSelected(const QStringList& thePath, const QString& theValue); //! Signal about double click on an item in the view. //! \param thePath path to the selected item (e.g. 0, 0:1, 0:1:1) //! \param theValue value of the selected item (e.g. TDataStd_Name) void pathDoubleClicked(const QStringList& thePath, const QString& theValue); protected slots: //! Listens selection change and emits the pathSelected signal //! \param theSelected selected items //! \param theDeselected deselected items void onTableSelectionChanged(const QItemSelection& theSelected, const QItemSelection& theDeselected); //! Listens double click signal on table view //! \theIndex a model index of double clicked item void onTableDoubleClicked(const QModelIndex& theIndex); private: QWidget* myMainWindow; //!< control where table view is placed QTableView* myTableView; //!< table view to visualize search values DFBrowser_SearchLine* mySearchLine; //!< search line to have access to search model completor }; #endif