From 4ebf2db65011c4bf6856178522edec549cfeb498 Mon Sep 17 00:00:00 2001 From: Geomitron <22552797+Geomitron@users.noreply.github.com> Date: Tue, 3 Mar 2020 21:48:41 -0500 Subject: [PATCH] Various refactoring --- src/app/app-routing.module.ts | 20 +- src/app/app.component.ts | 9 +- src/app/app.module.ts | 19 +- src/app/components/browse/browse.component.ts | 2 +- .../chart-sidebar/chart-sidebar.component.ts | 14 +- .../search-bar/search-bar.component.html | 24 +- .../downloads-modal.component.ts | 2 +- .../browse/status-bar/status-bar.component.ts | 22 +- .../components/settings/settings.component.ts | 4 +- src/app/core/directives/checkbox.directive.ts | 2 +- .../core/directives/progress-bar.directive.ts | 2 +- src/app/core/services/download.service.ts | 25 +- src/app/core/services/settings.service.ts | 14 +- src/app/core/tab-persist.strategy.ts | 27 ++ src/electron/ipc/AlbumArtHandler.ipc.ts | 10 +- .../ipc/BatchSongDetailsHandler.ipc.ts | 10 +- src/electron/ipc/InitSettingsHandler.ipc.ts | 51 ---- src/electron/ipc/SaveSettingsHandler.ipc.ts | 20 -- src/electron/ipc/SearchHandler.ipc.ts | 15 +- src/electron/ipc/SettingsHandler.ipc.ts | 88 +++++++ src/electron/ipc/SongDetailsHandler.ipc.ts | 10 +- src/electron/ipc/download/DownloadHandler.ts | 233 +++++++++++------- src/electron/ipc/download/FileDownloader.ts | 91 +++---- src/electron/ipc/download/FileExtractor.ts | 4 +- src/electron/main.ts | 6 +- src/electron/shared/Database.ts | 10 +- src/electron/shared/ElectronUtilFunctions.ts | 9 +- src/electron/shared/ErrorMessages.ts | 2 +- src/electron/shared/IPCHandler.ts | 28 ++- src/electron/shared/Settings.ts | 6 + src/electron/shared/UtilFunctions.ts | 29 +-- .../shared/interfaces/download.interface.ts | 9 +- .../shared/interfaces/search.interface.ts | 9 + .../interfaces/songDetails.interface.ts | 6 + 34 files changed, 503 insertions(+), 329 deletions(-) create mode 100644 src/app/core/tab-persist.strategy.ts delete mode 100644 src/electron/ipc/InitSettingsHandler.ipc.ts delete mode 100644 src/electron/ipc/SaveSettingsHandler.ipc.ts create mode 100644 src/electron/ipc/SettingsHandler.ipc.ts diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index 8e170c7..1380bc3 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -1,19 +1,23 @@ import { NgModule } from '@angular/core' -import { Routes, RouterModule } from '@angular/router' +import { Routes, RouterModule, RouteReuseStrategy } from '@angular/router' import { BrowseComponent } from './components/browse/browse.component' import { SettingsComponent } from './components/settings/settings.component' +import { TabPersistStrategy } from './core/tab-persist.strategy' - +// TODO: replace these with the correct components const routes: Routes = [ - { path: 'browse', component: BrowseComponent }, - { path: 'library', component: BrowseComponent }, - { path: 'settings', component: SettingsComponent }, - { path: 'about', component: BrowseComponent }, // TODO: replace these with the correct components - { path: '**', redirectTo: '/browse'} + { path: 'browse', component: BrowseComponent, data: { shouldReuse: true } }, + { path: 'library', redirectTo: '/browse' }, + { path: 'settings', component: SettingsComponent, data: { shouldReuse: true } }, + { path: 'about', redirectTo: '/browse' }, + { path: '**', redirectTo: '/browse' } ] @NgModule({ imports: [RouterModule.forRoot(routes)], - exports: [RouterModule] + exports: [RouterModule], + providers: [ + { provide: RouteReuseStrategy, useClass: TabPersistStrategy }, + ] }) export class AppRoutingModule { } \ No newline at end of file diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 68ad3c8..7c76476 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit } from '@angular/core' +import { Component } from '@angular/core' import { SettingsService } from './core/services/settings.service' @Component({ @@ -6,12 +6,7 @@ import { SettingsService } from './core/services/settings.service' templateUrl: './app.component.html', styles: [] }) -export class AppComponent implements OnInit { +export class AppComponent { constructor(private settingsService: SettingsService) { } - - ngOnInit() { - // Load settings - this.settingsService.getSettings() - } } \ No newline at end of file diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 9539275..9a27a17 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -4,15 +4,15 @@ import { NgModule } from '@angular/core' import { AppRoutingModule } from './app-routing.module' import { AppComponent } from './app.component' import { ToolbarComponent } from './components/toolbar/toolbar.component' -import { BrowseComponent } from './components/browse/browse.component'; -import { SearchBarComponent } from './components/browse/search-bar/search-bar.component'; -import { StatusBarComponent } from './components/browse/status-bar/status-bar.component'; -import { ResultTableComponent } from './components/browse/result-table/result-table.component'; -import { ChartSidebarComponent } from './components/browse/chart-sidebar/chart-sidebar.component'; -import { ResultTableRowComponent } from './components/browse/result-table/result-table-row/result-table-row.component'; -import { DownloadsModalComponent } from './components/browse/status-bar/downloads-modal/downloads-modal.component'; -import { ProgressBarDirective } from './core/directives/progress-bar.directive'; -import { CheckboxDirective } from './core/directives/checkbox.directive'; +import { BrowseComponent } from './components/browse/browse.component' +import { SearchBarComponent } from './components/browse/search-bar/search-bar.component' +import { StatusBarComponent } from './components/browse/status-bar/status-bar.component' +import { ResultTableComponent } from './components/browse/result-table/result-table.component' +import { ChartSidebarComponent } from './components/browse/chart-sidebar/chart-sidebar.component' +import { ResultTableRowComponent } from './components/browse/result-table/result-table-row/result-table-row.component' +import { DownloadsModalComponent } from './components/browse/status-bar/downloads-modal/downloads-modal.component' +import { ProgressBarDirective } from './core/directives/progress-bar.directive' +import { CheckboxDirective } from './core/directives/checkbox.directive' import { SettingsComponent } from './components/settings/settings.component' @NgModule({ @@ -34,7 +34,6 @@ import { SettingsComponent } from './components/settings/settings.component' BrowserModule, AppRoutingModule ], - providers: [], bootstrap: [AppComponent] }) export class AppModule { } \ No newline at end of file diff --git a/src/app/components/browse/browse.component.ts b/src/app/components/browse/browse.component.ts index f2b047f..62658dc 100644 --- a/src/app/components/browse/browse.component.ts +++ b/src/app/components/browse/browse.component.ts @@ -20,7 +20,7 @@ export class BrowseComponent { onResultsUpdated(results: SongResult[]) { this.resultTable.results = results this.resultTable.onNewSearch() - this.resultTable.checkAll + this.resultTable.checkAll(false) this.chartSidebar.selectedVersion = undefined this.statusBar.resultCount = results.length this.statusBar.selectedResults = [] diff --git a/src/app/components/browse/chart-sidebar/chart-sidebar.component.ts b/src/app/components/browse/chart-sidebar/chart-sidebar.component.ts index b2fee1f..7ba4826 100644 --- a/src/app/components/browse/chart-sidebar/chart-sidebar.component.ts +++ b/src/app/components/browse/chart-sidebar/chart-sidebar.component.ts @@ -80,7 +80,9 @@ export class ChartSidebarComponent { return 'Unknown' } let seconds = Math.round(this.selectedVersion.song_length / 1000) - if (seconds < 60) { return `${seconds} second${seconds == 1 ? '' : 's'}` } + if (seconds < 60) { + return `${seconds} second${seconds == 1 ? '' : 's'}` + } let minutes = Math.floor(seconds / 60) let hours = 0 while (minutes > 59) { @@ -123,11 +125,11 @@ export class ChartSidebarComponent { onDownloadClicked() { this.downloadService.addDownload( this.selectedVersion.versionID, { - avTagName: this.selectedVersion.avTagName, - artist: this.songResult.artist, - charter: this.selectedVersion.charters, - links: JSON.parse(this.selectedVersion.downloadLink) - }) + avTagName: this.selectedVersion.avTagName, + artist: this.songResult.artist, + charter: this.selectedVersion.charters, + links: JSON.parse(this.selectedVersion.downloadLink) + }) } getVersions() { diff --git a/src/app/components/browse/search-bar/search-bar.component.html b/src/app/components/browse/search-bar/search-bar.component.html index cadc882..b75e0e3 100644 --- a/src/app/components/browse/search-bar/search-bar.component.html +++ b/src/app/components/browse/search-bar/search-bar.component.html @@ -6,18 +6,18 @@ -