📄 edittrackinfodialog.cpp
字号:
{
notJustWhiteSpace = true;
break;
}
}
if(notJustWhiteSpace)
ComboBox_AddString(hwndAlbum, (*i).c_str());
}
}
ComboBox_SetText(hwndAlbum, m_editMetaData->Album().c_str());
// add genres
for(i = genres.begin(); i != genres.end(); i++)
{
uint32 length = (*i).size();
if(length)
{
bool notJustWhiteSpace = false;
for(uint32 index = 0; index < length; index++)
{
if(!isspace((*i)[index]))
{
notJustWhiteSpace = true;
break;
}
}
if(notJustWhiteSpace)
ComboBox_AddString(hwndGenre, (*i).c_str());
}
}
ComboBox_SetText(hwndGenre, m_editMetaData->Genre().c_str());
break;
}
case WM_HELP:
{
ShowHelp(m_context, Edit_Info);
result = TRUE;
break;
}
case WM_COMMAND:
{
switch(LOWORD(wParam))
{
case IDC_BUTTON_MB:
{
if (m_editMetaData->GUID() == "")
{
string caption = "No Signature Found";
string message = "This track does not have a Relatable Signature "
"associated with it. To look up this track on the "
"MusicBrainz server, you need to enable a Relatable "
"Profile and signature your music collection.";
MessageBox(NULL, message.c_str(), caption.c_str(), MB_OK|MB_SETFOREGROUND);
}
else {
string url = "http://www.musicbrainz.org/showguid.html?guid=";
char ascii_uuid[37];
uuid_t1 uu;
memset(uu, '\0', 17 * sizeof(unsigned char));
strncpy((char *)uu, m_editMetaData->GUID().c_str(), 16);
uuid_ascii(uu, ascii_uuid);
url += ascii_uuid;
ShellExecute(hwnd, "open", url.c_str(), NULL, NULL, SW_SHOWNORMAL);
}
break;
}
case IDHELP:
{
ShowHelp(m_context, Edit_Info);
break;
}
case IDCANCEL:
EndDialog(hwnd, FALSE);
break;
case IDOK:
{
HWND hwndArtist = GetDlgItem(hwnd, IDC_ARTIST);
HWND hwndAlbum = GetDlgItem(hwnd, IDC_ALBUM);
HWND hwndGenre = GetDlgItem(hwnd, IDC_GENRE);
HWND hwndTitle = GetDlgItem(hwnd, IDC_TITLE);
HWND hwndTrack = GetDlgItem(hwnd, IDC_TRACK);
HWND hwndYear = GetDlgItem(hwnd, IDC_YEAR);
HWND hwndComment = GetDlgItem(hwnd, IDC_COMMENT);
HWND hwndPlayCount = GetDlgItem(hwnd, IDC_PLAYCOUNT);
uint32 length;
char* data;
char number[64];
length = ComboBox_GetTextLength(hwndArtist) + 1;
data = new char[length];
ComboBox_GetText(hwndArtist, data, length);
m_editMetaData->SetArtist(data);
delete [] data;
length = ComboBox_GetTextLength(hwndAlbum) + 1;
data = new char[length];
ComboBox_GetText(hwndAlbum, data, length);
m_editMetaData->SetAlbum(data);
delete [] data;
length = ComboBox_GetTextLength(hwndGenre) + 1;
data = new char[length];
ComboBox_GetText(hwndGenre, data, length);
m_editMetaData->SetGenre(data);
delete [] data;
length = Edit_GetTextLength(hwndTitle) + 1;
data = new char[length];
Edit_GetText(hwndTitle, data, length);
m_editMetaData->SetTitle(data);
delete [] data;
length = Edit_GetTextLength(hwndComment) + 1;
data = new char[length];
Edit_GetText(hwndComment, data, length);
m_editMetaData->SetComment(data);
delete [] data;
Edit_GetText(hwndTrack, number, sizeof(number));
if(!strcmp(number, "Unknown"))
strcpy(number, "0");
else if(!strcmp(number, "<Multiple>"))
strcpy(number, "-1");
m_editMetaData->SetTrack(atoi(number));
Edit_GetText(hwndYear, number, sizeof(number));
if(!strcmp(number, "Unknown"))
strcpy(number, "0");
else if(!strcmp(number, "<Multiple>"))
strcpy(number, "-1");
m_editMetaData->SetYear(atoi(number));
// deal with playcount attribute
Edit_GetText(hwndPlayCount, number, sizeof(number));
if(!strcmp(number, "Unknown"))
strcpy(number, "0");
else if(!strcmp(number, "<Multiple>"))
strcpy(number, "-1");
m_editMetaData->SetPlayCount(atoi(number));
EndDialog(hwnd, TRUE);
break;
}
case IDC_TRACK:
case IDC_YEAR:
{
if(HIWORD(wParam) == EN_CHANGE)
{
char track[6];
Edit_GetText( (HWND)lParam,
track,
sizeof(track));
if(!strcmp(track, "0"))
{
Edit_SetText((HWND)lParam, "Unknown");
}
}
break;
}
}
break;
}
}
return result;
}
void EditTrackInfoDialog::CreateEditInfoLists(set<string>& artists,
set<string>& albums,
set<string>& genres)
{
vector<ArtistList*>::const_iterator artist;
for(artist = m_artistList->begin();
artist != m_artistList->end();
artist++)
{
vector<AlbumList*>::iterator album;
artists.insert((*artist)->name);
for(album = (*artist)->m_albumList->begin();
album != (*artist)->m_albumList->end();
album++)
{
vector<PlaylistItem*>::iterator track;
albums.insert((*album)->name);
for(track = (*album)->m_trackList->begin();
track != (*album)->m_trackList->end();
track++)
{
MetaData metadata = (*track)->GetMetaData();
genres.insert(metadata.Genre());
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -