Blob Blame History Raw
/*
* Copyright (C) 2015 The Lemon Man
*
* 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, 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.
*/

namespace Gedit {
namespace FindInFilesPlugin {

[GtkTemplate (ui = "/org/gnome/gedit/plugins/findinfiles/ui/dialog.ui")]
class FindDialog : Gtk.Dialog {
    [GtkChild]
    public Gtk.Entry search_entry;
    [GtkChild]
    public Gtk.FileChooserButton sel_folder;
    [GtkChild]
    public Gtk.CheckButton match_case_checkbutton;
    [GtkChild]
    public Gtk.CheckButton entire_word_checkbutton;
    [GtkChild]
    public Gtk.CheckButton regex_checkbutton;
    [GtkChild]
    public Gtk.Widget find_button;

    public FindDialog (File? root) {
        if (root != null) {
            try {
                    sel_folder.set_current_folder_file (root);
            }
            catch (Error err) {
                warning (err.message);
            }
        }

        set_default_response (Gtk.ResponseType.OK);
        set_response_sensitive (Gtk.ResponseType.OK, false);

        if (Gtk.Settings.get_default ().gtk_dialogs_use_header) {
            var header_bar = new Gtk.HeaderBar ();

            header_bar.set_title (_("Find in Files"));
            header_bar.set_show_close_button (true);

            this.set_titlebar (header_bar);
        } else {
            add_button (_("_Close"), Gtk.ResponseType.CLOSE);
        }

        search_entry.changed.connect (() => {
            find_button.sensitive = (search_entry.text != "");
        });
    }
}

} // namespace FindInFilesPlugin
} // namespace Gedit