示例#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;
        }
示例#2
0
            public LibraryLocationButton(LibrarySource source)
            {
                this.source              = source;
                preference               = source.PreferencesPage["library-location"]["library-location"] as SchemaPreference <string>;
                preference.ShowLabel     = false;
                preference.DisplayWidget = this;

                string dir = preference.Value ?? source.DefaultBaseDirectory;

                Spacing = 5;

                // FileChooserButton wigs out if the directory does not exist,
                // so create it if it doesn't and store the fact that we did
                // in case it ends up not being used, we can remove it
                try {
                    if (!Banshee.IO.Directory.Exists(dir))
                    {
                        Banshee.IO.Directory.Create(dir);
                        created_directory = dir;
                        Log.DebugFormat("Created library directory: {0}", created_directory);
                    }
                } catch {
                }

                chooser = new FileChooserButton(Catalog.GetString("Select library location"),
                                                FileChooserAction.SelectFolder);
                // Only set the LocalOnly property if false; setting it when true
                // causes the "Other..." entry to be hidden in older Gtk+
                if (!Banshee.IO.Provider.LocalOnly)
                {
                    chooser.LocalOnly = Banshee.IO.Provider.LocalOnly;
                }
                chooser.SetCurrentFolder(dir);
                chooser.SelectionChanged += OnChooserChanged;

                HBox box = new HBox();

                box.Spacing = 2;
                box.PackStart(new Image(Stock.Undo, IconSize.Button), false, false, 0);
                box.PackStart(new Label(Catalog.GetString("Reset")), false, false, 0);
                reset = new Button()
                {
                    Sensitive   = dir != source.DefaultBaseDirectory,
                    TooltipText = String.Format(Catalog.GetString("Reset location to default ({0})"), source.DefaultBaseDirectory)
                };
                reset.Clicked += OnReset;
                reset.Add(box);

                //Button open = new Button ();
                //open.PackStart (new Image (Stock.Open, IconSize.Button), false, false, 0);
                //open.Clicked += OnOpen;

                PackStart(chooser, true, true, 0);
                PackStart(reset, false, false, 0);
                //PackStart (open, false, false, 0);

                chooser.Show();
                reset.ShowAll();
            }
示例#3
0
        private void buildImportPanel()
        {
            importLocationButton = new FileChooserButton(_("Import folder to scan"), FileChooserAction.SelectFolder);
            importLocationButton.SetCurrentFolder(prefSettings.ImportLocation);

            importLocationButton.CurrentFolderChanged += OnImportLocationFolderChanged;
            importDirectoryHbox.Add(importLocationButton);
            if (!importTorrentsCheckBox.Active)
            {
                importLocationButton.Sensitive = false;
            }
            importLocationButton.Show();
        }
        public DruidStoragePage()
        {
            this.Build();

            torrentButton = new FileChooserButton("Select torrent storage directory...", FileChooserAction.SelectFolder);
            dataButton    = new FileChooserButton("Select default download directory...", FileChooserAction.SelectFolder);

            torrentButton.ShowAll();
            dataButton.ShowAll();

            storageTable.Attach(dataButton, 1, 2, 0, 1, AttachOptions.Fill, AttachOptions.Shrink, 0, 0);
            storageTable.Attach(torrentButton, 1, 2, 1, 2, AttachOptions.Fill, AttachOptions.Shrink, 0, 0);

            torrentButton.SetCurrentFolder(System.IO.Path.Combine(System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "monotorrent"), "torrents"));
            dataButton.SetCurrentFolder(Environment.GetFolderPath(Environment.SpecialFolder.Personal));
        }
示例#5
0
        private void buildFoldersPanel()
        {
            downloadLocationButton = new FileChooserButton(_("Download location"), FileChooserAction.SelectFolder);
            downloadLocationButton.SetCurrentFolder(engineSettings.SavePath);

            downloadLocationButton.CurrentFolderChanged += OnDownloadLocationButtonFolderChanged;
            foldersTable.Attach(downloadLocationButton, 1, 2, 0, 1);
            downloadLocationButton.Show();

            torrentStorageLocationButton = new FileChooserButton(_("Torrage storage location"), FileChooserAction.SelectFolder);

            torrentStorageLocationButton.SetCurrentFolder(prefSettings.TorrentStorageLocation);

            torrentStorageLocationButton.CurrentFolderChanged += OnTorrentStorageLocationFolderChanged;
            foldersTable.Attach(torrentStorageLocationButton, 1, 2, 1, 2);
            torrentStorageLocationButton.Show();
        }
