bool DoWork(void) override { // Asynchronously update userrating in library CMusicDatabase db; if (db.Open()) { db.SetAlbumUserrating(idAlbum, iUserrating); db.Close(); } return true; }
bool CGUIDialogMusicInfo::OnMessage(CGUIMessage& message) { switch ( message.GetMessage() ) { case GUI_MSG_WINDOW_DEINIT: { if (m_startUserrating != m_albumItem->GetMusicInfoTag()->GetUserrating()) { CMusicDatabase db; if (db.Open()) { m_needsUpdate = true; db.SetAlbumUserrating(m_albumItem->GetMusicInfoTag()->GetAlbumId(), m_albumItem->GetMusicInfoTag()->GetUserrating()); db.Close(); } } CGUIMessage msg(GUI_MSG_LABEL_RESET, GetID(), CONTROL_LIST); OnMessage(msg); m_albumSongs->Clear(); } break; case GUI_MSG_WINDOW_INIT: { CGUIDialog::OnMessage(message); m_bViewReview = true; m_bRefresh = false; Update(); return true; } break; case GUI_MSG_CLICKED: { int iControl = message.GetSenderId(); if (iControl == CONTROL_USERRATING) { OnSetUserrating(); } else if (iControl == CONTROL_BTN_REFRESH) { m_bRefresh = true; Close(); return true; } else if (iControl == CONTROL_BTN_GET_THUMB) { OnGetThumb(); } else if (iControl == CONTROL_LIST) { int iAction = message.GetParam1(); if (m_bArtistInfo && (ACTION_SELECT_ITEM == iAction || ACTION_MOUSE_LEFT_CLICK == iAction)) { CGUIMessage msg(GUI_MSG_ITEM_SELECTED, GetID(), iControl); g_windowManager.SendMessage(msg); int iItem = msg.GetParam1(); if (iItem < 0 || iItem >= static_cast<int>(m_albumSongs->Size())) break; CFileItemPtr item = m_albumSongs->Get(iItem); OnSearch(item.get()); return true; } } else if (iControl == CONTROL_BTN_GET_FANART) { OnGetFanart(); } } break; } return CGUIDialog::OnMessage(message); }