summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2017-06-11 00:46:24 +0200
committerCarlos Garnacho <carlosg@gnome.org>2017-07-03 15:17:02 +0200
commit7e78dbe3f1622716208700354119803da75d10cd (patch)
treedde484d754cb8c986fba4c98738dec7bbf286911 /utils
parent4c93f420be45b6891dcdc297af75ba34c3007a7b (diff)
downloadtracker-7e78dbe3f1622716208700354119803da75d10cd.tar.gz
utils: Remove gtk-sparql util
It's not even ported to pygi, it could go to examples/ if refurbished, but there's aplenty on internet.
Diffstat (limited to 'utils')
-rw-r--r--utils/Makefile.am1
-rw-r--r--utils/gtk-sparql/Makefile.am8
-rw-r--r--utils/gtk-sparql/completion.py284
-rw-r--r--utils/gtk-sparql/completion_engine.py125
-rwxr-xr-xutils/gtk-sparql/gtk-sparql.py213
-rw-r--r--utils/gtk-sparql/gtk-sparql.ui207
-rw-r--r--utils/gtk-sparql/store.py68
7 files changed, 0 insertions, 906 deletions
diff --git a/utils/Makefile.am b/utils/Makefile.am
index 88dcffd10..161cb7abd 100644
--- a/utils/Makefile.am
+++ b/utils/Makefile.am
@@ -1,5 +1,4 @@
SUBDIRS = \
- gtk-sparql \
ontology \
data-generators \
mtp \
diff --git a/utils/gtk-sparql/Makefile.am b/utils/gtk-sparql/Makefile.am
deleted file mode 100644
index 7b5f28309..000000000
--- a/utils/gtk-sparql/Makefile.am
+++ /dev/null
@@ -1,8 +0,0 @@
-EXTRA_DIST = \
- gtk-sparql.ui \
- completion.py \
- completion_engine.py \
- gtk-sparql.py \
- store.py
-
-CLEANFILES = *.pyc
diff --git a/utils/gtk-sparql/completion.py b/utils/gtk-sparql/completion.py
deleted file mode 100644
index 6bc2c86c2..000000000
--- a/utils/gtk-sparql/completion.py
+++ /dev/null
@@ -1,284 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# Code taken from http://code.google.com/p/emesene-plugins/
-# Specifically http://emesene-plugins.googlecode.com/svn/trunk/Completion.py
-#
-# The original file doesn't contain License header, but
-# the project is under license GPL v2
-#
-# GtkSparql - Gtk UI to try SparQL queries against tracker.
-# Copyright (C) 2009, emesene-plugins project
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-
-VERSION = '0.1'
-import os
-import re
-
-import gobject
-import gtk
-
-class CompletionEngine:
- def __init__(self):
- self.complete_functions = []
-
- def add_complete_function(self, function):
- self.complete_functions.append(function)
-
- def remove_complete_function(self, function):
- self.complete_functions.remove(function)
-
- def complete_word(self, buffer):
- complete = []
- for func in self.complete_functions:
- new = func(buffer)
- new.reverse()
- complete.extend(new)
- return complete
-
-class CompletionWindow(gtk.Window):
- """Window for displaying a list of completions."""
-
- def __init__(self, parent, callback):
- gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL)
- self.set_decorated(False)
- self.store = None
- self.view = None
- self.completions = None
- self.complete_callback = callback
- self.set_transient_for(parent)
- self.set_border_width(1)
- self.text = gtk.TextView()
- self.text.set_wrap_mode (gtk.WRAP_WORD)
- self.text_buffer = gtk.TextBuffer()
- self.text.set_buffer(self.text_buffer)
- #self.text.set_size_request(130, 100)
- self.text.set_sensitive(False)
- self.init_tree_view()
- self.init_frame()
- self.cb_ids = {}
- self.cb_ids['focus-out'] = self.connect('focus-out-event', self.focus_out_event)
- self.cb_ids['key-press'] = self.connect('key-press-event', self.key_press_event)
- self.grab_focus()
- self.custom_widget = None
-
-
- def clear(self):
- self.text_buffer.set_text('')
- if self.custom_widget:
- self.custom_widget.hide()
- self.hbox.remove(self.custom_widget)
- self.custom_widget = None
-
- def key_press_event(self, widget, event):
- if event.keyval == gtk.keysyms.Escape:
- self.clear()
- self.hide()
- return True
- if event.keyval == gtk.keysyms.BackSpace:
- self.clear()
- self.hide()
- return True
- if event.keyval in (gtk.keysyms.Return, gtk.keysyms.Right):
- self.complete()
- return True
- if event.keyval == gtk.keysyms.Up:
- self.select_previous()
- return True
- if event.keyval == gtk.keysyms.Down:
- self.select_next()
- return True
-
- char = gtk.gdk.keyval_to_unicode(event.keyval)
- if char:
- self.complete_callback(chr(char))
- return False
-
- def complete(self):
- self.complete_callback(self.completions[self.get_selected()]['completion'])
-
- def focus_out_event(self, *args):
- self.hide()
-
- def get_selected(self):
- """Get the selected row."""
-
- selection = self.view.get_selection()
- return selection.get_selected_rows()[1][0][0]
-
- def init_frame(self):
- """Initialize the frame and scroller around the tree view."""
-
- scroller = gtk.ScrolledWindow()
- scroller.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
- scroller.add(self.view)
- frame = gtk.Frame()
- frame.set_shadow_type(gtk.SHADOW_OUT)
- self.hbox = hbox = gtk.HBox()
- hbox.pack_start(scroller, True, True)
-
- scroller_text = gtk.ScrolledWindow()
- scroller_text.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_NEVER)
- scroller_text.add(self.text)
- hbox.pack_start (scroller_text, True, True)
- frame.add(hbox)
- self.add(frame)
-
- #self.set_geometry_hints(scroller, min_width=200, min_height=200)
- #self.set_geometry_hints(scroller_text, min_width=200, min_height=200)
- self.set_geometry_hints (scroller_text, min_width=2500)
- self.set_geometry_hints (None, min_width=400, min_height=200)
-
- #self.set_geometry_hints(scroller, max_height=450)
- #self.set_geometry_hints(frame, max_height=2500)
- #self.set_geometry_hints(None, max_height=2500)
-
-
- def init_tree_view(self):
- """Initialize the tree view listing the completions."""
-
- self.store = gtk.ListStore(gobject.TYPE_STRING)
- self.view = gtk.TreeView(self.store)
- renderer = gtk.CellRendererText()
- column = gtk.TreeViewColumn("", renderer, text=0)
- self.view.append_column(column)
- self.view.set_enable_search(False)
- self.view.set_headers_visible(False)
- self.view.set_rules_hint(True)
- selection = self.view.get_selection()
- selection.set_mode(gtk.SELECTION_SINGLE)
- #self.view.set_size_request(100, 60)
- self.view.connect('row-activated', self.row_activated)
-
-
- def row_activated(self, tree, path, view_column, data = None):
- self.complete()
-
-
- def select_next(self):
- """Select the next completion."""
-
- self.clear()
- row = min(self.get_selected() + 1, len(self.store) - 1)
- selection = self.view.get_selection()
- selection.unselect_all()
- selection.select_path(row)
- self.view.scroll_to_cell(row)
- self.show_completions()
-
- def select_previous(self):
- """Select the previous completion."""
-
- self.clear()
- row = max(self.get_selected() - 1, 0)
- selection = self.view.get_selection()
- selection.unselect_all()
- selection.select_path(row)
- self.view.scroll_to_cell(row)
- self.show_completions()
-
- def set_completions(self, completions):
- """Set the completions to display."""
-
- self.completions = completions
- #self.completions.reverse()
- #self.resize(1, 1)
- self.store.clear()
- for completion in completions:
- self.store.append([unicode(completion['abbr'])])
- self.view.columns_autosize()
- self.view.get_selection().select_path(0)
- #self.text_buffer.set_text(self.completions[self.get_selected()]['info'])
- self.show_completions()
-
- def show_completions(self):
- self.clear()
- completion = self.completions[self.get_selected()]
- info = completion['info']
- if not info:
- self.text.hide()
- else:
- self.text_buffer.set_text(info)
- self.text.show()
-
- def set_font_description(self, font_desc):
- """Set the label's font description."""
-
- self.view.modify_font(font_desc)
-
-class Completer:
- '''This class provides completion feature for ONE conversation'''
- def __init__(self, engine, view, window):
- self.engine = engine
- self.view = view
- self.window = window
- self.popup = CompletionWindow(None, self.complete)
-
- self.key_press_id = view.connect("key-press-event", self.on_key_pressed)
-
- def disconnect(self):
- self.view.disconnect(self.key_press_id)
-
- def complete(self, completion):
- """Complete the current word."""
-
- doc = self.view.get_buffer()
- doc.insert_at_cursor(completion)
- self.hide_popup()
-
- def cancel(self):
- self.hide_popup()
- return False
-
- def hide_popup(self):
- """Hide the completion window."""
-
- self.popup.hide()
- self.completes = None
-
- def show_popup(self, completions, x, y):
- """Show the completion window."""
-
- root_x, root_y = self.window.get_position()
- print 'root', root_x, root_y
- self.popup.move(root_x + x + 24, root_y + y + 44)
- self.popup.set_completions(completions)
- self.popup.show_all()
-
- def display_completions(self, view, event):
- doc = view.get_buffer()
- insert = doc.get_iter_at_mark(doc.get_insert())
-
- window = gtk.TEXT_WINDOW_TEXT
- rect = view.get_iter_location(insert)
- x, y = view.buffer_to_window_coords(window, rect.x, rect.y)
- x, y = view.translate_coordinates(self.window, x, y)
- completes = self.engine.complete_word(doc)
- if completes:
- self.show_popup(completes, x, y)
- return True
- else:
- return False
-
- def on_key_pressed(self, view, event):
- if event.keyval == gtk.keysyms.Tab:
- #if event.state & gtk.gdk.CONTROL_MASK and event.state & gtk.gdk.MOD1_MASK and event.keyval == gtk.keysyms.Enter:
- return self.display_completions(view, event)
- if event.state & gtk.gdk.CONTROL_MASK:
- return self.cancel()
- if event.state & gtk.gdk.MOD1_MASK:
- return self.cancel()
- return self.cancel()
diff --git a/utils/gtk-sparql/completion_engine.py b/utils/gtk-sparql/completion_engine.py
deleted file mode 100644
index 59992901c..000000000
--- a/utils/gtk-sparql/completion_engine.py
+++ /dev/null
@@ -1,125 +0,0 @@
-#
-# GtkSparql - Gtk UI to try SparQL queries against tracker.
-# Copyright (C) 2009, Ivan Frade <ivan.frade@gmail.com>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-
-import dbus
-import re
-
-TRACKER = 'org.freedesktop.Tracker1'
-TRACKER_OBJ = '/org/freedesktop/Tracker1/Resources'
-RESOURCES_IFACE = "org.freedesktop.Tracker1.Resources"
-
-ALL_NAMESPACES = """
-SELECT ?u ?prefix WHERE { ?u a tracker:Namespace; tracker:prefix ?prefix. }
-"""
-
-ALL_PROPERTIES = """
-SELECT ?u ?comment
-WHERE { ?u a rdf:Property. OPTIONAL { ?u rdfs:comment ?comment.} }
-"""
-
-ALL_CLASSES = """
-SELECT ?u ?comment WHERE { ?u a rdfs:Class. OPTIONAL { ?u rdfs:comment ?comment.} }
-"""
-
-class TrackerCompletionEngine:
-
- def __init__ (self):
- self.connect_tracker ()
-
- self.namespaces = {}
- for row in self.resources.SparqlQuery (ALL_NAMESPACES):
- self.namespaces [row[0]] = row[1]
-
- self.properties = {}
- for (uri, comment) in self.resources.SparqlQuery (ALL_PROPERTIES):
- self.properties [str(self.qname_to_short (uri))] = str(comment)
-
- self.classes = {}
- for (uri, comment) in self.resources.SparqlQuery (ALL_CLASSES):
- self.classes [str(self.qname_to_short (uri))] = str(comment)
-
- def qname_to_short (self, uri):
- ns, classname = self.split_ns_uri (uri)
- prefix = self.namespaces [ns]
- return prefix + ":" + classname
-
- def split_ns_uri (self, uri):
- pieces = uri.split ("#")
- if ( len (pieces) > 1):
- classname = pieces [1]
- namespace = pieces [0] + "#"
- else:
- classname = uri[uri.rindex ('/')+1:]
- namespace = uri[:uri.rindex ('/')+1]
- return namespace, classname
-
-
- def connect_tracker (self):
- # TODO Check if the connection is valid
- bus = dbus.SessionBus ()
- tracker = bus.get_object (TRACKER, TRACKER_OBJ)
- self.resources = dbus.Interface (tracker,
- dbus_interface=RESOURCES_IFACE);
-
- def complete_word (self, textbuffer):
- """
- Return a list of dictionaries with the following keys:
- completion: text to set in the buffer if selected the option
- abbr: text visible for the user in the list of options
- info: test description showed near to the option
- """
- completions = []
- uncomplete_word = self.get_last_word (textbuffer)
- for k in self.classes.iterkeys ():
- if (k.startswith (uncomplete_word)):
- c = {'completion':k[len (uncomplete_word):],
- 'abbr':k,
- 'info':self.classes [k]}
- completions.insert (0, c)
-
- for k in self.properties.iterkeys ():
- if (k.startswith (uncomplete_word)):
- c = {'completion':k[len (uncomplete_word):],
- 'abbr':k,
- 'info':self.properties [k]}
- completions.insert (0, c)
-
- return completions
-
-
- def get_last_word (self, textbuffer):
- insert = textbuffer.get_iter_at_mark(textbuffer.get_insert())
- lineno = insert.get_line ()
- linestart = textbuffer.get_iter_at_line (lineno)
- regex = re.compile (r"\S+$", re.MULTILINE)
- line = textbuffer.get_slice (linestart, insert, False)
- match = re.search (regex, line)
- if (not match):
- return []
- uncomplete_word = match.group (0)
- return uncomplete_word
-
-if __name__ == "__main__":
-
- import gtk
- engine = TrackerCompletionEngine ()
- buf = gtk.TextBuffer ()
- buf.set_text ("SELECT ?u WHERE { ?u a nie:InformationElement;\n nie:t")
- print "Last word: ", engine.get_last_word (buf)
- print engine.complete_word (buf)
diff --git a/utils/gtk-sparql/gtk-sparql.py b/utils/gtk-sparql/gtk-sparql.py
deleted file mode 100755
index 85713bd8f..000000000
--- a/utils/gtk-sparql/gtk-sparql.py
+++ /dev/null
@@ -1,213 +0,0 @@
-#!/usr/bin/env python
-
-# GtkSparql - Gtk UI to try SparQL queries against tracker.
-# Copyright (C) 2009, Ivan Frade <ivan.frade@gmail.com>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-
-import gtk
-import dbus
-import store
-import time
-import completion
-import completion_engine
-
-TRACKER = 'org.freedesktop.Tracker1'
-TRACKER_OBJ = '/org/freedesktop/Tracker1/Resources'
-RESOURCES_IFACE = "org.freedesktop.Tracker1.Resources"
-
-class GtkSparql:
-
- def __init__ (self, ui):
- self.ui = ui
- self.store = store.QueriesStore ()
- self.saved_queries_model = self.load_saved_queries ()
-
- combo = ui.get_object ("queries_combo")
- combo.set_model (self.saved_queries_model)
- render = gtk.CellRendererText ()
- combo.pack_start (render, True)
- combo.add_attribute (render, "text", 0)
- combo.connect ("changed", self.select_store_query_cb)
-
- self.textbuffer = gtk.TextBuffer ()
- self.textbuffer.set_text ("SELECT \nWHERE { \n\n}")
- ui.get_object ("query_text").set_buffer (self.textbuffer)
-
- self.completer = completion.Completer (completion_engine.TrackerCompletionEngine (),
- ui.get_object ("query_text"),
- ui.get_object ("main_window"))
-
-
- ui.get_object ("save_button").connect ("clicked", self.save_query_cb)
- ui.get_object ("run_button").connect ("clicked", self.execute_query_cb)
- ui.get_object ("delete_button").connect ("clicked", self.delete_store_query_cb)
-
- # Clean treeview columns
- treeview = ui.get_object ("results_tv")
- columns = treeview.get_columns ()
- for c in columns:
- treeview.remove_column (c)
-
- self.connect_tracker ()
-
- def run (self):
- w = builder.get_object ("main_window")
- w.connect ("destroy", gtk.main_quit)
- w.show_all ()
- gtk.main ()
-
- def connect_tracker (self):
- # TODO Check if the connection is valid
- bus = dbus.SessionBus ()
- tracker = bus.get_object (TRACKER, TRACKER_OBJ)
- self.resources = dbus.Interface (tracker,
- dbus_interface=RESOURCES_IFACE);
-
-
- def execute_query_cb (self, widget, call=0):
- label = self.ui.get_object ("info_label")
-
- query = self.textbuffer.get_text (self.textbuffer.get_start_iter (),
- self.textbuffer.get_end_iter ())
- try:
- start = time.time ()
- result = self.resources.SparqlQuery (query)
- end = time.time ()
-
- label.set_text ("Query took %f sec." % (end-start))
-
- self.set_results_in_treeview (result)
-
- except dbus.exceptions.DBusException, e:
- if ("org.freedesktop.DBus.Error.ServiceUnknown" in str(e) and call == 0):
- self.connect_tracker ()
- self.execute_query_cb (widget, 1)
- else:
- label.set_text (str(e).partition(':')[2])
-
-
- def set_results_in_treeview (self, result_set):
- if (len (result_set) < 1):
- return None
-
- columns = len (result_set[0])
- params = tuple (columns * [str])
- store = gtk.ListStore (*params)
- self.configure_tree_view (columns)
-
- counter = 0
- for r in result_set:
- if (counter < 500):
- counter += 1
- store.append (r)
- else:
- label = self.ui.get_object ("info_label")
- current_text = label.get_text ()
- label.set_text (current_text +
- "(More than 500 results. Showing only first 500)")
- break
-
- self.ui.get_object ("results_tv").set_model (store)
-
- def configure_tree_view (self, columns):
- """
- Add of remove columns in the current treeview to have exactly 'columns'
- """
- treeview = self.ui.get_object ("results_tv")
- current_columns = treeview.get_columns ()
- if (len (current_columns) == columns):
- return
-
- if (len (current_columns) > columns):
- for i in range (columns, len (current_columns)):
- treeview.remove_column (current_columns [i])
-
-
- # Add columns. Is the only chance at this moment
- for i in range (len (current_columns), columns):
- render = gtk.CellRendererText()
- column = gtk.TreeViewColumn ("%d" % (i),
- render,
- text=i) # primera columna de datos
- treeview.append_column (column)
-
-
- def save_query_cb (self, widget):
- dialog = gtk.Dialog ("Save query...",
- None,
- gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
- (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT,
- gtk.STOCK_OK, gtk.RESPONSE_ACCEPT))
- vbox = dialog.get_content_area ()
-
- query = self.textbuffer.get_text (self.textbuffer.get_start_iter (),
- self.textbuffer.get_end_iter ())
- dialog_query_label = gtk.Label (query)
- vbox.pack_start (dialog_query_label)
- dialog_name_entry = gtk.Entry ()
- vbox.pack_start (dialog_name_entry)
- vbox.show_all ()
-
- # Disable 'ok' button unless there is a name
- dialog.set_response_sensitive (gtk.RESPONSE_ACCEPT, False)
- def validate_entry (entry, dialog):
- dialog.set_response_sensitive (gtk.RESPONSE_ACCEPT, len (entry.get_text ()) > 0)
- dialog_name_entry.connect ("changed", validate_entry, dialog)
-
- response = dialog.run ()
- if (response == gtk.RESPONSE_ACCEPT):
- name = dialog_name_entry.get_text ()
- self.save_query (name, query)
- dialog.destroy ()
-
-
- def select_store_query_cb (self, combobox):
- it = combobox.get_active_iter ()
- selected = combobox.get_model ().get (it, 1)[0]
- self.textbuffer.set_text (selected)
-
-
- def delete_store_query_cb (self, button):
- combo = self.ui.get_object ("queries_combo")
- it = combo.get_active_iter ()
- name = self.saved_queries_model.get (it, 0)[0]
- self.store.delete_query (name)
- self.saved_queries_model.remove (it)
- combo.set_active (0)
-
-
- def load_saved_queries (self):
- queries_model = gtk.ListStore (str, str)
- queries = self.store.get_all_queries ()
- for row in queries:
- queries_model.append (row)
- return queries_model
-
-
- def save_query (self, name, value):
- self.store.save_query (name, value)
- it = self.saved_queries_model.append ((name, value))
- self.ui.get_object ("queries_combo").set_active_iter (it)
-
-
-if __name__ == "__main__":
-
- builder = gtk.Builder ()
- builder.add_from_file ("gtk-sparql.ui")
-
- app = GtkSparql (builder)
- app.run ()
diff --git a/utils/gtk-sparql/gtk-sparql.ui b/utils/gtk-sparql/gtk-sparql.ui
deleted file mode 100644
index 71c6b5361..000000000
--- a/utils/gtk-sparql/gtk-sparql.ui
+++ /dev/null
@@ -1,207 +0,0 @@
-<?xml version="1.0"?>
-<interface>
- <requires lib="gtk+" version="2.16"/>
- <!-- interface-naming-policy project-wide -->
- <object class="GtkListStore" id="liststore1"/>
- <object class="GtkListStore" id="liststore2"/>
- <object class="GtkWindow" id="main_window">
- <property name="border_width">6</property>
- <property name="icon_name">applications-development</property>
- <child>
- <object class="GtkVBox" id="vbox1">
- <property name="visible">True</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkHBox" id="hbox1">
- <property name="visible">True</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Saved queries</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="padding">6</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBox" id="queries_combo">
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="delete_button">
- <property name="label">gtk-delete</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_stock">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkVPaned" id="vpaned1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkVBox" id="vbox2">
- <property name="visible">True</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkTextView" id="query_text">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- </object>
- <packing>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkHBox" id="hbox2">
- <property name="visible">True</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkButton" id="save_button">
- <property name="label">gtk-save</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_stock">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkVSeparator" id="vseparator1">
- <property name="visible">True</property>
- <property name="orientation">vertical</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="previous_button">
- <property name="label">gtk-go-back</property>
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_stock">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="next_button">
- <property name="label">gtk-go-forward</property>
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_stock">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkVSeparator" id="vseparator2">
- <property name="visible">True</property>
- <property name="orientation">vertical</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">4</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="run_button">
- <property name="label">gtk-execute</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_stock">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">5</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="padding">6</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="info_label">
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="resize">False</property>
- <property name="shrink">False</property>
- </packing>
- </child>
- <child>
- <object class="GtkScrolledWindow" id="scrolledwindow1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">automatic</property>
- <property name="vscrollbar_policy">automatic</property>
- <child>
- <object class="GtkTreeView" id="results_tv">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="resize">True</property>
- <property name="shrink">True</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- </child>
- </object>
-</interface>
diff --git a/utils/gtk-sparql/store.py b/utils/gtk-sparql/store.py
deleted file mode 100644
index 958dd1d49..000000000
--- a/utils/gtk-sparql/store.py
+++ /dev/null
@@ -1,68 +0,0 @@
-# GtkSparql - Gtk UI to try SparQL queries against tracker.
-# Copyright (C) 2009, Ivan Frade <ivan.frade@gmail.com>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-import sqlite3
-import os
-
-DEFAULT_EXAMPLE = "SELECT ?u \nWHERE { ?u a nie:InformationElement. }\n\n"
-EMPTY_QUERY = "SELECT \nWHERE { \n\n}"
-
-class QueriesStore ():
-
- def __init__ (self):
- create = False
- self.db_dir, self.db_path = self.get_db_dir_file ()
-
- if (not os.path.exists (self.db_dir)):
- os.makedirs (self.db_dir)
- create = True
-
- if (create or not os.path.exists (self.db_path)):
- conn = sqlite3.connect (self.db_path)
- c = conn.cursor ()
- c.execute ("CREATE TABLE saved_queries ( Name Text not null, Query Text );")
- c.execute ("INSERT INTO saved_queries VALUES ('', '%s')" % (EMPTY_QUERY))
- c.execute ("INSERT INTO saved_queries VALUES ('Example', '%s')" % (DEFAULT_EXAMPLE))
- conn.commit ()
- c.close ()
-
- def get_db_dir_file (self):
- return (os.path.join (os.getenv ("HOME"), ".local", "share", "tracker-query"),
- os.path.join (os.getenv ("HOME"), ".local", "share", "tracker-query", "queries.db"))
-
- def save_query (self, name, value):
- conn = sqlite3.connect (self.db_path)
- c = conn.cursor ()
- c.execute ("INSERT INTO saved_queries VALUES ('%s', '%s');" % (name, value))
- conn.commit ()
- c.close ()
-
- def delete_query (self, name):
- conn = sqlite3.connect (self.db_path)
- c = conn.cursor ()
- c.execute ("DELETE FROM saved_queries WHERE Name='%s';" % (name))
- conn.commit ()
- c.close ()
-
-
- def get_all_queries (self):
- conn = sqlite3.connect (self.db_path)
- c = conn.cursor ()
- c.execute ("SELECT * FROM saved_queries;")
- results = c.fetchall ()
- c.close ()
- return results