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(); }
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); }
/** * 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; }
/* * 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& ))); }
/** * 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; }
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 }