コード例 #1
0
ファイル: doc.cpp プロジェクト: speakman/qlc
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();
    }
}
コード例 #2
0
ファイル: app.cpp プロジェクト: speakman/qlc
//
// 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);
}
コード例 #3
0
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);
    }
}
コード例 #4
0
ファイル: app.cpp プロジェクト: speakman/qlc
//
// 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();
}