mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-11-03 23:56:43 +00:00 
			
		
		
		
	moved most of the code for next/prev buttons from DialogueSubView to RecordBUttonBar
This commit is contained in:
		
							parent
							
								
									d5e6d8a58b
								
							
						
					
					
						commit
						a8c26ec0c1
					
				
					 4 changed files with 47 additions and 83 deletions
				
			
		| 
						 | 
					@ -722,10 +722,10 @@ CSVWorld::DialogueSubView::DialogueSubView (const CSMWorld::UniversalId& id,
 | 
				
			||||||
    getMainLayout().addWidget (mBottom);
 | 
					    getMainLayout().addWidget (mBottom);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // connections
 | 
					    // connections
 | 
				
			||||||
    connect (mButtons, SIGNAL (nextId()), this, SLOT (nextId()));
 | 
					 | 
				
			||||||
    connect (mButtons, SIGNAL (prevId()), this, SLOT (prevId()));
 | 
					 | 
				
			||||||
    connect (mButtons, SIGNAL (showPreview()), this, SLOT (showPreview()));
 | 
					    connect (mButtons, SIGNAL (showPreview()), this, SLOT (showPreview()));
 | 
				
			||||||
    connect (mButtons, SIGNAL (viewRecord()), this, SLOT (viewRecord()));
 | 
					    connect (mButtons, SIGNAL (viewRecord()), this, SLOT (viewRecord()));
 | 
				
			||||||
 | 
					    connect (mButtons, SIGNAL (switchToRow (int)), this, SLOT (switchToRow (int)));
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
    connect (this, SIGNAL (universalIdChanged (const CSMWorld::UniversalId&)),
 | 
					    connect (this, SIGNAL (universalIdChanged (const CSMWorld::UniversalId&)),
 | 
				
			||||||
        mButtons, SLOT (universalIdChanged (const CSMWorld::UniversalId&)));
 | 
					        mButtons, SLOT (universalIdChanged (const CSMWorld::UniversalId&)));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -736,78 +736,6 @@ void CSVWorld::DialogueSubView::setEditLock (bool locked)
 | 
				
			||||||
    mButtons->setEditLock (locked);
 | 
					    mButtons->setEditLock (locked);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void CSVWorld::DialogueSubView::prevId()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    int newRow = getTable().getModelIndex (getCurrentId(), 0).row() - 1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (newRow < 0)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    while (newRow >= 0)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        QModelIndex newIndex (getTable().index(newRow, 0));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (!newIndex.isValid())
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            return;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        CSMWorld::RecordBase::State state = static_cast<CSMWorld::RecordBase::State> (getTable().data (getTable().index (newRow, 1)).toInt());
 | 
					 | 
				
			||||||
        if (!(state == CSMWorld::RecordBase::State_Deleted || state == CSMWorld::RecordBase::State_Erased))
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            getEditWidget().remake (newRow);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            setUniversalId(CSMWorld::UniversalId (static_cast<CSMWorld::UniversalId::Type> (getTable().data (getTable().index (newRow, 2)).toInt()),
 | 
					 | 
				
			||||||
                                    getTable().data (getTable().index (newRow, 0)).toString().toUtf8().constData()));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            changeCurrentId(std::string (getTable().data (getTable().index (newRow, 0)).toString().toUtf8().constData()));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            getEditWidget().setDisabled (isLocked());
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            return;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        --newRow;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void CSVWorld::DialogueSubView::nextId ()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    int newRow = getTable().getModelIndex (getCurrentId(), 0).row() + 1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (newRow >= getTable().rowCount())
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    while (newRow < getTable().rowCount())
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        QModelIndex newIndex (getTable().index(newRow, 0));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (!newIndex.isValid())
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            return;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        CSMWorld::RecordBase::State state = static_cast<CSMWorld::RecordBase::State> (getTable().data (getTable().index (newRow, 1)).toInt());
 | 
					 | 
				
			||||||
        if (!(state == CSMWorld::RecordBase::State_Deleted))
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            getEditWidget().remake(newRow);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            setUniversalId(CSMWorld::UniversalId (static_cast<CSMWorld::UniversalId::Type> (getTable().data (getTable().index (newRow, 2)).toInt()),
 | 
					 | 
				
			||||||
                                                  getTable().data (getTable().index (newRow, 0)).toString().toUtf8().constData()));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            changeCurrentId(std::string (getTable().data (getTable().index (newRow, 0)).toString().toUtf8().constData()));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            getEditWidget().setDisabled (isLocked());
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            return;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        ++newRow;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void CSVWorld::DialogueSubView::showPreview ()
 | 
					void CSVWorld::DialogueSubView::showPreview ()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    QModelIndex currentIndex (getTable().getModelIndex (getCurrentId(), 0));
 | 
					    QModelIndex currentIndex (getTable().getModelIndex (getCurrentId(), 0));
 | 
				
			||||||
| 
						 | 
					@ -833,3 +761,15 @@ void CSVWorld::DialogueSubView::viewRecord ()
 | 
				
			||||||
            emit focusId (params.first, params.second);
 | 
					            emit focusId (params.first, params.second);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CSVWorld::DialogueSubView::switchToRow (int row)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    getEditWidget().remake (row);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    setUniversalId (CSMWorld::UniversalId (static_cast<CSMWorld::UniversalId::Type> (getTable().data (getTable().index (row, 2)).toInt()),
 | 
				
			||||||
 | 
					                            getTable().data (getTable().index (row, 0)).toString().toUtf8().constData()));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    changeCurrentId(std::string (getTable().data (getTable().index (row, 0)).toString().toUtf8().constData()));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    getEditWidget().setDisabled (isLocked());
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -236,13 +236,11 @@ namespace CSVWorld
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        private slots:
 | 
					        private slots:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            void nextId();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            void prevId();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            void showPreview();
 | 
					            void showPreview();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            void viewRecord();
 | 
					            void viewRecord();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            void switchToRow (int row);            
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -94,8 +94,8 @@ CSVWorld::RecordButtonBar::RecordButtonBar (const CSMWorld::UniversalId& id,
 | 
				
			||||||
        connect (mCloneButton, SIGNAL (clicked()), this, SLOT (cloneRequest()));
 | 
					        connect (mCloneButton, SIGNAL (clicked()), this, SLOT (cloneRequest()));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    connect (nextButton, SIGNAL (clicked()), this, SIGNAL (nextId()));
 | 
					    connect (nextButton, SIGNAL (clicked()), this, SLOT (nextId()));
 | 
				
			||||||
    connect (prevButton, SIGNAL (clicked()), this, SIGNAL (prevId()));
 | 
					    connect (prevButton, SIGNAL (clicked()), this, SLOT (prevId()));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (mCommandDispatcher)
 | 
					    if (mCommandDispatcher)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
| 
						 | 
					@ -133,3 +133,27 @@ void CSVWorld::RecordButtonBar::cloneRequest()
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CSVWorld::RecordButtonBar::nextId()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    int newRow = mTable.getModelIndex (mId.getId(), 0).row() + 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (newRow >= mTable.rowCount())
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					    }    
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    emit switchToRow (newRow);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CSVWorld::RecordButtonBar::prevId()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    int newRow = mTable.getModelIndex (mId.getId(), 0).row() - 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (newRow < 0)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    emit switchToRow (newRow);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -61,15 +61,17 @@ namespace CSVWorld
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            void cloneRequest();
 | 
					            void cloneRequest();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            void nextId();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            void prevId();
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
        signals:
 | 
					        signals:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            void showPreview();
 | 
					            void showPreview();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            void viewRecord();
 | 
					            void viewRecord();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            void nextId();
 | 
					            void switchToRow (int row);
 | 
				
			||||||
 | 
					 | 
				
			||||||
            void prevId();
 | 
					 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue