Ejemplo n.º 1
0
		void PluginDialog::addPluginDirectory()
		{
			QString plugin_path(BALL_PATH);
			plugin_path += "/plugins";

			QString dir = QFileDialog::getExistingDirectory(0, tr("Select a plugin directory"), plugin_path);
			plugin_dir_model_.addDirectory(dir);
			plugin_model_.pluginsLoaded();
		}
Ejemplo n.º 2
0
static void
init_guile () {
  url guile_path= "$TEXMACS_PATH/progs:$GUILE_LOAD_PATH";
  if (!exists (guile_path * "init-texmacs.scm")) {
    boot_error << "\n";
    boot_error << "Installation problem: please send a bug report.\n";
    boot_error << "The initialization file init-texmacs.scm"
               << " could not be found.\n";
    boot_error << "Please check the values of the environment variables\n";
    boot_error << "TEXMACS_PATH and GUILE_LOAD_PATH."
               << " init-texmacs.scm should\n";
    boot_error << "be readable and in the directory $TEXMACS_PATH/progs\n";
    boot_error << "or in the directory $GUILE_LOAD_PATH\n";
    boot_error << "\n";
    FAILED ("guile could not be found");
  }

  /*
  if (!exists ("$GUILE_LOAD_PATH/ice-9/boot-9.scm")) {
    int i;
    string guile_data    = var_eval_system ("guile-config info datadir");
    string guile_version = var_eval_system ("guile --version");
    for (i=0; i<N(guile_version); i++)
      if (guile_version[i] == '\n') break;
    guile_version= guile_version (0, i);
    for (i=N(guile_version); i>0; i--)
      if (guile_version[i-1] == ' ') break;
    guile_version= guile_version (i, N (guile_version));
    if (guile_version == "") {
      var_eval_system ("guile-config info top_srcdir");
      for (i=N(guile_version); i>0; i--)
	if (guile_version[i-1] == '-') break;
      guile_version= guile_version (i, N (guile_version));
      for (i=0; i<N(guile_version); i++)
	if ((guile_version[i] == '/') || (guile_version[i] == '\\')) {
	  guile_version= guile_version (0, i);
	  break;
	}
    }
    url guile_dir= url_system (guile_data) * url ("guile", guile_version);
    guile_path= guile_path | guile_dir;
    set_env_path ("GUILE_LOAD_PATH", guile_path);
    if (!exists ("$GUILE_LOAD_PATH/ice-9/boot-9.scm")) {
      failed_error << "\nGUILE_LOAD_PATH=" << guile_path << "\n";
      FAILED ("guile seems not to be installed on your system");
    }
  }
  */

  guile_path= guile_path | "$TEXMACS_HOME_PATH/progs" | plugin_path ("progs");
  set_env_path ("GUILE_LOAD_PATH", guile_path);
}
Ejemplo n.º 3
0
/**
 * lpf_manager_activate_provider:
 * @self: a #LpfManager
 * @name: the name of the provider to activate
 * @error: a #GError for errorreporting or %NULL
 *
 * Activate the given provider
 *
 * Returns: (transfer none): The activated #LpfProvider
 */
LpfProvider *lpf_manager_activate_provider(LpfManager *self,
                                           const gchar *name,
                                           GError **error)
{
    gchar *path;
    LpfProvider *provider;
    LpfManagerPrivate *priv = GET_PRIVATE (self);

    path = plugin_path(name);
    provider = load_provider (path, error);
    if (provider) {
        lpf_provider_activate(provider, G_OBJECT(self));
        priv->active = g_slist_prepend (priv->active, provider);
    }
    g_free(path);
    return provider;
}
Ejemplo n.º 4
0
		/*
		 * Implementation of PluginDialog
		 */
		PluginDialog::PluginDialog(Preferences* preferences, QWidget* parent, const char* name)
			: QWidget(parent),
			  ModularWidget(name),
			  preferences_(preferences)
		{
			ui_ = new Ui::PluginDialogData;
			ui_->setupUi(this);

			// define the dialogs section name in the INIFile
			setINIFileSectionName("PLUGINS");
			stack_pages_.push_back(std::make_pair(this, tr("Plugins").toStdString()));

			preferences_->insertEntry(this);

			setObjectName(name);

			IconLoader& icon_loader = IconLoader::instance();

			ui_->plugin_dir_button_add->setIcon(icon_loader.getIcon("actions/list-add"));
			ui_->plugin_dir_button_remove->setIcon(icon_loader.getIcon("actions/edit-delete"));

			// register all visible childs
			registerWidgets_();

			//TODO
			//registerWidgetForHelpSystem_(widget_stack->widget(0), "plugins.html#plugins");

			ui_->plugin_view->setModel(&plugin_model_);
			ui_->plugin_directories_view->setModel(&plugin_dir_model_);

//			QString plugin_path(BALL_PATH);
//			plugin_path += "/plugins";
			QString plugin_path(QLibraryInfo::location(QLibraryInfo::PluginsPath));

			plugin_dir_model_.addDirectory(plugin_path);
			plugin_model_.pluginsLoaded();

			setObjectName(name);
			ModularWidget::registerWidget(this);

			connect(ui_->plugin_dir_button_add, SIGNAL(clicked()), this, SLOT(addPluginDirectory()));
			connect(ui_->plugin_dir_button_remove, SIGNAL(clicked()), this, SLOT(removePluginDirectory()));
			connect(ui_->plugin_directories_view, SIGNAL(activated(const QModelIndex&)), this, SLOT(directorySelectionChanged(const QModelIndex& )));
		}
