void OnRemoveConfiguration(object sender, EventArgs args)
        {
            Gtk.TreeModel foo;
            Gtk.TreeIter  iter;
            if (!configsList.Selection.GetSelected(out foo, out iter))
            {
                return;
            }

            if (configData.Configurations.Count == 1)
            {
                MessageService.ShowWarning(GettextCatalog.GetString("There must be at least one configuration."));
                return;
            }

            var cc  = (ItemConfiguration)store.GetValue(iter, 0);
            var dlg = new DeleteConfigDialog();

            try {
                if (MessageService.RunCustomDialog(dlg, Toplevel as Gtk.Window) == (int)Gtk.ResponseType.Yes)
                {
                    configData.RemoveConfiguration(cc.Id, dlg.DeleteChildren);
                    store.Remove(ref iter);
                }
            } finally {
                dlg.Destroy();
                dlg.Dispose();
            }
        }
        void OnRemoveConfiguration(object sender, EventArgs args)
        {
            Gtk.TreeModel foo;
            Gtk.TreeIter iter;
            if (!configsList.Selection.GetSelected (out foo, out iter))
                return;

            if (configData.Configurations.Count == 1) {
                MessageService.ShowWarning (GettextCatalog.GetString ("There must be at least one configuration."));
                return;
            }

            var cc = (ItemConfiguration) store.GetValue (iter, 0);
            var dlg = new DeleteConfigDialog ();

            try {
                if (MessageService.RunCustomDialog (dlg, Toplevel as Gtk.Window)== (int) Gtk.ResponseType.Yes) {
                    configData.RemoveConfiguration (cc.Id, dlg.DeleteChildren);
                    store.Remove (ref iter);
                }
            } finally {
                dlg.Destroy ();
            }
        }