mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-11-04 01:26:39 +00:00 
			
		
		
		
	disallow sorting (via column headers) in info tables
This commit is contained in:
		
							parent
							
								
									90aa8f9db6
								
							
						
					
					
						commit
						ea0e8be0d3
					
				
					 6 changed files with 23 additions and 9 deletions
				
			
		| 
						 | 
				
			
			@ -26,16 +26,25 @@ namespace CSVDoc
 | 
			
		|||
    template<class SubViewT, class CreatorFactoryT>
 | 
			
		||||
    class SubViewFactoryWithCreator : public SubViewFactoryBase
 | 
			
		||||
    {
 | 
			
		||||
            bool mSorting;
 | 
			
		||||
 | 
			
		||||
        public:
 | 
			
		||||
 | 
			
		||||
            SubViewFactoryWithCreator (bool sorting = true);
 | 
			
		||||
 | 
			
		||||
            virtual CSVDoc::SubView *makeSubView (const CSMWorld::UniversalId& id, CSMDoc::Document& document);
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    template<class SubViewT, class CreatorFactoryT>
 | 
			
		||||
    SubViewFactoryWithCreator<SubViewT, CreatorFactoryT>::SubViewFactoryWithCreator (bool sorting)
 | 
			
		||||
    : mSorting (sorting)
 | 
			
		||||
    {}
 | 
			
		||||
 | 
			
		||||
    template<class SubViewT, class CreatorFactoryT>
 | 
			
		||||
    CSVDoc::SubView *SubViewFactoryWithCreator<SubViewT, CreatorFactoryT>::makeSubView (
 | 
			
		||||
        const CSMWorld::UniversalId& id, CSMDoc::Document& document)
 | 
			
		||||
    {
 | 
			
		||||
        return new SubViewT (id, document, CreatorFactoryT());
 | 
			
		||||
        return new SubViewT (id, document, CreatorFactoryT(), mSorting);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -37,8 +37,6 @@ void CSVWorld::addSubViewFactories (CSVDoc::SubViewFactoryManager& manager)
 | 
			
		|||
        CSMWorld::UniversalId::Type_Regions,
 | 
			
		||||
        CSMWorld::UniversalId::Type_Birthsigns,
 | 
			
		||||
        CSMWorld::UniversalId::Type_Spells,
 | 
			
		||||
        CSMWorld::UniversalId::Type_TopicInfos,
 | 
			
		||||
        CSMWorld::UniversalId::Type_JournalInfos,
 | 
			
		||||
 | 
			
		||||
        CSMWorld::UniversalId::Type_None // end marker
 | 
			
		||||
    };
 | 
			
		||||
| 
						 | 
				
			
			@ -62,6 +60,12 @@ void CSVWorld::addSubViewFactories (CSVDoc::SubViewFactoryManager& manager)
 | 
			
		|||
    manager.add (CSMWorld::UniversalId::Type_Journal,
 | 
			
		||||
        new CSVDoc::SubViewFactoryWithCreator<TableSubView, JournalCreatorFactory>);
 | 
			
		||||
 | 
			
		||||
    manager.add (CSMWorld::UniversalId::Type_TopicInfos,
 | 
			
		||||
        new CSVDoc::SubViewFactoryWithCreator<TableSubView, CreatorFactory<GenericCreator> > (false));
 | 
			
		||||
 | 
			
		||||
    manager.add (CSMWorld::UniversalId::Type_JournalInfos,
 | 
			
		||||
        new CSVDoc::SubViewFactoryWithCreator<TableSubView, CreatorFactory<GenericCreator> > (false));
 | 
			
		||||
 | 
			
		||||
    // Subviews for editing/viewing individual records
 | 
			
		||||
    manager.add (CSMWorld::UniversalId::Type_Script, new CSVDoc::SubViewFactory<ScriptSubView>);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -121,7 +121,7 @@ std::vector<std::string> CSVWorld::Table::listDeletableSelectedIds() const
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
CSVWorld::Table::Table (const CSMWorld::UniversalId& id, CSMWorld::Data& data, QUndoStack& undoStack,
 | 
			
		||||
    bool createAndDelete)
 | 
			
		||||
    bool createAndDelete, bool sorting)
 | 
			
		||||
    : mUndoStack (undoStack), mCreateAction (0), mEditLock (false), mRecordStatusDisplay (0)
 | 
			
		||||
{
 | 
			
		||||
    mModel = &dynamic_cast<CSMWorld::IdTable&> (*data.getTableModel (id));
 | 
			
		||||
| 
						 | 
				
			
			@ -132,7 +132,7 @@ CSVWorld::Table::Table (const CSMWorld::UniversalId& id, CSMWorld::Data& data, Q
 | 
			
		|||
    setModel (mProxyModel);
 | 
			
		||||
    horizontalHeader()->setResizeMode (QHeaderView::Interactive);
 | 
			
		||||
    verticalHeader()->hide();
 | 
			
		||||
    setSortingEnabled (true);
 | 
			
		||||
    setSortingEnabled (sorting);
 | 
			
		||||
    setSelectionBehavior (QAbstractItemView::SelectRows);
 | 
			
		||||
    setSelectionMode (QAbstractItemView::ExtendedSelection);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -49,8 +49,9 @@ namespace CSVWorld
 | 
			
		|||
 | 
			
		||||
        public:
 | 
			
		||||
 | 
			
		||||
            Table (const CSMWorld::UniversalId& id, CSMWorld::Data& data, QUndoStack& undoStack, bool createAndDelete);
 | 
			
		||||
            Table (const CSMWorld::UniversalId& id, CSMWorld::Data& data, QUndoStack& undoStack, bool createAndDelete, bool sorting);
 | 
			
		||||
            ///< \param createAndDelete Allow creation and deletion of records.
 | 
			
		||||
            /// \param sorting Allow changing order of rows in the view via column headers.
 | 
			
		||||
 | 
			
		||||
            void setEditLock (bool locked);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,7 +12,7 @@
 | 
			
		|||
#include "creator.hpp"
 | 
			
		||||
 | 
			
		||||
CSVWorld::TableSubView::TableSubView (const CSMWorld::UniversalId& id, CSMDoc::Document& document,
 | 
			
		||||
    const CreatorFactoryBase& creatorFactory)
 | 
			
		||||
    const CreatorFactoryBase& creatorFactory, bool sorting)
 | 
			
		||||
: SubView (id)
 | 
			
		||||
{
 | 
			
		||||
    QVBoxLayout *layout = new QVBoxLayout;
 | 
			
		||||
| 
						 | 
				
			
			@ -23,7 +23,7 @@ CSVWorld::TableSubView::TableSubView (const CSMWorld::UniversalId& id, CSMDoc::D
 | 
			
		|||
        new TableBottomBox (creatorFactory, document.getData(), document.getUndoStack(), id, this), 0);
 | 
			
		||||
 | 
			
		||||
    layout->insertWidget (0, mTable =
 | 
			
		||||
        new Table (id, document.getData(), document.getUndoStack(), mBottom->canCreateAndDelete()), 2);
 | 
			
		||||
        new Table (id, document.getData(), document.getUndoStack(), mBottom->canCreateAndDelete(), sorting), 2);
 | 
			
		||||
 | 
			
		||||
    CSVFilter::FilterBox *filterBox = new CSVFilter::FilterBox (document.getData(), this);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -26,7 +26,7 @@ namespace CSVWorld
 | 
			
		|||
        public:
 | 
			
		||||
 | 
			
		||||
            TableSubView (const CSMWorld::UniversalId& id, CSMDoc::Document& document,
 | 
			
		||||
                const CreatorFactoryBase& creatorFactory);
 | 
			
		||||
                const CreatorFactoryBase& creatorFactory, bool sorting);
 | 
			
		||||
 | 
			
		||||
            virtual void setEditLock (bool locked);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue