void StatusBox::customEvent(QEvent *event) { if (event->type() == DialogCompletionEvent::kEventType) { DialogCompletionEvent *dce = (DialogCompletionEvent*)(event); QString resultid = dce->GetId(); int buttonnum = dce->GetResult(); if (resultid == "LogAck") { if (buttonnum == 1) { QString sql = dce->GetData().toString(); MSqlQuery query(MSqlQuery::InitCon()); query.prepare("UPDATE mythlog SET acknowledged = 1 " "WHERE logid = :LOGID ;"); query.bindValue(":LOGID", sql); if (!query.exec()) MythDB::DBError("StatusBox::customEvent -- LogAck", query); m_logList->RemoveItem(m_logList->GetItemCurrent()); } } else if (resultid == "LogAckAll") { if (buttonnum == 1) { MSqlQuery query(MSqlQuery::InitCon()); query.prepare("UPDATE mythlog SET acknowledged = 1 " "WHERE priority <= :PRIORITY ;"); query.bindValue(":PRIORITY", m_minLevel); if (!query.exec()) MythDB::DBError("StatusBox::customEvent -- LogAckAll", query); doLogEntries(); } } else if (resultid == "JobDelete") { if (buttonnum == 1) { int jobID = dce->GetData().toInt(); JobQueue::DeleteJob(jobID); m_logList->RemoveItem(m_logList->GetItemCurrent()); } } else if (resultid == "JobRequeue") { if (buttonnum == 1) { int jobID = dce->GetData().toInt(); JobQueue::ChangeJobStatus(jobID, JOB_QUEUED); doJobQueueStatus(); } } else if (resultid == "JobModify") { int jobID = dce->GetData().toInt(); if (buttonnum == 0) { if (JobQueue::GetJobStatus(jobID) == JOB_PAUSED) JobQueue::ResumeJob(jobID); else JobQueue::PauseJob(jobID); } else if (buttonnum == 1) { JobQueue::StopJob(jobID); } doJobQueueStatus(); } else if (resultid == "AutoExpireManage") { ProgramInfo* rec = qVariantValue<ProgramInfo*>(dce->GetData()); // button 2 is "No Change" if (!rec || buttonnum == 2) return; // button 1 is "Delete Now" if ((buttonnum == 0) && rec->QueryIsDeleteCandidate()) { if (!RemoteDeleteRecording( rec->GetChanID(), rec->GetRecordingStartTime(), false, false)) { LOG(VB_GENERAL, LOG_ERR, QString("Failed to delete recording: %1").arg(rec->GetTitle())); return; } } // button 1 is "Move To Default Group" or "UnDelete" or "Disable AutoExpire" else if (buttonnum == 1) { if ((rec)->GetRecordingGroup() == "Deleted") { RemoteUndeleteRecording( rec->GetChanID(), rec->GetRecordingStartTime()); } else { rec->SaveAutoExpire(kDisableAutoExpire); if ((rec)->GetRecordingGroup() == "LiveTV") { RecordingInfo ri(*rec); ri.ApplyRecordRecGroupChange("Default"); *rec = ri; } } } // remove the changed recording from the expire list delete m_expList[m_logList->GetCurrentPos()]; m_expList.erase(m_expList.begin() + m_logList->GetCurrentPos()); int pos = m_logList->GetCurrentPos(); int topPos = m_logList->GetTopItemPos(); doAutoExpireList(false); m_logList->SetItemCurrent(pos, topPos); } } }