diff options
author | Petr Mrázek <peterix@gmail.com> | 2016-08-06 15:39:29 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2016-08-07 11:48:15 +0200 |
commit | bc6d1b5304f715ad0d8be27efd6630f820572da4 (patch) | |
tree | 6f42bdd351664b6f828247b4860ee3ad723b0971 /application/widgets/PageContainer.cpp | |
parent | c44d41ee9b132d4f757658bd62d4b115b7887fe3 (diff) | |
download | MultiMC-bc6d1b5304f715ad0d8be27efd6630f820572da4.tar MultiMC-bc6d1b5304f715ad0d8be27efd6630f820572da4.tar.gz MultiMC-bc6d1b5304f715ad0d8be27efd6630f820572da4.tar.lz MultiMC-bc6d1b5304f715ad0d8be27efd6630f820572da4.tar.xz MultiMC-bc6d1b5304f715ad0d8be27efd6630f820572da4.zip |
GH-338, GH-513, GH-700 Unify edit instance with console window
* The resulting instance window can be closed at any point.
* Main window is kept open and running instances are marked with a badge.
* Multiple instances can now run from the same MultiMC - it's even more **multi** now.
* MultiMC can be entirely closed, keeping Minecraft(s) running.
Diffstat (limited to 'application/widgets/PageContainer.cpp')
-rw-r--r-- | application/widgets/PageContainer.cpp | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/application/widgets/PageContainer.cpp b/application/widgets/PageContainer.cpp index 90aad26e..04da5c8b 100644 --- a/application/widgets/PageContainer.cpp +++ b/application/widgets/PageContainer.cpp @@ -60,7 +60,6 @@ PageContainer::PageContainer(BasePageProviderPtr pageProvider, QString defaultId createUI(); m_model = new PageModel(this); m_proxyModel = new PageEntryFilterModel(this); - int firstIndex = -1; int counter = 0; auto pages = pageProvider->getPages(); for (auto page : pages) @@ -69,10 +68,6 @@ PageContainer::PageContainer(BasePageProviderPtr pageProvider, QString defaultId page->listIndex = counter; page->setParentContainer(this); counter++; - if (firstIndex == -1) - { - firstIndex = page->stackIndex; - } } m_model->setPages(pages); @@ -111,6 +106,23 @@ bool PageContainer::selectPage(QString pageId) return false; } +void PageContainer::refresh() +{ + m_proxyModel->invalidate(); + if(!m_currentPage->shouldDisplay()) + { + auto index = m_proxyModel->index(0, 0); + if(index.isValid()) + { + m_pageList->setCurrentIndex(index); + } + else + { + // FIXME: unhandled corner case: what to do when there's no page to select? + } + } +} + void PageContainer::createUI() { m_pageStack = new QStackedLayout; |