void Doc::slotChangeOutputPlugin(const QString& name) { if (m_outputPlugin != NULL) { m_outputPlugin->close(); } if (name == QString("<None>")) { m_outputPlugin = NULL; } else { m_outputPlugin = (OutputPlugin*) searchPlugin(name, Plugin::OutputType); // If an output plugin cannot be found, use the dummy plugin if (m_outputPlugin == NULL) { m_outputPlugin = m_dummyOutPlugin; } m_outputPlugin->open(); } // This if() has to be here so that this won't get called until all // objects in the call chain have been created. if (_app && _app->deviceManagerView() && _app->deviceManagerView()->deviceManager()) { _app->deviceManagerView()->deviceManager()->slotUpdateDeviceList(); } }
// // Search and load plugins // void App::initPlugins() { QString path; QString dir; settings()->get(KEY_SYSTEM_DIR, dir); dir += QString("/") + PLUGINPATH + QString("/"); // First of all, add the dummy output plugin m_dummyOutPlugin = new DummyOutPlugin(NextPluginID++); connect(m_dummyOutPlugin, SIGNAL(activated(Plugin*)), this, SLOT(slotPluginActivated(Plugin*))); addPlugin(m_dummyOutPlugin); QDir d(dir); d.setFilter(QDir::Files); if (d.exists() == false || d.isReadable() == false) { fprintf(stderr, "Unable to access plugin directory %s.\n", (const char*) dir); return; } QStringList dirlist(d.entryList()); QStringList::Iterator it; for (it = dirlist.begin(); it != dirlist.end(); ++it) { // Ignore everything else than .so files if ((*it).right(2) != QString("so")) { continue; } path = dir + *it; probePlugin(path); } // // Use the output plugin that user has selected previously // QString config; settings()->get(KEY_OUTPUT_PLUGIN, config); Plugin* plugin = searchPlugin(config, Plugin::OutputType); if (plugin != NULL) { m_outputPlugin = static_cast<OutputPlugin*> (plugin); } else { m_outputPlugin = m_dummyOutPlugin; } slotPluginActivated(m_outputPlugin); }
void VersionControlObserver::verifyDirectory() { if (!m_model) { return; } const KFileItem rootItem = m_model->rootItem(); if (rootItem.isNull() || !rootItem.url().isLocalFile()) { return; } if (m_plugin) { m_plugin->disconnect(this); } m_plugin = searchPlugin(rootItem.url()); if (m_plugin) { KVersionControlPlugin2* pluginV2 = qobject_cast<KVersionControlPlugin2*>(m_plugin); if (pluginV2) { connect(pluginV2, SIGNAL(itemVersionsChanged()), this, SLOT(silentDirectoryVerification())); } else { connect(m_plugin, SIGNAL(versionStatesChanged()), this, SLOT(silentDirectoryVerification())); } connect(m_plugin, SIGNAL(infoMessage(QString)), this, SIGNAL(infoMessage(QString))); connect(m_plugin, SIGNAL(errorMessage(QString)), this, SIGNAL(errorMessage(QString))); connect(m_plugin, SIGNAL(operationCompletedMessage(QString)), this, SIGNAL(operationCompletedMessage(QString))); if (!m_versionedDirectory) { m_versionedDirectory = true; // The directory is versioned. Assume that the user will further browse through // versioned directories and decrease the verification timer. m_dirVerificationTimer->setInterval(100); } updateItemStates(); } else if (m_versionedDirectory) { m_versionedDirectory = false; // The directory is not versioned. Reset the verification timer to a higher // value, so that browsing through non-versioned directories is not slown down // by an immediate verification. m_dirVerificationTimer->setInterval(500); } }
// // Search for an output plugin and set it. If not found, // use Dummy Output by default. // void App::slotChangeOutputPlugin(const QString& name) { if (m_outputPlugin != NULL) { m_outputPlugin->close(); } m_outputPlugin = (OutputPlugin*) searchPlugin(name, Plugin::OutputType); if (m_outputPlugin == NULL) { // If an output plugin cannot be found, use the dummy plugin m_outputPlugin = m_dummyOutPlugin; } m_outputPlugin->open(); }