Пример #1
0
 public ActionKeywords(string pluginId, Settings settings)
 {
     InitializeComponent();
     _plugin   = PluginManager.GetPluginForId(pluginId);
     _settings = settings;
     if (_plugin == null)
     {
         MessageBox.Show(_translator.GetTranslation("cannotFindSpecifiedPlugin"));
         Close();
     }
 }
 public PriorityChangeWindow(string pluginId, Settings settings, PluginViewModel pluginViewModel)
 {
     InitializeComponent();
     plugin               = PluginManager.GetPluginForId(pluginId);
     this.settings        = settings;
     this.pluginViewModel = pluginViewModel;
     if (plugin == null)
     {
         MessageBox.Show(translater.GetTranslation("cannotFindSpecifiedPlugin"));
         Close();
     }
 }
Пример #3
0
 public void OnHotkeyCaptured(object sender, GlobalHotkey.HotkeyCapturedEventArgs e)
 {
     if (e.Available)
     {
         _globalHotkey.RemoveHotkey(Hotkey);
         Hotkey = e.Hotkey;
         var message = _translater.GetTranslation("succeed");
         App.API.ShowMsg(message, iconPath: Constant.AppIcon);
     }
     else
     {
         var message = _translater.GetTranslation("hotkeyUnavailable");
         App.API.ShowMsg(message, iconPath: Constant.ErrorIcon);
     }
 }
Пример #4
0
        public static async Task UpdateApp()
        {
            try
            {
                using (UpdateManager m = await GitHubUpdateManager(Constant.Repository))
                {
                    var u = await m.CheckForUpdate().NonNull();

                    var fr = u.FutureReleaseEntry;
                    var cr = u.CurrentlyInstalledVersion;
                    Log.Info($"|Updater.UpdateApp|Future Release <{fr.Formatted()}>");
                    if (fr.Version > cr.Version)
                    {
                        await m.DownloadReleases(u.ReleasesToApply);

                        await m.ApplyReleases(u);

                        await m.CreateUninstallerRegistryEntry();

                        var newVersionTips = Translator.GetTranslation("newVersionTips");
                        newVersionTips = string.Format(newVersionTips, fr.Version);
                        MessageBox.Show(newVersionTips);
                        Log.Info($"|Updater.UpdateApp|Update succeed:{newVersionTips}");
                    }
                }
            }
            catch (Exception e) when(e is HttpRequestException || e is WebException || e is SocketException)
            {
                Log.Exception($"|Updater.UpdateApp|Please check your connection and proxy settings to api.github.com and github-cloud.s3.amazonaws.com.", e);
            }
        }
Пример #5
0
        private void QueryHistory()
        {
            const string id = "Query History ID";

#pragma warning disable CA1308 // Normalize strings to uppercase
            var query = QueryText.ToLower(CultureInfo.InvariantCulture).Trim();
#pragma warning restore CA1308 // Normalize strings to uppercase
            History.Clear();

            var results = new List <Result>();
            foreach (var h in _history.Items)
            {
                var title  = _translator.GetTranslation("executeQuery");
                var time   = _translator.GetTranslation("lastExecuteTime");
                var result = new Result
                {
                    Title       = string.Format(CultureInfo.InvariantCulture, title, h.Query),
                    SubTitle    = string.Format(CultureInfo.InvariantCulture, time, h.ExecutedDateTime),
                    IcoPath     = "Images\\history.png",
                    OriginQuery = new Query {
                        RawQuery = h.Query
                    },
                    Action = _ =>
                    {
                        SelectedResults = Results;
                        ChangeQueryText(h.Query);
                        return(false);
                    }
                };
                results.Add(result);
            }

            if (!string.IsNullOrEmpty(query))
            {
                var filtered = results.Where
                               (
                    r => StringMatcher.FuzzySearch(query, r.Title).IsSearchPrecisionScoreMet() ||
                    StringMatcher.FuzzySearch(query, r.SubTitle).IsSearchPrecisionScoreMet()
                               ).ToList();
                History.AddResults(filtered, id);
            }
            else
            {
                History.AddResults(results, id);
            }
        }
Пример #6
0
        private void QueryHistory()
        {
            const string id    = "Query History ID";
            var          query = QueryText.ToLower().Trim();

            History.Clear();

            var results = new List <Result>();

            foreach (var h in _history.Items)
            {
                var title  = _translator.GetTranslation("executeQuery");
                var time   = _translator.GetTranslation("lastExecuteTime");
                var result = new Result
                {
                    Title       = string.Format(title, h.Query),
                    SubTitle    = string.Format(time, h.ExecutedDateTime),
                    IcoPath     = "Images\\history.png",
                    OriginQuery = new Query {
                        RawQuery = h.Query
                    },
                    Action = _ =>
                    {
                        SelectedResults = Results;
                        ChangeQueryText(h.Query);
                        return(false);
                    }
                };
                results.Add(result);
            }

            if (!string.IsNullOrEmpty(query))
            {
                var filtered = results.Where
                               (
                    r => StringMatcher.IsMatch(r.Title, query) ||
                    StringMatcher.IsMatch(r.SubTitle, query)
                               ).ToList();
                History.AddResults(filtered, id);
            }
            else
            {
                History.AddResults(results, id);
            }
        }
