QVariant MeeGoIntegration::doProcess(SystemIntegration::Operation act, const QVariant &data) const { switch (act) { case OpenDialog: case ShowWidget: { QWidget *widget = data.value<QWidget*>(); m_window->showWidget(widget); return QVariant(); } case GetSettingsGenerator: { SettingsItem *item = data.value<SettingsItem*>(); const QByteArray name = item->text().original(); ObjectGenerator *generator = NULL; QScopedPointer<ObjectGenerator> gen(SettingsItemHook::generator(item)); const QMetaObject *meta = gen->metaObject(); QLatin1String className = QLatin1String(meta->className()); if (className == QLatin1String("Jabber::JMainSettings")) generator = new QuickGenerator(QLatin1String("accounts/JabberPage.qml")); else if (className == QLatin1String("VAccountSettings")) generator = new QuickGenerator(QLatin1String("accounts/VKPage.qml")); else if (className == QLatin1String("qutim_sdk_0_3::DataSettingsWidget")) generator = new QuickGenerator(QLatin1String("settings/DataItemPage.qml"), new DataSettingsObjectCreator(item)); else if (name == "Auto-away") generator = new QuickGenerator(QLatin1String("settings/AutoAwayPage.qml")); else if (name == "Icq account settings") generator = new QuickGenerator(QLatin1String("accounts/OscarPage.qml")); else if (name == "Connection manager") generator = new QuickGenerator(QLatin1String("settings/ConnectionManagerPage.qml")); else if (name == "BlogImprover") generator = new QuickGenerator(QLatin1String("settings/BlogImproverPage.qml")); else if (name == "Highlighter") generator = new QuickGenerator(QLatin1String("settings/HighlighterPage.qml")); else if (name == "Localization") generator = new QuickGenerator(QLatin1String("settings/LanguagesPage.qml")); else if (name == "Sounds") generator = new QuickGenerator(QLatin1String("settings/SoundThemePage.qml")); else if (name == "Notifications") generator = new QuickGenerator(QLatin1String("settings/NotificationsPage.qml")); else if (name == "UrlPreview") generator = new QuickGenerator(QLatin1String("settings/UrlPreviewPage.qml")); else if (name == "Chat") generator = new QuickGenerator(QLatin1String("settings/ChatPage.qml")); else if (name == "Antispam") generator = new QuickGenerator(QLatin1String("settings/AntispamPage.qml")); else if (name == "Global proxy" || name == "Proxy") generator = new QuickGenerator(QLatin1String("settings/ProxyPage.qml")); else if (name == "Emoticons") generator = new QuickGenerator(QLatin1String("settings/EmoticonsPage.qml")); return qVariantFromValue(generator ? generator : gen.take()); } default: break; } return QVariant(); }
QVariant QuickSettingsModel::data(const QModelIndex &index, int role) const { SettingsItem *item = m_items.value(index.row()); if (!item) return QVariant(); switch (role) { case Qt::DecorationRole: return QVariant(); case Qt::DisplayRole: return item->text().toString(); case IsWidget: return true; case Widget: return qVariantFromValue<QObject*>(item->widget()); case GraphicsItem: return qVariantFromValue<QObject*>(NULL); default: return QVariant(); } }