mirror of
				https://github.com/TES3MP/openmw-tes3mp.git
				synced 2025-10-31 22:56:44 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			103 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #ifndef CSV_TOOLS_REPORTTABLE_H
 | |
| #define CSV_TOOLS_REPORTTABLE_H
 | |
| 
 | |
| #include <map>
 | |
| 
 | |
| #include "../world/dragrecordtable.hpp"
 | |
| 
 | |
| class QAction;
 | |
| class QSortFilterProxyModel;
 | |
| 
 | |
| namespace CSMTools
 | |
| {
 | |
|     class ReportModel;
 | |
| }
 | |
| 
 | |
| namespace CSMPrefs
 | |
| {
 | |
|     class Setting;
 | |
| }
 | |
| 
 | |
| namespace CSVWorld
 | |
| {
 | |
|     class CommandDelegate;
 | |
| }
 | |
| 
 | |
| namespace CSVTools
 | |
| {
 | |
|     class ReportTable : public CSVWorld::DragRecordTable
 | |
|     {
 | |
|             Q_OBJECT
 | |
| 
 | |
|             enum DoubleClickAction
 | |
|             {
 | |
|                 Action_None,
 | |
|                 Action_Edit,
 | |
|                 Action_Remove,
 | |
|                 Action_EditAndRemove
 | |
|             };
 | |
| 
 | |
|             QSortFilterProxyModel *mProxyModel;
 | |
|             CSMTools::ReportModel *mModel;
 | |
|             CSVWorld::CommandDelegate *mIdTypeDelegate;
 | |
|             QAction *mShowAction;
 | |
|             QAction *mRemoveAction;
 | |
|             QAction *mReplaceAction;
 | |
|             QAction *mRefreshAction;
 | |
|             std::map<Qt::KeyboardModifiers, DoubleClickAction> mDoubleClickActions;
 | |
|             int mRefreshState;
 | |
| 
 | |
|         private:
 | |
| 
 | |
|             void contextMenuEvent (QContextMenuEvent *event);
 | |
| 
 | |
|             void mouseMoveEvent (QMouseEvent *event);
 | |
| 
 | |
|             virtual void mouseDoubleClickEvent (QMouseEvent *event);
 | |
| 
 | |
|         public:
 | |
| 
 | |
|             /// \param richTextDescription Use rich text in the description column.
 | |
|             /// \param refreshState Document state to check for refresh function. If value is
 | |
|             /// 0 no refresh function exists. If the document current has the specified state
 | |
|             /// the refresh function is disabled.
 | |
|             ReportTable (CSMDoc::Document& document, const CSMWorld::UniversalId& id,
 | |
|                 bool richTextDescription, int refreshState = 0, QWidget *parent = 0);
 | |
| 
 | |
|             virtual std::vector<CSMWorld::UniversalId> getDraggedRecords() const;
 | |
| 
 | |
|             void clear();
 | |
| 
 | |
|             /// Return indices of rows that are suitable for replacement.
 | |
|             ///
 | |
|             /// \param selection Only list selected rows.
 | |
|             ///
 | |
|             /// \return rows in the original model
 | |
|             std::vector<int> getReplaceIndices (bool selection) const;
 | |
| 
 | |
|             /// \param index row in the original model
 | |
|             void flagAsReplaced (int index);
 | |
| 
 | |
|         private slots:
 | |
| 
 | |
|             void settingChanged (const CSMPrefs::Setting *setting);
 | |
| 
 | |
|             void showSelection();
 | |
| 
 | |
|             void removeSelection();
 | |
| 
 | |
|         public slots:
 | |
| 
 | |
|             void stateChanged (int state, CSMDoc::Document *document);
 | |
| 
 | |
|         signals:
 | |
| 
 | |
|             void editRequest (const CSMWorld::UniversalId& id, const std::string& hint);
 | |
| 
 | |
|             void replaceRequest();
 | |
| 
 | |
|             void refreshRequest();
 | |
|     };
 | |
| }
 | |
| 
 | |
| #endif
 |