Remove editable side dropdown (#1009)
Resolve #985 Co-authored-by: stonedDiscord <Tukz@gmx.de>
This commit is contained in:
		
							parent
							
								
									8a98de8cb3
								
							
						
					
					
						commit
						662d4781d2
					
				@ -430,8 +430,7 @@ Courtroom::Courtroom(AOApplication *p_ao_app)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  connect(chat_tick_timer, &QTimer::timeout, this, &Courtroom::chat_tick);
 | 
					  connect(chat_tick_timer, &QTimer::timeout, this, &Courtroom::chat_tick);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  connect(ui_pos_dropdown, QOverload<int>::of(&QComboBox::currentIndexChanged), this, QOverload<int>::of(&Courtroom::on_pos_dropdown_changed));
 | 
					  connect(ui_pos_dropdown, &QComboBox::currentTextChanged, this, &Courtroom::on_pos_dropdown_changed);
 | 
				
			||||||
  connect(ui_pos_dropdown, &QComboBox::editTextChanged, this, QOverload<QString>::of(&Courtroom::on_pos_dropdown_changed));
 | 
					 | 
				
			||||||
  connect(ui_pos_dropdown, &QComboBox::customContextMenuRequested, this, &Courtroom::on_pos_dropdown_context_menu_requested);
 | 
					  connect(ui_pos_dropdown, &QComboBox::customContextMenuRequested, this, &Courtroom::on_pos_dropdown_context_menu_requested);
 | 
				
			||||||
  connect(ui_pos_remove, &AOButton::clicked, this, &Courtroom::on_pos_remove_clicked);
 | 
					  connect(ui_pos_remove, &AOButton::clicked, this, &Courtroom::on_pos_remove_clicked);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -916,22 +915,13 @@ void Courtroom::set_widgets()
 | 
				
			|||||||
  ui_emote_dropdown->setToolTip(tr("Set your character's emote to play on your next message."));
 | 
					  ui_emote_dropdown->setToolTip(tr("Set your character's emote to play on your next message."));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  set_size_and_pos(ui_pos_dropdown, "pos_dropdown");
 | 
					  set_size_and_pos(ui_pos_dropdown, "pos_dropdown");
 | 
				
			||||||
  ui_pos_dropdown->setEditable(true);
 | 
					 | 
				
			||||||
  ui_pos_dropdown->setInsertPolicy(QComboBox::NoInsert);
 | 
					 | 
				
			||||||
  ui_pos_dropdown->setToolTip(tr("Set your character's supplementary background."));
 | 
					  ui_pos_dropdown->setToolTip(tr("Set your character's supplementary background."));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  set_size_and_pos(ui_pos_remove, "pos_remove");
 | 
					  set_size_and_pos(ui_pos_remove, "pos_remove");
 | 
				
			||||||
  ui_pos_remove->setText("X");
 | 
					  ui_pos_remove->setText("X");
 | 
				
			||||||
  ui_pos_remove->setImage("evidencex");
 | 
					  ui_pos_remove->setImage("evidencex");
 | 
				
			||||||
  ui_pos_remove->setToolTip(tr("Reset your character's supplementary background to its default."));
 | 
					  ui_pos_remove->setToolTip(tr("Reset your character's supplementary background to its default."));
 | 
				
			||||||
  if (current_side == "")
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
  ui_pos_remove->hide();
 | 
					  ui_pos_remove->hide();
 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    ui_pos_remove->show();
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  set_size_and_pos(ui_iniswap_dropdown, "iniswap_dropdown");
 | 
					  set_size_and_pos(ui_iniswap_dropdown, "iniswap_dropdown");
 | 
				
			||||||
  ui_iniswap_dropdown->setEditable(true);
 | 
					  ui_iniswap_dropdown->setEditable(true);
 | 
				
			||||||
@ -1467,64 +1457,26 @@ void Courtroom::set_background(QString p_background, bool display)
 | 
				
			|||||||
    ui_vp_objection->stopPlayback();
 | 
					    ui_vp_objection->stopPlayback();
 | 
				
			||||||
    chat_tick_timer->stop();
 | 
					    chat_tick_timer->stop();
 | 
				
			||||||
    ui_vp_evidence_display->reset();
 | 
					    ui_vp_evidence_display->reset();
 | 
				
			||||||
    QString f_side = current_side;
 | 
					    set_scene(true, current_or_default_side());
 | 
				
			||||||
    if (current_side == "")
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      f_side = ao_app->get_char_side(current_char);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    set_scene(true, f_side);
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Courtroom::set_side(QString p_side)
 | 
					void Courtroom::set_side(QString p_side)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  if (p_side.isEmpty() || p_side == ao_app->get_char_side(current_char))
 | 
					  ui_pos_dropdown->setCurrentText(p_side);
 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    ui_pos_remove->hide();
 | 
					 | 
				
			||||||
    current_side = ao_app->get_char_side(current_char);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    ui_pos_remove->show();
 | 
					 | 
				
			||||||
    current_side = p_side;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  set_judge_buttons();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // Block the signals to prevent setCurrentIndex from triggering a pos
 | 
					 | 
				
			||||||
  // change
 | 
					 | 
				
			||||||
  ui_pos_dropdown->blockSignals(true);
 | 
					 | 
				
			||||||
  for (int i = 0; i < ui_pos_dropdown->count(); ++i)
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    QString pos = ui_pos_dropdown->itemText(i);
 | 
					 | 
				
			||||||
    if (pos == current_side)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      // Set the index on dropdown ui element to let you know what pos you're on
 | 
					 | 
				
			||||||
      // right now
 | 
					 | 
				
			||||||
      ui_pos_dropdown->setCurrentIndex(i);
 | 
					 | 
				
			||||||
      // Unblock the signals so the element can be used for setting pos again
 | 
					 | 
				
			||||||
      ui_pos_dropdown->blockSignals(false);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      // alright we dun, jobs done here boyos
 | 
					 | 
				
			||||||
      return;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  // We will only get there if we failed the last step
 | 
					 | 
				
			||||||
  ui_pos_dropdown->setEditText(current_side);
 | 
					 | 
				
			||||||
  // Unblock the signals so the element can be used for setting pos again
 | 
					 | 
				
			||||||
  ui_pos_dropdown->blockSignals(false);
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Courtroom::set_pos_dropdown(QStringList pos_dropdowns)
 | 
					void Courtroom::set_pos_dropdown(QStringList pos_dropdowns)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  // Block the signals to prevent setCurrentIndex from triggering a pos change
 | 
					  QString current_pos = current_or_default_side();
 | 
				
			||||||
  ui_pos_dropdown->blockSignals(true);
 | 
					
 | 
				
			||||||
  pos_dropdown_list = pos_dropdowns;
 | 
					 | 
				
			||||||
  ui_pos_dropdown->clear();
 | 
					  ui_pos_dropdown->clear();
 | 
				
			||||||
  for (int n = 0; n < pos_dropdown_list.size(); ++n)
 | 
					  for (int n = 0; n < pos_dropdowns.size(); ++n)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    QString pos = pos_dropdown_list.at(n);
 | 
					    QString pos = pos_dropdowns.at(n);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ui_pos_dropdown->addItem(pos);
 | 
					    ui_pos_dropdown->addItem(pos);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    QPixmap image = QPixmap(ao_app->get_image_suffix(ao_app->get_background_path(ao_app->get_pos_path(pos).background)));
 | 
					    QPixmap image = QPixmap(ao_app->get_image_suffix(ao_app->get_background_path(ao_app->get_pos_path(pos).background)));
 | 
				
			||||||
    if (!image.isNull())
 | 
					    if (!image.isNull())
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
@ -1533,13 +1485,7 @@ void Courtroom::set_pos_dropdown(QStringList pos_dropdowns)
 | 
				
			|||||||
    ui_pos_dropdown->setItemIcon(n, image);
 | 
					    ui_pos_dropdown->setItemIcon(n, image);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (current_side != "" && !pos_dropdown_list.contains(current_side))
 | 
					  ui_pos_dropdown->setCurrentText(current_pos);
 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    ui_pos_dropdown->setEditText(current_side);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // Unblock the signals so the element can be used for setting pos again
 | 
					 | 
				
			||||||
  ui_pos_dropdown->blockSignals(false);
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Courtroom::update_character(int p_cid, QString char_name, bool reset_emote)
 | 
					void Courtroom::update_character(int p_cid, QString char_name, bool reset_emote)
 | 
				
			||||||
@ -1573,8 +1519,7 @@ void Courtroom::update_character(int p_cid, QString char_name, bool reset_emote)
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  current_char = f_char;
 | 
					  current_char = f_char;
 | 
				
			||||||
  current_side = ao_app->get_char_side(current_char);
 | 
					  set_side(ao_app->get_char_side(current_char));
 | 
				
			||||||
  set_side(current_side);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  set_text_color_dropdown();
 | 
					  set_text_color_dropdown();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1959,7 +1904,7 @@ void Courtroom::set_judge_state(JudgeState new_state)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void Courtroom::set_judge_buttons()
 | 
					void Courtroom::set_judge_buttons()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  show_judge_controls(ao_app->get_pos_is_judge(current_side));
 | 
					  show_judge_controls(ao_app->get_pos_is_judge(current_or_default_side()));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Courtroom::on_chat_return_pressed()
 | 
					void Courtroom::on_chat_return_pressed()
 | 
				
			||||||
@ -1996,19 +1941,9 @@ void Courtroom::on_chat_return_pressed()
 | 
				
			|||||||
  // immediate_preanim#%
 | 
					  // immediate_preanim#%
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  QStringList packet_contents;
 | 
					  QStringList packet_contents;
 | 
				
			||||||
  QString f_side;
 | 
					 | 
				
			||||||
  // have to fetch this early for a workaround. i hate this system, but i am stuck with it for now
 | 
					  // have to fetch this early for a workaround. i hate this system, but i am stuck with it for now
 | 
				
			||||||
  int f_emote_mod = ao_app->get_emote_mod(current_char, current_emote);
 | 
					  int f_emote_mod = ao_app->get_emote_mod(current_char, current_emote);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (current_side == "")
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    f_side = ao_app->get_char_side(current_char);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    f_side = current_side;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  int f_desk_mod = DESK_SHOW;
 | 
					  int f_desk_mod = DESK_SHOW;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (ao_app->m_serverdata.get_feature(server::BASE_FEATURE_SET::DESKMOD))
 | 
					  if (ao_app->m_serverdata.get_feature(server::BASE_FEATURE_SET::DESKMOD))
 | 
				
			||||||
@ -2120,7 +2055,7 @@ void Courtroom::on_chat_return_pressed()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  packet_contents.append(ui_ic_chat_message->text());
 | 
					  packet_contents.append(ui_ic_chat_message->text());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  packet_contents.append(f_side);
 | 
					  packet_contents.append(current_or_default_side());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  packet_contents.append(f_sfx);
 | 
					  packet_contents.append(f_sfx);
 | 
				
			||||||
  packet_contents.append(QString::number(f_emote_mod));
 | 
					  packet_contents.append(QString::number(f_emote_mod));
 | 
				
			||||||
@ -4678,6 +4613,23 @@ QString Courtroom::get_current_background()
 | 
				
			|||||||
  return current_background;
 | 
					  return current_background;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString Courtroom::default_side()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return ao_app->get_char_side(get_current_char());
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString Courtroom::current_or_default_side()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  QString side = ui_pos_dropdown->currentText();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (side.isEmpty())
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    side = default_side();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return side;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Courtroom::handle_song(QStringList *p_contents)
 | 
					void Courtroom::handle_song(QStringList *p_contents)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  QStringList f_contents = *p_contents;
 | 
					  QStringList f_contents = *p_contents;
 | 
				
			||||||
@ -5220,26 +5172,24 @@ void Courtroom::on_music_search_return_pressed()
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Courtroom::on_pos_dropdown_changed(int p_index)
 | 
					void Courtroom::on_pos_dropdown_changed(QString p_side)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  if (p_index < 0)
 | 
					  if (p_side.isEmpty() || p_side == default_side())
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    return;
 | 
					    ui_pos_remove->hide();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  on_pos_dropdown_changed(ui_pos_dropdown->itemText(p_index));
 | 
					  else
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    ui_pos_remove->show();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Courtroom::on_pos_dropdown_changed(QString p_text)
 | 
					  set_judge_buttons();
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  set_side(p_text);
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Courtroom::on_pos_dropdown_context_menu_requested(const QPoint &pos)
 | 
					void Courtroom::on_pos_dropdown_context_menu_requested(const QPoint &pos)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  QMenu *menu = ui_iniswap_dropdown->lineEdit()->createStandardContextMenu();
 | 
					  QMenu *menu = new QMenu(ui_iniswap_dropdown);
 | 
				
			||||||
 | 
					 | 
				
			||||||
  menu->setAttribute(Qt::WA_DeleteOnClose);
 | 
					  menu->setAttribute(Qt::WA_DeleteOnClose);
 | 
				
			||||||
  menu->addSeparator();
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  menu->addAction(QString("Open background " + current_background), this, [=] {
 | 
					  menu->addAction(QString("Open background " + current_background), this, [=] {
 | 
				
			||||||
    QString p_path = ao_app->get_real_path(VPath("background/" + current_background + "/"));
 | 
					    QString p_path = ao_app->get_real_path(VPath("background/" + current_background + "/"));
 | 
				
			||||||
@ -5254,32 +5204,7 @@ void Courtroom::on_pos_dropdown_context_menu_requested(const QPoint &pos)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void Courtroom::on_pos_remove_clicked()
 | 
					void Courtroom::on_pos_remove_clicked()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  ui_pos_dropdown->blockSignals(true);
 | 
					  set_side(default_side());
 | 
				
			||||||
  QString default_side = ao_app->get_char_side(current_char);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  show_judge_controls(ao_app->get_pos_is_judge(default_side));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  for (int i = 0; i < ui_pos_dropdown->count(); ++i)
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    QString pos = ui_pos_dropdown->itemText(i);
 | 
					 | 
				
			||||||
    if (pos == default_side)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      ui_pos_dropdown->setCurrentIndex(i);
 | 
					 | 
				
			||||||
      break;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  int wit_index = ui_pos_dropdown->findText("wit");
 | 
					 | 
				
			||||||
  if (ui_pos_dropdown->currentText() != default_side && wit_index != -1) // i.e. this bg doesn't have our pos
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    ui_pos_dropdown->setCurrentIndex(wit_index); // fall back to "wit"
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  else if (ui_pos_dropdown->currentText() != default_side) // we don't have "wit" either?
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    ui_pos_dropdown->setCurrentIndex(0); // as a last resort, choose the first item in the dropdown
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  ui_pos_dropdown->blockSignals(false);
 | 
					 | 
				
			||||||
  current_side = "";
 | 
					 | 
				
			||||||
  ui_pos_remove->hide();
 | 
					 | 
				
			||||||
  focus_ic_input();
 | 
					  focus_ic_input();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -167,6 +167,9 @@ public:
 | 
				
			|||||||
  QString get_current_char();
 | 
					  QString get_current_char();
 | 
				
			||||||
  QString get_current_background();
 | 
					  QString get_current_background();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  QString default_side();
 | 
				
			||||||
 | 
					  QString current_or_default_side();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // updates character to p_cid and updates necessary ui elements
 | 
					  // updates character to p_cid and updates necessary ui elements
 | 
				
			||||||
  // Optional "char_name" is the iniswap we're using
 | 
					  // Optional "char_name" is the iniswap we're using
 | 
				
			||||||
  void update_character(int p_cid, QString char_name = QString(), bool reset_emote = false);
 | 
					  void update_character(int p_cid, QString char_name = QString(), bool reset_emote = false);
 | 
				
			||||||
@ -520,9 +523,6 @@ private:
 | 
				
			|||||||
  QVector<bool> color_markdown_talking_list;
 | 
					  QVector<bool> color_markdown_talking_list;
 | 
				
			||||||
  // Text Color-related optimization END
 | 
					  // Text Color-related optimization END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // List of all currently available pos
 | 
					 | 
				
			||||||
  QStringList pos_dropdown_list;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // Current list file sorted line by line
 | 
					  // Current list file sorted line by line
 | 
				
			||||||
  QStringList sound_list;
 | 
					  QStringList sound_list;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -575,7 +575,6 @@ private:
 | 
				
			|||||||
  bool server_ooc = true;
 | 
					  bool server_ooc = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  QString current_background = "default";
 | 
					  QString current_background = "default";
 | 
				
			||||||
  QString current_side;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // used for courtroom slide logic
 | 
					  // used for courtroom slide logic
 | 
				
			||||||
  QString last_side = "";
 | 
					  QString last_side = "";
 | 
				
			||||||
@ -845,7 +844,6 @@ private Q_SLOTS:
 | 
				
			|||||||
  void on_emote_right_clicked();
 | 
					  void on_emote_right_clicked();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  void on_emote_dropdown_changed(int p_index);
 | 
					  void on_emote_dropdown_changed(int p_index);
 | 
				
			||||||
  void on_pos_dropdown_changed(int p_index);
 | 
					 | 
				
			||||||
  void on_pos_dropdown_changed(QString p_text);
 | 
					  void on_pos_dropdown_changed(QString p_text);
 | 
				
			||||||
  void on_pos_dropdown_context_menu_requested(const QPoint &pos);
 | 
					  void on_pos_dropdown_context_menu_requested(const QPoint &pos);
 | 
				
			||||||
  void on_pos_remove_clicked();
 | 
					  void on_pos_remove_clicked();
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user