Пример #7
0
        public static async Task UpdateApp()
        {
            UpdateManager m;
            UpdateInfo    u;

            try
            {
                m = await GitHubUpdateManager(Constant.Repository);
            }
            catch (Exception e) when(e is HttpRequestException || e is WebException || e is SocketException)
            {
                Log.Exception($"|Updater.UpdateApp|Please check your connection and proxy settings to api.github.com.", e);
                return;
            }

            try
            {
                // UpdateApp CheckForUpdate will return value only if the app is squirrel installed
                u = await m.CheckForUpdate().NonNull();
            }
            catch (Exception e) when(e is HttpRequestException || e is WebException || e is SocketException)
            {
                Log.Exception($"|Updater.UpdateApp|Check your connection and proxy settings to api.github.com.", e);
                m.Dispose();
                return;
            }

            var fr = u.FutureReleaseEntry;
            var cr = u.CurrentlyInstalledVersion;

            Log.Info($"|Updater.UpdateApp|Future Release <{fr.Formatted()}>");
            if (fr.Version > cr.Version)
            {
                try
                {
                    await m.DownloadReleases(u.ReleasesToApply);
                }
                catch (Exception e) when(e is HttpRequestException || e is WebException || e is SocketException)
                {
                    Log.Exception($"|Updater.UpdateApp|Check your connection and proxy settings to github-cloud.s3.amazonaws.com.", e);
                    m.Dispose();
                    return;
                }

                await m.ApplyReleases(u);

                await m.CreateUninstallerRegistryEntry();

                var newVersionTips = Translater.GetTranslation("newVersionTips");
                newVersionTips = string.Format(newVersionTips, fr.Version);
                MessageBox.Show(newVersionTips);
                Log.Info($"|Updater.UpdateApp|Update succeed:{newVersionTips}");
            }

            // always dispose UpdateManager
            m.Dispose();
        }
Пример #8
0
        private Result ContextMenuPluginInfo(string id)
        {
            PluginMetadata       metadata   = PluginManager.GetPluginForId(id).Metadata;
            Internationalization translator = InternationalizationManager.Instance;

            string author   = translator.GetTranslation("author");
            string website  = translator.GetTranslation("website");
            string version  = translator.GetTranslation("version");
            string plugin   = translator.GetTranslation("plugin");
            string title    = $"{plugin}: {metadata.Name}";
            string icon     = metadata.IcoPath;
            string subtitle =
                $"{author}: {metadata.Author}, {website}: {metadata.Website} {version}: {metadata.Version}";

            Result menu = new Result {
                Title           = title,
                IcoPath         = icon,
                SubTitle        = subtitle,
                PluginDirectory = metadata.PluginDirectory,
                Action          = _ => false
            };

            return(menu);
        }
Пример #9
0
        /**
         * private void DisplayQueryHistory(HistoryItem history)
         * {
         *  if (history != null)
         *  {
         *      var historyMetadata = QueryHistory.MetaData;
         *
         *      QueryText = history.Query;
         *      OnTextBoxSelected();
         *
         *      var executeQueryHistoryTitle = _translater.GetTranslation("executeQuery");
         *      var lastExecuteTime = _translater.GetTranslation("lastExecuteTime");
         *      Results.RemoveResultsExcept(historyMetadata);
         *      var result = new Result
         *      {
         *          Title = string.Format(executeQueryHistoryTitle, history.Query),
         *          SubTitle = string.Format(lastExecuteTime, history.ExecutedDateTime),
         *          IcoPath = "Images\\history.png",
         *          PluginDirectory = Infrastructure.Constant.ProgramDirectory,
         *          Action = _ =>
         *          {
         *              QueryText = history.Query;
         *              OnTextBoxSelected();
         *              return false;
         *          }
         *      };
         *      Task.Run(() =>
         *      {
         *          Results.AddResults(new List<Result> {result}, historyMetadata.ID);
         *      }, _updateToken);
         *  }
         * }
         **/

        private Result ContextMenuTopMost(Result result)
        {
            Result menu;

            if (_topMostRecord.IsTopMost(result))
            {
                menu = new Result
                {
                    Title           = _translater.GetTranslation("cancelTopMostInThisQuery"),
                    IcoPath         = "Images\\down.png",
                    PluginDirectory = Constant.ProgramDirectory,
                    Action          = _ =>
                    {
                        _topMostRecord.Remove(result);
                        App.API.ShowMsg("Succeed");
                        return(false);
                    }
                };
            }
            else
            {
                menu = new Result
                {
                    Title           = _translater.GetTranslation("setAsTopMostInThisQuery"),
                    IcoPath         = "Images\\up.png",
                    PluginDirectory = Constant.ProgramDirectory,
                    Action          = _ =>
                    {
                        _topMostRecord.AddOrUpdate(result);
                        App.API.ShowMsg("Succeed");
                        return(false);
                    }
                };
            }
            return(menu);
        }