![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2009 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtVariableColumnTreeWidgetLogic.h,v $ $Revision: 1.1 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00011 00013 00014 #pragma once 00015 00016 #include <vrfGuiCoreQt/vrfGuiCoreQt.h> 00017 #include <vrfGuiCoreQt/DtVariableColumnTreeWidgetInterface.h> 00018 00019 #include <map> 00020 00021 #include <QtGui/QPixmap> 00022 #include <QtGui/QMenu> 00023 #include <QtGui/QActionGroup> 00024 00025 #include <QtCore/QVariant> 00026 00027 class QTreeWidgetItem; 00028 00029 namespace makVrf 00030 { 00031 class DtShowHideColumnMenu; 00032 00033 class DT_DLL_VRFGUICOREQT DtVariableColumnTreeColumn 00034 { 00035 public: 00036 unsigned int myCol; 00037 DtVariableColumnTreeWidgetInterface::Flags myFlags; 00038 DtVariableColumnTreeWidgetInterface::DtDisplayFunction* myDisplayFunction; 00039 DtVariableColumnTreeWidgetInterface::DtSortFunction* mySortFunction; 00040 }; 00041 00042 class DT_DLL_VRFGUICOREQT DtVariableColumnTreeWidgetLogic 00043 { 00044 public: 00045 typedef std::map<std::string, DtVariableColumnTreeColumn> DtVariableColumnMap; 00046 00047 public: 00048 00050 DtVariableColumnTreeWidgetLogic(DtVariableColumnTreeWidgetInterface* iFace ); 00051 00053 virtual ~DtVariableColumnTreeWidgetLogic(); 00054 00057 virtual void addColumn(const QString&, const DtVariableColumnTreeWidgetInterface::Flags&, 00058 DtVariableColumnTreeWidgetInterface::DtDisplayFunction* display, DtVariableColumnTreeWidgetInterface::DtSortFunction* sort); 00059 00061 virtual void removeColumn(const QString&); 00062 00064 virtual QVariant data(const QString& rowKey, const QString& colKey, int iRole) const; 00065 00067 virtual void displayMenu(int); 00068 00069 const DtVariableColumnMap& columns() const 00070 { 00071 return myColumns; 00072 } 00073 00075 virtual bool isColumnVisible(int) const; 00076 00078 virtual void setColumnVisible(int, bool); 00079 00080 protected: 00082 QPixmap createMenuArrow(); 00083 00085 virtual void executeShowHideColumnMenu(int); 00086 virtual DtShowHideColumnMenu* createShowHideColumnMenu(); 00087 00088 protected: 00089 DtVariableColumnTreeWidgetInterface* myInterface; 00090 00091 DtVariableColumnMap myColumns; 00092 }; 00093 00094 class DT_DLL_VRFGUICOREQT DtShowHideColumnMenu : public QMenu 00095 { 00096 Q_OBJECT 00097 00098 public: 00099 DtShowHideColumnMenu(DtVariableColumnTreeWidgetLogic*); 00100 virtual ~DtShowHideColumnMenu(); 00101 00102 protected: 00103 void setupItems(); 00104 00105 virtual void showAll(bool b); 00106 00107 protected slots: 00108 virtual void changeColumnVisibility(bool); 00109 virtual void showAll(); 00110 virtual void hideAll(); 00111 00112 protected: 00113 DtVariableColumnTreeWidgetLogic* myLogic; 00114 QActionGroup* myGroup; 00115 std::vector<QAction*> myActions; 00116 }; 00117 }