def __init__(self, emma): """ @param emma: Emma """ super(QueryTab, self).__init__() self.xml = gtk.glade.XML( os.path.join(emma.glade_path, 'querytab.glade'), "first_query") self.xml.signal_autoconnect(self) self.tab_label.set_text('Query') self.tab_label_icon.set_from_file( os.path.join(icons_path, 'page_code.png')) self.emma = emma self.save_result = self.xml.get_widget('save_result') self.save_result_sql = self.xml.get_widget('save_result_sql') self.local_search = self.xml.get_widget('local_search_button') self.remove_order = self.xml.get_widget('remove_order') self.label = self.xml.get_widget('query_label') self.add_record = self.xml.get_widget('add_record_tool') self.delete_record = self.xml.get_widget('delete_record_tool') self.query_bottom_label = self.xml.get_widget('query_bottom_label') self.query_db_label = self.xml.get_widget('query_db_label') self.textview = self.xml.get_widget('query_text') self.query_text_sw = self.xml.get_widget('query_text_sw') self.apply_record = self.xml.get_widget('apply_record_tool') self.ui = self.xml.get_widget('first_query') self.toolbar = self.xml.get_widget('inner_query_toolbar') self.toolbar.set_style(gtk.TOOLBAR_ICONS) self.scrolledwindow6 = self.xml.get_widget('scrolledwindow6') self.treeview = QueryTabTreeView(emma) self.scrolledwindow6.add(self.treeview) self.treeview.show() self.treeview.get_selection().set_mode(gtk.SELECTION_MULTIPLE) self.treeview.connect('cursor_changed', self.on_query_view_cursor_changed) # todo: move to keymap self.treeview.connect('key_press_event', self.on_query_view_key_press_event) self.treeview.connect('button_press_event', self.on_query_view_button_press_event) self.execution_timer_running = False self.execution_timer_interval = 0 self.editable = False self.sort_timer_running = False self.sort_timer_execute = 0 self.query_encoding_menu = None self.filled_fields = [] # replace textview with gtksourcevice try: org_tv = self.textview manager = gtksourceview2.language_manager_get_default() language = manager.get_language("sql") sb = gtksourceview2.Buffer() sb.set_highlight_syntax(True) sb.set_language(language) sv = self.textview = gtksourceview2.View(sb) self.query_text_sw.remove(org_tv) self.query_text_sw.add(sv) sv.show() sv.set_show_line_numbers(True) sv.set_show_line_marks(True) sv.set_tab_width(4) sv.set_auto_indent(True) sv.set_insert_spaces_instead_of_tabs(False) sv.set_show_right_margin(True) sv.set_smart_home_end(True) sv.set_right_margin_position(80) # sv config # for pt, pn, pd in ( # (bool, "show_line_numbers", True), # #(bool, "show_line_markers", False), # #(int, "tabs_width", 4), # (bool, "auto_indent", True), # (bool, "insert_spaces_instead_of_tabs", False), # #(bool, "show_margin", True), # #(int, "margin", 80), # (bool, "smart_home_end", True) # ): # # cn = "sourceview.%s" % pn # try: # v = self.emma.config[cn] # if pt == bool: # v = v == "1" or v.lower() == "true" or v.lower() == "yes" # else: # v = pt(v) # except: # v = pd # method = getattr(sv, "set_%s" % pn) # method(v) # sb config # for pt, pn, pd in ( # (bool, "check_brackets", True), # (bool, "highlight", True), # (int, "max_undo_levels", 15) # ): # cn = "sourceview.%s" % pn # try: # v = self.emma.config[cn] # if pt == bool: # v = v == "1" or v.lower() == "true" or v.lower() == "yes" # else: # v = pt(v) # except: # v = pd # method = getattr(sb, "set_%s" % pn) # method(v) except: dialogs.alert(traceback.format_exc()) self.current_host = None self.current_db = None self.model = None self.last_source = None self.result_info = None self.append_iter = None self.last_path = None self.encoding = None if hasattr(self, "query"): self.textview.get_buffer().set_text(self.query) self.last_auto_name = None # # INIT Query tab actions # self.remember_order_action = QueryTabRememberOrder(self, emma) self.remove_order_action = QueryTabRemoveOrder(self, emma) self.set_result_font_action = QueryTabSetResultFont(self, emma) self.local_search_action = QueryTabLocalSearch(self, emma) self.save_result_sql_action = QueryTabSaveResultSql(self, emma) self.save_result_csv_action = QueryTabSaveResultCsv(self, emma) self.manage_row_action = QueryTabManageRow(self, emma) # # # self.emma.key_map.connect('key-release', self.key_release) self.init_from_config()