예제 #1
0
        public PreferenceDialog() : base("main_preferences")
        {
            LoadPreference(Preferences.METADATA_EMBED_IN_IMAGE);
            LoadPreference(Preferences.SCREENSAVER_TAG);
            LoadPreference(Preferences.GNOME_SCREENSAVER_THEME);
            if (!Global.CustomPhotoDirectory)
            {
                photosdir_chooser.CurrentFolderChanged += HandlePhotosdirChanged;
                photosdir_chooser.SetCurrentFolder(Global.PhotoDirectory);
            }
            else
            {
                photosdir_chooser.SetCurrentFolder(Global.PhotoDirectory);
                photosdir_chooser.Sensitive = false;
            }

            Gtk.CellRendererText name_cell = new Gtk.CellRendererText();
            Gtk.CellRendererText desc_cell = new Gtk.CellRendererText();

            display_combo.Model = new ProfileList();
            display_combo.PackStart(desc_cell, false);
            display_combo.PackStart(name_cell, true);
            display_combo.SetCellDataFunc(name_cell, new CellLayoutDataFunc(ProfileList.ProfileNameDataFunc));
            display_combo.SetCellDataFunc(desc_cell, new CellLayoutDataFunc(ProfileList.ProfileDescriptionDataFunc));
            display_combo.Changed += HandleDisplayChanged;

            destination_combo.Model = new ProfileList();
            destination_combo.PackStart(desc_cell, false);
            destination_combo.PackStart(name_cell, true);
            destination_combo.SetCellDataFunc(name_cell, new CellLayoutDataFunc(ProfileList.ProfileNameDataFunc));
            destination_combo.SetCellDataFunc(desc_cell, new CellLayoutDataFunc(ProfileList.ProfileDescriptionDataFunc));
            destination_combo.Changed += HandleDisplayChanged;

            Tag     t       = MainWindow.Toplevel.Database.Tags.GetTagById(screensaver_tag);
            TagMenu tagmenu = new TagMenu(null, MainWindow.Toplevel.Database.Tags);

            tagmenu.Populate(true);
            tag_option.Menu = tagmenu;

            int history = tagmenu.GetPosition(t);

            if (history >= 0)
            {
                tag_option.SetHistory((uint)history);
            }

            tagmenu.TagSelected          += HandleTagMenuSelected;
            set_saver_button.Clicked     += HandleUseFSpot;
            screensaverall_radio.Toggled += ToggleTagRadio;

            Preferences.SettingChanged += OnPreferencesChanged;
            this.Dialog.Destroyed      += HandleDestroyed;
        }
		public PreferenceDialog () : base ("main_preferences")
		{
			LoadPreference (Preferences.METADATA_EMBED_IN_IMAGE);
			LoadPreference (Preferences.SCREENSAVER_TAG);
			LoadPreference (Preferences.GNOME_SCREENSAVER_THEME);
			if (!Global.CustomPhotoDirectory) {
				photosdir_chooser.CurrentFolderChanged += HandlePhotosdirChanged;
				photosdir_chooser.SetCurrentFolder (Global.PhotoDirectory);
			} else {
				photosdir_chooser.SetCurrentFolder(Global.PhotoDirectory);
				photosdir_chooser.Sensitive = false;
			}

			Gtk.CellRendererText name_cell = new Gtk.CellRendererText ();
			Gtk.CellRendererText desc_cell = new Gtk.CellRendererText ();
			
			display_combo.Model = new ProfileList ();
			display_combo.PackStart (desc_cell, false);
			display_combo.PackStart (name_cell, true);
			display_combo.SetCellDataFunc (name_cell, new CellLayoutDataFunc (ProfileList.ProfileNameDataFunc));
			display_combo.SetCellDataFunc (desc_cell, new CellLayoutDataFunc (ProfileList.ProfileDescriptionDataFunc));
			display_combo.Changed += HandleDisplayChanged;

			destination_combo.Model = new ProfileList ();
			destination_combo.PackStart (desc_cell, false);
			destination_combo.PackStart (name_cell, true);
			destination_combo.SetCellDataFunc (name_cell, new CellLayoutDataFunc (ProfileList.ProfileNameDataFunc));
			destination_combo.SetCellDataFunc (desc_cell, new CellLayoutDataFunc (ProfileList.ProfileDescriptionDataFunc));
			destination_combo.Changed += HandleDisplayChanged;

			Tag t = MainWindow.Toplevel.Database.Tags.GetTagById (screensaver_tag);
			TagMenu tagmenu = new TagMenu (null, MainWindow.Toplevel.Database.Tags);
	
			tagmenu.Populate (true);
			tag_option.Menu = tagmenu;

			int history = tagmenu.GetPosition (t);
			if (history >= 0)
				tag_option.SetHistory ((uint)history);

			tagmenu.TagSelected += HandleTagMenuSelected;
			set_saver_button.Clicked += HandleUseFSpot;
			screensaverall_radio.Toggled += ToggleTagRadio;

			Preferences.SettingChanged += OnPreferencesChanged;
			this.Dialog.Destroyed += HandleDestroyed;
		}