summaryrefslogtreecommitdiffstats
path: root/gui/widgets/PageContainer.h
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2014-06-29 19:59:08 +0200
committerPetr Mrázek <peterix@gmail.com>2014-06-29 19:59:08 +0200
commit5179aed3a066dfc9885a75d36a0e64c48aa448f7 (patch)
treeec0c656f06ca923b86a9025c0904cfc7c7f81845 /gui/widgets/PageContainer.h
parent77de2d1e5472051cd05857dc4304bdc9ad77e36d (diff)
downloadMultiMC-5179aed3a066dfc9885a75d36a0e64c48aa448f7.tar
MultiMC-5179aed3a066dfc9885a75d36a0e64c48aa448f7.tar.gz
MultiMC-5179aed3a066dfc9885a75d36a0e64c48aa448f7.tar.lz
MultiMC-5179aed3a066dfc9885a75d36a0e64c48aa448f7.tar.xz
MultiMC-5179aed3a066dfc9885a75d36a0e64c48aa448f7.zip
Separate page dialog into a page container and a dialog.
Diffstat (limited to 'gui/widgets/PageContainer.h')
-rw-r--r--gui/widgets/PageContainer.h59
1 files changed, 59 insertions, 0 deletions
diff --git a/gui/widgets/PageContainer.h b/gui/widgets/PageContainer.h
new file mode 100644
index 00000000..d56c6bff
--- /dev/null
+++ b/gui/widgets/PageContainer.h
@@ -0,0 +1,59 @@
+/* Copyright 2014 MultiMC Contributors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+#include <QWidget>
+#include <QModelIndex>
+#include <gui/pages/BasePageProvider.h>
+
+class IconLabel;
+class QSortFilterProxyModel;
+class PageModel;
+class QLabel;
+class QListView;
+class QLineEdit;
+class QStackedLayout;
+class QGridLayout;
+
+class PageContainer : public QWidget
+{
+ Q_OBJECT
+public:
+ explicit PageContainer(BasePageProviderPtr pageProvider, QString defaultId = QString(),
+ QWidget *parent = 0);
+ virtual ~PageContainer() {};
+
+ void addButtons(QWidget * buttons);
+ bool requestClose(QCloseEvent *event);
+
+private:
+ void createUI();
+private
+slots:
+ void currentChanged(const QModelIndex &current);
+ void showPage(int row);
+ void help();
+
+private:
+ BasePage * m_currentPage;
+ QSortFilterProxyModel *m_proxyModel;
+ PageModel *m_model;
+ QStackedLayout *m_pageStack;
+ QLineEdit *m_filter;
+ QListView *m_pageList;
+ QLabel *m_header;
+ IconLabel *m_iconHeader;
+ QGridLayout *m_layout;
+};