summaryrefslogtreecommitdiffstats
path: root/application/widgets
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2016-08-06 15:39:29 +0200
committerPetr Mrázek <peterix@gmail.com>2016-08-07 11:48:15 +0200
commitbc6d1b5304f715ad0d8be27efd6630f820572da4 (patch)
tree6f42bdd351664b6f828247b4860ee3ad723b0971 /application/widgets
parentc44d41ee9b132d4f757658bd62d4b115b7887fe3 (diff)
downloadMultiMC-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')
-rw-r--r--application/widgets/PageContainer.cpp22
-rw-r--r--application/widgets/PageContainer.h2
2 files changed, 19 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;
diff --git a/application/widgets/PageContainer.h b/application/widgets/PageContainer.h
index 381e84e5..84504fb6 100644
--- a/application/widgets/PageContainer.h
+++ b/application/widgets/PageContainer.h
@@ -45,6 +45,8 @@ public:
virtual bool selectPage(QString pageId) override;
+ void refresh();
+
private:
void createUI();
private