forked from mirror/openmw-tes3mp
close view when closing last sub-view unless this view is the last view
This commit is contained in:
parent
a9f5632afd
commit
aad13e6bff
11 changed files with 25 additions and 22 deletions
|
@ -35,3 +35,8 @@ void CSVDoc::SubView::closeEvent (QCloseEvent *event)
|
||||||
if(mParent)
|
if(mParent)
|
||||||
mParent->updateSubViewIndicies(this);
|
mParent->updateSubViewIndicies(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CSVDoc::SubView::closeRequest()
|
||||||
|
{
|
||||||
|
emit closeRequest (this);
|
||||||
|
}
|
|
@ -57,6 +57,12 @@ namespace CSVDoc
|
||||||
|
|
||||||
void focusId (const CSMWorld::UniversalId& universalId, const std::string& hint);
|
void focusId (const CSMWorld::UniversalId& universalId, const std::string& hint);
|
||||||
|
|
||||||
|
void closeRequest (SubView *subView);
|
||||||
|
|
||||||
|
protected slots:
|
||||||
|
|
||||||
|
void closeRequest();
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
virtual void updateUserSetting
|
virtual void updateUserSetting
|
||||||
(const QString &, const QStringList &);
|
(const QString &, const QStringList &);
|
||||||
|
|
|
@ -323,7 +323,7 @@ void CSVDoc::View::updateSubViewIndicies(SubView *view)
|
||||||
if(view && mSubViews.contains(view))
|
if(view && mSubViews.contains(view))
|
||||||
mSubViews.removeOne(view);
|
mSubViews.removeOne(view);
|
||||||
|
|
||||||
if(mSubViews.size() == 1)
|
if (mSubViews.size() == 1)
|
||||||
{
|
{
|
||||||
if(!mSubViews.at(0)->isFloating())
|
if(!mSubViews.at(0)->isFloating())
|
||||||
{
|
{
|
||||||
|
@ -518,6 +518,8 @@ void CSVDoc::View::addSubView (const CSMWorld::UniversalId& id, const std::strin
|
||||||
view,
|
view,
|
||||||
SLOT (updateUserSetting (const QString &, const QStringList &)));
|
SLOT (updateUserSetting (const QString &, const QStringList &)));
|
||||||
|
|
||||||
|
connect (view, SIGNAL (closeRequest (SubView *)), this, SLOT (closeRequest (SubView *)));
|
||||||
|
|
||||||
view->show();
|
view->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -761,3 +763,11 @@ void CSVDoc::View::stop()
|
||||||
{
|
{
|
||||||
mDocument->stopRunning();
|
mDocument->stopRunning();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CSVDoc::View::closeRequest (SubView *subView)
|
||||||
|
{
|
||||||
|
if (mSubViews.size()>1 || mViewTotal<=1)
|
||||||
|
subView->deleteLater();
|
||||||
|
else if (mViewManager.closeRequest (this))
|
||||||
|
mViewManager.removeDocAndView (mDocument);
|
||||||
|
}
|
|
@ -222,6 +222,8 @@ namespace CSVDoc
|
||||||
void run (const std::string& profile, const std::string& startupInstruction = "");
|
void run (const std::string& profile, const std::string& startupInstruction = "");
|
||||||
|
|
||||||
void stop();
|
void stop();
|
||||||
|
|
||||||
|
void closeRequest (SubView *subView);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -52,11 +52,6 @@ CSVWorld::PreviewSubView::PreviewSubView (const CSMWorld::UniversalId& id, CSMDo
|
||||||
|
|
||||||
void CSVWorld::PreviewSubView::setEditLock (bool locked) {}
|
void CSVWorld::PreviewSubView::setEditLock (bool locked) {}
|
||||||
|
|
||||||
void CSVWorld::PreviewSubView::closeRequest()
|
|
||||||
{
|
|
||||||
deleteLater();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CSVWorld::PreviewSubView::referenceableIdChanged (const std::string& id)
|
void CSVWorld::PreviewSubView::referenceableIdChanged (const std::string& id)
|
||||||
{
|
{
|
||||||
if (id.empty())
|
if (id.empty())
|
||||||
|
|
|
@ -29,8 +29,6 @@ namespace CSVWorld
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
|
||||||
void closeRequest();
|
|
||||||
|
|
||||||
void referenceableIdChanged (const std::string& id);
|
void referenceableIdChanged (const std::string& id);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -150,11 +150,6 @@ void CSVWorld::SceneSubView::useHint (const std::string& hint)
|
||||||
mScene->useViewHint (hint);
|
mScene->useViewHint (hint);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSVWorld::SceneSubView::closeRequest()
|
|
||||||
{
|
|
||||||
deleteLater();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CSVWorld::SceneSubView::cellSelectionChanged (const CSMWorld::UniversalId& id)
|
void CSVWorld::SceneSubView::cellSelectionChanged (const CSMWorld::UniversalId& id)
|
||||||
{
|
{
|
||||||
setUniversalId(id);
|
setUniversalId(id);
|
||||||
|
|
|
@ -75,8 +75,6 @@ namespace CSVWorld
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
|
||||||
void closeRequest();
|
|
||||||
|
|
||||||
void cellSelectionChanged (const CSMWorld::CellSelection& selection);
|
void cellSelectionChanged (const CSMWorld::CellSelection& selection);
|
||||||
|
|
||||||
void cellSelectionChanged (const CSMWorld::UniversalId& id);
|
void cellSelectionChanged (const CSMWorld::UniversalId& id);
|
||||||
|
|
|
@ -81,6 +81,6 @@ void CSVWorld::ScriptSubView::rowsAboutToBeRemoved (const QModelIndex& parent, i
|
||||||
QModelIndex index = mModel->getModelIndex (getUniversalId().getId(), mColumn);
|
QModelIndex index = mModel->getModelIndex (getUniversalId().getId(), mColumn);
|
||||||
|
|
||||||
if (!parent.isValid() && index.row()>=start && index.row()<=end)
|
if (!parent.isValid() && index.row()>=start && index.row()<=end)
|
||||||
deleteLater();
|
emit closeRequest();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -153,7 +153,3 @@ bool CSVWorld::TableSubView::eventFilter (QObject* object, QEvent* event)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSVWorld::TableSubView::closeRequest()
|
|
||||||
{
|
|
||||||
deleteLater();
|
|
||||||
}
|
|
||||||
|
|
|
@ -63,8 +63,6 @@ namespace CSVWorld
|
||||||
void cloneRequest (const CSMWorld::UniversalId& toClone);
|
void cloneRequest (const CSMWorld::UniversalId& toClone);
|
||||||
void createFilterRequest(std::vector< CSMWorld::UniversalId >& types,
|
void createFilterRequest(std::vector< CSMWorld::UniversalId >& types,
|
||||||
Qt::DropAction action);
|
Qt::DropAction action);
|
||||||
|
|
||||||
void closeRequest();
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue