예제 #1
0
        private void PopulateAlbums()
        {
            Gtk.Menu menu = new Gtk.Menu();
            if (gallery.Version == GalleryVersion.Version1)
            {
                Gtk.MenuItem top_item = new Gtk.MenuItem(Catalog.GetString("(TopLevel)"));
                menu.Append(top_item);
            }

            foreach (Album album in gallery.Albums)
            {
                System.Text.StringBuilder label_builder = new System.Text.StringBuilder();

                for (int i = 0; i < album.Parents.Count; i++)
                {
                    label_builder.Append("  ");
                }
                label_builder.Append(album.Title);

                Gtk.MenuItem item = new Gtk.MenuItem(label_builder.ToString());
                ((Gtk.Label)item.Child).UseUnderline = false;
                menu.Append(item);

                AlbumPermission create_sub = album.Perms & AlbumPermission.CreateSubAlbum;

                if (create_sub == 0)
                {
                    item.Sensitive = false;
                }
            }

            album_optionmenu.Sensitive = true;
            menu.ShowAll();
            album_optionmenu.Menu = menu;
        }
예제 #2
0
        private void PopulateAlbumOptionMenu(Gallery gallery)
        {
            System.Collections.ArrayList albums = null;
            if (gallery != null)
            {
                //gallery.FetchAlbumsPrune ();
                try {
                    gallery.FetchAlbums();
                    albums = gallery.Albums;
                } catch (GalleryCommandException e) {
                    gallery.PopupException(e, export_dialog);
                    return;
                }
            }

            Gtk.Menu menu = new Gtk.Menu();

            bool disconnected = gallery == null || !account.Connected || albums == null;

            if (disconnected || albums.Count == 0)
            {
                string msg = disconnected ? Catalog.GetString("(Not Connected)")
                                        : Catalog.GetString("(No Albums)");

                Gtk.MenuItem item = new Gtk.MenuItem(msg);
                menu.Append(item);

                export_button.Sensitive    = false;
                album_optionmenu.Sensitive = false;
                album_button.Sensitive     = false;

                if (disconnected)
                {
                    album_button.Sensitive = false;
                }
            }
            else
            {
                foreach (Album album in albums)
                {
                    System.Text.StringBuilder label_builder = new System.Text.StringBuilder();

                    for (int i = 0; i < album.Parents.Count; i++)
                    {
                        label_builder.Append("  ");
                    }
                    label_builder.Append(album.Title);

                    Gtk.MenuItem item = new Gtk.MenuItem(label_builder.ToString());
                    ((Gtk.Label)item.Child).UseUnderline = false;
                    menu.Append(item);

                    AlbumPermission add_permission = album.Perms & AlbumPermission.Add;

                    if (add_permission == 0)
                    {
                        item.Sensitive = false;
                    }
                }

                export_button.Sensitive    = items.Length > 0;
                album_optionmenu.Sensitive = true;
                album_button.Sensitive     = true;
            }

            menu.ShowAll();
            album_optionmenu.Menu = menu;
        }