示例#6
0
        private void SetDefaultFolderBackup()
        {
            var defaultBackupFolder = System.IO.Path.Combine(Directory.GetCurrentDirectory(), "Backup");

            try
            {
                if (!Directory.Exists(defaultBackupFolder))
                {
                    Directory.CreateDirectory(defaultBackupFolder);
                }

                _folderChooser.SetCurrentFolder(defaultBackupFolder);
            }
            catch (Exception e)
            {
                _logger.Warn("Failed to create a default directory on \"{defaultBackupFolder}\"");
                _logger.Warn(e.Message);
            }
        }
        private void BuildFilterPage()
        {
            TreeViewColumn filterColumn = new TreeViewColumn();

            filterListStore = new ListStore(typeof(RssFilter));

            CellRendererText textRenderer = new CellRendererText();

            filterFeedCombobox.PackStart(textRenderer, true);
            filterFeedCombobox.AddAttribute(textRenderer, "text", 0);

            filterFeedListStore = new ListStore(typeof(string));
            allIter             = filterFeedListStore.AppendValues("All");

            filterFeedCombobox.Model = filterFeedListStore;
            filterFeedCombobox.SetActiveIter(allIter);

            filterColumn.Title = "Filter";
            Gtk.CellRendererText filterCell = new Gtk.CellRendererText();
            filterColumn.PackStart(filterCell, true);
            filterColumn.SetCellDataFunc(filterCell, new Gtk.TreeCellDataFunc(RenderFilter));

            filterTreeView.AppendColumn(filterColumn);

            filterTreeView.Model = filterListStore;

            savePathChooserButton = new FileChooserButton("Select a Save Path", FileChooserAction.SelectFolder);
            savePathChooserButton.SetCurrentFolder(controller.TorrentController.engine.Settings.SavePath);
            savePathChooserButton.ShowAll();

            filterTable.Attach(savePathChooserButton, 1, 2, 3, 4, AttachOptions.Fill, AttachOptions.Shrink, 0, 0);

            foreach (RssFilter filter in controller.Filters)
            {
                filterListStore.AppendValues(filter);
            }
            foreach (string feed in controller.Feeds)
            {
                filterFeedListStore.AppendValues(feed);
            }

            filterTreeView.Selection.Changed += OnFilterTreeViewSelectionChanged;
        }
        protected virtual void OnFilterTreeViewSelectionChanged(object o, EventArgs args)
        {
            TreeIter  iter;
            RssFilter filter;

            logger.Debug("Retrieving selected RssFilter");

            if (!filterTreeView.Selection.GetSelected(out iter))
            {
                return;
            }

            logger.Debug("Populating filter settings");

            filter = (RssFilter)filterListStore.GetValue(iter, 0);

            nameEntry.Changed          -= OnRssFilterValueChanged;
            includeEntry.Changed       -= OnRssFilterValueChanged;
            excludeEntry.Changed       -= OnRssFilterValueChanged;
            filterFeedCombobox.Changed -= OnRssFilterValueChanged;
            savePathChooserButton.CurrentFolderChanged -= OnRssFilterValueChanged;

            Console.Out.WriteLine("Trying to get iter for feed: " + filter.Feed);
            filterFeedCombobox.SetActiveIter(FeedToIter(filter.Feed));
            nameEntry.Text    = filter.Name;
            includeEntry.Text = filter.Include;
            excludeEntry.Text = filter.Exclude;

            if (savePathChooserButton.SetCurrentFolder(filter.SavePath))
            {
                logger.Error("Failed to switch file chooser folder for filter " + filter.Name);
            }

            nameEntry.Changed          += OnRssFilterValueChanged;
            includeEntry.Changed       += OnRssFilterValueChanged;
            excludeEntry.Changed       += OnRssFilterValueChanged;
            filterFeedCombobox.Changed += OnRssFilterValueChanged;
            savePathChooserButton.CurrentFolderChanged += OnRssFilterValueChanged;
        }
