private void ReplaceOrMergeSettings(string settingsFilePath)
        {
            if (!string.IsNullOrEmpty(settingsFilePath) && File.Exists(settingsFilePath))
            {
                string importType = Path.GetExtension(settingsFilePath).ToLower();
                switch (importType)
                {
                case ".printer":
                    throw new NotImplementedException("need to import from 'MatterControl.printer' files");
                    break;

                case ".ini":
                    var    settingsToImport = SettingsLayer.LoadFromIni(settingsFilePath);
                    string layerHeight;

                    bool isSlic3r = settingsToImport.TryGetValue("layer_height", out layerHeight);
                    if (isSlic3r)
                    {
                        var activeSettings = ActiveSliceSettings.Instance;

                        if (importMode == "replace")
                        {
                            activeSettings.ClearUserOverrides();
                        }

                        foreach (var item in settingsToImport)
                        {
                            // Compare the value to import to the layer cascade value and only set if different
                            string currentValue = activeSettings.GetActiveValue(item.Key, null).Trim();
                            if (currentValue != item.Value)
                            {
                                activeSettings.UserLayer[item.Key] = item.Value;
                            }
                        }

                        activeSettings.SaveChanges();

                        UiThread.RunOnIdle(ApplicationController.Instance.ReloadAdvancedControlsPanel);
                    }
                    else
                    {
                        // looks like a cura file
                        throw new NotImplementedException("need to import from 'cure.ini' files");
                    }
                    break;

                default:
                    // Did not figure out what this file is, let the user know we don't understand it
                    StyledMessageBox.ShowMessageBox(null, "Oops! Unable to recognize settings file '{0}'.".Localize().FormatWith(Path.GetFileName(settingsFilePath)), "Unable to Import".Localize());
                    break;
                }
            }
            Invalidate();
        }