Redesigned searchbar

gh-pages
somas95 2017-12-22 16:01:37 +01:00
parent 6c4e391f62
commit ecadcb5493
4 changed files with 335 additions and 245 deletions

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.18.3 -->
<!-- Generated with glade 3.20.2 -->
<interface>
<requires lib="gtk+" version="3.10"/>
<requires lib="gtk+" version="3.20"/>
<!-- interface-local-resource-path ../media -->
<object class="GtkAction" id="action1"/>
<object class="GtkAdjustment" id="adjustment1">
@ -9,21 +9,52 @@
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkImage" id="icon_case_sensitive1">
<object class="GtkImage" id="amunt">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="tooltip_text" translatable="yes">Case Sensitive</property>
<property name="pixbuf">icon-case-off.png</property>
<property name="stock">gtk-go-up</property>
</object>
<object class="GtkImage" id="icon_regex1">
<object class="GtkImage" id="avall">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="tooltip_text" translatable="yes">Next Match</property>
<property name="stock">gtk-go-down</property>
</object>
<object class="GtkImage" id="case_sensitiv">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">format-text-capitalize</property>
</object>
<object class="GtkImage" id="ortografia1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-spell-check</property>
</object>
<object class="GtkRecentFilter" id="recentfilter1">
<mime-types>
<mime-type>text/plain</mime-type>
<mime-type>text/x-markdown</mime-type>
</mime-types>
</object>
<object class="GtkImage" id="reemplaza">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="tooltip_text" translatable="yes">Open Replace</property>
<property name="stock">gtk-find-and-replace</property>
</object>
<object class="GtkImage" id="reemplaza1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-find-and-replace</property>
</object>
<object class="GtkImage" id="regex1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="tooltip_text" translatable="yes">Activate Regex</property>
<property name="pixbuf">icon-regex-off.png</property>
<property name="icon_name">find-location-symbolic</property>
</object>
<object class="UberwriterWindow" id="uberwriter_window">
<property name="can_focus">True</property>
<property name="title">UberWriter</property>
<property name="default_width">800</property>
<property name="default_height">500</property>
<property name="icon">../media/uberwriter.svg</property>
@ -51,6 +82,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="use_underline">True</property>
<property name="use_stock">False</property>
<signal name="activate" handler="new_document" swapped="no"/>
<accelerator key="n" signal="activate" modifiers="GDK_CONTROL_MASK"/>
</object>
@ -61,6 +93,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="use_underline">True</property>
<property name="use_stock">False</property>
<signal name="activate" handler="open_document" swapped="no"/>
<accelerator key="o" signal="activate" modifiers="GDK_CONTROL_MASK"/>
</object>
@ -85,6 +118,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="use_underline">True</property>
<property name="use_stock">False</property>
<signal name="activate" handler="save_document" swapped="no"/>
<accelerator key="s" signal="activate" modifiers="GDK_CONTROL_MASK"/>
</object>
@ -95,6 +129,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="use_underline">True</property>
<property name="use_stock">False</property>
<signal name="activate" handler="save_document_as" swapped="no"/>
<accelerator key="s" signal="activate" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK"/>
</object>
@ -110,6 +145,7 @@
<property name="label">Export as HTML</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="use_stock">False</property>
<signal name="activate" handler="export_as_html" swapped="no"/>
</object>
</child>
@ -118,6 +154,7 @@
<property name="label">Export as PDF</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="use_stock">False</property>
<signal name="activate" handler="export_as_pdf" swapped="no"/>
</object>
</child>
@ -126,6 +163,7 @@
<property name="label" translatable="yes">Export as ODT</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="use_stock">False</property>
<signal name="activate" handler="export_as_odt" swapped="no"/>
</object>
</child>
@ -165,6 +203,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="use_underline">True</property>
<property name="use_stock">False</property>
<accelerator key="w" signal="activate" modifiers="GDK_CONTROL_MASK"/>
</object>
</child>
@ -252,7 +291,6 @@
<property name="label">Use Typewritermode (experimental)</property>
<property name="active">True</property>
<property name="draw_as_radio">True</property>
<!-- <signal name="toggled" handler="toggle_typewriter" swapped="no"/> -->
<accelerator key="t" signal="activate" modifiers="GDK_CONTROL_MASK"/>
</object>
</child>
@ -347,6 +385,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="use_underline">True</property>
<property name="use_stock">False</property>
</object>
</child>
</object>
@ -359,217 +398,6 @@
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="searchreplaceholder">
<property name="can_focus">False</property>
<property name="valign">start</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkBox" id="searchboxholder">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">5</property>
<property name="margin">10</property>
<child>
<object class="GtkSearchEntry" id="searchentrybox">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="invisible_char">•</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkToolbar" id="itoolbar1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="show_arrow">False</property>
<property name="icon_size">1</property>
<property name="margin">0</property>
<child>
<object class="GtkToolButton" id="next_result">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="has_tooltip">True</property>
<property name="tooltip_markup" translatable="yes">Next Match</property>
<property name="tooltip_text" translatable="yes">Next Match</property>
<property name="label" translatable="yes">Normal</property>
<property name="use_underline">True</property>
<property name="icon_name">go-down</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton" id="previous_result">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="has_tooltip">True</property>
<property name="tooltip_markup" translatable="yes">Previous Match</property>
<property name="tooltip_text" translatable="yes">Previous Match</property>
<property name="label" translatable="yes">Normal</property>
<property name="icon_name">go-up</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToggleToolButton" id="case_sensitive">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Active</property>
<property name="use_underline">True</property>
<property name="icon_widget">icon_case_sensitive1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToggleToolButton" id="regex">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">toolbutton</property>
<property name="use_underline">True</property>
<property name="icon_widget">icon_regex1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToggleToolButton" id="replace">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="has_tooltip">True</property>
<property name="tooltip_markup" translatable="yes">Open Replace</property>
<property name="tooltip_text" translatable="yes">Open Replace</property>
<property name="label" translatable="yes">Open Replace</property>
<property name="use_underline">True</property>
<property name="icon_name">edit-find-replace</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<style>
<class name="inline-toolbar"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="padding">5</property>
<property name="pack_type">end</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="replacebox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">5</property>
<property name="margin">10</property>
<property name="margin_top">0</property>
<child>
<object class="GtkLabel" id="replace_label">
<property name="width_request">100</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_start">0</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">Replace with</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="replaceentrybox">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="invisible_char">•</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box4">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkButton" id="replace_one">
<property name="label" translatable="yes">Replace</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="replace_all">
<property name="label" translatable="yes">Replace All</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<style>
<class name="linked"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">5</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkPaned" id="main_pained">
<property name="visible">True</property>
@ -647,13 +475,13 @@
<property name="height_request">15</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="focus_on_click">False</property>
<property name="receives_default">True</property>
<property name="has_tooltip">True</property>
<property name="tooltip_markup" translatable="yes">Go into focus mode</property>
<property name="tooltip_text" translatable="yes">Go into focus mode</property>
<property name="halign">center</property>
<property name="relief">none</property>
<property name="focus_on_click">False</property>
<signal name="toggled" handler="set_focusmode" swapped="no"/>
</object>
<packing>
@ -666,13 +494,13 @@
<property name="label" translatable="yes">Fullscreen</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="focus_on_click">False</property>
<property name="receives_default">True</property>
<property name="has_tooltip">True</property>
<property name="tooltip_markup" translatable="yes">Go into fullscreen mode</property>
<property name="tooltip_text" translatable="yes">Go into fullscreen mode</property>
<property name="halign">start</property>
<property name="relief">none</property>
<property name="focus_on_click">False</property>
<signal name="toggled" handler="toggle_fullscreen" swapped="no"/>
</object>
<packing>
@ -685,13 +513,13 @@
<property name="label" translatable="yes">Preview</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="focus_on_click">False</property>
<property name="receives_default">True</property>
<property name="has_tooltip">True</property>
<property name="tooltip_markup" translatable="yes">Show HTML preview</property>
<property name="tooltip_text" translatable="yes">Show HTML preview</property>
<property name="halign">start</property>
<property name="relief">none</property>
<property name="focus_on_click">False</property>
<signal name="toggled" handler="toggle_preview" swapped="no"/>
</object>
<packing>
@ -717,10 +545,10 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">end</property>
<property name="xalign">1</property>
<property name="label">0</property>
<property name="justify">right</property>
<property name="width_chars">4</property>
<property name="xalign">1</property>
</object>
<packing>
<property name="left_attach">4</property>
@ -759,9 +587,9 @@
<property name="can_focus">False</property>
<property name="halign">end</property>
<property name="margin_end">11</property>
<property name="xalign">1</property>
<property name="label">0</property>
<property name="width_chars">6</property>
<property name="xalign">1</property>
</object>
<packing>
<property name="left_attach">7</property>
@ -788,13 +616,270 @@
<property name="top_attach">2</property>
</packing>
</child>
<child>
<object class="GtkRevealer" id="searchbar_placeholder">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkSearchBar" id="searchbar">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="search_mode_enabled">True</property>
<property name="show_close_button">True</property>
<child>
<object class="GtkRevealer" id="search_placeholder">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="transition_type">none</property>
<property name="reveal_child">True</property>
<child>
<object class="GtkBox" id="searchpanel_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox" id="search_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">6</property>
<child>
<placeholder/>
</child>
<child>
<object class="GtkBox" id="searchbox_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkSearchEntry" id="searchentrybox">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="primary_icon_name">edit-find-symbolic</property>
<property name="primary_icon_activatable">False</property>
<property name="primary_icon_sensitive">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="previous_result">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Previous Match</property>
<property name="image">amunt</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="next_result">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="image">avall</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<style>
<class name="linked"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<placeholder/>
</child>
<child>
<object class="GtkBox" id="searchtools_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkToggleButton" id="case_sensitive">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Case Sensitive</property>
<property name="image">case_sensitiv</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="regex">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="image">regex1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="replace">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="image">reemplaza</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<style>
<class name="linked"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkRevealer" id="replace_placeholder">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkBox" id="replace_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_top">6</property>
<property name="spacing">6</property>
<child>
<placeholder/>
</child>
<child>
<object class="GtkBox" id="replacebox_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkEntry" id="replaceentrybox">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="primary_icon_stock">gtk-find-and-replace</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<style>
<class name="linked"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<placeholder/>
</child>
<child>
<object class="GtkBox" id="replacetools_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkButton" id="replace_one">
<property name="label" translatable="yes">Replace</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="image">ortografia1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="replace_all">
<property name="label" translatable="yes">Replace all</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="image">reemplaza1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<style>
<class name="linked"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<placeholder/>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
</object>
</child>
</object>
<object class="GtkRecentFilter" id="recentfilter1">
<mime-types>
<mime-type>text/plain</mime-type>
<mime-type>text/x-markdown</mime-type>
</mime-types>
<child type="titlebar">
<placeholder/>
</child>
</object>
</interface>

