summaryrefslogtreecommitdiffstats
path: root/gui/pagedialog/PageDialog.h
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2014-06-02 00:49:53 +0200
committerPetr Mrázek <peterix@gmail.com>2014-06-09 01:38:31 +0200
commitf485885757e287546bb27bda5906bfa4adc5494a (patch)
tree02766b67b4760e0b36c19bd3a5f0c34ed0693f7e /gui/pagedialog/PageDialog.h
parent48d3052ac1bf55dfc0d149d5e2590bcd6545dc67 (diff)
downloadMultiMC-f485885757e287546bb27bda5906bfa4adc5494a.tar
MultiMC-f485885757e287546bb27bda5906bfa4adc5494a.tar.gz
MultiMC-f485885757e287546bb27bda5906bfa4adc5494a.tar.lz
MultiMC-f485885757e287546bb27bda5906bfa4adc5494a.tar.xz
MultiMC-f485885757e287546bb27bda5906bfa4adc5494a.zip
Add and implement pages and page dialog.
Diffstat (limited to 'gui/pagedialog/PageDialog.h')
-rw-r--r--gui/pagedialog/PageDialog.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/gui/pagedialog/PageDialog.h b/gui/pagedialog/PageDialog.h
new file mode 100644
index 00000000..880b7df4
--- /dev/null
+++ b/gui/pagedialog/PageDialog.h
@@ -0,0 +1,50 @@
+/* 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 <QDialog>
+#include <QModelIndex>
+#include <gui/pages/BasePageProvider.h>
+
+class IconLabel;
+class QSortFilterProxyModel;
+class PageModel;
+class QLabel;
+class QListView;
+class QLineEdit;
+class QStackedLayout;
+
+class PageDialog : public QDialog
+{
+ Q_OBJECT
+public:
+ explicit PageDialog(BasePageProviderPtr pageProvider, QWidget *parent = 0);
+ virtual ~PageDialog() {};
+private:
+ void createUI();
+private slots:
+ void apply();
+ void currentChanged(const QModelIndex &current);
+ void showPage(int row);
+
+private:
+ QSortFilterProxyModel *m_proxyModel;
+ PageModel *m_model;
+ QStackedLayout *m_pageStack;
+ QLineEdit *m_filter;
+ QListView *m_pageList;
+ QLabel *m_header;
+ IconLabel *m_iconHeader;
+};