Ejemplo n.º 5
0
/**
 * lpf_manager_get_available_providers:
 *
 * Returns: (transfer full): List of available providers
 */
GStrv lpf_manager_get_available_providers(void)
{
    gint i, prefix_len;
    glob_t globbuf;
    gchar *pattern = NULL;
    GStrv providers = NULL;
    gchar **tmp;

    if (!g_module_supported ()) {
        g_warning ("GModules are not supported on your platform!");
        return NULL;
    }

    pattern = plugin_path("*");
    prefix_len = 1 + g_strrstr(pattern, G_DIR_SEPARATOR_S) + strlen(PROVIDER_LIBBASE) - pattern ;
    g_debug("Looking for providers in %s", pattern);
    if (glob(pattern, GLOB_NOSORT, NULL, &globbuf))
        goto out;

    if (!(providers = g_try_malloc (sizeof(gchar*) * (globbuf.gl_pathc + 1)))) {
        goto out;
    }

    for (i = 0; i < globbuf.gl_pathc; i++) {
        tmp = g_strsplit(globbuf.gl_pathv[i] + prefix_len, ".", 2);
        if (!tmp) {
            providers[i] = NULL;
            goto out;
        }
        providers[i] = g_strdup(tmp[0]);
        g_strfreev(tmp);
    }
    providers[globbuf.gl_pathc] = NULL;

 out:
    globfree(&globbuf);
    g_free (pattern);
    return providers;
}
Ejemplo n.º 6
0
static void
init_env_vars () {
  // Handle binary, library and guile paths for plugins
  url bin_path= get_env_path ("PATH") | plugin_path ("bin");
  set_env_path ("PATH", bin_path);
  url lib_path= get_env_path ("LD_LIBRARY_PATH") | plugin_path ("lib");
  set_env_path ("LD_LIBRARY_PATH", lib_path);

  // Get TeXmacs style and package paths
  url style_root=
    get_env_path ("TEXMACS_STYLE_ROOT",
		  "$TEXMACS_HOME_PATH/styles:$TEXMACS_PATH/styles" |
		  plugin_path ("styles"));
  url package_root=
    get_env_path ("TEXMACS_PACKAGE_ROOT",
		  "$TEXMACS_HOME_PATH/packages:$TEXMACS_PATH/packages" |
		  plugin_path ("packages"));
  url all_root= style_root | package_root;
  url style_path=
    get_env_path ("TEXMACS_STYLE_PATH",
                  search_sub_dirs (all_root));
  url text_root=
    get_env_path ("TEXMACS_TEXT_ROOT",
		  "$TEXMACS_HOME_PATH/texts:$TEXMACS_PATH/texts" |
		  plugin_path ("texts"));
  url text_path=
    get_env_path ("TEXMACS_TEXT_PATH",
                  search_sub_dirs (text_root));

  // Get other data paths
  (void) get_env_path ("TEXMACS_FILE_PATH",text_path | style_path);
  (void) set_env_path ("TEXMACS_DOC_PATH",
		       get_env_path ("TEXMACS_DOC_PATH") |
		       "$TEXMACS_HOME_PATH/doc:$TEXMACS_PATH/doc" |
		       plugin_path ("doc"));
  (void) set_env_path ("TEXMACS_SECURE_PATH",
		       get_env_path ("TEXMACS_SECURE_PATH") |
		       "$TEXMACS_PATH:$TEXMACS_HOME_PATH");
  (void) get_env_path ("TEXMACS_PATTERN_PATH",
		       "$TEXMACS_HOME_PATH/misc/patterns" |
		       url ("$TEXMACS_PATH/misc/patterns") |
		       plugin_path ("misc/patterns"));
  (void) get_env_path ("TEXMACS_PIXMAP_PATH",
		       "$TEXMACS_HOME_PATH/misc/pixmaps" |
		       url ("$TEXMACS_PATH/misc/pixmaps/modern/32x32/settings") |
		       url ("$TEXMACS_PATH/misc/pixmaps/modern/32x32/table") |
		       url ("$TEXMACS_PATH/misc/pixmaps/modern/24x24/main") |
		       url ("$TEXMACS_PATH/misc/pixmaps/modern/20x20/mode") |
		       url ("$TEXMACS_PATH/misc/pixmaps/modern/16x16/focus") |
		       url ("$TEXMACS_PATH/misc/pixmaps/traditional/--x17") |
		       plugin_path ("misc/pixmaps"));
  (void) get_env_path ("TEXMACS_DIC_PATH",
		       "$TEXMACS_HOME_PATH/langs/natural/dic" |
		       url ("$TEXMACS_PATH/langs/natural/dic") |
		       plugin_path ("langs/natural/dic"));
#ifdef OS_WIN32
  set_env ("TEXMACS_SOURCE_PATH", "");
#else
  set_env ("TEXMACS_SOURCE_PATH", TEXMACS_SOURCES);
#endif
}