@@ -59,20 +59,29 @@ RegistDialog::RegistDialog(Settings *settings, const QString &host, QWidget *par
5959 broadcast_check_box->setChecked (host.isEmpty ());
6060
6161 auto UpdatePSNIDEdits = [this ]() {
62- psn_online_id_edit->setEnabled (psn_online_id_radio_button->isChecked ());
63- psn_account_id_edit->setEnabled (psn_account_id_radio_button->isChecked ());
62+ bool need_account_id = NeedAccountId ();
63+ psn_online_id_edit->setEnabled (!need_account_id);
64+ psn_account_id_edit->setEnabled (need_account_id);
6465 };
6566
66- psn_online_id_radio_button = new QRadioButton (tr (" PSN Online-ID (username, case-sensitive) for PS4 < 7.0:" ), this );
67- psn_online_id_edit = new QLineEdit (this );
68- form_layout->addRow (psn_online_id_radio_button, psn_online_id_edit);
69- connect (psn_online_id_radio_button, &QRadioButton::toggled, this , UpdatePSNIDEdits);
67+ auto version_layout = new QVBoxLayout (nullptr );
68+ ps4_pre9_radio_button = new QRadioButton (tr (" < 7.0" ), this );
69+ version_layout->addWidget (ps4_pre9_radio_button);
70+ connect (ps4_pre9_radio_button, &QRadioButton::toggled, this , UpdatePSNIDEdits);
71+ ps4_pre10_radio_button = new QRadioButton (tr (" >= 7.0, < 8.0" ), this );
72+ version_layout->addWidget (ps4_pre10_radio_button);
73+ connect (ps4_pre10_radio_button, &QRadioButton::toggled, this , UpdatePSNIDEdits);
74+ ps4_10_radio_button = new QRadioButton (tr (" >= 8.0" ), this );
75+ version_layout->addWidget (ps4_10_radio_button);
76+ connect (ps4_10_radio_button, &QRadioButton::toggled, this , UpdatePSNIDEdits);
77+ form_layout->addRow (tr (" PS4 Firmware:" ), version_layout);
7078
71- psn_account_id_radio_button = new QRadioButton (tr (" PSN Account-ID (base64) for PS4 >= 7.0:" ), this );
79+ psn_online_id_edit = new QLineEdit (this );
80+ form_layout->addRow (tr (" PSN Online-ID (username, case-sensitive):" ), psn_online_id_edit);
7281 psn_account_id_edit = new QLineEdit (this );
73- form_layout->addRow (psn_account_id_radio_button , psn_account_id_edit);
74- psn_account_id_radio_button-> setChecked ( true );
75- connect (psn_account_id_radio_button, &QRadioButton::toggled, this , UpdatePSNIDEdits );
82+ form_layout->addRow (tr ( " PSN Account-ID (base64): " ) , psn_account_id_edit);
83+
84+ ps4_10_radio_button-> setChecked ( true );
7685
7786 UpdatePSNIDEdits ();
7887
@@ -96,11 +105,17 @@ RegistDialog::~RegistDialog()
96105{
97106}
98107
108+ bool RegistDialog::NeedAccountId ()
109+ {
110+ return !ps4_pre9_radio_button->isChecked ();
111+ }
112+
99113void RegistDialog::ValidateInput ()
100114{
115+ bool need_account_id = NeedAccountId ();
101116 bool valid = !host_edit->text ().trimmed ().isEmpty ()
102- && (!psn_online_id_radio_button-> isChecked () || ! psn_online_id_edit->text ().trimmed ().isEmpty ())
103- && (!psn_account_id_radio_button-> isChecked () || !psn_account_id_radio_button ->text ().trimmed ().isEmpty ())
117+ && !(!need_account_id && psn_online_id_edit->text ().trimmed ().isEmpty ())
118+ && !(need_account_id && psn_account_id_edit ->text ().trimmed ().isEmpty ())
104119 && pin_edit->text ().length () == PIN_LENGTH;
105120 register_button->setEnabled (valid);
106121}
@@ -111,8 +126,16 @@ void RegistDialog::accept()
111126 QByteArray host = host_edit->text ().trimmed ().toUtf8 ();
112127 info.host = host.constData ();
113128
129+ if (ps4_pre9_radio_button->isChecked ())
130+ info.target = CHIAKI_TARGET_PS4_8;
131+ else if (ps4_pre10_radio_button->isChecked ())
132+ info.target = CHIAKI_TARGET_PS4_9;
133+ else
134+ info.target = CHIAKI_TARGET_PS4_10;
135+
136+ bool need_account_id = NeedAccountId ();
114137 QByteArray psn_id; // keep this out of the if scope
115- if (psn_online_id_radio_button-> isChecked () )
138+ if (!need_account_id )
116139 {
117140 psn_id = psn_online_id_edit->text ().trimmed ().toUtf8 ();
118141 info.psn_online_id = psn_id.constData ();
0 commit comments