示例#1
0
        public MainWindow(string[] startupArgs)
        {
            InitializeComponent();
            dataGrid.ItemsSource          = BeatmapsCollection;
            progressGrid.ItemsSource      = DownloadManager.Downloads;
            DownloadManager.SpeedUpdated += DownloadManager_SpeedUpdated;
            DownloadManagement.Init(this);

            System.Windows.Controls.Control[] _dynamicElements = { searchBox, searchButton, popularLoadButton, rankedStatusBox, modeSelectBox, progressGrid, dataGrid };
            dynamicElements = _dynamicElements;
            InitComboBoxes();

            // overlay mode window settings
            if (SettingManager.Get("overlayMode"))
            {
                Topmost                      = true;
                WindowStyle                  = WindowStyle.None;
                WindowState                  = WindowState.Maximized;
                ShowInTaskbar                = true;
                Opacity                      = 0.85;
                AllowsTransparency           = true;
                overlayModeNotice.Visibility = Visibility.Visible;
                overlayModeExit.Visibility   = Visibility.Visible;
            }

            if (SettingManager.Get("useOfficialOsu"))
            {
                (new Dialogs.OsuLoginCheck(this)).ShowDialog();
            }

            startupHide = HandleURIArgs(startupArgs, WinTools.ParentProcessUtilities.GetParentProcess().ProcessName);
        }
示例#2
0
        private void dataGrid_DoubleClick(object sender, MouseButtonEventArgs e)
        {
            var beatmap = WinTools.GetGridViewSelectedRowItem <BeatmapSet>(sender, e);

            if (beatmap == null)
            {
                return;
            }

            forceStopPreview();
            DownloadManagement.DownloadBeatmapSet(beatmap);
        }
示例#3
0
        private async void search(bool newSearch)
        {
            try
            {
                searchingLoading.Visibility = Visibility.Visible;

                string        searchText = lastSearchText = newSearch ? searchBox.Text : lastSearchText;
                OsuRankStatus rankedVal  = lastRankedVal = newSearch ? (rankedStatusBox.SelectedItem as KVItem <OsuRankStatus>).Value : lastRankedVal;
                OsuModes      modeVal    = lastModeVal = newSearch ? (modeSelectBox.SelectedItem as KVItem <OsuModes>).Value : lastModeVal;

                BloodcatIdFilter?viaVal  = null;
                bool             osuMode = SettingManager.Get("useOfficialOsu");
                if (!osuMode)
                {
                    viaVal = lastBloodcatNumbersFilterVal = newSearch ? (searchViaSelectBox.Visibility == Visibility.Hidden ? null : (BloodcatIdFilter?)(searchViaSelectBox.SelectedItem as KVItem <BloodcatIdFilter>).Value) : lastBloodcatNumbersFilterVal;
                }

                searchCurrentPage = newSearch ? 1 : (searchCurrentPage + 1);

                SearchResultSet results;
                if (osuMode)
                {
                    results = await Osu.Search(searchText, rankedVal, modeVal, searchCurrentPage);
                }
                else
                {
                    results = await Bloodcat.Search(searchText, rankedVal, modeVal, viaVal, searchCurrentPage);
                }

                lastSearchResults = results;

                populateBeatmaps(results.Results, newSearch);
            }
            catch (Osu.SearchNotSupportedException) { MessageBox.Show("Sorry, this mode of Ranking search is currently not supported via the official osu! servers."); }
            catch (Osu.CookiesExpiredException)
            {
                if (await DownloadManagement.TryRenewOsuCookies())
                {
                    search(newSearch); // success, try at it again
                }
                return;
            }
            catch (Exception ex) { MessageBox.Show("There was an error searching for beatmaps...\n\n" + ex.ToString()); }
            finally { searchingLoading.Visibility = Visibility.Hidden; }
        }
示例#4
0
        private void directDownload(bool isSetId, string id)
        {
            Application.Current.Dispatcher.Invoke(async() =>
            {
                uriHandling = true;
                foreach (var element in dynamicElements)
                {
                    element.IsEnabled = false;
                }

                await DownloadManagement.DirectDownload(isSetId, id);

                foreach (var element in dynamicElements)
                {
                    element.IsEnabled = true;
                }
                uriHandling = false;
            });
        }