public UnsupportedDatabaseView (IpodSource source) : base (source)
        {
            this.source = source;

            pane = new MessagePane();
            pane.HeaderIcon = IconThemeUtils.LoadIcon(48, "face-surprise", Stock.DialogError);
            pane.ArrowIcon = IconThemeUtils.LoadIcon(24, "go-next", Stock.GoForward);
            pane.HeaderMarkup = String.Format("<big><b>{0}</b></big>",
                GLib.Markup.EscapeText(Catalog.GetString("Unable to read your iPod")));

            AddPaneItems();

            Add(pane);
            ShowAll ();
        }
        public UnsupportedDatabaseView(IpodSource source) : base(source)
        {
            this.source = source;

            pane              = new MessagePane();
            pane.HeaderIcon   = IconThemeUtils.LoadIcon(48, "face-surprise", Stock.DialogError);
            pane.ArrowIcon    = IconThemeUtils.LoadIcon(24, "go-next", Stock.GoForward);
            pane.HeaderMarkup = String.Format("<big><b>{0}</b></big>",
                                              GLib.Markup.EscapeText(Catalog.GetString("Unable to read your iPod")));

            AddPaneItems();

            Add(pane);
            ShowAll();
        }
        public DatabaseRebuilder(IpodSource source)
        {
            this.source = source;

            user_job = new UserJob(Catalog.GetString("Rebuilding Database"));
            user_job.PriorityHints = PriorityHints.SpeedSensitive | PriorityHints.DataLossIfStopped;
            user_job.SetResources(Resource.Disk, Resource.Cpu);
            user_job.Title     = Catalog.GetString("Rebuilding Database");
            user_job.Status    = Catalog.GetString("Scanning iPod...");
            user_job.IconNames = source._GetIconNames();
            user_job.CanCancel = true;
            user_job.Register();

            ThreadPool.QueueUserWorkItem(RebuildDatabase);
        }