示例#9
0
        public PreferencesDialog() : base(null, "PreferencesDialog")
        {
            dialog        = base.Dialog;
            dialog.Shown += delegate {
                if (settings.FirstRun)
                {
                    on_redetectConnectionButton_clicked(redetectConnectionButton, EventArgs.Empty);
                    base.Dialog.SkipPagerHint   = false;
                    base.Dialog.SkipTaskbarHint = false;
                }
            };

            settings = Gui.Settings;

            /* Configure gui */

            firewallImage.Pixbuf           = new Gdk.Pixbuf(null, "FileFind.Meshwork.GtkClient.firewall-small.png");
            internetConnectionImage.Pixbuf = new Gdk.Pixbuf(null, "FileFind.Meshwork.GtkClient.network1.png");
            folderImage = Gui.LoadIcon(24, "folder");

            sharedFoldersListStore  = new Gtk.ListStore(typeof(string));
            sharedFoldersList.Model = sharedFoldersListStore;
            var imageCell = new CellRendererPixbuf();
            var textCell  = new CellRendererText();
            var column    = new TreeViewColumn();

            column.PackStart(imageCell, false);
            column.PackStart(textCell, true);
            column.SetCellDataFunc(imageCell, new TreeCellDataFunc(showFolderIcon));
            column.SetCellDataFunc(textCell, new TreeCellDataFunc(showFolderText));
            sharedFoldersList.AppendColumn(column);
            sharedFoldersList.RulesHint = true;

            Gtk.Drag.DestSet(sharedFoldersList, Gtk.DestDefaults.All, new Gtk.TargetEntry [] { new Gtk.TargetEntry("text/uri-list", 0, 0) }, Gdk.DragAction.Copy);
            sharedFoldersList.DragDataReceived += OnSharedFoldersListDragDataReceived;

            advancedListStore  = new Gtk.ListStore(typeof(string), typeof(int));
            advancedList.Model = advancedListStore;
            advancedList.AppendColumn("Text", new CellRendererText(), "text", 0);

            advancedNotebook.ShowTabs = false;

            for (int x = 0; x < advancedNotebook.NPages; x++)
            {
                Widget widget = advancedNotebook.GetNthPage(x);
                advancedListStore.AppendValues(advancedNotebook.GetTabLabelText(widget), x);
            }

            TreeIter iter;

            advancedListStore.GetIterFirst(out iter);
            advancedList.Selection.SelectIter(iter);

            if (Gui.MainWindow != null)
            {
                dialog.TransientFor = Gui.MainWindow.Window;
            }
            else
            {
                // First run!
            }

            Gtk.Drag.DestSet(avatarButton, DestDefaults.All, target_table, Gdk.DragAction.Copy | Gdk.DragAction.Move);


            provider = new RSACryptoServiceProvider();
            provider.ImportParameters(settings.EncryptionParameters);
            nodeid = Common.SHA512Str(provider.ToXmlString(false));

            /**** Load options ****/

            // General Tab
            nicknameEntry.Text = settings.NickName;
            nameEntry.Text     = settings.RealName;
            nodeIdLabel.Markup = "<span font=\"monospace\">" + Common.FormatFingerprint(nodeid, 7) + "</span>";
            emailEntry.Text    = settings.Email;

            string avatarDirectory = Path.Combine(Settings.ConfigurationDirectory, "avatars");
            string myAvatarFile    = Path.Combine(avatarDirectory, String.Format("{0}.png", nodeid));

            if (File.Exists(myAvatarFile))
            {
                avatarImage.Pixbuf = new Gdk.Pixbuf(myAvatarFile);
            }
            else
            {
                avatarImage.Pixbuf    = new Gdk.Pixbuf(null, "FileFind.Meshwork.GtkClient.avatar-generic-large.png");
                avatarImage.Sensitive = false;
            }

            // Networks tab
            networksListStore = new ListStore(typeof(NetworkInfo));

            foreach (NetworkInfo networkInfo in settings.Networks)
            {
                networksListStore.AppendValues(networkInfo.Clone());
            }

            networksTreeView.AppendColumn("Network Name", new CellRendererText(), new TreeCellDataFunc(NetworkNameFunc));
            networksTreeView.Model = networksListStore;

            // File Sharing Tab

            foreach (string dir in settings.SharedDirectories)
            {
                sharedFoldersListStore.AppendValues(new object[] { dir });
            }
            downloadsChooser.SetCurrentFolder(settings.IncompleteDownloadDir);
            completedDownloadsChooser.SetCurrentFolder(settings.CompletedDownloadDir);

            // Connection Tab

            tcpPortLabel.Text = settings.TcpListenPort.ToString();

            firewallStatusLabel.Text = String.Empty;

            if (CheckForNat())
            {
                natStatusLabel.Markup = "You <b>are</b> behind a NAT router.";
                // XXX: Include UPnP Info!
            }
            else
            {
                natStatusLabel.Markup     = "You <b>are not</b> behind a NAT router.";
                natOptionsTable.Sensitive = false;
            }

            bool foundIPv6Internal = false;
            bool foundIPv6External = false;

            foreach (IDestination destination in Core.DestinationManager.Destinations)
            {
                if (destination is IPv6Destination)
                {
                    if (((IPv6Destination)destination).IsExternal)
                    {
                        foundIPv6External = true;
                    }
                    else
                    {
                        foundIPv6Internal = true;
                    }
                }
                else if (destination is IPv4Destination && destination.IsExternal)
                {
                    internetIPLabel.Text = ((IPDestination)destination).Address.ToString();
                }
            }
            if (foundIPv6External)
            {
                supportsIPv6Label.Text = "Yes";
            }
            else if (foundIPv6Internal)
            {
                supportsIPv6Label.Text = "LAN Only";
            }
            else
            {
                supportsIPv6Label.Text = "No";
            }

            // Plugins Tab

            pluginsListStore = new ListStore(typeof(PluginInfo));
            pluginsTreeView.AppendColumn("Plugin Info", new CellRendererText(), new TreeCellDataFunc(PluginInfoFunc));
            pluginsTreeView.Model = pluginsListStore;

            foreach (string fileName in settings.Plugins)
            {
                try {
                    PluginInfo info = new PluginInfo(fileName);
                    pluginsListStore.AppendValues(info);
                } catch (Exception ex) {
                    Core.LoggingService.LogError(ex);
                }
            }

            // Advanced -> Appearance

            startInTrayCheckButton.Active = settings.StartInTray;

            // Advanced -> Auto-connect Tab
            autoConnectTreeStore  = new Gtk.TreeStore(typeof(object));
            autoConnectList.Model = autoConnectTreeStore;

            CellRendererToggle autoConnectToggleCell = new CellRendererToggle();

            autoConnectToggleCell.Toggled += OnAutoConnectItemToggled;

            CellRendererText autoConnectTextCell = new CellRendererText();

            column = new TreeViewColumn();
            column.PackStart(autoConnectToggleCell, false);
            column.SetCellDataFunc(autoConnectToggleCell, new TreeCellDataFunc(ShowAutoConnectToggle));
            column.PackStart(autoConnectTextCell, true);
            column.SetCellDataFunc(autoConnectTextCell, new TreeCellDataFunc(ShowAutoConnectName));
            autoConnectList.AppendColumn(column);
            autoConnectList.AppendColumn("IP", new CellRendererText(), new Gtk.TreeCellDataFunc(ShowAutoConnectIP));
            PopulateAutoConnectList();
            autoConnectCountSpinButton.Value = settings.AutoConnectCount;

            // Advanced -> Connection
            nodePortSpinButton.Value       = settings.TcpListenPort;
            nodePortOpenCheckButton.Active = settings.TcpListenPortOpen;
            detectIPCheckButton.Active     = settings.DetectInternetIPOnStart;
            externalIPv4AddressEntry.Text  = internetIPLabel.Text;
            stunServerEntry.Text           = settings.StunServer;

            ipv6LocalInterfaceComboBox.Model = new ListStore(typeof(string), typeof(int));
            ((ListStore)ipv6LocalInterfaceComboBox.Model).AppendValues("Disabled", -1);
            var interfaces = new Dictionary <string, int>();

            foreach (InterfaceAddress addr in Core.OS.GetInterfaceAddresses())
            {
                if (addr.Address.AddressFamily == AddressFamily.InterNetworkV6 && (!IPAddress.IsLoopback(addr.Address)))
                {
                    if (!interfaces.ContainsKey(addr.Name))
                    {
                        interfaces[addr.Name] = addr.InterfaceIndex;
                    }
                }
            }
            foreach (string name in interfaces.Keys)
            {
                ((ListStore)ipv6LocalInterfaceComboBox.Model).AppendValues(name, interfaces[name]);
            }

            if (ipv6LocalInterfaceComboBox.Model.GetIterFirst(out iter))
            {
                do
                {
                    int index = (int)ipv6LocalInterfaceComboBox.Model.GetValue(iter, 1);
                    if (index == settings.IPv6LinkLocalInterfaceIndex)
                    {
                        ipv6LocalInterfaceComboBox.SetActiveIter(iter);
                        break;
                    }
                } while (ipv6LocalInterfaceComboBox.Model.IterNext(ref iter));
            }

            UpdateFirewallLabel();

            // Advanced -> File Transfer
            limitDownSpeedCheckButton.Active = settings.EnableGlobalDownloadSpeedLimit;
            limitDownSpeedSpinButton.Value   = settings.GlobalDownloadSpeedLimit;

            limitUpSpeedCheckButton.Active = settings.EnableGlobalUploadSpeedLimit;
            limitUpSpeedSpinButton.Value   = settings.GlobalUploadSpeedLimit;

            // I cant seem to make anything default with just the glade file.
            nicknameEntry.GrabFocus();
        }
        public PreferenceDialog() : base("main_preferences")
        {
            tag_button = new MenuButton();
            LoadPreference(Preferences.METADATA_EMBED_IN_IMAGE);
            LoadPreference(Preferences.COLOR_MANAGEMENT_ENABLED);
            LoadPreference(Preferences.COLOR_MANAGEMENT_USE_X_PROFILE);
            LoadPreference(Preferences.SCREENSAVER_TAG);
            LoadPreference(Preferences.GNOME_SCREENSAVER_THEME);
            if (Global.PhotoDirectory == Preferences.Get <string> (Preferences.STORAGE_PATH))
            {
                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();

            use_x_profile_check.Sensitive = colormanagement_check.Active;

            display_combo.Sensitive = colormanagement_check.Active;
            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));
            //FIXME
            int it_ = 0;

            foreach (Cms.Profile profile in FSpot.ColorManagement.Profiles)
            {
                if (profile.ProductName == Preferences.Get <string> (Preferences.COLOR_MANAGEMENT_DISPLAY_PROFILE))
                {
                    display_combo.Active = it_;
                }
                it_++;
            }

            display_combo.Changed += HandleDisplayChanged;

            destination_combo.Sensitive = colormanagement_check.Active;
            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.Changed += HandleDestinationChanged;
            //FIXME
            it_ = 0;
            foreach (Cms.Profile profile in FSpot.ColorManagement.Profiles)
            {
                if (profile.ProductName == Preferences.Get <string> (Preferences.COLOR_MANAGEMENT_OUTPUT_PROFILE))
                {
                    destination_combo.Active = it_;
                }
                it_++;
            }

            TagMenu tagmenu = new TagMenu(null, MainWindow.Toplevel.Database.Tags);

            tagmenu.Populate(false);

            tag_button.Menu = tagmenu;
            tag_button.ShowAll();
            tagselectionhbox.Add(tag_button);

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

            themenone_radio.Toggled += ToggleThemeRadio;
            themelist_combo          = ComboBox.NewText();
            theme_list = new Dictionary <string, string> ();
            string gtkrc = Path.Combine("gtk-2.0", "gtkrc");

            string [] search = { Path.Combine(Global.HomeDirectory, ".themes"), "/usr/share/themes" };
            foreach (string path in search)
            {
                if (Directory.Exists(path))
                {
                    foreach (string dir in Directory.GetDirectories(path))
                    {
                        if (File.Exists(Path.Combine(dir, gtkrc)) && !theme_list.ContainsKey(Path.GetFileName(dir)))
                        {
                            theme_list.Add(Path.GetFileName(dir), Path.Combine(dir, gtkrc));
                        }
                    }
                }
            }

            string active_theme = Preferences.Get <string> (Preferences.GTK_RC);
            int    it           = 0;

            foreach (string theme in theme_list.Keys)
            {
                themelist_combo.AppendText(Path.GetFileName(theme));
                if (active_theme.Contains(Path.DirectorySeparatorChar + Path.GetFileName(theme) + Path.DirectorySeparatorChar))
                {
                    themelist_combo.Active = it;
                }
                it++;
            }

            theme_table.Attach(themelist_combo, 2, 3, 0, 1);
            themelist_combo.Changed += HandleThemeComboChanged;
            themelist_combo.Show();
            theme_filechooser.Visible = themefile_label.Visible = FSpot.Utils.Log.Debugging;

            themelist_combo.Sensitive = theme_filechooser.Sensitive = themecustom_radio.Active;
            if (File.Exists(active_theme))
            {
                theme_filechooser.SetFilename(Preferences.Get <string> (Preferences.GTK_RC));
            }
            theme_filechooser.SelectionChanged += HandleThemeFileActivated;
            themecustom_radio.Active            = (active_theme != String.Empty);

