X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=src%2Fmoonshot-custom-vbox.vala;h=13a6db313de8994496d4ab680fabbbe8a1bfa131;hb=5b68b364f2c62fa43111b5a53c7040d34205ba20;hp=a243869605ebb1374fe1886de5961b63951f8f25;hpb=81b729c6425ec43c1e47b061a06dcbe7ecd0841d;p=moonshot-ui.git diff --git a/src/moonshot-custom-vbox.vala b/src/moonshot-custom-vbox.vala index a243869..13a6db3 100644 --- a/src/moonshot-custom-vbox.vala +++ b/src/moonshot-custom-vbox.vala @@ -1,109 +1,70 @@ +/* + * Copyright (c) 2011-2014, JANET(UK) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of JANET(UK) nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. +*/ using Gtk; class CustomVBox : VBox { public IdCardWidget current_idcard { get; set; default = null; } + private IdentityManagerView main_window; - private ListStore listmodel; - private TreeModelFilter filter; - - private enum Columns - { - IDCARD_COL, - LOGO_COL, - ISSUER_COL, - USERNAME_COL, - PASSWORD_COL, - N_COLUMNS - } - - private bool visible_func (TreeModel model, TreeIter iter) - { - string search_text; - string issuer; - string issuer_casefold; - string search_text_casefold; - - model.get (iter, - Columns.ISSUER_COL, out issuer); - - issuer_casefold = issuer.casefold (); - search_text_casefold = search_text.casefold (); - - if (issuer_casefold.contains (search_text_casefold)) - return true; - - return false; - } - - private void setup_identities_list () - { - this.listmodel = new ListStore (Columns.N_COLUMNS, typeof (IdCard), - typeof (Gdk.Pixbuf), - typeof (string), - typeof (string), - typeof (string)); - this.filter = new TreeModelFilter (listmodel, null); - - filter.set_visible_func (visible_func); - } - - public CustomVBox (bool homogeneous, int spacing) + public CustomVBox (IdentityManagerView window, bool homogeneous, int spacing) { - this.set_homogeneous (homogeneous); - this.set_spacing (spacing); - - setup_identities_list(); + main_window = window; + set_homogeneous (homogeneous); + set_spacing (spacing); } public void receive_expanded_event (IdCardWidget id_card_widget) { - var list = this.get_children (); + var list = get_children (); foreach (Widget id_card in list) { if (id_card != id_card_widget) ((IdCardWidget) id_card).collapse (); } + current_idcard = id_card_widget; + + if (current_idcard != null && main_window.request_queue.length > 0) + current_idcard.send_button.set_sensitive (true); + check_resize(); } public void add_id_card_widget (IdCardWidget id_card_widget) { - TreeIter iter; - - this.pack_start (id_card_widget, false, false); - - var id_card = id_card_widget.id_card; - - this.listmodel.append (out iter); - listmodel.set (iter, - Columns.IDCARD_COL, id_card, - Columns.LOGO_COL, id_card.pixbuf, - Columns.ISSUER_COL, id_card.issuer, - Columns.USERNAME_COL, id_card.username, - Columns.PASSWORD_COL, id_card.password); + pack_start (id_card_widget, false, false); } public void remove_id_card_widget (IdCardWidget id_card_widget) { - TreeIter iter; - string issuer; - - this.remove (id_card_widget); - - if (listmodel.get_iter_first (out iter)) - { - do - { - listmodel.get (iter, - Columns.ISSUER_COL, out issuer); - - if (id_card_widget.id_card.issuer == issuer) - { - listmodel.remove (iter); - break; - } - } - while (listmodel.iter_next (ref iter)); - } + remove (id_card_widget); } }