226
260
if( m_VisiblePanels & guPANEL_MAIN_LIBRARY )
228
//m_LibPanel = new guLibPanel( m_CatNotebook, m_Db, m_PlayerPanel );
229
//m_CatNotebook->AddPage( m_LibPanel, _( "Library" ), true );
230
262
OnViewLibrary( ShowEvent );
236
266
if( m_VisiblePanels & guPANEL_MAIN_RADIOS )
238
//m_RadioPanel = new guRadioPanel( m_CatNotebook, m_Db, m_PlayerPanel );
239
//m_CatNotebook->AddPage( m_RadioPanel, _( "Radio" ), false );
240
268
OnViewRadio( ShowEvent );
245
271
// LastFM Info Panel
246
272
if( m_VisiblePanels & guPANEL_MAIN_LASTFM )
248
//m_LastFMPanel = new guLastFMPanel( m_CatNotebook, m_Db, m_DbCache, m_PlayerPanel );
249
//m_CatNotebook->AddPage( m_LastFMPanel, _( "Last.fm" ), false );
250
274
OnViewLastFM( ShowEvent );
253
m_LastFMPanel = NULL;
256
278
if( m_VisiblePanels & guPANEL_MAIN_LYRICS )
258
//m_LyricsPanel = new guLyricsPanel( m_CatNotebook, m_Db );
259
//m_CatNotebook->AddPage( m_LyricsPanel, _( "Lyrics" ), false );
260
280
OnViewLyrics( ShowEvent );
263
m_LyricsPanel = NULL;
266
284
if( m_VisiblePanels & guPANEL_MAIN_PLAYLISTS )
268
//m_PlayListPanel = new guPlayListPanel( m_CatNotebook, m_Db, m_PlayerPanel );
269
//m_CatNotebook->AddPage( m_PlayListPanel, _( "PlayLists" ), false );
270
286
OnViewPlayLists( ShowEvent );
273
m_PlayListPanel = NULL;
276
290
if( m_VisiblePanels & guPANEL_MAIN_PODCASTS )
278
//m_PodcastsPanel = new guPodcastPanel( m_CatNotebook, m_Db, this, m_PlayerPanel );
279
//m_CatNotebook->AddPage( m_PodcastsPanel, _( "Podcasts" ), false );
280
292
OnViewPodcasts( ShowEvent );
283
m_PodcastsPanel = NULL;
285
295
// Album Browser Page
286
296
if( m_VisiblePanels & guPANEL_MAIN_ALBUMBROWSER )
288
//m_AlbumBrowserPanel = new guAlbumBrowser( m_CatNotebook, m_Db, m_PlayerPanel );
289
//m_CatNotebook->AddPage( m_AlbumBrowserPanel, _( "Browser" ), false );
290
298
OnViewAlbumBrowser( ShowEvent );
293
m_AlbumBrowserPanel = NULL;
295
301
// FileSystem Page
296
302
if( m_VisiblePanels & guPANEL_MAIN_FILEBROWSER )
298
304
OnViewFileBrowser( ShowEvent );
301
m_FileBrowserPanel = NULL;
307
if( m_VisiblePanels & guPANEL_MAIN_JAMENDO )
309
OnViewJamendo( ShowEvent );
312
if( m_VisiblePanels & guPANEL_MAIN_MAGNATUNE )
314
OnViewMagnatune( ShowEvent );
305
318
m_AuiManager.AddPane( m_CatNotebook, wxAuiPaneInfo().Name( wxT("PlayerSelector") ).
521
596
Connect( ID_MENU_VIEW_FILEBROWSER, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnViewFileBrowser ), NULL, this );
598
Connect( ID_MENU_VIEW_JAMENDO, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnViewJamendo ), NULL, this );
599
Connect( ID_MENU_VIEW_JAMENDO_TEXTSEARCH, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnJamendoShowPanel ), NULL, this );
600
Connect( ID_MENU_VIEW_JAMENDO_LABELS, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnJamendoShowPanel ), NULL, this );
601
Connect( ID_MENU_VIEW_JAMENDO_GENRES, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnJamendoShowPanel ), NULL, this );
602
Connect( ID_MENU_VIEW_JAMENDO_ARTISTS, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnJamendoShowPanel ), NULL, this );
603
Connect( ID_MENU_VIEW_JAMENDO_COMPOSERS, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnJamendoShowPanel ), NULL, this );
604
Connect( ID_MENU_VIEW_JAMENDO_ALBUMARTISTS, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnJamendoShowPanel ), NULL, this );
605
Connect( ID_MENU_VIEW_JAMENDO_ALBUMS, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnJamendoShowPanel ), NULL, this );
606
Connect( ID_MENU_VIEW_JAMENDO_YEARS, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnJamendoShowPanel ), NULL, this );
607
Connect( ID_MENU_VIEW_JAMENDO_RATINGS, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnJamendoShowPanel ), NULL, this );
608
Connect( ID_MENU_VIEW_JAMENDO_PLAYCOUNT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnJamendoShowPanel ), NULL, this );
610
Connect( ID_MENU_VIEW_MAGNATUNE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnViewMagnatune ), NULL, this );
611
Connect( ID_MENU_VIEW_MAGNATUNE_TEXTSEARCH, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnMagnatuneShowPanel ), NULL, this );
612
Connect( ID_MENU_VIEW_MAGNATUNE_LABELS, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnMagnatuneShowPanel ), NULL, this );
613
Connect( ID_MENU_VIEW_MAGNATUNE_GENRES, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnMagnatuneShowPanel ), NULL, this );
614
Connect( ID_MENU_VIEW_MAGNATUNE_ARTISTS, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnMagnatuneShowPanel ), NULL, this );
615
Connect( ID_MENU_VIEW_MAGNATUNE_COMPOSERS, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnMagnatuneShowPanel ), NULL, this );
616
Connect( ID_MENU_VIEW_MAGNATUNE_ALBUMARTISTS, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnMagnatuneShowPanel ), NULL, this );
617
Connect( ID_MENU_VIEW_MAGNATUNE_ALBUMS, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnMagnatuneShowPanel ), NULL, this );
618
Connect( ID_MENU_VIEW_MAGNATUNE_YEARS, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnMagnatuneShowPanel ), NULL, this );
619
Connect( ID_MENU_VIEW_MAGNATUNE_RATINGS, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnMagnatuneShowPanel ), NULL, this );
620
Connect( ID_MENU_VIEW_MAGNATUNE_PLAYCOUNT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnMagnatuneShowPanel ), NULL, this );
622
Connect( ID_ALBUM_COVER_CHANGED, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnLibraryCoverChanged ), NULL, this );
623
Connect( ID_JAMENDO_COVER_DOWNLAODED, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnJamendoCoverDownloaded ), NULL, this );
624
Connect( ID_MAGNATUNE_COVER_DOWNLAODED, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnMagnatuneCoverDownloaded ), NULL, this );
625
Connect( ID_PLAYERPANEL_COVERUPDATED, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnPlayerPanelCoverChanged ), NULL, this );
523
627
Connect( ID_MENU_VIEW_FULLSCREEN, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnViewFullScreen ), NULL, this );
524
628
Connect( ID_MENU_VIEW_STATUSBAR, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnViewStatusBar ), NULL, this );
527
Connect( ID_GAUGE_PULSE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnGaugePulse ), NULL, this );
528
Connect( ID_GAUGE_SETMAX, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnGaugeSetMax ), NULL, this );
529
Connect( ID_GAUGE_UPDATE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnGaugeUpdate ), NULL, this );
530
Connect( ID_GAUGE_REMOVE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnGaugeRemove ), NULL, this );
631
Connect( ID_VOLUMEMANAGER_MOUNT_CHANGED, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnVolumeMonitorUpdated ), NULL, this );
632
//Connect( ID_MENU_VIEW_PORTABLE_DEVICES, ID_MENU_VIEW_PORTABLE_DEVICES + 100, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnVolumeMonitorUpdated ), NULL, this );
634
Connect( ID_STATUSBAR_GAUGE_CREATE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnGaugeCreate ), NULL, this );
635
Connect( ID_STATUSBAR_GAUGE_PULSE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnGaugePulse ), NULL, this );
636
Connect( ID_STATUSBAR_GAUGE_SETMAX, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnGaugeSetMax ), NULL, this );
637
Connect( ID_STATUSBAR_GAUGE_UPDATE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnGaugeUpdate ), NULL, this );
638
Connect( ID_STATUSBAR_GAUGE_REMOVE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnGaugeRemove ), NULL, this );
532
640
Connect( ID_PLAYLIST_UPDATED, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnPlayListUpdated ), NULL, this );
534
642
Connect( ID_PODCASTS_ITEM_UPDATED, guPodcastEvent, wxCommandEventHandler( guMainFrame::OnPodcastItemUpdated ), NULL, this );
535
643
Connect( ID_MAINFRAME_REMOVEPODCASTTHREAD, wxCommandEventHandler( guMainFrame::OnRemovePodcastThread ), NULL, this );
645
Connect( ID_MAINFRAME_SETFORCEGAPLESS, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnSetForceGapless ), NULL, this );
537
647
m_AuiManager.Connect( wxEVT_AUI_PANE_CLOSE, wxAuiManagerEventHandler( guMainFrame::OnMainPaneClose ), NULL, this );
539
649
m_CatNotebook->Connect( wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED, wxAuiNotebookEventHandler( guMainFrame::OnPageChanged ), NULL, this );
641
770
Disconnect( ID_MENU_VIEW_FILEBROWSER, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnViewFileBrowser ), NULL, this );
772
Disconnect( ID_ALBUM_COVER_CHANGED, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnLibraryCoverChanged ), NULL, this );
773
Disconnect( ID_JAMENDO_COVER_DOWNLAODED, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnJamendoCoverDownloaded ), NULL, this );
774
Disconnect( ID_MAGNATUNE_COVER_DOWNLAODED, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnMagnatuneCoverDownloaded ), NULL, this );
643
776
Disconnect( ID_MENU_VIEW_FULLSCREEN, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnViewFullScreen ), NULL, this );
644
777
Disconnect( ID_MENU_VIEW_STATUSBAR, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnViewStatusBar ), NULL, this );
646
Disconnect( ID_GAUGE_PULSE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnGaugePulse ), NULL, this );
647
Disconnect( ID_GAUGE_SETMAX, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnGaugeSetMax ), NULL, this );
648
Disconnect( ID_GAUGE_UPDATE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnGaugeUpdate ), NULL, this );
649
Disconnect( ID_GAUGE_REMOVE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnGaugeRemove ), NULL, this );
779
Disconnect( ID_STATUSBAR_GAUGE_CREATE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnGaugeCreate ), NULL, this );
780
Disconnect( ID_STATUSBAR_GAUGE_PULSE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnGaugePulse ), NULL, this );
781
Disconnect( ID_STATUSBAR_GAUGE_SETMAX, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnGaugeSetMax ), NULL, this );
782
Disconnect( ID_STATUSBAR_GAUGE_UPDATE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnGaugeUpdate ), NULL, this );
783
Disconnect( ID_STATUSBAR_GAUGE_REMOVE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnGaugeRemove ), NULL, this );
651
785
Disconnect( ID_PLAYLIST_UPDATED, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnPlayListUpdated ), NULL, this );
653
787
Disconnect( ID_PODCASTS_ITEM_UPDATED, guPodcastEvent, wxCommandEventHandler( guMainFrame::OnPodcastItemUpdated ), NULL, this );
654
788
Disconnect( ID_MAINFRAME_REMOVEPODCASTTHREAD, wxCommandEventHandler( guMainFrame::OnRemovePodcastThread ), NULL, this );
790
Disconnect( ID_MAINFRAME_SETFORCEGAPLESS, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnSetForceGapless ), NULL, this );
656
792
m_AuiManager.Disconnect( wxEVT_AUI_PANE_CLOSE, wxAuiManagerEventHandler( guMainFrame::OnMainPaneClose ), NULL, this );
658
794
m_CatNotebook->Disconnect( wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED, wxAuiNotebookEventHandler( guMainFrame::OnPageChanged ), NULL, this );
752
946
// -------------------------------------------------------------------------------- //
947
void guMainFrame::OnVolumeMonitorUpdated( wxCommandEvent &event )
949
guLogMessage( wxT( "guMainFrame::OnVolumeMonitorUpdated" ) );
950
// a mount point have been removed
951
if( !event.GetInt() )
953
guLogMessage( wxT( "It was unmounted..." ) );
954
GMount * Mount = ( GMount * ) event.GetClientData();
956
int Count = m_PortableMediaViewCtrls.Count();
957
for( Index = 0; Index < Count; Index++ )
959
guPortableMediaViewCtrl * PortableMediaViewCtrl = m_PortableMediaViewCtrls[ Index ];
960
guLogMessage( wxT( "Checking device %i" ), Index );
961
if( PortableMediaViewCtrl->IsMount( Mount ) )
963
guLogMessage( wxT( "The mount had a view already added ..." ) );
964
int VisiblePanels = PortableMediaViewCtrl->VisiblePanels();
965
if( VisiblePanels & guPANEL_MAIN_LIBRARY )
967
guLogMessage( wxT( "The MediaViewCtrl had a library pane visible... Need to close it" ) );
968
event.SetClientData( ( void * ) PortableMediaViewCtrl->LibPanel() );
969
//int CmdId = ( event.GetId() - ID_MENU_VIEW_PORTABLE_DEVICE ) % 20;
970
//int DeviceNum = ( event.GetId() - ID_MENU_VIEW_PORTABLE_DEVICE ) / 20;
971
event.SetId( ID_MENU_VIEW_PORTABLE_DEVICE + ( Index * guPORTABLEDEVICE_COMMANDS_COUNT ) );
972
OnViewPortableDevice( event );
975
if( VisiblePanels & guPANEL_MAIN_PLAYLISTS )
977
guLogMessage( wxT( "The MediaViewCtrl had a library pane visible... Need to close it" ) );
978
event.SetClientData( ( void * ) PortableMediaViewCtrl->PlayListPanel() );
979
// //int CmdId = ( event.GetId() - ID_MENU_VIEW_PORTABLE_DEVICE ) % 20;
980
// //int DeviceNum = ( event.GetId() - ID_MENU_VIEW_PORTABLE_DEVICE ) / 20;
981
event.SetId( ID_MENU_VIEW_PORTABLE_DEVICE + ( Index * guPORTABLEDEVICE_COMMANDS_COUNT ) + 18 );
982
OnViewPortableDevice( event );
985
if( VisiblePanels & guPANEL_MAIN_ALBUMBROWSER )
987
guLogMessage( wxT( "The MediaViewCtrl had a library pane visible... Need to close it" ) );
988
event.SetClientData( ( void * ) PortableMediaViewCtrl->AlbumBrowserPanel() );
989
//int CmdId = ( event.GetId() - ID_MENU_VIEW_PORTABLE_DEVICE ) % 20;
990
//int DeviceNum = ( event.GetId() - ID_MENU_VIEW_PORTABLE_DEVICE ) / 20;
991
event.SetId( ID_MENU_VIEW_PORTABLE_DEVICE + ( Index * guPORTABLEDEVICE_COMMANDS_COUNT ) + 19 );
992
OnViewPortableDevice( event );
999
CreatePortablePlayersMenu( m_PortableDevicesMenu );
1001
if( m_LocationPanel )
1003
m_LocationPanel->OnPortableDeviceChanged();
1007
// -------------------------------------------------------------------------------- //
1008
guPortableMediaViewCtrl * guMainFrame::GetPortableMediaViewCtrl( const int basecmd )
1011
int Count = m_PortableMediaViewCtrls.Count();
1012
guLogMessage( wxT( "Searching for basecmd %u" ), basecmd );
1013
for( Index = 0; Index < Count; Index++ )
1015
guLogMessage( wxT( "Current basecmd %u" ), m_PortableMediaViewCtrls[ Index ]->BaseCommand() );
1016
if( m_PortableMediaViewCtrls[ Index ]->BaseCommand() == basecmd )
1018
guLogMessage( wxT( "found the basecmd %u" ), basecmd );
1019
return m_PortableMediaViewCtrls[ Index ];
1025
// -------------------------------------------------------------------------------- //
1026
guPortableMediaViewCtrl * guMainFrame::GetPortableMediaViewCtrl( wxWindow * windowptr, const int windowtype )
1029
int Count = m_PortableMediaViewCtrls.Count();
1030
for( Index = 0; Index < Count; Index++ )
1032
guPortableMediaViewCtrl * PortableMediaViewCtrl = m_PortableMediaViewCtrls[ Index ];
1033
switch( windowtype )
1035
case guPANEL_MAIN_LIBRARY :
1036
if( PortableMediaViewCtrl->LibPanel() == ( guLibPanel * ) windowptr )
1038
return PortableMediaViewCtrl;
1042
case guPANEL_MAIN_ALBUMBROWSER :
1043
if( PortableMediaViewCtrl->AlbumBrowserPanel() == ( guAlbumBrowser * ) windowptr )
1045
return PortableMediaViewCtrl;
1049
case guPANEL_MAIN_PLAYLISTS :
1050
if( PortableMediaViewCtrl->PlayListPanel() == ( guPlayListPanel * ) windowptr )
1052
return PortableMediaViewCtrl;
1060
// -------------------------------------------------------------------------------- //
1061
void guMainFrame::CreatePortableMediaDeviceMenu( wxMenu * menu, const wxString &devicename, const int basecmd )
1064
wxMenuItem * MenuItem;
1065
guPortableMediaViewCtrl * PortableMediaViewCtrl = GetPortableMediaViewCtrl( basecmd );
1067
if( !PortableMediaViewCtrl )
1069
MenuItem = new wxMenuItem( menu, basecmd, devicename, _( "Show/Hide the portable media device panel" ), wxITEM_CHECK );
1070
menu->Append( MenuItem );
1074
int VisiblePanels = PortableMediaViewCtrl->VisiblePanels();
1075
SubMenu = new wxMenu();
1077
if( VisiblePanels & guPANEL_MAIN_LIBRARY )
1079
guPortableMediaLibPanel * PortableMediaLibPanel = PortableMediaViewCtrl->LibPanel();
1080
int LibVisiblePanels = PortableMediaLibPanel->VisiblePanels();
1081
wxMenu * LibSubMenu = new wxMenu();
1083
MenuItem = new wxMenuItem( LibSubMenu, basecmd, _( "Library" ), _( "Show/Hide the portable media device panel" ), wxITEM_CHECK );
1084
LibSubMenu->Append( MenuItem );
1085
MenuItem->Check( true );
1087
LibSubMenu->AppendSeparator();
1089
MenuItem = new wxMenuItem( LibSubMenu, basecmd + guLIBRARY_ELEMENT_TEXTSEARCH, _( "Text Search" ), _( "Show/Hide the Portable Media Device text search" ), wxITEM_CHECK );
1090
LibSubMenu->Append( MenuItem );
1091
MenuItem->Check( LibVisiblePanels & guPANEL_LIBRARY_TEXTSEARCH );
1093
MenuItem = new wxMenuItem( LibSubMenu, basecmd + guLIBRARY_ELEMENT_LABELS, _( "Labels" ), _( "Show/Hide the Portable Media Device labels" ), wxITEM_CHECK );
1094
LibSubMenu->Append( MenuItem );
1095
MenuItem->Check( LibVisiblePanels & guPANEL_LIBRARY_LABELS );
1097
MenuItem = new wxMenuItem( LibSubMenu, basecmd + guLIBRARY_ELEMENT_GENRES, _( "Genres" ), _( "Show/Hide the Portable Media Device genres" ), wxITEM_CHECK );
1098
LibSubMenu->Append( MenuItem );
1099
MenuItem->Check( LibVisiblePanels & guPANEL_LIBRARY_GENRES );
1101
MenuItem = new wxMenuItem( LibSubMenu, basecmd + guLIBRARY_ELEMENT_ARTISTS, _( "Artists" ), _( "Show/Hide the Portable Media Device artists" ), wxITEM_CHECK );
1102
LibSubMenu->Append( MenuItem );
1103
MenuItem->Check( LibVisiblePanels & guPANEL_LIBRARY_ARTISTS );
1105
MenuItem = new wxMenuItem( LibSubMenu, basecmd + guLIBRARY_ELEMENT_COMPOSERS, _( "Composers" ), _( "Show/Hide the Portable Media Device composers" ), wxITEM_CHECK );
1106
LibSubMenu->Append( MenuItem );
1107
MenuItem->Check( LibVisiblePanels & guPANEL_LIBRARY_COMPOSERS );
1109
MenuItem = new wxMenuItem( LibSubMenu, basecmd + guLIBRARY_ELEMENT_ALBUMARTISTS, _( "Album Artist" ), _( "Show/Hide the Portable Media Device album artist" ), wxITEM_CHECK );
1110
LibSubMenu->Append( MenuItem );
1111
MenuItem->Check( LibVisiblePanels & guPANEL_LIBRARY_ALBUMARTISTS );
1113
MenuItem = new wxMenuItem( LibSubMenu, basecmd + guLIBRARY_ELEMENT_ALBUMS, _( "Albums" ), _( "Show/Hide the Portable Media Device albums" ), wxITEM_CHECK );
1114
LibSubMenu->Append( MenuItem );
1115
MenuItem->Check( LibVisiblePanels & guPANEL_LIBRARY_ALBUMS );
1117
MenuItem = new wxMenuItem( LibSubMenu, basecmd + guLIBRARY_ELEMENT_YEARS, _( "Years" ), _( "Show/Hide the Portable Media Device years" ), wxITEM_CHECK );
1118
LibSubMenu->Append( MenuItem );
1119
MenuItem->Check( LibVisiblePanels & guPANEL_LIBRARY_YEARS );
1121
MenuItem = new wxMenuItem( LibSubMenu, basecmd + guLIBRARY_ELEMENT_RATINGS, _( "Ratings" ), _( "Show/Hide the Portable Media Device ratings" ), wxITEM_CHECK );
1122
LibSubMenu->Append( MenuItem );
1123
MenuItem->Check( LibVisiblePanels & guPANEL_LIBRARY_RATINGS );
1125
MenuItem = new wxMenuItem( LibSubMenu, basecmd + guLIBRARY_ELEMENT_PLAYCOUNT, _( "Play Counts" ), _( "Show/Hide the Portable Media Device play counts" ), wxITEM_CHECK );
1126
LibSubMenu->Append( MenuItem );
1127
MenuItem->Check( LibVisiblePanels & guPANEL_LIBRARY_PLAYCOUNT );
1129
SubMenu->AppendSubMenu( LibSubMenu, _( "Library" ), _( "Set the Portable Media Device visible panels" ) );
1133
MenuItem = new wxMenuItem( menu, basecmd, _( "Library" ), _( "Show/Hide the portable media device panel" ), wxITEM_CHECK );
1134
SubMenu->Append( MenuItem );
1137
MenuItem = new wxMenuItem( menu, basecmd + 18, _( "PlayLists" ), _( "Show/Hide the portable media device panel" ), wxITEM_CHECK );
1138
SubMenu->Append( MenuItem );
1139
MenuItem->Check( VisiblePanels & guPANEL_MAIN_PLAYLISTS );
1141
MenuItem = new wxMenuItem( menu, basecmd + 19, _( "Album Browser" ), _( "Show/Hide the portable media device panel" ), wxITEM_CHECK );
1142
SubMenu->Append( MenuItem );
1143
MenuItem->Check( VisiblePanels & guPANEL_MAIN_ALBUMBROWSER );
1145
menu->AppendSubMenu( SubMenu, devicename, _( "Set the Portable Media Device visible panels" ) );
1149
// -------------------------------------------------------------------------------- //
1150
void guMainFrame::CreatePortablePlayersMenu( wxMenu * menu )
1152
wxMenuItem * MenuItem;
1154
// Empty the submenu items
1157
while( menu->GetMenuItemCount() )
1159
menu->Delete( menu->FindItemByPosition( 0 ) );
1160
BaseCmd = ID_MENU_VIEW_PORTABLE_DEVICE + ( Index * guPORTABLEDEVICE_COMMANDS_COUNT );
1161
Disconnect( BaseCmd, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnViewPortableDevice ), NULL, this );
1162
Disconnect( BaseCmd + 1, BaseCmd + 15, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnViewPortableDevicePanel ), NULL, this );
1163
Disconnect( BaseCmd + 16, BaseCmd + 19, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnViewPortableDevice ), NULL, this );
1167
if( m_VolumeMonitor )
1169
wxArrayString VolumeNames = m_VolumeMonitor->GetMountNames();
1171
if( ( Count = VolumeNames.Count() ) )
1173
for( Index = 0; Index < Count; Index++ )
1175
BaseCmd = ID_MENU_VIEW_PORTABLE_DEVICE + ( Index * guPORTABLEDEVICE_COMMANDS_COUNT );
1176
CreatePortableMediaDeviceMenu( menu, VolumeNames[ Index ], BaseCmd );
1178
Connect( BaseCmd, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnViewPortableDevice ), NULL, this );
1179
Connect( BaseCmd + 1, BaseCmd + 15, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnViewPortableDevicePanel ), NULL, this );
1180
Connect( BaseCmd + 16, BaseCmd + 19, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( guMainFrame::OnViewPortableDevice ), NULL, this );
1185
MenuItem = new wxMenuItem( m_MainMenu, -1, _( "No device found" ), _( "Show the Library for the selected portable volume" ), wxITEM_NORMAL );
1186
menu->Append( MenuItem );
1187
MenuItem->Enable( false );
1193
// -------------------------------------------------------------------------------- //
753
1194
void guMainFrame::CreateMenu()
755
1196
wxMenuBar * MenuBar;
976
1425
m_MainMenu->Append( m_ViewFileBrowser );
977
1426
m_ViewFileBrowser->Check( m_VisiblePanels & guPANEL_MAIN_FILEBROWSER );
1429
SubMenu = new wxMenu();
1431
m_ViewJamendo = new wxMenuItem( SubMenu, ID_MENU_VIEW_JAMENDO, wxT( "Jamendo" ), _( "Show/Hide the Jamendo panel" ), wxITEM_CHECK );
1432
SubMenu->Append( m_ViewJamendo );
1433
m_ViewJamendo->Check( m_VisiblePanels & guPANEL_MAIN_JAMENDO );
1435
SubMenu->AppendSeparator();
1437
m_ViewJamTextSearch = new wxMenuItem( SubMenu, ID_MENU_VIEW_JAMENDO_TEXTSEARCH, _( "Text Search" ), _( "Show/Hide the Jamendo text search" ), wxITEM_CHECK );
1438
SubMenu->Append( m_ViewJamTextSearch );
1439
m_ViewJamTextSearch->Check( m_JamendoPanel && m_JamendoPanel->IsPanelShown( guPANEL_LIBRARY_TEXTSEARCH ) );
1440
m_ViewJamTextSearch->Enable( m_ViewJamendo->IsChecked() );
1442
m_ViewJamLabels = new wxMenuItem( SubMenu, ID_MENU_VIEW_JAMENDO_LABELS, _( "Labels" ), _( "Show/Hide the Jamendo labels" ), wxITEM_CHECK );
1443
SubMenu->Append( m_ViewJamLabels );
1444
m_ViewJamLabels->Check( m_JamendoPanel && m_JamendoPanel->IsPanelShown( guPANEL_LIBRARY_LABELS ) );
1445
m_ViewJamLabels->Enable( m_ViewJamendo->IsChecked() );
1447
m_ViewJamGenres = new wxMenuItem( SubMenu, ID_MENU_VIEW_JAMENDO_GENRES, _( "Genres" ), _( "Show/Hide the Jamendo genres" ), wxITEM_CHECK );
1448
SubMenu->Append( m_ViewJamGenres );
1449
m_ViewJamGenres->Check( m_JamendoPanel && m_JamendoPanel->IsPanelShown( guPANEL_LIBRARY_GENRES ) );
1450
m_ViewJamGenres->Enable( m_ViewJamendo->IsChecked() );
1452
m_ViewJamArtists = new wxMenuItem( SubMenu, ID_MENU_VIEW_JAMENDO_ARTISTS, _( "Artists" ), _( "Show/Hide the Jamendo artists" ), wxITEM_CHECK );
1453
SubMenu->Append( m_ViewJamArtists );
1454
m_ViewJamArtists->Check( m_JamendoPanel && m_JamendoPanel->IsPanelShown( guPANEL_LIBRARY_ARTISTS ) );
1455
m_ViewJamArtists->Enable( m_ViewJamendo->IsChecked() );
1457
m_ViewJamComposers = new wxMenuItem( SubMenu, ID_MENU_VIEW_JAMENDO_COMPOSERS, _( "Composers" ), _( "Show/Hide the Jamendo composers" ), wxITEM_CHECK );
1458
SubMenu->Append( m_ViewJamComposers );
1459
m_ViewJamComposers->Check( m_JamendoPanel && m_JamendoPanel->IsPanelShown( guPANEL_LIBRARY_COMPOSERS ) );
1460
m_ViewJamComposers->Enable( m_ViewJamendo->IsChecked() );
1462
m_ViewJamAlbumArtists = new wxMenuItem( SubMenu, ID_MENU_VIEW_JAMENDO_ALBUMARTISTS, _( "Album Artist" ), _( "Show/Hide the Jamendo album artist" ), wxITEM_CHECK );
1463
SubMenu->Append( m_ViewJamAlbumArtists );
1464
m_ViewJamAlbumArtists->Check( m_JamendoPanel && m_JamendoPanel->IsPanelShown( guPANEL_LIBRARY_ALBUMARTISTS ) );
1465
m_ViewJamAlbumArtists->Enable( m_ViewJamendo->IsChecked() );
1467
m_ViewJamAlbums = new wxMenuItem( SubMenu, ID_MENU_VIEW_JAMENDO_ALBUMS, _( "Albums" ), _( "Show/Hide the Jamendo albums" ), wxITEM_CHECK );
1468
SubMenu->Append( m_ViewJamAlbums );
1469
m_ViewJamAlbums->Check( m_JamendoPanel && m_JamendoPanel->IsPanelShown( guPANEL_LIBRARY_ALBUMS ) );
1470
m_ViewJamAlbums->Enable( m_ViewJamendo->IsChecked() );
1472
m_ViewJamYears = new wxMenuItem( SubMenu, ID_MENU_VIEW_JAMENDO_YEARS, _( "Years" ), _( "Show/Hide the Jamendo years" ), wxITEM_CHECK );
1473
SubMenu->Append( m_ViewJamYears );
1474
m_ViewJamYears->Check( m_JamendoPanel && m_JamendoPanel->IsPanelShown( guPANEL_LIBRARY_YEARS ) );
1475
m_ViewJamYears->Enable( m_ViewJamendo->IsChecked() );
1477
m_ViewJamRatings = new wxMenuItem( SubMenu, ID_MENU_VIEW_JAMENDO_RATINGS, _( "Ratings" ), _( "Show/Hide the Jamendo ratings" ), wxITEM_CHECK );
1478
SubMenu->Append( m_ViewJamRatings );
1479
m_ViewJamRatings->Check( m_JamendoPanel && m_JamendoPanel->IsPanelShown( guPANEL_LIBRARY_RATINGS ) );
1480
m_ViewJamRatings->Enable( m_ViewJamendo->IsChecked() );
1482
m_ViewJamPlayCounts = new wxMenuItem( SubMenu, ID_MENU_VIEW_JAMENDO_PLAYCOUNT, _( "Play Counts" ), _( "Show/Hide the Jamendo play counts" ), wxITEM_CHECK );
1483
SubMenu->Append( m_ViewJamPlayCounts );
1484
m_ViewJamPlayCounts->Check( m_JamendoPanel && m_JamendoPanel->IsPanelShown( guPANEL_LIBRARY_PLAYCOUNT ) );
1485
m_ViewJamPlayCounts->Enable( m_ViewJamendo->IsChecked() );
1487
m_MainMenu->AppendSubMenu( SubMenu, wxT( "Jamendo" ), _( "Set the Jamendo visible panels" ) );
1489
SubMenu = new wxMenu();
1491
m_ViewMagnatune = new wxMenuItem( SubMenu, ID_MENU_VIEW_MAGNATUNE, wxT( "Magnatune" ), _( "Show/Hide the Magnatune panel" ), wxITEM_CHECK );
1492
SubMenu->Append( m_ViewMagnatune );
1493
m_ViewMagnatune->Check( m_VisiblePanels & guPANEL_MAIN_MAGNATUNE );
1495
SubMenu->AppendSeparator();
1497
m_ViewMagTextSearch = new wxMenuItem( SubMenu, ID_MENU_VIEW_MAGNATUNE_TEXTSEARCH, _( "Text Search" ), _( "Show/Hide the Magnatune text search" ), wxITEM_CHECK );
1498
SubMenu->Append( m_ViewMagTextSearch );
1499
m_ViewMagTextSearch->Check( m_MagnatunePanel && m_MagnatunePanel->IsPanelShown( guPANEL_LIBRARY_TEXTSEARCH ) );
1500
m_ViewMagTextSearch->Enable( m_ViewMagnatune->IsChecked() );
1502
m_ViewMagLabels = new wxMenuItem( SubMenu, ID_MENU_VIEW_MAGNATUNE_LABELS, _( "Labels" ), _( "Show/Hide the Magnatune labels" ), wxITEM_CHECK );
1503
SubMenu->Append( m_ViewMagLabels );
1504
m_ViewMagLabels->Check( m_MagnatunePanel && m_MagnatunePanel->IsPanelShown( guPANEL_LIBRARY_LABELS ) );
1505
m_ViewMagLabels->Enable( m_ViewMagnatune->IsChecked() );
1507
m_ViewMagGenres = new wxMenuItem( SubMenu, ID_MENU_VIEW_MAGNATUNE_GENRES, _( "Genres" ), _( "Show/Hide the Magnatune genres" ), wxITEM_CHECK );
1508
SubMenu->Append( m_ViewMagGenres );
1509
m_ViewMagGenres->Check( m_MagnatunePanel && m_MagnatunePanel->IsPanelShown( guPANEL_LIBRARY_GENRES ) );
1510
m_ViewMagGenres->Enable( m_ViewMagnatune->IsChecked() );
1512
m_ViewMagArtists = new wxMenuItem( SubMenu, ID_MENU_VIEW_MAGNATUNE_ARTISTS, _( "Artists" ), _( "Show/Hide the Magnatune artists" ), wxITEM_CHECK );
1513
SubMenu->Append( m_ViewMagArtists );
1514
m_ViewMagArtists->Check( m_MagnatunePanel && m_MagnatunePanel->IsPanelShown( guPANEL_LIBRARY_ARTISTS ) );
1515
m_ViewMagArtists->Enable( m_ViewMagnatune->IsChecked() );
1517
m_ViewMagComposers = new wxMenuItem( SubMenu, ID_MENU_VIEW_MAGNATUNE_COMPOSERS, _( "Composers" ), _( "Show/Hide the Magnatune composers" ), wxITEM_CHECK );
1518
SubMenu->Append( m_ViewMagComposers );
1519
m_ViewMagComposers->Check( m_MagnatunePanel && m_MagnatunePanel->IsPanelShown( guPANEL_LIBRARY_COMPOSERS ) );
1520
m_ViewMagComposers->Enable( m_ViewMagnatune->IsChecked() );
1522
m_ViewMagAlbumArtists = new wxMenuItem( SubMenu, ID_MENU_VIEW_MAGNATUNE_ALBUMARTISTS, _( "Album Artist" ), _( "Show/Hide the Magnatune album artist" ), wxITEM_CHECK );
1523
SubMenu->Append( m_ViewMagAlbumArtists );
1524
m_ViewMagAlbumArtists->Check( m_MagnatunePanel && m_MagnatunePanel->IsPanelShown( guPANEL_LIBRARY_ALBUMARTISTS ) );
1525
m_ViewMagAlbumArtists->Enable( m_ViewMagnatune->IsChecked() );
1527
m_ViewMagAlbums = new wxMenuItem( SubMenu, ID_MENU_VIEW_MAGNATUNE_ALBUMS, _( "Albums" ), _( "Show/Hide the Magnatune albums" ), wxITEM_CHECK );
1528
SubMenu->Append( m_ViewMagAlbums );
1529
m_ViewMagAlbums->Check( m_MagnatunePanel && m_MagnatunePanel->IsPanelShown( guPANEL_LIBRARY_ALBUMS ) );
1530
m_ViewMagAlbums->Enable( m_ViewMagnatune->IsChecked() );
1532
m_ViewMagYears = new wxMenuItem( SubMenu, ID_MENU_VIEW_MAGNATUNE_YEARS, _( "Years" ), _( "Show/Hide the Magnatune years" ), wxITEM_CHECK );
1533
SubMenu->Append( m_ViewMagYears );
1534
m_ViewMagYears->Check( m_MagnatunePanel && m_MagnatunePanel->IsPanelShown( guPANEL_LIBRARY_YEARS ) );
1535
m_ViewMagYears->Enable( m_ViewMagnatune->IsChecked() );
1537
m_ViewMagRatings = new wxMenuItem( SubMenu, ID_MENU_VIEW_MAGNATUNE_RATINGS, _( "Ratings" ), _( "Show/Hide the Magnatune ratings" ), wxITEM_CHECK );
1538
SubMenu->Append( m_ViewMagRatings );
1539
m_ViewMagRatings->Check( m_MagnatunePanel && m_MagnatunePanel->IsPanelShown( guPANEL_LIBRARY_RATINGS ) );
1540
m_ViewMagRatings->Enable( m_ViewMagnatune->IsChecked() );
1542
m_ViewMagPlayCounts = new wxMenuItem( SubMenu, ID_MENU_VIEW_MAGNATUNE_PLAYCOUNT, _( "Play Counts" ), _( "Show/Hide the Magnatune play counts" ), wxITEM_CHECK );
1543
SubMenu->Append( m_ViewMagPlayCounts );
1544
m_ViewMagPlayCounts->Check( m_MagnatunePanel && m_MagnatunePanel->IsPanelShown( guPANEL_LIBRARY_PLAYCOUNT ) );
1545
m_ViewMagPlayCounts->Enable( m_ViewMagnatune->IsChecked() );
1547
m_MainMenu->AppendSubMenu( SubMenu, wxT( "Magnatune" ), _( "Set the Magnatune visible panels" ) );
1549
m_PortableDevicesMenu = new wxMenu();
1551
CreatePortablePlayersMenu( m_PortableDevicesMenu );
1553
m_MainMenu->AppendSubMenu( m_PortableDevicesMenu, _( "Portable devices" ), _( "View the portable devices library" ) );
979
1556
m_MainMenu->AppendSeparator();
981
1558
m_ViewFullScreen = new wxMenuItem( m_MainMenu, ID_MENU_VIEW_FULLSCREEN, _( "Full Screen" ), _( "Show/Restore the main window in full screen" ), wxITEM_CHECK );
1503
2260
if( DirDialog->ShowModal() == wxID_OK )
1505
int GaugeId = m_MainStatusBar->AddGauge( _( "Copy To..." ) );
1506
guCopyToDirThread * CopyToDirThread = new guCopyToDirThread( DirDialog->GetPath().c_str(),
1508
if( !CopyToDirThread )
2262
m_CopyToThreadMutex.Lock();
2264
if( !m_CopyToThread )
1510
guLogError( wxT( "Could not create the CopyTo thread object" ) );
2266
int GaugeId = m_MainStatusBar->AddGauge( _( "Copy To..." ), false );
2267
m_CopyToThread = new guCopyToThread( this, GaugeId );
2270
guConfig * Config = ( guConfig * ) guConfig::Get();
2271
wxArrayString CopyToOptions = Config->ReadAStr( wxT( "Option"), wxEmptyString, wxT( "CopyTo") );
2272
wxArrayString SelCopyTo = wxStringTokenize( CopyToOptions[ event.GetInt() ], wxT( ":") );
2274
while( SelCopyTo.Count() != 5 )
2275
SelCopyTo.Add( wxT( "0" ) );
2277
m_CopyToThread->AddAction( Tracks, m_LibPanel, DirDialog->GetPath(),
2278
unescape_configlist_str( SelCopyTo[ 1 ] ),
2279
wxAtoi( SelCopyTo[ 2 ] ),
2280
wxAtoi( SelCopyTo[ 3 ] ),
2281
wxAtoi( SelCopyTo[ 4 ] ) );
2283
m_CopyToThreadMutex.Unlock();
1518
2286
DirDialog->Destroy();
2296
// -------------------------------------------------------------------------------- //
2297
void guMainFrame::OnCopyTracksToDevice( wxCommandEvent &event )
2299
guLogMessage( wxT( "guMainFrame::OnCopyTracksToDevice" ) );
2300
guTrackArray * Tracks = ( guTrackArray * ) event.GetClientData();
2303
if( Tracks->Count() )
2305
int PortableIndex = event.GetInt();
2306
if( PortableIndex >= 0 && PortableIndex < ( int ) m_PortableMediaViewCtrls.Count() )
2308
guPortableMediaViewCtrl * PortableMediaViewCtrl = m_PortableMediaViewCtrls[ PortableIndex ];
2310
m_CopyToThreadMutex.Lock();
2312
if( !m_CopyToThread )
2314
int GaugeId = m_MainStatusBar->AddGauge( _( "Copy To..." ), false );
2315
m_CopyToThread = new guCopyToThread( this, GaugeId );
2318
m_CopyToThread->AddAction( Tracks, m_Db, PortableMediaViewCtrl );
2320
m_CopyToThreadMutex.Unlock();
2325
guLogMessage( wxT( "Wrong portable device index in copy tracks to device command" ) );
2335
// -------------------------------------------------------------------------------- //
2336
void guMainFrame::OnCopyPlayListToDevice( wxCommandEvent &event )
2338
guLogMessage( wxT( "guMainFrame::OnCopyPlayListToDevice" ) );
2339
wxString * PlayListPath = ( wxString * ) event.GetClientData();
2342
int PortableIndex = event.GetInt();
2343
if( PortableIndex >= 0 && PortableIndex < ( int ) m_PortableMediaViewCtrls.Count() )
2345
guPortableMediaViewCtrl * PortableMediaViewCtrl = m_PortableMediaViewCtrls[ PortableIndex ];
2347
m_CopyToThreadMutex.Lock();
2349
if( !m_CopyToThread )
2351
int GaugeId = m_MainStatusBar->AddGauge( _( "Copy To..." ), false );
2352
m_CopyToThread = new guCopyToThread( this, GaugeId );
2355
m_CopyToThread->AddAction( PlayListPath, m_Db, PortableMediaViewCtrl );
2357
m_CopyToThreadMutex.Unlock();
2362
guLogMessage( wxT( "Wrong portable device index in copy playlist to device command" ) );
1752
2600
// -------------------------------------------------------------------------------- //
2601
void guMainFrame::OnJamendoShowPanel( wxCommandEvent &event )
2605
switch( event.GetId() )
2607
case ID_MENU_VIEW_JAMENDO_TEXTSEARCH :
2608
PanelId = guPANEL_LIBRARY_TEXTSEARCH;
2609
m_ViewJamTextSearch->Check( event.IsChecked() );
2612
case ID_MENU_VIEW_JAMENDO_LABELS :
2613
PanelId = guPANEL_LIBRARY_LABELS;
2614
m_ViewJamLabels->Check( event.IsChecked() );
2617
case ID_MENU_VIEW_JAMENDO_GENRES :
2618
PanelId = guPANEL_LIBRARY_GENRES;
2619
m_ViewJamGenres->Check( event.IsChecked() );
2622
case ID_MENU_VIEW_JAMENDO_ARTISTS :
2623
PanelId = guPANEL_LIBRARY_ARTISTS;
2624
m_ViewJamArtists->Check( event.IsChecked() );
2627
case ID_MENU_VIEW_JAMENDO_ALBUMS :
2628
PanelId = guPANEL_LIBRARY_ALBUMS;
2629
m_ViewJamAlbums->Check( event.IsChecked() );
2632
case ID_MENU_VIEW_JAMENDO_YEARS :
2633
PanelId = guPANEL_LIBRARY_YEARS;
2634
m_ViewJamYears->Check( event.IsChecked() );
2637
case ID_MENU_VIEW_JAMENDO_RATINGS :
2638
PanelId = guPANEL_LIBRARY_RATINGS;
2639
m_ViewJamRatings->Check( event.IsChecked() );
2642
case ID_MENU_VIEW_JAMENDO_PLAYCOUNT :
2643
PanelId = guPANEL_LIBRARY_PLAYCOUNT;
2644
m_ViewJamPlayCounts->Check( event.IsChecked() );
2647
case ID_MENU_VIEW_JAMENDO_COMPOSERS :
2648
PanelId = guPANEL_LIBRARY_COMPOSERS;
2649
m_ViewJamComposers->Check( event.IsChecked() );
2652
case ID_MENU_VIEW_JAMENDO_ALBUMARTISTS :
2653
PanelId = guPANEL_LIBRARY_ALBUMARTISTS;
2654
m_ViewJamAlbumArtists->Check( event.IsChecked() );
2658
if( PanelId && m_JamendoPanel )
2659
m_JamendoPanel->ShowPanel( PanelId, event.IsChecked() );
2663
// -------------------------------------------------------------------------------- //
2664
void guMainFrame::OnMagnatuneShowPanel( wxCommandEvent &event )
2668
switch( event.GetId() )
2670
case ID_MENU_VIEW_MAGNATUNE_TEXTSEARCH :
2671
PanelId = guPANEL_LIBRARY_TEXTSEARCH;
2672
m_ViewMagTextSearch->Check( event.IsChecked() );
2675
case ID_MENU_VIEW_MAGNATUNE_LABELS :
2676
PanelId = guPANEL_LIBRARY_LABELS;
2677
m_ViewMagLabels->Check( event.IsChecked() );
2680
case ID_MENU_VIEW_MAGNATUNE_GENRES :
2681
PanelId = guPANEL_LIBRARY_GENRES;
2682
m_ViewMagGenres->Check( event.IsChecked() );
2685
case ID_MENU_VIEW_MAGNATUNE_ARTISTS :
2686
PanelId = guPANEL_LIBRARY_ARTISTS;
2687
m_ViewMagArtists->Check( event.IsChecked() );
2690
case ID_MENU_VIEW_MAGNATUNE_ALBUMS :
2691
PanelId = guPANEL_LIBRARY_ALBUMS;
2692
m_ViewMagAlbums->Check( event.IsChecked() );
2695
case ID_MENU_VIEW_MAGNATUNE_YEARS :
2696
PanelId = guPANEL_LIBRARY_YEARS;
2697
m_ViewMagYears->Check( event.IsChecked() );
2700
case ID_MENU_VIEW_MAGNATUNE_RATINGS :
2701
PanelId = guPANEL_LIBRARY_RATINGS;
2702
m_ViewMagRatings->Check( event.IsChecked() );
2705
case ID_MENU_VIEW_MAGNATUNE_PLAYCOUNT :
2706
PanelId = guPANEL_LIBRARY_PLAYCOUNT;
2707
m_ViewMagPlayCounts->Check( event.IsChecked() );
2710
case ID_MENU_VIEW_MAGNATUNE_COMPOSERS :
2711
PanelId = guPANEL_LIBRARY_COMPOSERS;
2712
m_ViewMagComposers->Check( event.IsChecked() );
2715
case ID_MENU_VIEW_MAGNATUNE_ALBUMARTISTS :
2716
PanelId = guPANEL_LIBRARY_ALBUMARTISTS;
2717
m_ViewMagAlbumArtists->Check( event.IsChecked() );
2721
if( PanelId && m_MagnatunePanel )
2722
m_MagnatunePanel->ShowPanel( PanelId, event.IsChecked() );
2726
// -------------------------------------------------------------------------------- //
1753
2727
void guMainFrame::OnViewRadio( wxCommandEvent &event )
1755
2729
// guConfig * Config = ( guConfig * ) guConfig::Get();
2042
3041
m_CatNotebook->Refresh();
2044
3043
m_ViewFileBrowser->Check( m_VisiblePanels & guPANEL_MAIN_FILEBROWSER );
3045
if( m_LocationPanel )
3047
m_LocationPanel->OnPanelVisibleChanged();
3051
// -------------------------------------------------------------------------------- //
3052
void guMainFrame::OnViewJamendo( wxCommandEvent &event )
3054
bool IsEnabled = event.IsChecked();
3058
m_JamendoDb = new guJamendoLibrary( wxGetHomeDir() + wxT( "/.guayadeque/Jamendo/Jamendo.db" ) );
3060
if( !m_JamendoPanel )
3061
m_JamendoPanel = new guJamendoPanel( m_CatNotebook, m_JamendoDb, m_PlayerPanel, wxT( "Jam" ) );
3063
InsertTabPanel( m_JamendoPanel, 8, wxT( "Jamendo" ) );
3065
m_VisiblePanels |= guPANEL_MAIN_JAMENDO;
3069
RemoveTabPanel( m_JamendoPanel );
3070
m_VisiblePanels ^= guPANEL_MAIN_JAMENDO;
3072
m_CatNotebook->Refresh();
3074
m_ViewJamendo->Check( m_VisiblePanels & guPANEL_MAIN_JAMENDO );
3076
m_ViewJamTextSearch->Check( m_JamendoPanel && m_JamendoPanel->IsPanelShown( guPANEL_LIBRARY_TEXTSEARCH ) );
3077
m_ViewJamTextSearch->Enable( IsEnabled );
3079
m_ViewJamLabels->Check( m_JamendoPanel && m_JamendoPanel->IsPanelShown( guPANEL_LIBRARY_LABELS ) );
3080
m_ViewJamLabels->Enable( IsEnabled );
3082
m_ViewJamGenres->Check( m_JamendoPanel && m_JamendoPanel->IsPanelShown( guPANEL_LIBRARY_GENRES ) );
3083
m_ViewJamGenres->Enable( IsEnabled );
3085
m_ViewJamArtists->Check( m_JamendoPanel && m_JamendoPanel->IsPanelShown( guPANEL_LIBRARY_ARTISTS ) );
3086
m_ViewJamArtists->Enable( IsEnabled );
3088
m_ViewJamComposers->Check( m_JamendoPanel && m_JamendoPanel->IsPanelShown( guPANEL_LIBRARY_COMPOSERS ) );
3089
m_ViewJamComposers->Enable( IsEnabled );
3091
m_ViewJamAlbumArtists->Check( m_JamendoPanel && m_JamendoPanel->IsPanelShown( guPANEL_LIBRARY_ALBUMARTISTS ) );
3092
m_ViewJamAlbumArtists->Enable( IsEnabled );
3094
m_ViewJamAlbums->Check( m_JamendoPanel && m_JamendoPanel->IsPanelShown( guPANEL_LIBRARY_ALBUMS ) );
3095
m_ViewJamAlbums->Enable( IsEnabled );
3097
m_ViewJamYears->Check( m_JamendoPanel && m_JamendoPanel->IsPanelShown( guPANEL_LIBRARY_YEARS ) );
3098
m_ViewJamYears->Enable( IsEnabled );
3100
m_ViewJamRatings->Check( m_JamendoPanel && m_JamendoPanel->IsPanelShown( guPANEL_LIBRARY_RATINGS ) );
3101
m_ViewJamRatings->Enable( IsEnabled );
3103
m_ViewJamPlayCounts->Check( m_JamendoPanel && m_JamendoPanel->IsPanelShown( guPANEL_LIBRARY_PLAYCOUNT ) );
3104
m_ViewJamPlayCounts->Enable( IsEnabled );
3106
if( m_LocationPanel )
3108
m_LocationPanel->OnPanelVisibleChanged();
3112
// -------------------------------------------------------------------------------- //
3113
void guMainFrame::OnViewMagnatune( wxCommandEvent &event )
3115
bool IsEnabled = event.IsChecked();
3118
if( !m_MagnatuneDb )
3119
m_MagnatuneDb = new guMagnatuneLibrary( wxGetHomeDir() + wxT( "/.guayadeque/Magnatune/Magnatune.db" ) );
3121
if( !m_MagnatunePanel )
3122
m_MagnatunePanel = new guMagnatunePanel( m_CatNotebook, m_MagnatuneDb, m_PlayerPanel, wxT( "Mag" ) );
3124
InsertTabPanel( m_MagnatunePanel, 9, wxT( "Magnatune" ) );
3126
m_VisiblePanels |= guPANEL_MAIN_MAGNATUNE;
3130
RemoveTabPanel( m_MagnatunePanel );
3131
m_VisiblePanels ^= guPANEL_MAIN_MAGNATUNE;
3133
m_CatNotebook->Refresh();
3135
m_ViewMagnatune->Check( m_VisiblePanels & guPANEL_MAIN_MAGNATUNE );
3137
m_ViewMagTextSearch->Check( m_MagnatunePanel && m_MagnatunePanel->IsPanelShown( guPANEL_LIBRARY_TEXTSEARCH ) );
3138
m_ViewMagTextSearch->Enable( IsEnabled );
3140
m_ViewMagLabels->Check( m_MagnatunePanel && m_MagnatunePanel->IsPanelShown( guPANEL_LIBRARY_LABELS ) );
3141
m_ViewMagLabels->Enable( IsEnabled );
3143
m_ViewMagGenres->Check( m_MagnatunePanel && m_MagnatunePanel->IsPanelShown( guPANEL_LIBRARY_GENRES ) );
3144
m_ViewMagGenres->Enable( IsEnabled );
3146
m_ViewMagArtists->Check( m_MagnatunePanel && m_MagnatunePanel->IsPanelShown( guPANEL_LIBRARY_ARTISTS ) );
3147
m_ViewMagArtists->Enable( IsEnabled );
3149
m_ViewMagComposers->Check( m_MagnatunePanel && m_MagnatunePanel->IsPanelShown( guPANEL_LIBRARY_COMPOSERS ) );
3150
m_ViewMagComposers->Enable( IsEnabled );
3152
m_ViewMagAlbumArtists->Check( m_MagnatunePanel && m_MagnatunePanel->IsPanelShown( guPANEL_LIBRARY_ALBUMARTISTS ) );
3153
m_ViewMagAlbumArtists->Enable( IsEnabled );
3155
m_ViewMagAlbums->Check( m_MagnatunePanel && m_MagnatunePanel->IsPanelShown( guPANEL_LIBRARY_ALBUMS ) );
3156
m_ViewMagAlbums->Enable( IsEnabled );
3158
m_ViewMagYears->Check( m_MagnatunePanel && m_MagnatunePanel->IsPanelShown( guPANEL_LIBRARY_YEARS ) );
3159
m_ViewMagYears->Enable( IsEnabled );
3161
m_ViewMagRatings->Check( m_MagnatunePanel && m_MagnatunePanel->IsPanelShown( guPANEL_LIBRARY_RATINGS ) );
3162
m_ViewMagRatings->Enable( IsEnabled );
3164
m_ViewMagPlayCounts->Check( m_MagnatunePanel && m_MagnatunePanel->IsPanelShown( guPANEL_LIBRARY_PLAYCOUNT ) );
3165
m_ViewMagPlayCounts->Enable( IsEnabled );
3167
if( m_LocationPanel )
3169
m_LocationPanel->OnPanelVisibleChanged();
3173
// -------------------------------------------------------------------------------- //
3174
void guMainFrame::OnViewPlayLists( wxCommandEvent &event )
3176
if( event.IsChecked() )
3178
if( !m_PlayListPanel )
3179
m_PlayListPanel = new guPlayListPanel( m_CatNotebook, m_Db, m_PlayerPanel );
3181
// CheckShowNotebook();
3183
// m_CatNotebook->InsertPage( wxMin( 4, m_CatNotebook->GetPageCount() ), m_PlayListPanel, _( "PlayLists" ), true );
3184
InsertTabPanel( m_PlayListPanel, 4, _( "PlayLists" ) );
3186
m_VisiblePanels |= guPANEL_MAIN_PLAYLISTS;
3190
// int PageIndex = m_CatNotebook->GetPageIndex( m_PlayListPanel );
3191
// if( PageIndex >= 0 )
3193
// m_CatNotebook->RemovePage( PageIndex );
3196
// CheckHideNotebook();
3197
RemoveTabPanel( m_PlayListPanel );
3199
m_VisiblePanels ^= guPANEL_MAIN_PLAYLISTS;
3201
m_CatNotebook->Refresh();
3203
m_ViewPlayLists->Check( m_VisiblePanels & guPANEL_MAIN_PLAYLISTS );
3205
m_ViewPLTextSearch->Check( m_PlayListPanel && m_PlayListPanel->IsPanelShown( guPANEL_PLAYLIST_TEXTSEARCH ) );
3206
m_ViewPLTextSearch->Enable( m_ViewPlayLists->IsChecked() );
3208
if( m_LocationPanel )
3210
m_LocationPanel->OnPanelVisibleChanged();
3214
// -------------------------------------------------------------------------------- //
3215
void guMainFrame::OnViewPortableDevice( wxCommandEvent &event )
3217
bool IsEnabled = event.IsChecked();
3218
int CmdId = ( event.GetId() - ID_MENU_VIEW_PORTABLE_DEVICE ) % 20;
3219
int DeviceNum = ( event.GetId() - ID_MENU_VIEW_PORTABLE_DEVICE ) / 20;
3220
int BaseCommand = ID_MENU_VIEW_PORTABLE_DEVICE + ( DeviceNum * guPORTABLEDEVICE_COMMANDS_COUNT );
3221
guPortableMediaViewCtrl * PortableMediaViewCtrl = GetPortableMediaViewCtrl( BaseCommand );
3222
guLogMessage( wxT( "Its the device %i and cmd %i" ), DeviceNum, CmdId );
3226
if( !PortableMediaViewCtrl )
3228
guGIO_Mount * DeviceMount = m_VolumeMonitor->GetMount( DeviceNum );
3231
PortableMediaViewCtrl = new guPortableMediaViewCtrl( this, DeviceMount, event.GetId() );
3232
guPortableMediaLibPanel * PortableMediaLibPanel = PortableMediaViewCtrl->CreateLibPanel( m_CatNotebook, m_PlayerPanel );
3234
InsertTabPanel( PortableMediaLibPanel, 10, PortableMediaViewCtrl->DeviceName() + wxT( " : " ) + _( "Library" ) );
3235
m_PortableMediaViewCtrls.Add( PortableMediaViewCtrl );
3237
PortableMediaLibPanel->SetPanelActive( m_PortableMediaViewCtrls.Count() - 1 );
3239
CreatePortablePlayersMenu( m_PortableDevicesMenu );
3241
guConfig * Config = ( guConfig * ) guConfig::Get();
3242
if( Config->ReadBool( wxT( "UpdateOnStart" ), true, wxT( "PortableDevice" ) ) )
3243
PortableMediaLibPanel->DoUpdate( true );
3247
guLogMessage( wxT( "Could not find the mount device object %i" ), DeviceNum );
3252
int VisiblePanels = PortableMediaViewCtrl->VisiblePanels();
3253
if( CmdId == 0 ) // Its the library panel
3255
if( !( VisiblePanels & guPANEL_MAIN_LIBRARY ) )
3257
guPortableMediaLibPanel * PortableMediaLibPanel = PortableMediaViewCtrl->CreateLibPanel( m_CatNotebook, m_PlayerPanel );
3259
InsertTabPanel( PortableMediaLibPanel, 10, PortableMediaViewCtrl->DeviceName() + wxT( " : " ) + _( "Library" ) );
3260
//m_PortableMediaViewCtrls.Add( PortableMediaViewCtrl ); // Sure about this ?
3262
PortableMediaLibPanel->SetPanelActive( m_PortableMediaViewCtrls.Count() - 1 );
3264
CreatePortablePlayersMenu( m_PortableDevicesMenu );
3266
guConfig * Config = ( guConfig * ) guConfig::Get();
3267
if( Config->ReadBool( wxT( "UpdateDeviceOnStart" ), true, wxT( "PortableDevice" ) ) )
3268
PortableMediaLibPanel->DoUpdate( true );
3271
else if( CmdId == 18 ) // Its the Playlists panel
3273
if( !( VisiblePanels & guPANEL_MAIN_PLAYLISTS ) )
3275
guPortableMediaPlayListPanel * PortableMediaPlayListPanel = PortableMediaViewCtrl->CreatePlayListPanel( m_CatNotebook, m_PlayerPanel );
3277
InsertTabPanel( PortableMediaPlayListPanel, 10, PortableMediaViewCtrl->DeviceName() + wxT( " : " ) + _( "PlayLists" ) );
3279
//PortableMediaLibPanel->SetPanelActive( m_PortableMediaViewCtrls.Count() - 1 );
3281
CreatePortablePlayersMenu( m_PortableDevicesMenu );
3284
else if( CmdId == 19 ) // Its the AlbumBrowser panel
3286
if( !( VisiblePanels & guPANEL_MAIN_ALBUMBROWSER ) )
3288
guPortableMediaAlbumBrowser * PortableMediaAlbumBrowser = PortableMediaViewCtrl->CreateAlbumBrowser( m_CatNotebook, m_PlayerPanel );
3290
InsertTabPanel( PortableMediaAlbumBrowser, 10, PortableMediaViewCtrl->DeviceName() + wxT( " : " ) + _( "Album Browser" ) );
3292
//PortableMediaLibPanel->SetPanelActive( m_PortableMediaViewCtrls.Count() - 1 );
3294
CreatePortablePlayersMenu( m_PortableDevicesMenu );
3301
if( PortableMediaViewCtrl )
3303
if( CmdId == 0 ) // Its the library panel
3305
guPortableMediaLibPanel * PortableMediaLibPanel = PortableMediaViewCtrl->LibPanel();
3306
if( PortableMediaLibPanel )
3308
if( m_LibUpdateThread )
3310
if( m_LibUpdateThread->LibPanel() == ( guLibPanel * ) PortableMediaLibPanel )
3312
m_LibUpdateThread->Pause();
3313
m_LibUpdateThread->Delete();
3314
m_LibUpdateThread = NULL;
3318
if( m_LibCleanThread )
3320
if( m_LibCleanThread->LibPanel() == ( guLibPanel * ) PortableMediaLibPanel )
3322
m_LibCleanThread->Pause();
3323
m_LibCleanThread->Delete();
3324
m_LibCleanThread = NULL;
3328
RemoveTabPanel( PortableMediaLibPanel );
3329
PortableMediaViewCtrl->DestroyLibPanel();
3332
else if( CmdId == 18 ) // Its the Playlists panel
3334
guPortableMediaPlayListPanel * PortableMediaPlayListPanel = PortableMediaViewCtrl->PlayListPanel();
3335
if( PortableMediaPlayListPanel )
3337
RemoveTabPanel( PortableMediaPlayListPanel );
3338
PortableMediaViewCtrl->DestroyPlayListPanel();
3341
else if( CmdId == 19 ) // Its the AlbumBrowser panel
3343
guPortableMediaAlbumBrowser * PortableMediaAlbumBrowser = PortableMediaViewCtrl->AlbumBrowserPanel();
3344
if( PortableMediaAlbumBrowser )
3346
RemoveTabPanel( PortableMediaAlbumBrowser );
3347
PortableMediaViewCtrl->DestroyAlbumBrowser();
3351
if( !PortableMediaViewCtrl->VisiblePanels() )
3353
int DeviceIndex = m_PortableMediaViewCtrls.Index( PortableMediaViewCtrl );
3354
delete m_PortableMediaViewCtrls[ DeviceIndex ];
3355
m_PortableMediaViewCtrls.RemoveAt( DeviceIndex );
3358
CreatePortablePlayersMenu( m_PortableDevicesMenu );
3362
m_CatNotebook->Refresh();
3364
if( m_LocationPanel )
3366
m_LocationPanel->OnPanelVisibleChanged();
3370
// -------------------------------------------------------------------------------- //
3371
void guMainFrame::OnViewPortableDevicePanel( wxCommandEvent &event )
3373
int PanelId = ( event.GetId() - ID_MENU_VIEW_PORTABLE_DEVICE ) % 20;
3374
int DeviceNum = ( event.GetId() - ID_MENU_VIEW_PORTABLE_DEVICE ) / 20;
3375
guLogMessage( wxT( "Its the device %i pane %i" ), DeviceNum, PanelId );
3377
guPortableMediaViewCtrl * PortableMediaViewCtrl = m_PortableMediaViewCtrls[ DeviceNum ];
3381
case guLIBRARY_ELEMENT_TEXTSEARCH :
3382
PanelId = guPANEL_LIBRARY_TEXTSEARCH;
3385
case guLIBRARY_ELEMENT_LABELS :
3386
PanelId = guPANEL_LIBRARY_LABELS;
3389
case guLIBRARY_ELEMENT_GENRES :
3390
PanelId = guPANEL_LIBRARY_GENRES;
3393
case guLIBRARY_ELEMENT_ARTISTS :
3394
PanelId = guPANEL_LIBRARY_ARTISTS;
3397
case guLIBRARY_ELEMENT_COMPOSERS :
3398
PanelId = guPANEL_LIBRARY_COMPOSERS;
3401
case guLIBRARY_ELEMENT_ALBUMARTISTS :
3402
PanelId = guPANEL_LIBRARY_ALBUMARTISTS;
3405
case guLIBRARY_ELEMENT_ALBUMS :
3406
PanelId = guPANEL_LIBRARY_ALBUMS;
3409
case guLIBRARY_ELEMENT_YEARS :
3410
PanelId = guPANEL_LIBRARY_YEARS;
3413
case guLIBRARY_ELEMENT_RATINGS :
3414
PanelId = guPANEL_LIBRARY_RATINGS;
3417
case guLIBRARY_ELEMENT_PLAYCOUNT :
3418
PanelId = guPANEL_LIBRARY_PLAYCOUNT;
3422
if( PanelId && PortableMediaViewCtrl )
3424
if( PortableMediaViewCtrl->LibPanel() )
3425
PortableMediaViewCtrl->LibPanel()->ShowPanel( PanelId, event.IsChecked() );
3428
CreatePortablePlayersMenu( m_PortableDevicesMenu );
2047
3431
// -------------------------------------------------------------------------------- //
2222
3654
// -------------------------------------------------------------------------------- //
2223
3655
void guMainFrame::OnSelectYear( wxCommandEvent &event )
2227
int PaneIndex = m_CatNotebook->GetPageIndex( m_LibPanel );
2228
if( PaneIndex != wxNOT_FOUND )
2230
m_CatNotebook->SetSelection( PaneIndex );
2232
m_LibPanel->SelectYear( event.GetInt() );
3657
int Type = event.GetExtraLong();
3658
if( Type == guTRACK_TYPE_JAMENDO )
3660
if( m_JamendoPanel )
3662
int PaneIndex = m_CatNotebook->GetPageIndex( m_JamendoPanel );
3663
if( PaneIndex != wxNOT_FOUND )
3665
m_CatNotebook->SetSelection( PaneIndex );
3667
m_JamendoPanel->SelectYear( event.GetInt() );
3670
else if( Type == guTRACK_TYPE_MAGNATUNE )
3672
if( m_MagnatunePanel )
3674
int PaneIndex = m_CatNotebook->GetPageIndex( m_MagnatunePanel );
3675
if( PaneIndex != wxNOT_FOUND )
3677
m_CatNotebook->SetSelection( PaneIndex );
3679
m_MagnatunePanel->SelectYear( event.GetInt() );
3684
guLibPanel * LibPanel = ( guLibPanel * ) event.GetClientData();
3686
LibPanel = m_LibPanel;
3689
int PaneIndex = m_CatNotebook->GetPageIndex( LibPanel );
3690
if( PaneIndex != wxNOT_FOUND )
3692
m_CatNotebook->SetSelection( PaneIndex );
3694
LibPanel->SelectYear( event.GetInt() );
2236
3699
// -------------------------------------------------------------------------------- //
2237
3700
void guMainFrame::OnSelectGenre( wxCommandEvent &event )
2241
int PaneIndex = m_CatNotebook->GetPageIndex( m_LibPanel );
2242
if( PaneIndex != wxNOT_FOUND )
2244
m_CatNotebook->SetSelection( PaneIndex );
2247
Genres.Add( event.GetInt() );
2248
m_LibPanel->SelectGenres( &Genres );
3702
int Type = event.GetExtraLong();
3703
if( Type == guTRACK_TYPE_JAMENDO )
3705
if( m_JamendoPanel )
3707
int PaneIndex = m_CatNotebook->GetPageIndex( m_JamendoPanel );
3708
if( PaneIndex != wxNOT_FOUND )
3710
m_CatNotebook->SetSelection( PaneIndex );
3713
Genres.Add( event.GetInt() );
3714
m_JamendoPanel->SelectGenres( &Genres );
3717
else if( Type == guTRACK_TYPE_MAGNATUNE )
3719
if( m_MagnatunePanel )
3721
int PaneIndex = m_CatNotebook->GetPageIndex( m_MagnatunePanel );
3722
if( PaneIndex != wxNOT_FOUND )
3724
m_CatNotebook->SetSelection( PaneIndex );
3727
Genres.Add( event.GetInt() );
3728
m_MagnatunePanel->SelectGenres( &Genres );
3733
guLibPanel * LibPanel = ( guLibPanel * ) event.GetClientData();
3735
LibPanel = m_LibPanel;
3738
int PaneIndex = m_CatNotebook->GetPageIndex( LibPanel );
3739
if( PaneIndex != wxNOT_FOUND )
3741
m_CatNotebook->SetSelection( PaneIndex );
3744
Genres.Add( event.GetInt() );
3745
LibPanel->SelectGenres( &Genres );
3750
// -------------------------------------------------------------------------------- //
3751
void guMainFrame::OnSelectLocation( wxCommandEvent &event )
3753
int PanelIndex = wxNOT_FOUND;
3754
switch( event.GetInt() )
3756
case ID_MENU_VIEW_LIBRARY :
3757
PanelIndex = m_CatNotebook->GetPageIndex( m_LibPanel );
3760
case ID_MENU_VIEW_RADIO :
3761
PanelIndex = m_CatNotebook->GetPageIndex( m_RadioPanel );
3764
case ID_MENU_VIEW_LASTFM :
3765
PanelIndex = m_CatNotebook->GetPageIndex( m_LastFMPanel );
3768
case ID_MENU_VIEW_LYRICS :
3769
PanelIndex = m_CatNotebook->GetPageIndex( m_LyricsPanel );
3772
case ID_MENU_VIEW_PLAYLISTS :
3773
PanelIndex = m_CatNotebook->GetPageIndex( m_PlayListPanel );
3776
case ID_MENU_VIEW_PODCASTS :
3777
PanelIndex = m_CatNotebook->GetPageIndex( m_PodcastsPanel );
3780
case ID_MENU_VIEW_JAMENDO :
3781
PanelIndex = m_CatNotebook->GetPageIndex( m_JamendoPanel );
3784
case ID_MENU_VIEW_MAGNATUNE :
3785
PanelIndex = m_CatNotebook->GetPageIndex( m_MagnatunePanel );
3788
case ID_MENU_VIEW_ALBUMBROWSER :
3789
PanelIndex = m_CatNotebook->GetPageIndex( m_AlbumBrowserPanel );
3792
case ID_MENU_VIEW_FILEBROWSER :
3793
PanelIndex = m_CatNotebook->GetPageIndex( m_FileBrowserPanel );
3796
default : // Must be a portable device
3797
int CmdId = ( event.GetInt() - ID_MENU_VIEW_PORTABLE_DEVICE ) % 20;
3798
int DeviceNum = ( event.GetInt() - ID_MENU_VIEW_PORTABLE_DEVICE ) / 20;
3799
guPortableMediaViewCtrl * PortableMediaViewCtrl = m_PortableMediaViewCtrls[ DeviceNum ];
3800
if( CmdId == 0 ) // Library
3801
PanelIndex = m_CatNotebook->GetPageIndex( PortableMediaViewCtrl->LibPanel() );
3802
else if( CmdId == 18 ) // PlayList
3803
PanelIndex = m_CatNotebook->GetPageIndex( PortableMediaViewCtrl->PlayListPanel() );
3804
else if( CmdId == 19 ) // AlbumBrowser
3805
PanelIndex = m_CatNotebook->GetPageIndex( PortableMediaViewCtrl->AlbumBrowserPanel() );
3811
if( PanelIndex != wxNOT_FOUND )
3813
m_CatNotebook->SetSelection( PanelIndex );
3815
if( m_LocationPanel )
3816
m_LocationPanel->SetFocus();
2252
3819
// -------------------------------------------------------------------------------- //
2410
4009
m_ViewFileBrowser->Check( false );
2411
4010
PanelId = guPANEL_MAIN_FILEBROWSER;
4012
else if( CurPage == m_JamendoPanel )
4014
m_ViewJamendo->Check( false );
4015
m_ViewJamTextSearch->Enable( false );
4016
m_ViewJamLabels->Enable( false );
4017
m_ViewJamGenres->Enable( false );
4018
m_ViewJamArtists->Enable( false );
4019
m_ViewJamComposers->Enable( false );
4020
m_ViewJamAlbumArtists->Enable( false );
4021
m_ViewJamAlbums->Enable( false );
4022
m_ViewJamYears->Enable( false );
4023
m_ViewJamRatings->Enable( false );
4024
m_ViewJamPlayCounts->Enable( false );
4025
PanelId = guPANEL_MAIN_JAMENDO;
4027
else if( CurPage == m_MagnatunePanel )
4029
m_ViewMagnatune->Check( false );
4030
m_ViewMagTextSearch->Enable( false );
4031
m_ViewMagLabels->Enable( false );
4032
m_ViewMagGenres->Enable( false );
4033
m_ViewMagArtists->Enable( false );
4034
m_ViewMagComposers->Enable( false );
4035
m_ViewMagAlbumArtists->Enable( false );
4036
m_ViewMagAlbums->Enable( false );
4037
m_ViewMagYears->Enable( false );
4038
m_ViewMagRatings->Enable( false );
4039
m_ViewMagPlayCounts->Enable( false );
4040
PanelId = guPANEL_MAIN_MAGNATUNE;
4045
int Count = m_PortableMediaViewCtrls.Count();
4046
for( Index = 0; Index < Count; Index++ )
4048
guPortableMediaViewCtrl * PortableMediaViewCtrl = m_PortableMediaViewCtrls[ Index ];
4049
guPortableMediaLibPanel * PortableMediaLibPanel = PortableMediaViewCtrl->LibPanel();
4051
guPortableMediaAlbumBrowser * PortableMediaAlbumBrowser = PortableMediaViewCtrl->AlbumBrowserPanel();
4052
guPortableMediaPlayListPanel * PortableMediaPlayListPanel = PortableMediaViewCtrl->PlayListPanel();
4053
if( PortableMediaLibPanel == ( guPortableMediaLibPanel * ) CurPage )
4055
if( m_LibUpdateThread )
4057
if( m_LibUpdateThread->LibPanel() == ( guLibPanel * ) PortableMediaLibPanel )
4059
m_LibUpdateThread->Pause();
4060
m_LibUpdateThread->Delete();
4061
m_LibUpdateThread = NULL;
4065
if( m_LibCleanThread )
4067
if( m_LibCleanThread->LibPanel() == ( guLibPanel * ) PortableMediaLibPanel )
4069
m_LibCleanThread->Pause();
4070
m_LibCleanThread->Delete();
4071
m_LibCleanThread = NULL;
4075
PortableMediaViewCtrl->DestroyLibPanel();
4077
if( !PortableMediaViewCtrl->VisiblePanels() )
4079
delete m_PortableMediaViewCtrls[ Index ];
4080
m_PortableMediaViewCtrls.RemoveAt( Index );
4085
else if( PortableMediaPlayListPanel == ( guPortableMediaPlayListPanel * ) CurPage )
4087
PortableMediaViewCtrl->DestroyPlayListPanel();
4089
if( !PortableMediaViewCtrl->VisiblePanels() )
4091
delete m_PortableMediaViewCtrls[ Index ];
4092
m_PortableMediaViewCtrls.RemoveAt( Index );
4096
else if( PortableMediaAlbumBrowser == ( guPortableMediaAlbumBrowser * ) CurPage )
4098
PortableMediaViewCtrl->DestroyAlbumBrowser();
4100
if( !PortableMediaViewCtrl->VisiblePanels() )
4102
delete m_PortableMediaViewCtrls[ Index ];
4103
m_PortableMediaViewCtrls.RemoveAt( Index );
4109
CreatePortablePlayersMenu( m_PortableDevicesMenu );
2414
4112
//CheckHideNotebook();
2415
4113
m_VisiblePanels ^= PanelId;
4115
if( m_LocationPanel )
4117
m_LocationPanel->OnPanelVisibleChanged();
2486
4193
m_MainStatusBar->SetSelInfo( wxEmptyString );
4196
else if( m_CurrentPage == ( wxWindow * ) m_JamendoPanel )
4198
m_JamendoDb->GetTracksCounters( &m_SelCount, &m_SelLength, &m_SelSize );
4200
wxString SelInfo = wxString::Format( wxT( "%llu " ), m_SelCount.GetValue() );
4201
SelInfo += m_SelCount == 1 ? _( "track" ) : _( "tracks" );
4202
SelInfo += wxString::Format( wxT( ", %s" ), LenToString( m_SelLength.GetLo() ).c_str() );
4203
m_MainStatusBar->SetSelInfo( SelInfo );
4205
else if( m_CurrentPage == ( wxWindow * ) m_MagnatunePanel )
4207
m_MagnatuneDb->GetTracksCounters( &m_SelCount, &m_SelLength, &m_SelSize );
4209
wxString SelInfo = wxString::Format( wxT( "%llu " ), m_SelCount.GetValue() );
4210
SelInfo += m_SelCount == 1 ? _( "track" ) : _( "tracks" );
4211
SelInfo += wxString::Format( wxT( ", %s" ), LenToString( m_SelLength.GetLo() ).c_str() );
4212
m_MainStatusBar->SetSelInfo( SelInfo );
2491
//m_SelCount = wxNOT_FOUND;
2492
//m_SelLength = wxNOT_FOUND;
2493
//m_SelSize = wxNOT_FOUND;
2494
m_MainStatusBar->SetSelInfo( wxEmptyString );
4216
guPortableMediaViewCtrl * PortableMediaViewCtrl = GetPortableMediaViewCtrl( ( guLibPanel * ) m_CurrentPage );
4217
if( PortableMediaViewCtrl )
4219
PortableMediaViewCtrl->Db()->GetTracksCounters( &m_SelCount, &m_SelLength, &m_SelSize );
4221
wxString SelInfo = wxString::Format( wxT( "%llu " ), m_SelCount.GetValue() );
4222
SelInfo += m_SelCount == 1 ? _( "track" ) : _( "tracks" );
4223
SelInfo += wxString::Format( wxT( ", %s, %s" ),
4224
LenToString( m_SelLength.GetLo() ).c_str(),
4225
SizeToString( m_SelSize.GetValue() ).c_str() );
4226
m_MainStatusBar->SetSelInfo( SelInfo );
4230
PortableMediaViewCtrl = GetPortableMediaViewCtrl( m_CurrentPage, guPANEL_MAIN_PLAYLISTS );
4231
if( PortableMediaViewCtrl )
4233
if( PortableMediaViewCtrl->PlayListPanel()->GetPlayListCounters( &m_SelCount, &m_SelLength, &m_SelSize ) )
4235
wxString SelInfo = wxString::Format( wxT( "%llu " ), m_SelCount.GetValue() );
4236
SelInfo += m_SelCount == 1 ? _( "track" ) : _( "tracks" );
4237
SelInfo += wxString::Format( wxT( ", %s, %s" ),
4238
LenToString( m_SelLength.GetLo() ).c_str(),
4239
SizeToString( m_SelSize.GetValue() ).c_str() );
4240
m_MainStatusBar->SetSelInfo( SelInfo );
4244
m_MainStatusBar->SetSelInfo( wxEmptyString );
4249
//m_SelCount = wxNOT_FOUND;
4250
//m_SelLength = wxNOT_FOUND;
4251
//m_SelSize = wxNOT_FOUND;
4252
m_MainStatusBar->SetSelInfo( wxEmptyString );
5134
// -------------------------------------------------------------------------------- //
5135
void guMainFrame::OnLibraryCoverChanged( wxCommandEvent &event )
5137
guLibPanel * LibPanel = ( guLibPanel * ) event.GetClientData();
5141
LibPanel = m_LibPanel;
5142
const guCurrentTrack * CurrentTrack = m_PlayerPanel->GetCurrentTrack();
5143
if( ( CurrentTrack->m_LibPanel ? ( CurrentTrack->m_LibPanel == LibPanel ) : ( m_LibPanel == LibPanel ) ) &&
5144
CurrentTrack->m_Type == guTRACK_TYPE_DB &&
5145
CurrentTrack->m_AlbumId == event.GetInt() )
5148
wxImage * CoverImage = LibPanel->GetAlbumCover( event.GetInt(), CoverPath );
5151
CoverImage->Rescale( 100, 100, wxIMAGE_QUALITY_HIGH );
5152
m_PlayerPanel->SetCurrentCoverImage( CoverImage, GU_SONGCOVER_FILE, CoverPath );
5153
//delete CoverImage;
5157
m_PlayerPanel->SetCurrentCoverImage( NULL, GU_SONGCOVER_NONE, CoverPath );
5163
// -------------------------------------------------------------------------------- //
5164
void guMainFrame::OnJamendoCoverDownloaded( wxCommandEvent &event )
5168
const guCurrentTrack * CurrentTrack = m_PlayerPanel->GetCurrentTrack();
5169
if( CurrentTrack->m_Type == guTRACK_TYPE_JAMENDO &&
5170
CurrentTrack->m_AlbumId == event.GetInt() )
5173
wxImage * CoverImage = m_JamendoPanel->GetAlbumCover( event.GetInt(), CoverPath );
5176
CoverImage->Rescale( 100, 100, wxIMAGE_QUALITY_HIGH );
5177
m_PlayerPanel->SetCurrentCoverImage( CoverImage, GU_SONGCOVER_FILE, CoverPath );
5178
//delete CoverImage;
5184
// -------------------------------------------------------------------------------- //
5185
void guMainFrame::OnMagnatuneCoverDownloaded( wxCommandEvent &event )
5189
const guCurrentTrack * CurrentTrack = m_PlayerPanel->GetCurrentTrack();
5190
if( CurrentTrack->m_Type == guTRACK_TYPE_MAGNATUNE &&
5191
CurrentTrack->m_AlbumId == event.GetInt() )
5194
wxImage * CoverImage = m_MagnatunePanel->GetAlbumCover( CurrentTrack->m_AlbumId,
5195
CurrentTrack->m_ArtistName, CurrentTrack->m_AlbumName, CoverPath );
5198
CoverImage->Rescale( 100, 100, wxIMAGE_QUALITY_HIGH );
5199
m_PlayerPanel->SetCurrentCoverImage( CoverImage, GU_SONGCOVER_FILE, CoverPath );
5200
//delete CoverImage;
5206
// -------------------------------------------------------------------------------- //
5207
void guMainFrame::OnPlayerPanelCoverChanged( wxCommandEvent &event )
5211
m_CoverPanel->OnUpdatedTrack( event );
5216
m_MPRIS2->OnPlayerTrackChange();
5220
// -------------------------------------------------------------------------------- //
5221
void guMainFrame::CreateCopyToMenu( wxMenu * menu, const int basecmd )
5225
wxMenuItem * MenuItem;
5226
wxMenu * SubMenu = new wxMenu();
5228
guConfig * Config = ( guConfig * ) guConfig::Get();
5229
wxArrayString CopyToOptions = Config->ReadAStr( wxT( "Option" ), wxEmptyString, wxT( "CopyTo" ) );
5231
if( ( Count = CopyToOptions.Count() ) )
5233
for( Index = 0; Index < Count; Index++ )
5235
wxArrayString CurOption = wxStringTokenize( CopyToOptions[ Index ], wxT( ":") );
5236
MenuItem = new wxMenuItem( SubMenu, basecmd + Index, unescape_configlist_str( CurOption[ 0 ] ), _( "Copy the current selected songs to a directory or device" ) );
5237
SubMenu->Append( MenuItem );
5241
bool SeparatorAdded = false;
5242
wxArrayString DeviceNames = m_VolumeMonitor->GetMountNames();
5243
if( ( Count = DeviceNames.Count() ) )
5245
for( Index = 0; Index < Count; Index++ )
5247
int PanelIndex = m_VolumeMonitor->PanelActive( Index );
5248
if( PanelIndex != wxNOT_FOUND )
5250
if( !SeparatorAdded && SubMenu->GetMenuItemCount() )
5252
SubMenu->AppendSeparator();
5253
SeparatorAdded = true;
5256
MenuItem = new wxMenuItem( SubMenu, basecmd + 100 + PanelIndex, DeviceNames[ Index ], _( "Copy the current selected songs to a directory or device" ) );
5257
//MenuItem->SetBitmap( guImage( guIMAGE_INDEX_edit_copy ) );
5258
SubMenu->Append( MenuItem );
5263
if( SubMenu->GetMenuItemCount() )
5265
menu->AppendSubMenu( SubMenu, _( "Copy To..." ), _( "Copy the selected tracks to a folder or device" ) );
5273
// -------------------------------------------------------------------------------- //
5274
void guMainFrame::CopyToThreadFinished( void )
5276
if( m_CopyToThread )
5278
m_CopyToThreadMutex.Lock();
5279
m_CopyToThread = NULL;
5280
m_CopyToThreadMutex.Unlock();
5284
// -------------------------------------------------------------------------------- //
5285
void guMainFrame::OnSetForceGapless( wxCommandEvent &event )
5287
m_PlayerPanel->SetForceGapless( event.GetInt() );
5290
// -------------------------------------------------------------------------------- //
5291
void guMainFrame::OnLyricFound( wxCommandEvent &event )
5293
guLogMessage( wxT( "guMainFrame::OnLyricFound" ) );
5294
wxString * LyricText = ( wxString * ) event.GetClientData();
5297
m_LyricsPanel->SetLyricText( LyricText );
5298
m_LyricsPanel->SetLastSource( event.GetInt() );
5307
// -------------------------------------------------------------------------------- //
5308
void guMainFrame::OnLyricSearchFirst( wxCommandEvent &event )
5310
if( m_LyricSearchEngine && m_LyricSearchContext )
5312
m_LyricSearchContext->ResetIndex();
5313
m_LyricSearchEngine->SearchStart( m_LyricSearchContext );
5317
// -------------------------------------------------------------------------------- //
5318
void guMainFrame::OnLyricSearchNext( wxCommandEvent &event )
5320
if( m_LyricSearchEngine && m_LyricSearchContext )
5322
m_LyricSearchEngine->SearchStart( m_LyricSearchContext );
5326
// -------------------------------------------------------------------------------- //
5327
void guMainFrame::OnLyricSaveChanges( wxCommandEvent &event )
5329
if( m_LyricSearchEngine && m_LyricSearchContext )
5331
wxString * LyricText = ( wxString * ) event.GetClientData();
5333
m_LyricSearchEngine->SetLyricText( m_LyricSearchContext, * LyricText );
5339
// -------------------------------------------------------------------------------- //
5340
void guMainFrame::OnLyricExecCommand( wxCommandEvent &event )
5342
guLyricSearchThread * LyricSearchThread = ( guLyricSearchThread * ) event.GetClientObject();
5343
wxString * CommandText = ( wxString * ) event.GetClientData();
5344
guLogMessage( wxT( "OnLyricExecCommand: '%s'" ), CommandText->c_str() );
5346
if( CommandText && LyricSearchThread )
5348
guLyricExecCommandTerminate * LyricExecCommandTerminate = new guLyricExecCommandTerminate( LyricSearchThread, event.GetInt() );
5349
if( LyricExecCommandTerminate )
5351
if( !wxExecute( * CommandText, wxEXEC_ASYNC, LyricExecCommandTerminate ) )
5353
guLogError( wxT( "Could not execute the command '%s'" ), CommandText->c_str() );
5354
delete LyricExecCommandTerminate;
5356
LyricSearchThread->FinishExecCommand( wxEmptyString );
5358
LyricExecCommandTerminate->Redirect();
5363
guLogMessage( wxT( "Error on OnLyricExecCommand..." ) );
5369
// -------------------------------------------------------------------------------- //
5370
void guMainFrame::OnConfigUpdated( wxCommandEvent &event )
5372
if( m_LyricSearchEngine )
5374
m_LyricSearchEngine->Load();
3222
5379
// -------------------------------------------------------------------------------- //
3318
5476
//guLogMessage( wxT( "Finalized Cover Update Thread" ) );
3320
//event( wxEVT_COMMAND_MENU_SELECTED, ID_GAUGE_REMOVE );
3321
event.SetId( ID_GAUGE_REMOVE );
3322
event.SetInt( m_GaugeId );
3323
wxPostEvent( wxTheApp->GetTopWindow(), event );
3328
// -------------------------------------------------------------------------------- //
3329
// guCopyToDirThread
3330
// -------------------------------------------------------------------------------- //
3331
guCopyToDirThread::guCopyToDirThread( const wxChar * destdir, guTrackArray * tracks, int gaugeid ) :
3334
m_DestDir = wxString( destdir );
3336
m_GaugeId = gaugeid;
3337
if( Create() == wxTHREAD_NO_ERROR )
3339
SetPriority( WXTHREAD_DEFAULT_PRIORITY - 30 );
3344
// -------------------------------------------------------------------------------- //
3345
guCopyToDirThread::~guCopyToDirThread()
3351
// -------------------------------------------------------------------------------- //
3352
guCopyToDirThread::ExitCode guCopyToDirThread::Entry()
3354
int count = m_Tracks->Count();
3357
wxString FilePattern;
3359
bool FileOverwrite = true;
3361
Config = ( guConfig * ) guConfig::Get();
3362
FilePattern = Config->ReadStr( wxT( "CopyToPattern" ), wxT( "{g}/{a}/{b}/{n} - {a} - {t}" ), wxT( "General" ) );
3364
if( !m_DestDir.EndsWith( wxT( "/" ) ) )
3365
m_DestDir.Append( wxT( "/" ) );
3368
wxCommandEvent event( wxEVT_COMMAND_MENU_SELECTED, ID_GAUGE_SETMAX );
3369
event.SetInt( m_GaugeId );
3370
event.SetExtraLong( count );
3371
wxPostEvent( wxTheApp->GetTopWindow(), event );
3373
for( index = 0; index < count; index++ )
3375
FileName = wxEmptyString;
3377
if( ( * m_Tracks )[ index ].m_Type == guTRACK_TYPE_RADIOSTATION )
3380
if( ( * m_Tracks )[ index ].m_Type == guTRACK_TYPE_PODCAST )
3382
FileName = ( * m_Tracks )[ index ].m_AlbumName + wxT( "/" ) + wxFileNameFromPath( ( * m_Tracks )[ index ].m_FileName );
3386
FileName = FilePattern;
3387
FileName.Replace( wxT( "{a}" ), NormalizeField( ( * m_Tracks )[ index ].m_ArtistName ) );
3388
FileName.Replace( wxT( "{aa}" ), NormalizeField( ( * m_Tracks )[ index ].m_AlbumArtist ) );
3389
FileName.Replace( wxT( "{b}" ), NormalizeField( ( * m_Tracks )[ index ].m_AlbumName ) );
3390
FileName.Replace( wxT( "{f}" ), wxFileNameFromPath( ( * m_Tracks )[ index ].m_FileName ) );
3391
FileName.Replace( wxT( "{g}" ), NormalizeField( ( * m_Tracks )[ index ].m_GenreName ) );
3392
FileName.Replace( wxT( "{n}" ), wxString::Format( wxT( "%02u" ), ( * m_Tracks )[ index ].m_Number ) );
3393
FileName.Replace( wxT( "{t}" ), NormalizeField( ( * m_Tracks )[ index ].m_SongName ) );
3394
FileName.Replace( wxT( "{y}" ), wxString::Format( wxT( "%u" ), ( * m_Tracks )[ index ].m_Year ) );
3395
FileName.Replace( wxT( "{d}" ), NormalizeField( ( * m_Tracks )[ index ].m_Disk ) );
3396
//guLogMessage( wxT( "File: '%s' " ), FileName.c_str() );
3400
FileName += wxT( '.' ) + ( * m_Tracks )[ index ].m_FileName.Lower().AfterLast( wxT( '.' ) );
3402
FileName = m_DestDir + FileName;
3404
// Replace all the special chars < > : " / \ | ? *
3405
FileName.Replace( wxT( "<" ), wxT( "_" ) );
3406
FileName.Replace( wxT( ">" ), wxT( "_" ) );
3407
FileName.Replace( wxT( ":" ), wxT( "_" ) );
3408
FileName.Replace( wxT( "\"" ), wxT( "_" ) );
3409
FileName.Replace( wxT( "|" ), wxT( "_" ) );
3410
FileName.Replace( wxT( "?" ), wxT( "_" ) );
3411
FileName.Replace( wxT( "*" ), wxT( "_" ) );
3413
guLogMessage( wxT( "Copy %s =>> %s" ), ( * m_Tracks )[ index ].m_FileName.c_str(), FileName.c_str() );
3414
if( wxFileName::Mkdir( wxPathOnly( FileName ), 0777, wxPATH_MKDIR_FULL ) )
3416
if( !wxCopyFile( ( * m_Tracks )[ index ].m_FileName, FileName, FileOverwrite ) )
3418
guLogError( wxT( "Could not copy the file '%s'" ), FileName.c_str() );
3423
guLogError( wxT( "Could not create path for copy the file '%s'" ), FileName.c_str() );
3426
event.SetId( ID_GAUGE_UPDATE );
3427
event.SetInt( m_GaugeId );
3428
event.SetExtraLong( index + 1 );
3429
wxPostEvent( wxTheApp->GetTopWindow(), event );
3433
event.SetId( ID_GAUGE_REMOVE );
3434
event.SetInt( m_GaugeId );
3435
wxPostEvent( wxTheApp->GetTopWindow(), event );
3436
//wxMessageBox( "Copy to dir finished" );
5478
//event( wxEVT_COMMAND_MENU_SELECTED, ID_STATUSBAR_GAUGE_REMOVE );
5479
event.SetId( ID_STATUSBAR_GAUGE_REMOVE );
5480
event.SetInt( m_GaugeId );
5481
wxPostEvent( wxTheApp->GetTopWindow(), event );
3440
5489
// -------------------------------------------------------------------------------- //
3441
5490
// guUpdatePodcastsTimer