Commit 459370f9 authored by Johannes Schmid's avatar Johannes Schmid

python-support: GSettings migration

parent 9af4d930
......@@ -22,6 +22,7 @@ SUBDIRS = . \
document-manager \
search \
language-support-cpp-java \
language-support-python \
glade \
devhelp \
language-manager \
......@@ -36,7 +37,6 @@ SUBDIRS = . \
js-debugger
# language-support-js \
# language-support-vala \
# language-support-python \
# python-loader
-include $(top_srcdir)/git.mk
......@@ -42,8 +42,9 @@ libpython_plugin_la_LDFLAGS = $(ANJUTA_PLUGIN_LDFLAGS)
libpython_plugin_la_LIBADD = \
$(LIBANJUTA_LIBS)
prefs_ui_files = $(python_plugin_glade_DATA)
prefs_keyfile = python-plugin.gschema-part.xml
prefs_name = org.gnome.anjuta.python
prefs_ui_files = python-plugin-properties.ui
prefs_keyfile = python.gschema-part.xml
include $(top_srcdir)/scripts/build-schemas.mk
EXTRA_DIST = \
......
......@@ -64,6 +64,7 @@
/* Preferences keys */
#define PREF_SCHEMA "org.gnome.anjuta.python"
#define PREF_INDENT_AUTOMATIC "python-indent-automatic"
#define PREF_INDENT_ADAPTIVE "python-indent-adaptive"
#define PREF_INDENT_TAB_INDENTS "python-indent-tab-indents"
......@@ -71,7 +72,7 @@
#define PREF_INDENT_BRACE_SIZE "python-indent-brace-size"
#define PREF_NO_ROPE_WARNING "python-no-rope-warning"
#define PREF_INTERPRETER_PATH "python-interpreter.path"
#define PREF_INTERPRETER_PATH "python-interpreter-path"
#define TAB_SIZE (ianjuta_editor_get_tabsize (editor, NULL))
......@@ -80,12 +81,12 @@
#define INDENT_SIZE \
(plugin->param_statement_indentation >= 0? \
plugin->param_statement_indentation : \
anjuta_preferences_get_int (plugin->prefs, PREF_INDENT_STATEMENT_SIZE))
g_settings_get_int (plugin->settings, PREF_INDENT_STATEMENT_SIZE))
#define BRACE_INDENT \
(plugin->param_brace_indentation >= 0? \
plugin->param_brace_indentation : \
anjuta_preferences_get_int (plugin->prefs, PREF_INDENT_BRACE_SIZE))
g_settings_get_int (plugin->settings, PREF_INDENT_BRACE_SIZE))
#define CASE_INDENT (INDENT_SIZE)
#define LABEL_INDENT (INDENT_SIZE)
......@@ -868,7 +869,7 @@ on_editor_char_inserted_cpp (IAnjutaEditor *editor,
iter = ianjuta_iterable_clone (insert_pos, NULL);
/* If autoindent is enabled*/
if (anjuta_preferences_get_bool (plugin->prefs, PREF_INDENT_AUTOMATIC))
if (g_settings_get_boolean (plugin->settings, PREF_INDENT_AUTOMATIC))
{
if (iter_is_newline (iter, ch))
{
......@@ -901,7 +902,8 @@ static void
on_check_finished (AnjutaLauncher* launcher,
int child_pid, int exit_status,
gulong time, gpointer user_data)
{
{
PythonPlugin* plugin = ANJUTA_PLUGIN_PYTHON (user_data);
if (exit_status != 0)
{
GtkWidget* dialog = gtk_dialog_new_with_buttons (_("Python support warning"),
......@@ -927,9 +929,8 @@ on_check_finished (AnjutaLauncher* launcher,
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (check_button)))
{
anjuta_preferences_set_bool (anjuta_preferences_default (),
PREF_NO_ROPE_WARNING,
TRUE);
g_settings_get_boolean (plugin->settings,
PREF_NO_ROPE_WARNING);
}
gtk_widget_destroy (dialog);
}
......@@ -939,12 +940,12 @@ on_check_finished (AnjutaLauncher* launcher,
static void
check_support (PythonPlugin *python_plugin)
{
if (!anjuta_preferences_get_bool (anjuta_preferences_default (),
PREF_NO_ROPE_WARNING))
if (!g_settings_get_boolean (python_plugin->settings,
PREF_NO_ROPE_WARNING))
{
AnjutaLauncher* launcher = anjuta_launcher_new ();
gchar* python_path = anjuta_preferences_get (anjuta_preferences_default(),
PREF_INTERPRETER_PATH);
gchar* python_path = g_settings_get_string (python_plugin->settings,
PREF_INTERPRETER_PATH);
gchar* command = g_strdup_printf ("%s -c \"import rope\"", python_path);
g_signal_connect (launcher, "child-exited",
......@@ -1029,7 +1030,9 @@ install_support (PythonPlugin *lang_plugin)
lang_plugin->assist = python_assist_new (iassist,
sym_manager,
docman,
lang_plugin->prefs, editor_filename, project_root);
lang_plugin->settings,
editor_filename,
project_root);
}
lang_plugin->support_installed = TRUE;
......@@ -1322,6 +1325,12 @@ static void
python_plugin_dispose (GObject *obj)
{
/* Disposition codes */
PythonPlugin *plugin = (PythonPlugin*)obj;
if (plugin->settings)
g_object_unref (plugin->settings);
plugin->settings = NULL;
G_OBJECT_CLASS (parent_class)->dispose (obj);
}
......@@ -1335,6 +1344,7 @@ python_plugin_instance_init (GObject *obj)
plugin->editor_watch_id = 0;
plugin->uiid = 0;
plugin->assist = NULL;
plugin->settings = g_settings_new (PREF_SCHEMA);
}
static void
......@@ -1361,7 +1371,9 @@ ipreferences_merge (IAnjutaPreferences* ipref, AnjutaPreferences* prefs,
plugin->bxml = gtk_builder_new();
gtk_builder_add_objects_from_file(plugin->bxml, PROPERTIES_FILE_UI, objects, NULL);
anjuta_preferences_add_from_builder (prefs,
plugin->bxml, "preferences", _("Python"),
plugin->bxml,
plugin->settings,
"preferences", _("Python"),
ICON_FILE);
}
......
......@@ -79,6 +79,7 @@ struct _PythonPlugin{
/* Preferences */
GtkBuilder* bxml;
GSettings* settings;
};
struct _PythonPluginClass{
......
......@@ -25,6 +25,7 @@
#include <ctype.h>
#include <string.h>
#include <unistd.h>
#include <glib/gi18n.h>
#include <libanjuta/anjuta-debug.h>
#include <libanjuta/anjuta-launcher.h>
#include <libanjuta/interfaces/ianjuta-file.h>
......@@ -39,11 +40,11 @@
#include "python-assist.h"
#include "python-utils.h"
#define PREF_AUTOCOMPLETE_ENABLE "language.python.code.completion.enable"
#define PREF_AUTOCOMPLETE_SPACE_AFTER_FUNC "language.python.code.completion.space.after.func"
#define PREF_AUTOCOMPLETE_BRACE_AFTER_FUNC "language.python.code.completion.brace.after.func"
#define PREF_CALLTIP_ENABLE "language.python.code.calltip.enable"
#define PREF_INTERPRETER_PATH "language.python.interpreter.path"
#define PREF_AUTOCOMPLETE_ENABLE "python-completion-enable"
#define PREF_AUTOCOMPLETE_SPACE_AFTER_FUNC "python-completion-func-space"
#define PREF_AUTOCOMPLETE_BRACE_AFTER_FUNC "python-completion-func-brace"
#define PREF_CALLTIP_ENABLE "python-calltip-enable"
#define PREF_INTERPRETER_PATH "python-interpreter-path"
#define MAX_COMPLETIONS 30
#define BRACE_SEARCH_LIMIT 500
#define SCOPE_BRACE_JUMP_LIMIT 50
......@@ -68,7 +69,7 @@ typedef struct
} PythonAssistTag;
struct _PythonAssistPriv {
AnjutaPreferences *preferences;
GSettings* settings;
IAnjutaSymbolManager* isymbol_manager;
IAnjutaDocumentManager* idocument_manager;
IAnjutaEditorAssist* iassist;
......@@ -473,8 +474,8 @@ python_assist_create_word_completion_cache (PythonAssist *assist, IAnjutaIterabl
project = g_get_tmp_dir ();
/* Create rope command and temporary source file */
interpreter_path = anjuta_preferences_get (assist->priv->preferences,
PREF_INTERPRETER_PATH);
interpreter_path = g_settings_get_string (assist->priv->settings,
PREF_INTERPRETER_PATH);
tmp_file = create_tmp_file (source);
g_free (source);
......@@ -577,8 +578,8 @@ python_assist_query_calltip (PythonAssist *assist, const gchar *call_context)
if (!project)
project = g_get_tmp_dir ();
interpreter_path = anjuta_preferences_get (assist->priv->preferences,
PREF_INTERPRETER_PATH);
interpreter_path = g_settings_get_string (assist->priv->settings,
PREF_INTERPRETER_PATH);
tmp_file = create_tmp_file (source);
g_free (source);
......@@ -790,15 +791,15 @@ python_assist_populate (IAnjutaProvider* self, IAnjutaIterable* cursor, GError**
/* Check for calltip */
if (assist->priv->itip &&
anjuta_preferences_get_bool (assist->priv->preferences,
PREF_CALLTIP_ENABLE))
g_settings_get_boolean (assist->priv->settings,
PREF_CALLTIP_ENABLE))
{
python_assist_calltip (assist);
}
/* Check if we actually want autocompletion at all */
if (!anjuta_preferences_get_bool (anjuta_preferences_default (),
PREF_AUTOCOMPLETE_ENABLE))
if (!g_settings_get_string (assist->priv->settings,
PREF_AUTOCOMPLETE_ENABLE))
{
python_assist_none (self, assist);
return;
......@@ -884,11 +885,11 @@ python_assist_activate (IAnjutaProvider* self, IAnjutaIterable* iter, gpointer d
if (tag->is_func)
{
add_space_after_func =
anjuta_preferences_get_bool (assist->priv->preferences,
PREF_AUTOCOMPLETE_SPACE_AFTER_FUNC);
g_settings_get_boolean (assist->priv->settings,
PREF_AUTOCOMPLETE_SPACE_AFTER_FUNC);
add_brace_after_func =
anjuta_preferences_get_bool (assist->priv->preferences,
PREF_AUTOCOMPLETE_BRACE_AFTER_FUNC);
g_settings_get_boolean (assist->priv->settings,
PREF_AUTOCOMPLETE_BRACE_AFTER_FUNC);
if (add_space_after_func)
g_string_append (assistance, " ");
......@@ -1002,7 +1003,7 @@ PythonAssist *
python_assist_new (IAnjutaEditorAssist *iassist,
IAnjutaSymbolManager *isymbol_manager,
IAnjutaDocumentManager *idocument_manager,
AnjutaPreferences *prefs,
GSettings* settings,
const gchar *editor_filename,
const gchar *project_root)
{
......@@ -1010,7 +1011,7 @@ python_assist_new (IAnjutaEditorAssist *iassist,
assist->priv->isymbol_manager = isymbol_manager;
assist->priv->idocument_manager = idocument_manager;
assist->priv->editor_filename = editor_filename;
assist->priv->preferences = prefs;
assist->priv->settings = settings;
assist->priv->project_root = project_root;
assist->priv->editor=(IAnjutaEditor*)iassist;
python_assist_install (assist, IANJUTA_EDITOR (iassist));
......
......@@ -26,7 +26,6 @@
#define _PYTHON_ASSIST_H_
#include <glib-object.h>
#include <libanjuta/anjuta-preferences.h>
#include <libanjuta/interfaces/ianjuta-editor-assist.h>
#include <libanjuta/interfaces/ianjuta-symbol-manager.h>
#include <libanjuta/interfaces/ianjuta-project-manager.h>
......@@ -67,7 +66,7 @@ GType python_assist_get_type (void) G_GNUC_CONST;
PythonAssist *python_assist_new (IAnjutaEditorAssist *assist,
IAnjutaSymbolManager *isymbol_manager,
IAnjutaDocumentManager *idocument_manager,
AnjutaPreferences *preferences,
GSettings* settings,
const gchar *editor_filename,
const gchar *project_root);
......
<key name="python-no-rope-warning" type="b">
<default>false</default>
</key>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment