Example #1
0
        public void ApplyItemTemplate(string templateName)
        {
            string assemblyFolder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            string templatePath   = Path.Combine(assemblyFolder, "ItemTemplates", templateName + ".xaml");

            if (!File.Exists(templatePath))
            {
                ToolbarLogger.GetLogger("EverythingToolbar").Error("Item template file not found. Defaulting to 'Normal' template.");
                templatePath = Path.Combine(assemblyFolder, "ItemTemplates", "Normal.xaml");
            }

            AddResource(templatePath);
        }
Example #2
0
        public void ApplyTheme(string themeName)
        {
            string assemblyFolder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            string themePath      = Path.Combine(assemblyFolder, "Themes", themeName + ".xaml");

            if (!File.Exists(themePath))
            {
                ToolbarLogger.GetLogger("EverythingToolbar").Error("Theme file not found. Defaulting to 'Medium' theme.");
                themePath = Path.Combine(assemblyFolder, "Themes", "Medium.xaml");
            }

            AddResource(themePath);
        }
 public bool AddOrReplace(string name, Key key, ModifierKeys modifiers, EventHandler <HotkeyEventArgs> handler)
 {
     try
     {
         shortcuts[name] = handler;
         HotkeyManager.Current.AddOrReplace(name, key, modifiers, handler);
         return(true);
     }
     catch (Exception e)
     {
         ToolbarLogger.GetLogger("EverythingInstance").Error(e, "Failed to register hotkey.");
         return(false);
     }
 }
Example #4
0
 public void SaveHistory()
 {
     try
     {
         Directory.CreateDirectory(Path.GetDirectoryName(historyPath));
         var serializer = new XmlSerializer(history.GetType());
         using (var writer = XmlWriter.Create(historyPath))
         {
             serializer.Serialize(writer, history);
         }
     }
     catch (Exception e)
     {
         ToolbarLogger.GetLogger("EverythingToolbar").Error(e, "Failed to save search term history.");
     }
 }
Example #5
0
        public void AddResource(string path)
        {
            if (!File.Exists(path))
            {
                ToolbarLogger.GetLogger("EverythingToolbar").Error("Could not find resource file " + path);
                return;
            }

            ResourceChanged?.Invoke(this, new ResourcesChangedEventArgs()
            {
                NewResource = new ResourceDictionary()
                {
                    Source = new Uri(path)
                }
            });
        }
        public bool AddResource(string type, string name)
        {
            string assemblyFolder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            string path           = Path.Combine(assemblyFolder, type, name + ".xaml");

            if (!File.Exists(path))
            {
                ToolbarLogger.GetLogger("EverythingToolbar").Error("Could not find resource file " + path);
                return(false);
            }

            ResourceChanged?.Invoke(this, new ResourcesChangedEventArgs()
            {
                NewResource = new ResourceDictionary()
                {
                    Source = new Uri(path)
                }
            });
            return(true);
        }
Example #7
0
        public List <string> LoadHistory()
        {
            if (File.Exists(historyPath))
            {
                var serializer = new XmlSerializer(history.GetType());
                try
                {
                    using (var reader = XmlReader.Create(historyPath))
                    {
                        return((List <string>)serializer.Deserialize(reader));
                    }
                }
                catch (Exception e)
                {
                    ToolbarLogger.GetLogger("EverythingToolbar").Error(e, "Failed to load search term history.");
                }
            }

            return(new List <string>());
        }
Example #8
0
        ObservableCollection <Filter> LoadFilters()
        {
            var filters = new ObservableCollection <Filter>();

            if (!File.Exists(Properties.Settings.Default.filtersPath))
            {
                ToolbarLogger.GetLogger("EverythingToolbar").Info("Filters.csv could not be found at " + Properties.Settings.Default.filtersPath);

                MessageBox.Show(Properties.Resources.MessageBoxSelectFiltersCsv,
                                Properties.Resources.MessageBoxSelectFiltersCsvTitle,
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
                using (OpenFileDialog openFileDialog = new OpenFileDialog())
                {
                    openFileDialog.InitialDirectory = Path.Combine(Properties.Settings.Default.filtersPath, "..");
                    openFileDialog.Filter           = "Filters.csv|Filters.csv|All files (*.*)|*.*";
                    openFileDialog.FilterIndex      = 1;

                    if (openFileDialog.ShowDialog() == DialogResult.OK)
                    {
                        Properties.Settings.Default.filtersPath = openFileDialog.FileName;
                        CreateFileWatcher();
                        Properties.Settings.Default.Save();
                    }
                    else
                    {
                        Properties.Settings.Default.isImportFilters = false;
                        Properties.Settings.Default.Save();
                        return(defaultUserFilters);
                    }
                }
            }

            try
            {
                using (TextFieldParser csvParser = new TextFieldParser(Properties.Settings.Default.filtersPath))
                {
                    csvParser.CommentTokens = new string[] { "#" };
                    csvParser.SetDelimiters(new string[] { "," });
                    csvParser.HasFieldsEnclosedInQuotes = true;

                    // Skip header row
                    csvParser.ReadLine();

                    while (!csvParser.EndOfData)
                    {
                        string[] fields = csvParser.ReadFields();

                        // Skip default filters
                        string search = fields[6].Trim();
                        if (search == "file:" ||
                            search == "folder:" ||
                            search == "")
                        {
                            continue;
                        }

                        // Everything's default filters are uppercase
                        fields[0] = fields[0].Replace("AUDIO", Properties.Resources.UserFilterAudio);
                        fields[0] = fields[0].Replace("COMPRESSED", Properties.Resources.UserFilterCompressed);
                        fields[0] = fields[0].Replace("DOCUMENT", Properties.Resources.UserFilterDocument);
                        fields[0] = fields[0].Replace("EXECUTABLE", Properties.Resources.UserFilterExecutable);
                        fields[0] = fields[0].Replace("PICTURE", Properties.Resources.UserFilterPicture);
                        fields[0] = fields[0].Replace("VIDEO", Properties.Resources.UserFilterVideo);

                        filters.Add(new Filter()
                        {
                            Name             = fields[0],
                            IsMatchCase      = fields[1] == "1",
                            IsMatchWholeWord = fields[2] == "1",
                            IsMatchPath      = fields[3] == "1",
                            IsRegExEnabled   = fields[5] == "1",
                            Search           = fields[6],
                            Macro            = fields[7]
                        });
                    }
                }
            }
            catch (Exception e)
            {
                ToolbarLogger.GetLogger("EverythingToolbar").Error(e, "Parsing Filters.csv failed.");
                return(defaultUserFilters);
            }

            return(filters);
        }
        ObservableCollection <Filter> LoadFilters()
        {
            var filters = new ObservableCollection <Filter>();

            if (!File.Exists(Properties.Settings.Default.filtersPath))
            {
                ToolbarLogger.GetLogger("EverythingToolbar").Info("Filters.csv could not be found at " + Properties.Settings.Default.filtersPath);

                string everythingIniPath = Path.Combine(Properties.Settings.Default.filtersPath, "..", "Everything.ini");
                if (!File.Exists(everythingIniPath))
                {
                    ToolbarLogger.GetLogger("EverythingToolbar").Info("Everything.ini could not be found.");
                    MessageBox.Show("Pleae select Filters.csv. It gets created after editing filters in Everything for the first time.");
                    using (OpenFileDialog openFileDialog = new OpenFileDialog())
                    {
                        openFileDialog.InitialDirectory = "c:\\";
                        openFileDialog.Filter           = "Filters.csv|Filters.csv|All files (*.*)|*.*";
                        openFileDialog.FilterIndex      = 1;

                        if (openFileDialog.ShowDialog() == DialogResult.OK)
                        {
                            Properties.Settings.Default.filtersPath = openFileDialog.FileName;
                            Properties.Settings.Default.Save();
                        }
                        else
                        {
                            return(defaultUserFilters);
                        }
                    }
                }
                else
                {
                    ToolbarLogger.GetLogger("EverythingToolbar").Info("Filters.csv does not exist. Using default filters.");
                    return(defaultUserFilters);
                }
            }

            try
            {
                using (TextFieldParser csvParser = new TextFieldParser(Properties.Settings.Default.filtersPath))
                {
                    csvParser.CommentTokens = new string[] { "#" };
                    csvParser.SetDelimiters(new string[] { "," });
                    csvParser.HasFieldsEnclosedInQuotes = true;

                    // Skip header row
                    csvParser.ReadLine();

                    while (!csvParser.EndOfData)
                    {
                        string[] fields = csvParser.ReadFields();

                        // Skip default filters
                        string search = fields[6].Trim();
                        if (search == "file:" ||
                            search == "folder:" ||
                            search == "")
                        {
                            continue;
                        }

                        // Everything's default filters are uppercase
                        fields[0] = fields[0].Replace("AUDIO", "Audio");
                        fields[0] = fields[0].Replace("COMPRESSED", "Compressed");
                        fields[0] = fields[0].Replace("DOCUMENT", "Document");
                        fields[0] = fields[0].Replace("EXECUTABLE", "Executable");
                        fields[0] = fields[0].Replace("PICTURE", "Picture");
                        fields[0] = fields[0].Replace("VIDEO", "Video");

                        filters.Add(new Filter()
                        {
                            Name             = fields[0],
                            IsMatchCase      = fields[1] == "1",
                            IsMatchWholeWord = fields[2] == "1",
                            IsMatchPath      = fields[3] == "1",
                            IsRegExEnabled   = fields[5] == "1",
                            Search           = fields[6],
                            Macro            = fields[7]
                        });
                    }
                }
            }
            catch (Exception e)
            {
                ToolbarLogger.GetLogger("EverythingToolbar").Error(e, "Parsing Filters.csv failed.");
                return(defaultUserFilters);
            }

            return(filters);
        }
Example #10
0
        // Taken from: https://stackoverflow.com/a/11124118/1477251
        public static string GetBytesReadable(string path)
        {
            // Get file length
            long length;

            try
            {
                length = new FileInfo(path).Length;
            }
            catch (Exception e)
            {
                ToolbarLogger.GetLogger("EverythingToolbar").Error(e, "Failed to get file size.");
                return("");
            }

            // Get absolute value
            long absolute_i = length < 0 ? -length : length;

            // Determine the suffix and readable value
            string suffix;
            double readable;

            if (absolute_i >= 0x1000000000000000) // Exabyte
            {
                suffix   = "EB";
                readable = (length >> 50);
            }
            else if (absolute_i >= 0x4000000000000) // Petabyte
            {
                suffix   = "PB";
                readable = (length >> 40);
            }
            else if (absolute_i >= 0x10000000000) // Terabyte
            {
                suffix   = "TB";
                readable = (length >> 30);
            }
            else if (absolute_i >= 0x40000000) // Gigabyte
            {
                suffix   = "GB";
                readable = (length >> 20);
            }
            else if (absolute_i >= 0x100000) // Megabyte
            {
                suffix   = "MB";
                readable = (length >> 10);
            }
            else if (absolute_i >= 0x400) // Kilobyte
            {
                suffix   = "KB";
                readable = length;
            }
            else
            {
                return(length.ToString("0 B")); // Byte
            }

            // Divide by 1024 to get fractional value
            readable /= 1024;

            // Return formatted number with suffix
            return(readable.ToString("0.### ") + suffix);
        }
Example #11
0
        ObservableCollection <Filter> LoadFilters()
        {
            var filters = new ObservableCollection <Filter>();

            if (!File.Exists(Properties.Settings.Default.filtersPath))
            {
                ToolbarLogger.GetLogger("EverythingToolbar").Info("Filters.csv could not be found at " + Properties.Settings.Default.filtersPath);

                MessageBox.Show("Please select the Filters.csv file. By default it can be found in %APPDATA%\\Everything. " +
                                "Its location might be different depending on your installation. If the file does not exist for you " +
                                "that means you didn't perform any changes to Everything's default filters.",
                                "Filters.csv not found", MessageBoxButtons.OK, MessageBoxIcon.Information);
                using (OpenFileDialog openFileDialog = new OpenFileDialog())
                {
                    openFileDialog.InitialDirectory = Path.Combine(Properties.Settings.Default.filtersPath, "..");
                    openFileDialog.Filter           = "Filters.csv|Filters.csv|All files (*.*)|*.*";
                    openFileDialog.FilterIndex      = 1;

                    if (openFileDialog.ShowDialog() == DialogResult.OK)
                    {
                        Properties.Settings.Default.filtersPath = openFileDialog.FileName;
                        CreateFileWatcher();
                        Properties.Settings.Default.Save();
                    }
                    else
                    {
                        Properties.Settings.Default.isImportFilters = false;
                        Properties.Settings.Default.Save();
                        return(defaultUserFilters);
                    }
                }
            }

            try
            {
                using (TextFieldParser csvParser = new TextFieldParser(Properties.Settings.Default.filtersPath))
                {
                    csvParser.CommentTokens = new string[] { "#" };
                    csvParser.SetDelimiters(new string[] { "," });
                    csvParser.HasFieldsEnclosedInQuotes = true;

                    // Skip header row
                    csvParser.ReadLine();

                    while (!csvParser.EndOfData)
                    {
                        string[] fields = csvParser.ReadFields();

                        // Skip default filters
                        string search = fields[6].Trim();
                        if (search == "file:" ||
                            search == "folder:" ||
                            search == "")
                        {
                            continue;
                        }

                        // Everything's default filters are uppercase
                        fields[0] = fields[0].Replace("AUDIO", "Audio");
                        fields[0] = fields[0].Replace("COMPRESSED", "Compressed");
                        fields[0] = fields[0].Replace("DOCUMENT", "Document");
                        fields[0] = fields[0].Replace("EXECUTABLE", "Executable");
                        fields[0] = fields[0].Replace("PICTURE", "Picture");
                        fields[0] = fields[0].Replace("VIDEO", "Video");

                        filters.Add(new Filter()
                        {
                            Name             = fields[0],
                            IsMatchCase      = fields[1] == "1",
                            IsMatchWholeWord = fields[2] == "1",
                            IsMatchPath      = fields[3] == "1",
                            IsRegExEnabled   = fields[5] == "1",
                            Search           = fields[6],
                            Macro            = fields[7]
                        });
                    }
                }
            }
            catch (Exception e)
            {
                ToolbarLogger.GetLogger("EverythingToolbar").Error(e, "Parsing Filters.csv failed.");
                return(defaultUserFilters);
            }

            return(filters);
        }