QWidget *ServerDialog::createAdvancedTab(){ QVBoxLayout *layout = new QVBoxLayout; contest_mode_checkbox = new QCheckBox(tr("Contest mode")); contest_mode_checkbox->setChecked(Config.ContestMode); contest_mode_checkbox->setToolTip(tr("Requires password to login, hide screen name and disable kicking")); free_choose_checkbox = new QCheckBox(tr("Choose generals and cards freely")); free_choose_checkbox->setToolTip(tr("This option enables the cheat menu")); free_choose_checkbox->setChecked(Config.FreeChoose); free_assign_checkbox = new QCheckBox(tr("Assign role and seat freely")); free_assign_checkbox->setChecked(Config.value("FreeAssign").toBool()); free_assign_self_checkbox = new QCheckBox(tr("Assign only your own role")); free_assign_self_checkbox->setChecked(Config.FreeAssignSelf); free_assign_self_checkbox->setEnabled(free_assign_checkbox->isChecked()); connect(free_assign_checkbox,SIGNAL(toggled(bool)), free_assign_self_checkbox, SLOT(setEnabled(bool))); maxchoice_spinbox = new QSpinBox; maxchoice_spinbox->setRange(3, 10); maxchoice_spinbox->setValue(Config.value("MaxChoice", 5).toInt()); forbid_same_ip_checkbox = new QCheckBox(tr("Forbid same IP with multiple connection")); forbid_same_ip_checkbox->setChecked(Config.ForbidSIMC); disable_chat_checkbox = new QCheckBox(tr("Disable chat")); disable_chat_checkbox->setChecked(Config.DisableChat); second_general_checkbox = new QCheckBox(tr("Enable second general")); scene_checkbox = new QCheckBox(tr("Enable Scene")); scene_checkbox->setChecked(Config.EnableScene); //changjing //changjing max_hp_label = new QLabel(tr("Max HP scheme")); max_hp_scheme_combobox = new QComboBox; max_hp_scheme_combobox->addItem(tr("Sum - 3")); max_hp_scheme_combobox->addItem(tr("Minimum")); max_hp_scheme_combobox->addItem(tr("Average")); max_hp_scheme_combobox->setCurrentIndex(Config.MaxHpScheme); second_general_checkbox->setChecked(Config.Enable2ndGeneral); basara_checkbox = new QCheckBox(tr("Enable Basara")); basara_checkbox->setChecked(Config.EnableBasara); updateButtonEnablility(mode_group->checkedButton()); connect(mode_group,SIGNAL(buttonClicked(QAbstractButton*)),this,SLOT(updateButtonEnablility(QAbstractButton*))); hegemony_checkbox = new QCheckBox(tr("Enable Hegemony")); hegemony_checkbox->setChecked(Config.EnableHegemony); hegemony_checkbox->setEnabled(basara_checkbox->isChecked()); connect(basara_checkbox,SIGNAL(toggled(bool)),hegemony_checkbox, SLOT(setEnabled(bool))); announce_ip_checkbox = new QCheckBox(tr("Annouce my IP in WAN")); announce_ip_checkbox->setChecked(Config.AnnounceIP); announce_ip_checkbox->setEnabled(false); // not support now address_edit = new QLineEdit; address_edit->setText(Config.Address); #if QT_VERSION >= 0x040700 address_edit->setPlaceholderText(tr("Public IP or domain")); #endif QPushButton *detect_button = new QPushButton(tr("Detect my WAN IP")); connect(detect_button, SIGNAL(clicked()), this, SLOT(onDetectButtonClicked())); //address_edit->setEnabled(announce_ip_checkbox->isChecked()); // connect(announce_ip_checkbox, SIGNAL(toggled(bool)), address_edit, SLOT(setEnabled(bool))); port_edit = new QLineEdit; port_edit->setText(QString::number(Config.ServerPort)); port_edit->setValidator(new QIntValidator(1, 9999, port_edit)); layout->addWidget(contest_mode_checkbox); layout->addWidget(forbid_same_ip_checkbox); layout->addWidget(disable_chat_checkbox); layout->addLayout(HLay(free_choose_checkbox, free_assign_checkbox)); layout->addWidget(free_assign_self_checkbox); layout->addLayout(HLay(new QLabel(tr("Upperlimit for general")), maxchoice_spinbox)); layout->addWidget(second_general_checkbox); layout->addLayout(HLay(max_hp_label, max_hp_scheme_combobox)); layout->addLayout(HLay(basara_checkbox, hegemony_checkbox)); layout->addWidget(scene_checkbox); //changjing layout->addWidget(announce_ip_checkbox); layout->addLayout(HLay(new QLabel(tr("Address")), address_edit)); layout->addWidget(detect_button); layout->addLayout(HLay(new QLabel(tr("Port")), port_edit)); layout->addStretch(); QWidget *widget = new QWidget; widget->setLayout(layout); max_hp_label->setVisible(Config.Enable2ndGeneral); connect(second_general_checkbox, SIGNAL(toggled(bool)), max_hp_label, SLOT(setVisible(bool))); max_hp_scheme_combobox->setVisible(Config.Enable2ndGeneral); connect(second_general_checkbox, SIGNAL(toggled(bool)), max_hp_scheme_combobox, SLOT(setVisible(bool))); return widget; }
QWidget *ServerDialog::createAdvancedTab(){ //QVBoxLayout *layout = new QVBoxLayout; QFormLayout *layout = new QFormLayout; contest_mode_checkbox = new QCheckBox(tr("Contest mode")); contest_mode_checkbox->setChecked(Config.ContestMode); contest_mode_checkbox->setToolTip(tr("Requires password to login, hide screen name and disable kicking")); random_seat_checkbox = new QCheckBox(tr("Arrange the seats randomly")); random_seat_checkbox->setChecked(Config.RandomSeat); swap_spinbox = new QSpinBox; swap_spinbox->setRange(1, 1000); swap_spinbox->setFixedWidth(50); swap_spinbox->setValue(Config.value("SwapCount", 6).toInt()); maxchoice_spinbox = new QSpinBox; maxchoice_spinbox->setRange(3, 10); maxchoice_spinbox->setFixedWidth(50); maxchoice_spinbox->setValue(Config.value("MaxChoice", 5).toInt()); forbid_same_ip_checkbox = new QCheckBox(tr("Forbid same IP with multiple connection")); forbid_same_ip_checkbox->setChecked(Config.ForbidSIMC); disable_chat_checkbox = new QCheckBox(tr("Disable chat")); disable_chat_checkbox->setChecked(Config.DisableChat); second_general_checkbox = new QCheckBox(tr("Enable second general")); nolordskill_checkbox = new QCheckBox(tr("No lord skill")); nolordskill_checkbox->setChecked(Config.NoLordSkill); reincarnation_checkbox = new QCheckBox(tr("Enable Reincarnation")); reincarnation_checkbox->setChecked(Config.EnableReincarnation); reinca_unchange_checkbox = new QCheckBox(tr("Persist general in reincarnation")); reinca_unchange_checkbox->setChecked(Config.value("ReincaPersist").toBool()); scene_checkbox = new QCheckBox(tr("Enable Scene"));//changjing scene_checkbox->setChecked(Config.EnableScene); //changjing max_hp_label = new QLabel(tr("Max HP scheme")); max_hp_scheme_combobox = new QComboBox; max_hp_scheme_combobox->addItem(tr("Sum - 3")); max_hp_scheme_combobox->addItem(tr("Minimum")); max_hp_scheme_combobox->addItem(tr("Average")); max_hp_scheme_combobox->setCurrentIndex(Config.MaxHpScheme); second_general_checkbox->setChecked(Config.Enable2ndGeneral); basara_checkbox = new QCheckBox(tr("Enable Basara")); basara_checkbox->setChecked(Config.EnableBasara); hegemony_checkbox = new QCheckBox(tr("Enable Hegemony")); hegemony_checkbox->setChecked(Config.EnableHegemony); hegemony_checkbox->setEnabled(basara_checkbox->isChecked()); connect(basara_checkbox,SIGNAL(toggled(bool)),hegemony_checkbox, SLOT(setEnabled(bool))); announce_ip_checkbox = new QCheckBox(tr("Annouce my IP in WAN")); announce_ip_checkbox->setChecked(Config.AnnounceIP); announce_ip_checkbox->setEnabled(false); // not support now address_edit = new QLineEdit; address_edit->setText(Config.Address); #if QT_VERSION >= 0x040700 address_edit->setPlaceholderText(tr("Public IP or domain")); #endif QPushButton *detect_button = new QPushButton(tr("Detect my WAN IP")); connect(detect_button, SIGNAL(clicked()), this, SLOT(onDetectButtonClicked())); //address_edit->setEnabled(announce_ip_checkbox->isChecked()); // connect(announce_ip_checkbox, SIGNAL(toggled(bool)), address_edit, SLOT(setEnabled(bool))); port_edit = new QLineEdit; port_edit->setText(QString::number(Config.ServerPort)); port_edit->setValidator(new QIntValidator(1, 9999, port_edit)); layout->addRow(HLay(contest_mode_checkbox, random_seat_checkbox)); layout->addRow(HLay(forbid_same_ip_checkbox, disable_chat_checkbox)); layout->addRow(HLay(new QLabel(tr("Upperlimit for general")), maxchoice_spinbox, new QLabel(tr("Swap pile count")), swap_spinbox)); layout->addRow(HLay(second_general_checkbox, nolordskill_checkbox)); layout->addRow(HLay(max_hp_label, max_hp_scheme_combobox)); layout->addRow(HLay(basara_checkbox, hegemony_checkbox)); layout->addRow(scene_checkbox); //changjing layout->addRow(HLay(reincarnation_checkbox, reinca_unchange_checkbox)); layout->addRow(HLay(new QLabel(tr("Address")), address_edit, new QLabel(tr("Port")), port_edit)); layout->addRow(HLay(announce_ip_checkbox, detect_button)); //layout->addStretch(); QWidget *widget = new QWidget; widget->setLayout(layout); max_hp_label->setVisible(Config.Enable2ndGeneral); connect(second_general_checkbox, SIGNAL(toggled(bool)), max_hp_label, SLOT(setVisible(bool))); max_hp_scheme_combobox->setVisible(Config.Enable2ndGeneral); connect(second_general_checkbox, SIGNAL(toggled(bool)), max_hp_scheme_combobox, SLOT(setVisible(bool))); reinca_unchange_checkbox->setVisible(Config.value("ReincaPersist", false).toBool()); connect(reincarnation_checkbox, SIGNAL(toggled(bool)), reinca_unchange_checkbox, SLOT(setVisible(bool))); return widget; }
QWidget *ServerDialog::createAdvancedTab() { QVBoxLayout *layout = new QVBoxLayout; random_seat_checkbox = new QCheckBox(tr("Arrange the seats randomly")); random_seat_checkbox->setChecked(Config.RandomSeat); enable_cheat_checkbox = new QCheckBox(tr("Enable cheat")); enable_cheat_checkbox->setToolTip(tr("This option enables the cheat menu")); enable_cheat_checkbox->setChecked(Config.EnableCheat); free_choose_checkbox = new QCheckBox(tr("Choose generals and cards freely")); free_choose_checkbox->setChecked(Config.FreeChoose); free_choose_checkbox->setVisible(Config.EnableCheat); free_assign_checkbox = new QCheckBox(tr("Assign role and seat freely")); free_assign_checkbox->setChecked(Config.value("FreeAssign").toBool()); free_assign_checkbox->setVisible(Config.EnableCheat); free_assign_self_checkbox = new QCheckBox(tr("Assign only your own role")); free_assign_self_checkbox->setChecked(Config.FreeAssignSelf); free_assign_self_checkbox->setEnabled(free_assign_checkbox->isChecked()); free_assign_self_checkbox->setVisible(Config.EnableCheat); connect(enable_cheat_checkbox, SIGNAL(toggled(bool)), free_choose_checkbox, SLOT(setVisible(bool))); connect(enable_cheat_checkbox, SIGNAL(toggled(bool)), free_assign_checkbox, SLOT(setVisible(bool))); connect(enable_cheat_checkbox, SIGNAL(toggled(bool)), free_assign_self_checkbox, SLOT(setVisible(bool))); connect(free_assign_checkbox, SIGNAL(toggled(bool)), free_assign_self_checkbox, SLOT(setEnabled(bool))); pile_swapping_label = new QLabel(tr("Pile-swapping limitation")); pile_swapping_label->setToolTip(tr("-1 means no limitations")); pile_swapping_spinbox = new QSpinBox; pile_swapping_spinbox->setRange(-1, 15); pile_swapping_spinbox->setValue(Config.value("PileSwappingLimitation", 5).toInt()); without_lordskill_checkbox = new QCheckBox(tr("Without Lordskill")); without_lordskill_checkbox->setChecked(Config.value("WithoutLordskill", false).toBool()); sp_convert_checkbox = new QCheckBox(tr("Enable SP Convert")); sp_convert_checkbox->setChecked(Config.value("EnableSPConvert", true).toBool()); maxchoice_spinbox = new QSpinBox; maxchoice_spinbox->setRange(3, 21); maxchoice_spinbox->setValue(Config.value("MaxChoice", 5).toInt()); lord_maxchoice_label = new QLabel(tr("Upperlimit for lord")); lord_maxchoice_label->setToolTip(tr("-1 means that all lords are available")); lord_maxchoice_spinbox = new QSpinBox; lord_maxchoice_spinbox->setRange(-1, 15); lord_maxchoice_spinbox->setValue(Config.value("LordMaxChoice", -1).toInt()); nonlord_maxchoice_spinbox = new QSpinBox; nonlord_maxchoice_spinbox->setRange(0, 15); nonlord_maxchoice_spinbox->setValue(Config.value("NonLordMaxChoice", 2).toInt()); forbid_same_ip_checkbox = new QCheckBox(tr("Forbid same IP with multiple connection")); forbid_same_ip_checkbox->setChecked(Config.ForbidSIMC); disable_chat_checkbox = new QCheckBox(tr("Disable chat")); disable_chat_checkbox->setChecked(Config.DisableChat); second_general_checkbox = new QCheckBox(tr("Enable second general")); second_general_checkbox->setChecked(Config.Enable2ndGeneral); same_checkbox = new QCheckBox(tr("Enable Same")); same_checkbox->setChecked(Config.EnableSame); max_hp_label = new QLabel(tr("Max HP scheme")); max_hp_scheme_ComboBox = new QComboBox; max_hp_scheme_ComboBox->addItem(tr("Sum - X")); max_hp_scheme_ComboBox->addItem(tr("Minimum")); max_hp_scheme_ComboBox->addItem(tr("Maximum")); max_hp_scheme_ComboBox->addItem(tr("Average")); max_hp_scheme_ComboBox->setCurrentIndex(Config.MaxHpScheme); prevent_awaken_below3_checkbox = new QCheckBox(tr("Prevent maxhp being less than 3 for awaken skills")); prevent_awaken_below3_checkbox->setChecked(Config.PreventAwakenBelow3); prevent_awaken_below3_checkbox->setEnabled(max_hp_scheme_ComboBox->currentIndex() != 0); scheme0_subtraction_label = new QLabel(tr("Subtraction for scheme 0")); scheme0_subtraction_label->setVisible(max_hp_scheme_ComboBox->currentIndex() == 0); scheme0_subtraction_spinbox = new QSpinBox; scheme0_subtraction_spinbox->setRange(-5, 12); scheme0_subtraction_spinbox->setValue(Config.Scheme0Subtraction); scheme0_subtraction_spinbox->setVisible(max_hp_scheme_ComboBox->currentIndex() == 0); connect(max_hp_scheme_ComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(setMaxHpSchemeBox())); basara_checkbox = new QCheckBox(tr("Enable Basara")); basara_checkbox->setChecked(Config.EnableBasara); updateButtonEnablility(mode_group->checkedButton()); connect(mode_group, SIGNAL(buttonClicked(QAbstractButton *)), this, SLOT(updateButtonEnablility(QAbstractButton *))); hegemony_checkbox = new QCheckBox(tr("Enable Hegemony")); hegemony_checkbox->setChecked(Config.EnableBasara && Config.EnableHegemony); hegemony_checkbox->setEnabled(basara_checkbox->isChecked()); connect(basara_checkbox, SIGNAL(toggled(bool)), hegemony_checkbox, SLOT(setChecked(bool))); connect(basara_checkbox, SIGNAL(toggled(bool)), hegemony_checkbox, SLOT(setEnabled(bool))); hegemony_maxchoice_label = new QLabel(tr("Upperlimit for hegemony")); hegemony_maxchoice_spinbox = new QSpinBox; hegemony_maxchoice_spinbox->setRange(5, 21); hegemony_maxchoice_spinbox->setValue(Config.value("HegemonyMaxChoice", 7).toInt()); hegemony_maxshown_label = new QLabel(tr("Max shown num for hegemony")); hegemony_maxshown_spinbox = new QSpinBox; hegemony_maxshown_spinbox->setRange(1, 11); hegemony_maxshown_spinbox->setValue(Config.value("HegemonyMaxShown", 2).toInt()); address_edit = new QLineEdit; address_edit->setText(Config.Address); #if QT_VERSION >= 0x040700 address_edit->setPlaceholderText(tr("Public IP or domain")); #endif QPushButton *detect_button = new QPushButton(tr("Detect my WAN IP")); connect(detect_button, SIGNAL(clicked()), this, SLOT(onDetectButtonClicked())); port_edit = new QLineEdit; port_edit->setText(QString::number(Config.ServerPort)); port_edit->setValidator(new QIntValidator(1, 9999, port_edit)); layout->addWidget(forbid_same_ip_checkbox); layout->addWidget(disable_chat_checkbox); layout->addWidget(random_seat_checkbox); layout->addWidget(enable_cheat_checkbox); layout->addWidget(free_choose_checkbox); layout->addLayout(HLay(free_assign_checkbox, free_assign_self_checkbox)); layout->addLayout(HLay(pile_swapping_label, pile_swapping_spinbox)); layout->addLayout(HLay(without_lordskill_checkbox, sp_convert_checkbox)); layout->addLayout(HLay(new QLabel(tr("Upperlimit for general")), maxchoice_spinbox)); layout->addLayout(HLay(lord_maxchoice_label, lord_maxchoice_spinbox)); layout->addLayout(HLay(new QLabel(tr("Upperlimit for non-lord")), nonlord_maxchoice_spinbox)); layout->addWidget(second_general_checkbox); layout->addLayout(HLay(max_hp_label, max_hp_scheme_ComboBox)); layout->addLayout(HLay(scheme0_subtraction_label, scheme0_subtraction_spinbox)); layout->addWidget(prevent_awaken_below3_checkbox); layout->addLayout(HLay(basara_checkbox, hegemony_checkbox)); layout->addLayout(HLay(hegemony_maxchoice_label, hegemony_maxchoice_spinbox)); layout->addLayout(HLay(hegemony_maxshown_label, hegemony_maxshown_spinbox)); layout->addWidget(same_checkbox); layout->addLayout(HLay(new QLabel(tr("Address")), address_edit)); layout->addWidget(detect_button); layout->addLayout(HLay(new QLabel(tr("Port")), port_edit)); layout->addStretch(); QWidget *widget = new QWidget; widget->setLayout(layout); max_hp_label->setVisible(Config.Enable2ndGeneral); connect(second_general_checkbox, SIGNAL(toggled(bool)), max_hp_label, SLOT(setVisible(bool))); max_hp_scheme_ComboBox->setVisible(Config.Enable2ndGeneral); connect(second_general_checkbox, SIGNAL(toggled(bool)), max_hp_scheme_ComboBox, SLOT(setVisible(bool))); if (Config.Enable2ndGeneral) { prevent_awaken_below3_checkbox->setVisible(max_hp_scheme_ComboBox->currentIndex() != 0); scheme0_subtraction_label->setVisible(max_hp_scheme_ComboBox->currentIndex() == 0); scheme0_subtraction_spinbox->setVisible(max_hp_scheme_ComboBox->currentIndex() == 0); } else { prevent_awaken_below3_checkbox->setVisible(false); scheme0_subtraction_label->setVisible(false); scheme0_subtraction_spinbox->setVisible(false); } connect(second_general_checkbox, SIGNAL(toggled(bool)), this, SLOT(setMaxHpSchemeBox())); hegemony_maxchoice_label->setVisible(Config.EnableHegemony); connect(hegemony_checkbox, SIGNAL(toggled(bool)), hegemony_maxchoice_label, SLOT(setVisible(bool))); hegemony_maxchoice_spinbox->setVisible(Config.EnableHegemony); connect(hegemony_checkbox, SIGNAL(toggled(bool)), hegemony_maxchoice_spinbox, SLOT(setVisible(bool))); hegemony_maxshown_label->setVisible(Config.EnableHegemony); connect(hegemony_checkbox, SIGNAL(toggled(bool)), hegemony_maxshown_label, SLOT(setVisible(bool))); hegemony_maxshown_spinbox->setVisible(Config.EnableHegemony); connect(hegemony_checkbox, SIGNAL(toggled(bool)), hegemony_maxshown_spinbox, SLOT(setVisible(bool))); return widget; }
QWidget *ServerDialog::createAdvancedTab() { QVBoxLayout *layout = new QVBoxLayout; forbid_same_ip_checkbox = new QCheckBox(tr("Forbid same IP with multiple connection")); forbid_same_ip_checkbox->setChecked(Config.ForbidSIMC); disable_chat_checkbox = new QCheckBox(tr("Disable chat")); disable_chat_checkbox->setChecked(Config.DisableChat); random_seat_checkbox = new QCheckBox(tr("Arrange the seats randomly")); random_seat_checkbox->setChecked(Config.RandomSeat); enable_cheat_checkbox = new QCheckBox(tr("Enable cheat")); enable_cheat_checkbox->setToolTip(tr("<font color=%1>This option enables the cheat menu</font>").arg(Config.SkillDescriptionInToolTipColor.name())); enable_cheat_checkbox->setChecked(Config.EnableCheat); free_choose_checkbox = new QCheckBox(tr("Choose generals and cards freely")); free_choose_checkbox->setChecked(Config.FreeChoose); free_choose_checkbox->setVisible(Config.EnableCheat); connect(enable_cheat_checkbox, SIGNAL(toggled(bool)), free_choose_checkbox, SLOT(setVisible(bool))); pile_swapping_label = new QLabel(tr("Pile-swapping limitation")); pile_swapping_label->setToolTip(tr("<font color=%1>-1 means no limitations</font>").arg(Config.SkillDescriptionInToolTipColor.name())); pile_swapping_spinbox = new QSpinBox; pile_swapping_spinbox->setRange(-1, 15); pile_swapping_spinbox->setValue(Config.value("PileSwappingLimitation", 5).toInt()); hegemony_maxchoice_label = new QLabel(tr("Upperlimit for hegemony")); hegemony_maxchoice_spinbox = new QSpinBox; hegemony_maxchoice_spinbox->setRange(5, 7); //wait for a new extension hegemony_maxchoice_spinbox->setValue(Config.value("HegemonyMaxChoice", 7).toInt()); address_edit = new QLineEdit; address_edit->setText(Config.Address); #if QT_VERSION >= 0x040700 address_edit->setPlaceholderText(tr("Public IP or domain")); #endif QPushButton *detect_button = new QPushButton(tr("Detect my WAN IP")); connect(detect_button, SIGNAL(clicked()), this, SLOT(onDetectButtonClicked())); port_edit = new QLineEdit; port_edit->setText(QString::number(Config.ServerPort)); port_edit->setValidator(new QIntValidator(1, 9999, port_edit)); layout->addLayout(HLay(forbid_same_ip_checkbox, disable_chat_checkbox)); layout->addWidget(random_seat_checkbox); layout->addWidget(enable_cheat_checkbox); layout->addWidget(free_choose_checkbox); layout->addLayout(HLay(pile_swapping_label, pile_swapping_spinbox)); layout->addLayout(HLay(hegemony_maxchoice_label, hegemony_maxchoice_spinbox)); layout->addLayout(HLay(new QLabel(tr("Address")), address_edit)); layout->addWidget(detect_button); layout->addLayout(HLay(new QLabel(tr("Port")), port_edit)); layout->addStretch(); QWidget *widget = new QWidget; widget->setLayout(layout); return widget; }