fixed evidence description bug and local mute

This commit is contained in:
OmniTroid 2017-06-16 08:16:09 +02:00
parent a8104c9ef2
commit dc79673bee
5 changed files with 75 additions and 7 deletions

View File

@ -25,6 +25,7 @@ AOEvidenceButton::AOEvidenceButton(QWidget *p_parent, AOApplication *p_ao_app, i
this->move(p_x, p_y); this->move(p_x, p_y);
this->resize(70, 70); this->resize(70, 70);
this->setAcceptDrops(true);
connect(this, SIGNAL(clicked()), this, SLOT(on_clicked())); connect(this, SIGNAL(clicked()), this, SLOT(on_clicked()));
} }
@ -81,11 +82,26 @@ void AOEvidenceButton::on_clicked()
evidence_clicked(m_id); evidence_clicked(m_id);
} }
void AOEvidenceButton::mouseDoubleClickEvent(QMouseEvent *e) { void AOEvidenceButton::mouseDoubleClickEvent(QMouseEvent *e)
{
QPushButton::mouseDoubleClickEvent(e); QPushButton::mouseDoubleClickEvent(e);
evidence_double_clicked(m_id); evidence_double_clicked(m_id);
} }
void AOEvidenceButton::dragLeaveEvent(QMouseEvent *e)
{
//QWidget::dragLeaveEvent(e);
qDebug() << "drag leave event";
}
void AOEvidenceButton::dragEnterEvent(QMouseEvent *e)
{
//QWidget::dragEnterEvent(e);
qDebug() << "drag enter event";
}
void AOEvidenceButton::enterEvent(QEvent * e) void AOEvidenceButton::enterEvent(QEvent * e)
{ {
ui_selector->show(); ui_selector->show();

View File

@ -34,6 +34,8 @@ protected:
void enterEvent(QEvent *e); void enterEvent(QEvent *e);
void leaveEvent(QEvent *e); void leaveEvent(QEvent *e);
void mouseDoubleClickEvent(QMouseEvent *e); void mouseDoubleClickEvent(QMouseEvent *e);
void dragLeaveEvent(QMouseEvent *e);
void dragEnterEvent(QMouseEvent *e);
signals: signals:
void evidence_clicked(int p_id); void evidence_clicked(int p_id);

View File

@ -266,6 +266,12 @@ void Courtroom::set_mute_list()
{ {
mute_map.clear(); mute_map.clear();
//maps which characters are muted based on cid, none are muted by default
for (int n_cid = 0 ; n_cid < char_list.size() ; n_cid++)
{
mute_map.insert(n_cid, false);
}
QStringList sorted_mute_list; QStringList sorted_mute_list;
for (char_type i_char : char_list) for (char_type i_char : char_list)
@ -275,7 +281,7 @@ void Courtroom::set_mute_list()
for (QString i_name : sorted_mute_list) for (QString i_name : sorted_mute_list)
{ {
mute_map.insert(i_name, false); //mute_map.insert(i_name, false);
ui_mute_list->addItem(i_name); ui_mute_list->addItem(i_name);
} }
} }
@ -913,7 +919,7 @@ void Courtroom::handle_chatmessage(QStringList *p_contents)
if (f_char_id < 0 || f_char_id >= char_list.size()) if (f_char_id < 0 || f_char_id >= char_list.size())
return; return;
if (mute_map.value(m_chatmessage[CHAR_NAME])) if (mute_map.value(m_chatmessage[CHAR_ID].toInt()))
return; return;
QString f_showname = ao_app->get_showname(char_list.at(f_char_id).name); QString f_showname = ao_app->get_showname(char_list.at(f_char_id).name);
@ -1507,7 +1513,7 @@ void Courtroom::handle_song(QStringList *p_contents)
{ {
QString str_char = char_list.at(n_char).name; QString str_char = char_list.at(n_char).name;
if (!mute_map.value(str_char)) if (!mute_map.value(n_char))
{ {
append_ic_text(str_char + " has played a song: " + f_song + "\n"); append_ic_text(str_char + " has played a song: " + f_song + "\n");
music_player->play(f_song); music_player->play(f_song);
@ -1689,6 +1695,39 @@ void Courtroom::on_mute_list_clicked(QModelIndex p_index)
QString f_char = f_item->text(); QString f_char = f_item->text();
QString real_char; QString real_char;
if (f_char.endsWith(" [x]"))
real_char = f_char.left(f_char.size() - 4);
else
real_char = f_char;
int f_cid = -1;
for (int n_char = 0 ; n_char < char_list.size() ; n_char++)
{
if (char_list.at(n_char).name == real_char)
f_cid = n_char;
}
if (f_cid < 0 || f_cid >= char_list.size())
{
qDebug() << "W: " << real_char << " not present in char_list";
return;
}
if (mute_map.value(f_cid))
{
mute_map.insert(f_cid, false);
f_item->setText(real_char);
}
else
{
mute_map.insert(f_cid, true);
f_item->setText(real_char + " [x]");
}
/*
if (f_char.endsWith(" [x]")) if (f_char.endsWith(" [x]"))
{ {
real_char = f_char.left(f_char.size() - 4); real_char = f_char.left(f_char.size() - 4);
@ -1703,6 +1742,7 @@ void Courtroom::on_mute_list_clicked(QModelIndex p_index)
mute_map.insert(real_char, true); mute_map.insert(real_char, true);
f_item->setText(real_char + " [x]"); f_item->setText(real_char + " [x]");
} }
*/
} }
void Courtroom::on_music_list_double_clicked(QModelIndex p_model) void Courtroom::on_music_list_double_clicked(QModelIndex p_model)

View File

@ -153,10 +153,16 @@ private:
bool testimony_in_progress = false; bool testimony_in_progress = false;
//in milliseconds
const int testimony_show_time = 1500; const int testimony_show_time = 1500;
//in milliseconds
const int testimony_hide_time = 500; const int testimony_hide_time = 500;
QMap<QString, bool> mute_map; //char id, muted or not
QMap<int, bool> mute_map;
//QVector<int> muted_cids;
bool is_muted = false; bool is_muted = false;

View File

@ -214,10 +214,14 @@ void Courtroom::on_evidence_clicked(int p_id)
void Courtroom::on_evidence_double_clicked(int p_id) void Courtroom::on_evidence_double_clicked(int p_id)
{ {
if (p_id >= local_evidence_list.size()) int f_real_id = p_id + max_evidence_on_page * current_evidence_page;
if (f_real_id >= local_evidence_list.size())
return; return;
evi_type f_evi = local_evidence_list.at(p_id); current_evidence = f_real_id;
evi_type f_evi = local_evidence_list.at(f_real_id);
ui_evidence_description->clear(); ui_evidence_description->clear();
ui_evidence_description->appendPlainText(f_evi.description); ui_evidence_description->appendPlainText(f_evi.description);