#if GTK_2_12_2
            restartlabel.Visible = false;
#endif

#if DEBUGTHEMES
            refreshtheme_button = true;
#endif

            Preferences.SettingChanged += OnPreferencesChanged;
            this.Dialog.Destroyed      += HandleDestroyed;
        }
示例#11
0
        private void InitUI()
        {
            BOWidgetBox boxValue      = null;
            BOWidgetBox ComboboxValue = null;

            try
            {
                cfg_configurationpreferenceparameter dataSourceRow = (cfg_configurationpreferenceparameter)_dataSourceRow;

                //Define Label for Value
                string valueLabel = (resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], dataSourceRow.ResourceString) != null)
                    ? resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], dataSourceRow.ResourceString)
                    : "LABEL NOT DEFINED IN Field  [ResourceString]";

                //Define RegEx for Value
                string valueRegEx = "REGULAR EXPRESSION NOT DEFINED IN Field [RegEx]";
                if (dataSourceRow.RegEx != null)
                {
                    //Try to get Value
                    object objectValueRegEx = FrameworkUtils.GetFieldValueFromType(typeof(SettingsApp), dataSourceRow.RegEx);
                    if (objectValueRegEx != null)
                    {
                        valueRegEx = objectValueRegEx.ToString();
                    }
                }

                //Define Label for Value
                bool valueRequired = (dataSourceRow.Required)
                    ? dataSourceRow.Required
                    : false;

                //Override Db Regex with ConfigurationSystemCountry RegExZipCode and RegExFiscalNumber
                if (dataSourceRow.Token == "COMPANY_POSTALCODE")
                {
                    valueRegEx = SettingsApp.ConfigurationSystemCountry.RegExZipCode;
                }
                if (dataSourceRow.Token == "COMPANY_FISCALNUMBER")
                {
                    valueRegEx = SettingsApp.ConfigurationSystemCountry.RegExFiscalNumber;
                }

                //Tab1
                VBox vboxTab1 = new VBox(false, _boxSpacing)
                {
                    BorderWidth = (uint)_boxSpacing
                };

                //Ord
                Entry       entryOrd = new Entry();
                BOWidgetBox boxLabel = new BOWidgetBox(resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_record_order"), entryOrd);
                vboxTab1.PackStart(boxLabel, false, false, 0);
                _crudWidgetList.Add(new GenericCRUDWidgetXPO(boxLabel, _dataSourceRow, "Ord", SettingsApp.RegexIntegerGreaterThanZero, true));

                //Code
                Entry       entryCode = new Entry();
                BOWidgetBox boxCode   = new BOWidgetBox(resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_record_code"), entryCode);
                vboxTab1.PackStart(boxCode, false, false, 0);
                _crudWidgetList.Add(new GenericCRUDWidgetXPO(boxCode, _dataSourceRow, "Code", SettingsApp.RegexIntegerGreaterThanZero, true));

                //Token
                Entry       entryToken = new Entry();
                BOWidgetBox boxToken   = new BOWidgetBox(resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_token"), entryToken);
                vboxTab1.PackStart(boxToken, false, false, 0);
                _crudWidgetList.Add(new GenericCRUDWidgetXPO(boxToken, _dataSourceRow, "Token", SettingsApp.RegexAlfaNumericExtended, true));

                //Get InputType
                PreferenceParameterInputType inputType = (PreferenceParameterInputType)Enum.Parse(typeof(PreferenceParameterInputType), dataSourceRow.InputType.ToString(), true);

                Entry entryValue = new Entry();

                switch (inputType)
                {
                case PreferenceParameterInputType.Text:
                case PreferenceParameterInputType.TextPassword:
                    boxValue = new BOWidgetBox(valueLabel, entryValue);
                    vboxTab1.PackStart(boxValue, false, false, 0);
                    // Turn entry into a TextPassword, curently we not use it, until we can turn Visibility = false into TreeView Cell
                    if (inputType.Equals(PreferenceParameterInputType.TextPassword))
                    {
                        entryValue.Visibility = false;
                    }

                    _crudWidgetList.Add(new GenericCRUDWidgetXPO(boxValue, _dataSourceRow, "Value", valueRegEx, valueRequired));
                    // ValueTip
                    if (!string.IsNullOrEmpty(dataSourceRow.ValueTip))
                    {
                        entryValue.TooltipText = string.Format(resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_prefparam_value_tip_format"), dataSourceRow.ValueTip);
                    }
                    break;

                case PreferenceParameterInputType.Multiline:
                    EntryMultiline entryMultiline = new EntryMultiline();
                    entryMultiline.Value.Text = dataSourceRow.Value;
                    entryMultiline.ScrolledWindow.BorderWidth = 1;
                    entryMultiline.HeightRequest = 122;
                    Label labelMultiline = new Label(resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_notes"));
                    boxValue = new BOWidgetBox(valueLabel, entryMultiline);
                    vboxTab1.PackStart(boxValue, false, false, 0);
                    _crudWidgetList.Add(new GenericCRUDWidgetXPO(boxValue, _dataSourceRow, "Value", valueRegEx, valueRequired));
                    // Override Default Window Height
                    _windowHeight = _windowHeightForTextComponent + 100;
                    break;

                case PreferenceParameterInputType.CheckButton:
                    CheckButton checkButtonValue = new CheckButton(valueLabel);
                    vboxTab1.PackStart(checkButtonValue, false, false, 0);
                    _crudWidgetList.Add(new GenericCRUDWidgetXPO(checkButtonValue, _dataSourceRow, "Value"));
                    // Override Default Window Height
                    _windowHeight = _windowHeightForTextComponent - 20;
                    break;

                //Mudar a lingua da Aplicação - Não é genérico
                //IN009296 BackOffice - Mudar a língua da aplicação
                case PreferenceParameterInputType.ComboBox:
                    string getCultureFromDB;
                    try
                    {
                        string sql = "SELECT value FROM cfg_configurationpreferenceparameter where token = 'CULTURE';";
                        getCultureFromDB = GlobalFramework.SessionXpo.ExecuteScalar(sql).ToString();
                    }
                    catch
                    {
                        getCultureFromDB = GlobalFramework.Settings["customCultureResourceDefinition"];
                    }

                    string[] getCulturesValues = new string[8];
                    getCulturesValues[0] = "pt-PT";
                    getCulturesValues[1] = "pt-AO";
                    getCulturesValues[2] = "pt-BR";
                    getCulturesValues[3] = "pt-MZ";
                    getCulturesValues[4] = "en-GB";
                    getCulturesValues[5] = "en-US";
                    getCulturesValues[6] = "fr-FR";
                    getCulturesValues[7] = "es-ES";

                    string[] getCulturesLabels = new string[8];
                    getCulturesLabels[0] = "Português(Portugal)";
                    getCulturesLabels[1] = "Português(Angola)";
                    getCulturesLabels[2] = "Português(Brasil)";
                    getCulturesLabels[3] = "Português(Moçambique)";
                    getCulturesLabels[4] = "English(GB)";
                    getCulturesLabels[5] = "English(USA)";
                    getCulturesLabels[6] = "Françes";
                    getCulturesLabels[7] = "Espanol";

                    TreeIter  iter;
                    TreeStore store = new TreeStore(typeof(string), typeof(string));
                    for (int i = 0; i < getCulturesLabels.Length; i++)
                    {
                        iter = store.AppendValues(getCulturesValues.GetValue(i), getCulturesLabels.GetValue(i));
                    }

                    ComboBox xpoComboBoxInputType = new ComboBox(getCulturesLabels);

                    xpoComboBoxInputType.Model.GetIterFirst(out iter);
                    int cbox = 0;
                    do
                    {
                        GLib.Value thisRow = new GLib.Value();
                        xpoComboBoxInputType.Model.GetValue(iter, 0, ref thisRow);
                        //if ((thisRow.Val as string).Equals(getCultureFromDB))
                        if (getCulturesValues[cbox] == getCultureFromDB)
                        {
                            xpoComboBoxInputType.SetActiveIter(iter);
                            break;
                        }
                        cbox++;
                    } while (xpoComboBoxInputType.Model.IterNext(ref iter));

                    ComboboxValue = new BOWidgetBox(resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_language"), xpoComboBoxInputType);
                    vboxTab1.PackStart(ComboboxValue, false, false, 0);

                    entryValue.Text       = getCulturesValues[xpoComboBoxInputType.Active];
                    entryValue.Visibility = false;

                    xpoComboBoxInputType.Changed += delegate
                    {
                        entryValue.Text = getCulturesValues[xpoComboBoxInputType.Active];
                        //GlobalFramework.CurrentCulture = new System.Globalization.CultureInfo(getCulturesValues[xpoComboBoxInputType.Active]);
                        //GlobalFramework.Settings["customCultureResourceDefinition"] = getCulturesValues[xpoComboBoxInputType.Active];
                        //CustomResources.UpdateLanguage(getCulturesValues[xpoComboBoxInputType.Active]);
                        //_crudWidgetList.Add(new GenericCRUDWidgetXPO(boxValue, _dataSourceRow, "Value", string.Empty, false));
                    };
                    boxValue = new BOWidgetBox(valueLabel, entryValue);
                    _crudWidgetList.Add(new GenericCRUDWidgetXPO(boxValue, _dataSourceRow, "Value", string.Empty, false));
                    break;

                case PreferenceParameterInputType.FilePicker:
                case PreferenceParameterInputType.DirPicker:
                    //FilePicker
                    FileChooserAction fileChooserAction = (inputType.Equals(PreferenceParameterInputType.FilePicker)) ? FileChooserAction.Open : FileChooserAction.SelectFolder;
                    FileChooserButton fileChooser       = new FileChooserButton(string.Empty, fileChooserAction)
                    {
                        HeightRequest = 23
                    };
                    if (inputType.Equals(PreferenceParameterInputType.FilePicker))
                    {
                        fileChooser.SetFilename(dataSourceRow.Value);
                        fileChooser.Filter = Utils.GetFileFilterImages();
                    }
                    else
                    {
                        fileChooser.SetCurrentFolder(dataSourceRow.Value);
                    }
                    boxValue = new BOWidgetBox(valueLabel, fileChooser);
                    vboxTab1.PackStart(boxValue, false, false, 0);
                    _crudWidgetList.Add(new GenericCRUDWidgetXPO(boxValue, _dataSourceRow, "Value", string.Empty, false));
                    break;

                default:
                    break;
                }

                //Append Tab
                _notebook.AppendPage(vboxTab1, new Label(resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_record_main_detail")));

                //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

                //Disable Components
                entryToken.Sensitive = false;

                //Protect PreferenceParameterInputType : Disable if is COMPANY_FISCALNUMBER or Other Sensitive Data
                cfg_configurationpreferenceparameter parameter = (_dataSourceRow as cfg_configurationpreferenceparameter);
                if (entryValue != null)
                {
                    entryValue.Sensitive = (
                        parameter.Token != "COMPANY_NAME" &&
                        parameter.Token != "COMPANY_BUSINESS_NAME" &&
                        parameter.Token != "COMPANY_COUNTRY" &&
                        parameter.Token != "COMPANY_COUNTRY" &&
                        parameter.Token != "COMPANY_COUNTRY_CODE2" &&
                        parameter.Token != "COMPANY_FISCALNUMBER" &&
                        parameter.Token != "SYSTEM_CURRENCY"
                        //&& parameter.Token != "COMPANY_CIVIL_REGISTRATION"
                        //&& parameter.Token != "COMPANY_CIVIL_REGISTRATION_ID"
                        );
                }
            }
            catch (System.Exception ex)
            {
                _log.Error(ex.Message, ex);
            }
        }
示例#12
0
        void LoadPreference(string key)
        {
            string pref;
            int    i;

            switch (key)
            {
            case Preferences.STORAGE_PATH:
                photosdir_chooser.SetCurrentFolder(Preferences.Get <string> (key));
                break;

            case Preferences.METADATA_EMBED_IN_IMAGE:
                bool embed_active = Preferences.Get <bool> (key);
                if (writemetadata_radio.Active != embed_active)
                {
                    if (embed_active)
                    {
                        writemetadata_radio.Active = true;
                    }
                    else
                    {
                        dontwrite_radio.Active = true;
                    }
                }
                always_sidecar_check.Sensitive = embed_active;
                break;

            case Preferences.METADATA_ALWAYS_USE_SIDECAR:
                bool always_use_sidecar = Preferences.Get <bool> (key);
                always_sidecar_check.Active = always_use_sidecar;
                break;

            case Preferences.GTK_RC:
                pref = Preferences.Get <string> (key);
                if (string.IsNullOrEmpty(pref))
                {
                    theme_combo.Active = 0;
                    break;
                }
                i = 0;
                foreach (object [] row in theme_combo.Model as ListStore)
                {
                    if (pref == (string)row [1])
                    {
                        theme_combo.Active = i;
                        break;
                    }
                    i++;
                }
                break;

            case Preferences.COLOR_MANAGEMENT_DISPLAY_PROFILE:
                pref = Preferences.Get <string> (key);
                if (string.IsNullOrEmpty(pref))
                {
                    screenprofile_combo.Active = 0;
                    break;
                }
                if (pref == "_x_profile_" && FSpot.ColorManagement.XProfile != null)
                {
                    screenprofile_combo.Active = 1;
                    break;
                }
                i = 0;
                foreach (object [] row in screenprofile_combo.Model as ListStore)
                {
                    if (pref == (string)row [0])
                    {
                        screenprofile_combo.Active = i;
                        break;
                    }
                    i++;
                }
                break;

            case Preferences.COLOR_MANAGEMENT_OUTPUT_PROFILE:
                pref = Preferences.Get <string> (key);
                if (string.IsNullOrEmpty(pref))
                {
                    printprofile_combo.Active = 0;
                    break;
                }
                i = 0;
                foreach (object [] row in printprofile_combo.Model as ListStore)
                {
                    if (pref == (string)row [0])
                    {
                        printprofile_combo.Active = i;
                        break;
                    }
                    i++;
                }
                break;
            }
        }
示例#13
0
        private void InitUI()
        {
            BOWidgetBox boxValue = null;

            try
            {
                CFG_ConfigurationPreferenceParameter dataSourceRow = (CFG_ConfigurationPreferenceParameter)_dataSourceRow;

                //Define Label for Value
                string valueLabel = (Resx.ResourceManager.GetString(dataSourceRow.ResourceString) != null)
                    ? Resx.ResourceManager.GetString(dataSourceRow.ResourceString)
                    : "LABEL NOT DEFINED IN Field  [ResourceString]";

                //Define RegEx for Value
                string valueRegEx = "REGULAR EXPRESSION NOT DEFINED IN Field [RegEx]";
                if (dataSourceRow.RegEx != null)
                {
                    //Try to get Value
                    object objectValueRegEx = FrameworkUtils.GetFieldValueFromType(typeof(SettingsApp), dataSourceRow.RegEx);
                    if (objectValueRegEx != null)
                    {
                        valueRegEx = objectValueRegEx.ToString();
                    }
                }

                //Define Label for Value
                bool valueRequired = (dataSourceRow.Required)
                    ? dataSourceRow.Required
                    : false;

                //Override Db Regex with ConfigurationSystemCountry RegExZipCode and RegExFiscalNumber
                if (dataSourceRow.Token == "COMPANY_POSTALCODE")
                {
                    valueRegEx = SettingsApp.ConfigurationSystemCountry.RegExZipCode;
                }
                if (dataSourceRow.Token == "COMPANY_FISCALNUMBER")
                {
                    valueRegEx = SettingsApp.ConfigurationSystemCountry.RegExFiscalNumber;
                }

                //Tab1
                VBox vboxTab1 = new VBox(false, _boxSpacing)
                {
                    BorderWidth = (uint)_boxSpacing
                };

                //Ord
                Entry       entryOrd = new Entry();
                BOWidgetBox boxLabel = new BOWidgetBox(Resx.global_record_order, entryOrd);
                vboxTab1.PackStart(boxLabel, false, false, 0);
                _crudWidgetList.Add(new GenericCRUDWidgetXPO(boxLabel, _dataSourceRow, "Ord", SettingsApp.RegexIntegerGreaterThanZero, true));

                //Code
                Entry       entryCode = new Entry();
                BOWidgetBox boxCode   = new BOWidgetBox(Resx.global_record_code, entryCode);
                vboxTab1.PackStart(boxCode, false, false, 0);
                _crudWidgetList.Add(new GenericCRUDWidgetXPO(boxCode, _dataSourceRow, "Code", SettingsApp.RegexIntegerGreaterThanZero, true));

                //Token
                Entry       entryToken = new Entry();
                BOWidgetBox boxToken   = new BOWidgetBox(Resx.global_token, entryToken);
                vboxTab1.PackStart(boxToken, false, false, 0);
                _crudWidgetList.Add(new GenericCRUDWidgetXPO(boxToken, _dataSourceRow, "Token", SettingsApp.RegexAlfaNumericExtended, true));

                //Get InputType
                PreferenceParameterInputType inputType = (PreferenceParameterInputType)Enum.Parse(typeof(PreferenceParameterInputType), dataSourceRow.InputType.ToString(), true);

                Entry entryValue = new Entry();

                switch (inputType)
                {
                case PreferenceParameterInputType.Text:
                case PreferenceParameterInputType.TextPassword:
                    boxValue = new BOWidgetBox(valueLabel, entryValue);
                    vboxTab1.PackStart(boxValue, false, false, 0);
                    // Turn entry into a TextPassword, curently we not use it, until we can turn Visibility = false into TreeView Cell
                    if (inputType.Equals(PreferenceParameterInputType.TextPassword))
                    {
                        entryValue.Visibility = false;
                    }

                    _crudWidgetList.Add(new GenericCRUDWidgetXPO(boxValue, _dataSourceRow, "Value", valueRegEx, valueRequired));
                    // ValueTip
                    if (!string.IsNullOrEmpty(dataSourceRow.ValueTip))
                    {
                        entryValue.TooltipText = string.Format(Resx.global_prefparam_value_tip_format, dataSourceRow.ValueTip);
                    }
                    break;

                case PreferenceParameterInputType.Multiline:
                    EntryMultiline entryMultiline = new EntryMultiline();
                    entryMultiline.Value.Text = dataSourceRow.Value;
                    entryMultiline.ScrolledWindow.BorderWidth = 1;
                    entryMultiline.HeightRequest = 122;
                    Label labelMultiline = new Label(Resx.global_notes);
                    boxValue = new BOWidgetBox(valueLabel, entryMultiline);
                    vboxTab1.PackStart(boxValue, false, false, 0);
                    _crudWidgetList.Add(new GenericCRUDWidgetXPO(boxValue, _dataSourceRow, "Value", valueRegEx, valueRequired));
                    // Override Default Window Height
                    _windowHeight = _windowHeightForTextComponent + 100;
                    break;

                case PreferenceParameterInputType.CheckButton:
                    CheckButton checkButtonValue = new CheckButton(valueLabel);
                    vboxTab1.PackStart(checkButtonValue, false, false, 0);
                    _crudWidgetList.Add(new GenericCRUDWidgetXPO(checkButtonValue, _dataSourceRow, "Value"));
                    // Override Default Window Height
                    _windowHeight = _windowHeightForTextComponent - 20;
                    break;

                case PreferenceParameterInputType.ComboBox:
                    break;

                case PreferenceParameterInputType.FilePicker:
                case PreferenceParameterInputType.DirPicker:
                    //FilePicker
                    FileChooserAction fileChooserAction = (inputType.Equals(PreferenceParameterInputType.FilePicker)) ? FileChooserAction.Open : FileChooserAction.SelectFolder;
                    FileChooserButton fileChooser       = new FileChooserButton(string.Empty, fileChooserAction)
                    {
                        HeightRequest = 23
                    };
                    if (inputType.Equals(PreferenceParameterInputType.FilePicker))
                    {
                        fileChooser.SetFilename(dataSourceRow.Value);
                        fileChooser.Filter = Utils.GetFileFilterImages();
                    }
                    else
                    {
                        fileChooser.SetCurrentFolder(dataSourceRow.Value);
                    }
                    boxValue = new BOWidgetBox(valueLabel, fileChooser);
                    vboxTab1.PackStart(boxValue, false, false, 0);
                    _crudWidgetList.Add(new GenericCRUDWidgetXPO(boxValue, _dataSourceRow, "Value", string.Empty, false));
                    break;

                default:
                    break;
                }

                //Append Tab
                _notebook.AppendPage(vboxTab1, new Label(Resx.global_record_main_detail));

                //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

                //Disable Components
                entryToken.Sensitive = false;

                //Protect PreferenceParameterInputType : Disable if is COMPANY_FISCALNUMBER or Other Sensitive Data
                CFG_ConfigurationPreferenceParameter parameter = (_dataSourceRow as CFG_ConfigurationPreferenceParameter);
                if (entryValue != null)
                {
                    entryValue.Sensitive = (
                        parameter.Token != "COMPANY_NAME" &&
                        parameter.Token != "COMPANY_BUSINESS_NAME" &&
                        parameter.Token != "COMPANY_COUNTRY" &&
                        parameter.Token != "COMPANY_COUNTRY" &&
                        parameter.Token != "COMPANY_COUNTRY_CODE2" &&
                        parameter.Token != "COMPANY_FISCALNUMBER" &&
                        parameter.Token != "SYSTEM_CURRENCY"
                        //&& parameter.Token != "COMPANY_CIVIL_REGISTRATION"
                        //&& parameter.Token != "COMPANY_CIVIL_REGISTRATION_ID"
                        );
                }
            }
            catch (System.Exception ex)
            {
                _log.Error(ex.Message, ex);
            }
        }