View File

@ -1,5 +1,5 @@
<glade-catalog name="uberwriter_window" domain="glade-3"
depends="gtk+" version="1.0">
depends="gtk+" version="3.26">
<glade-widget-classes>
<glade-widget-class title="Uberwriter Window" name="UberwriterWindow"
generic-name="UberwriterWindow" parent="GtkWindow"

View File

@ -30,7 +30,9 @@ class UberwriterSearchAndReplace():
"""
def __init__(self, parentwindow):
self.parentwindow = parentwindow
self.box = parentwindow.builder.get_object("searchreplaceholder")
self.box = parentwindow.builder.get_object("searchbar_placeholder")
self.box.set_reveal_child(False)
self.searchbar=parentwindow.builder.get_object("searchbar")
self.searchentry = parentwindow.builder.get_object("searchentrybox")
self.searchentry.connect('changed', self.search)
self.searchentry.connect('activate', self.scrolltonext)
@ -47,8 +49,8 @@ class UberwriterSearchAndReplace():
self.regexbutton = parentwindow.builder.get_object("regex")
self.casesensitivebutton = parentwindow.builder.get_object("case_sensitive")
self.replacebox = parentwindow.builder.get_object("replacebox")
self.replacebox.hide()
self.replacebox = parentwindow.builder.get_object("replace_placeholder")
self.replacebox.set_reveal_child(False)
self.replace_one_button = parentwindow.builder.get_object("replace_one")
self.replace_all_button = parentwindow.builder.get_object("replace_all")
self.replaceentry = parentwindow.builder.get_object("replaceentrybox")
@ -67,9 +69,9 @@ class UberwriterSearchAndReplace():
self.texteditor.connect("focus-in-event", self.focused_texteditor)
def toggle_replace(self, widget, data=None):
if widget.get_active():
self.replacebox.show_all()
self.replacebox.set_reveal_child(True)
else:
self.replacebox.hide()
self.replacebox.set_reveal_child(False)
def key_pressed(self, widget, event, data=None):
if event.keyval in [Gdk.KEY_Escape]:
@ -82,11 +84,14 @@ class UberwriterSearchAndReplace():
"""
show search box
"""
if self.box.get_visible():
self.hide()
else:
self.box.show()
if self.box.get_reveal_child() == False or self.searchbar.get_search_mode() == False:
self.searchbar.set_search_mode(True)
self.box.set_reveal_child(True)
self.searchentry.grab_focus()
else:
self.hide()
self.open_replace_button.set_active(False)
def search(self, widget=None, data=None, scroll=True):
searchtext = self.searchentry.get_text()
@ -139,8 +144,8 @@ class UberwriterSearchAndReplace():
# self.texteditor.scroll_to_iter(matchiter[0], 0.0, True, 0.0, 0.5)
def hide(self):
self.replacebox.hide()
self.box.hide()
self.replacebox.set_reveal_child(False)
self.box.set_reveal_child(False)
self.textbuffer.remove_tag(self.highlight,
self.textbuffer.get_start_iter(),
self.textbuffer.get_end_iter())

View File

@ -265,8 +265,8 @@ class UberwriterWindow(Window):
def window_resize(self, widget, data=None):
# To calc padding top / bottom
self.window_height = widget.get_size()[1]
w_width = widget.get_size()[0]
self.window_height = widget.get_allocation().height
w_width = widget.get_allocation().width
# Calculate left / right margin
width_request = 600
if(w_width < 900):