36 #include <QStandardPaths>
38 PageList::PageList(QObject *parent)
43 QString qmlSuffix = QStringLiteral(
".qml");
44 QString disabledSuffix = QStringLiteral(
".disabled");
45 QSet<QString> disabledPages;
48 if (!isRunningInstalled() && getenv(
"WIZARD_TESTING") ==
nullptr) {
49 dataDirs = QStringList() << qmlDirectory();
51 dataDirs = shellDataDirs();
54 Q_FOREACH(
const QString &dataDir, dataDirs) {
55 QDir dir(dataDir +
"/Wizard/Pages");
56 QStringList entries = dir.entryList(QStringList(QStringLiteral(
"[0-9]*")), QDir::Files | QDir::Readable);
57 Q_FOREACH(
const QString &entry, entries) {
58 if (!m_pages.contains(entry) && entry.endsWith(qmlSuffix))
59 m_pages.insert(entry, dir.absoluteFilePath(entry));
60 else if (entry.endsWith(qmlSuffix + disabledSuffix))
61 disabledPages.insert(entry.left(entry.size() - disabledSuffix.size()));
66 Q_FOREACH(
const QString &page, disabledPages) {
71 QStringList PageList::entries()
const
73 return m_pages.keys();
76 QStringList PageList::paths()
const
78 return m_pages.values();
81 int PageList::index()
const
86 int PageList::numPages()
const
88 return m_pages.size();
91 QString PageList::prev()
94 return m_pages.values()[setIndex(m_index - 1)];
99 QString PageList::next()
101 if (m_index < m_pages.count() - 1)
102 return m_pages.values()[setIndex(m_index + 1)];
107 int PageList::setIndex(
int index)
110 Q_EMIT indexChanged();