mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-08-14 04:05:52 +08:00
Change of wifi config dialog showing rules
do not show automatically after decline
This commit is contained in:
parent
9974e4e33f
commit
0e889eae09
@ -2611,7 +2611,7 @@ void GUI_App::add_config_menu(wxMenuBar *menu)
|
|||||||
break;
|
break;
|
||||||
case ConfigMenuWifiConfigFile:
|
case ConfigMenuWifiConfigFile:
|
||||||
{
|
{
|
||||||
open_wifi_config_dialog();
|
open_wifi_config_dialog(true);
|
||||||
/*
|
/*
|
||||||
std::string file_path;
|
std::string file_path;
|
||||||
WifiConfigDialog dialog(mainframe, file_path, removable_drive_manager());
|
WifiConfigDialog dialog(mainframe, file_path, removable_drive_manager());
|
||||||
@ -3574,17 +3574,35 @@ void GUI_App::start_download(std::string url)
|
|||||||
m_downloader->start_download(url);
|
m_downloader->start_download(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GUI_App::open_wifi_config_dialog(const wxString& drive_path/* = {}*/)
|
void GUI_App::open_wifi_config_dialog(bool forced, const wxString& drive_path/* = {}*/)
|
||||||
{
|
{
|
||||||
if(m_wifi_config_dialog_shown)
|
if(m_wifi_config_dialog_shown)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (!forced && m_wifi_config_dialog_was_declined) {
|
||||||
|
|
||||||
|
// dialog was already declined this run, show only notification
|
||||||
|
notification_manager()->push_notification(NotificationType::WifiConfigFileDetected
|
||||||
|
, NotificationManager::NotificationLevel::ImportantNotificationLevel
|
||||||
|
// TRN Text of notification when Slicer starts and usb stick with printer settings ini file is present
|
||||||
|
, _u8L("Printer configuration file detected on removable media.")
|
||||||
|
// TRN Text of hypertext of notification when Slicer starts and usb stick with printer settings ini file is present
|
||||||
|
, _u8L("Write Wi-Fi credetials."), [drive_path](wxEvtHandler* evt_hndlr) {
|
||||||
|
wxGetApp().open_wifi_config_dialog(true, drive_path);
|
||||||
|
return true; });
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
m_wifi_config_dialog_shown = true;
|
m_wifi_config_dialog_shown = true;
|
||||||
std::string file_path;
|
std::string file_path;
|
||||||
WifiConfigDialog dialog(mainframe, file_path, removable_drive_manager(), drive_path);
|
WifiConfigDialog dialog(mainframe, file_path, removable_drive_manager(), drive_path);
|
||||||
if (dialog.ShowModal() == wxID_OK)
|
if (dialog.ShowModal() == wxID_OK) {
|
||||||
{
|
//wxString used_path = dialog.get_used_path();
|
||||||
|
//if(std::find(m_wifi_config_dialog_used_paths.begin(), m_wifi_config_dialog_used_paths.end(), used_path) == m_wifi_config_dialog_used_paths.end())
|
||||||
|
// m_wifi_config_dialog_used_paths.emplace_back(std::move(used_path));
|
||||||
plater_->get_notification_manager()->push_exporting_finished_notification(file_path, boost::filesystem::path(file_path).parent_path().string(), true);
|
plater_->get_notification_manager()->push_exporting_finished_notification(file_path, boost::filesystem::path(file_path).parent_path().string(), true);
|
||||||
}
|
} else
|
||||||
|
m_wifi_config_dialog_was_declined = true;
|
||||||
m_wifi_config_dialog_shown = false;
|
m_wifi_config_dialog_shown = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -379,7 +379,7 @@ public:
|
|||||||
// URL download - PrusaSlicer gets system call to open prusaslicer:// URL which should contain address of download
|
// URL download - PrusaSlicer gets system call to open prusaslicer:// URL which should contain address of download
|
||||||
void start_download(std::string url);
|
void start_download(std::string url);
|
||||||
|
|
||||||
void open_wifi_config_dialog(const wxString& drive_path = {});
|
void open_wifi_config_dialog(bool forced, const wxString& drive_path = {});
|
||||||
bool get_wifi_config_dialog_shown() const { return m_wifi_config_dialog_shown; }
|
bool get_wifi_config_dialog_shown() const { return m_wifi_config_dialog_shown; }
|
||||||
private:
|
private:
|
||||||
bool on_init_inner();
|
bool on_init_inner();
|
||||||
@ -404,6 +404,7 @@ private:
|
|||||||
|
|
||||||
bool m_datadir_redefined { false };
|
bool m_datadir_redefined { false };
|
||||||
bool m_wifi_config_dialog_shown { false };
|
bool m_wifi_config_dialog_shown { false };
|
||||||
|
bool m_wifi_config_dialog_was_declined { false };
|
||||||
};
|
};
|
||||||
|
|
||||||
DECLARE_APP(GUI_App)
|
DECLARE_APP(GUI_App)
|
||||||
|
@ -2289,7 +2289,7 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame)
|
|||||||
const std::string CONFIG_FILE_NAME = "prusa_printer_settings.ini";
|
const std::string CONFIG_FILE_NAME = "prusa_printer_settings.ini";
|
||||||
if (evt.GetInt() == 0) { // not at startup, show dialog
|
if (evt.GetInt() == 0) { // not at startup, show dialog
|
||||||
if (fs::exists(fs::path(evt.GetString().utf8_string()) / CONFIG_FILE_NAME))
|
if (fs::exists(fs::path(evt.GetString().utf8_string()) / CONFIG_FILE_NAME))
|
||||||
wxGetApp().open_wifi_config_dialog(evt.GetString());
|
wxGetApp().open_wifi_config_dialog(false, evt.GetString());
|
||||||
} else { // at startup, show only notification
|
} else { // at startup, show only notification
|
||||||
notification_manager->push_notification(NotificationType::WifiConfigFileDetected
|
notification_manager->push_notification(NotificationType::WifiConfigFileDetected
|
||||||
, NotificationManager::NotificationLevel::ImportantNotificationLevel
|
, NotificationManager::NotificationLevel::ImportantNotificationLevel
|
||||||
@ -2297,8 +2297,8 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame)
|
|||||||
, _u8L("Printer configuration file detected on removable media.")
|
, _u8L("Printer configuration file detected on removable media.")
|
||||||
// TRN Text of hypertext of notification when Slicer starts and usb stick with printer settings ini file is present
|
// TRN Text of hypertext of notification when Slicer starts and usb stick with printer settings ini file is present
|
||||||
, _u8L("Write Wi-Fi credetials."), [evt, CONFIG_FILE_NAME](wxEvtHandler* evt_hndlr){
|
, _u8L("Write Wi-Fi credetials."), [evt, CONFIG_FILE_NAME](wxEvtHandler* evt_hndlr){
|
||||||
if (fs::exists(fs::path(evt.GetString().utf8_string()) / CONFIG_FILE_NAME))
|
//if (fs::exists(fs::path(evt.GetString().utf8_string()) / CONFIG_FILE_NAME))
|
||||||
wxGetApp().open_wifi_config_dialog(evt.GetString());
|
wxGetApp().open_wifi_config_dialog(true, evt.GetString());
|
||||||
return true;});
|
return true;});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,8 +50,9 @@ WifiConfigDialog::WifiConfigDialog(wxWindow* parent, std::string& file_path, Rem
|
|||||||
m_ssid_combo->SetToolTip(_L("On some versions of MacOS, this only loads SSID of connected network."));
|
m_ssid_combo->SetToolTip(_L("On some versions of MacOS, this only loads SSID of connected network."));
|
||||||
#endif // __APPLE__
|
#endif // __APPLE__
|
||||||
rescan_networks(false);
|
rescan_networks(false);
|
||||||
|
m_ssid_button_id = NewControlId();
|
||||||
// TRN Text of button to rescan visible networks in Wifi Config dialog.
|
// TRN Text of button to rescan visible networks in Wifi Config dialog.
|
||||||
wxButton* ssid_button = new wxButton(panel, wxID_ANY, _(L("Rescan")));
|
wxButton* ssid_button = new wxButton(panel, m_ssid_button_id, _(L("Rescan")));
|
||||||
ssid_sizer->Add(m_ssid_combo, 1, wxALIGN_CENTER_VERTICAL | wxRIGHT, 10);
|
ssid_sizer->Add(m_ssid_combo, 1, wxALIGN_CENTER_VERTICAL | wxRIGHT, 10);
|
||||||
ssid_sizer->Add(ssid_button, 0);
|
ssid_sizer->Add(ssid_button, 0);
|
||||||
|
|
||||||
@ -61,8 +62,9 @@ WifiConfigDialog::WifiConfigDialog(wxWindow* parent, std::string& file_path, Rem
|
|||||||
m_pass_textctrl = new ::TextInput(panel, "", "", "", wxDefaultPosition, wxDefaultSize);
|
m_pass_textctrl = new ::TextInput(panel, "", "", "", wxDefaultPosition, wxDefaultSize);
|
||||||
pass_sizer->Add(m_pass_textctrl, 1, wxALIGN_CENTER_VERTICAL, 10);
|
pass_sizer->Add(m_pass_textctrl, 1, wxALIGN_CENTER_VERTICAL, 10);
|
||||||
#if __APPLE__
|
#if __APPLE__
|
||||||
|
m_pass_button_id = NewControlId();
|
||||||
// TRN Text of button to retrieve password from keychain in Wifi Config dialog. Only on Mac.
|
// TRN Text of button to retrieve password from keychain in Wifi Config dialog. Only on Mac.
|
||||||
wxButton* pass_button = new wxButton(panel, wxID_ANY, _(L("Retrieve")));
|
wxButton* pass_button = new wxButton(panel, m_pass_button_id, _(L("Retrieve")));
|
||||||
pass_sizer->Add(pass_button, 0);
|
pass_sizer->Add(pass_button, 0);
|
||||||
pass_button->Bind(wxEVT_BUTTON, &WifiConfigDialog::on_retrieve_password, this);
|
pass_button->Bind(wxEVT_BUTTON, &WifiConfigDialog::on_retrieve_password, this);
|
||||||
#endif // __APPLE__
|
#endif // __APPLE__
|
||||||
@ -74,8 +76,9 @@ WifiConfigDialog::WifiConfigDialog(wxWindow* parent, std::string& file_path, Rem
|
|||||||
wxStaticText* drive_label = new wxStaticText(panel, wxID_ANY, GUI::format_wxstr("%1%:", _L("Drive")));
|
wxStaticText* drive_label = new wxStaticText(panel, wxID_ANY, GUI::format_wxstr("%1%:", _L("Drive")));
|
||||||
m_drive_combo = new ::ComboBox(panel, wxID_ANY);
|
m_drive_combo = new ::ComboBox(panel, wxID_ANY);
|
||||||
rescan_drives(preffered_drive);
|
rescan_drives(preffered_drive);
|
||||||
|
m_drive_button_id = NewControlId();
|
||||||
// TRN Text of button to rescan connect usb drives in Wifi Config dialog.
|
// TRN Text of button to rescan connect usb drives in Wifi Config dialog.
|
||||||
wxButton* drive_button = new wxButton(panel, wxID_ANY, _(L("Rescan")));
|
wxButton* drive_button = new wxButton(panel, m_drive_button_id, _(L("Rescan")));
|
||||||
drive_sizer->Add(m_drive_combo, 1, wxALIGN_CENTER_VERTICAL | wxRIGHT, 10);
|
drive_sizer->Add(m_drive_combo, 1, wxALIGN_CENTER_VERTICAL | wxRIGHT, 10);
|
||||||
drive_sizer->Add(drive_button, 0);
|
drive_sizer->Add(drive_button, 0);
|
||||||
|
|
||||||
@ -274,6 +277,7 @@ void WifiConfigDialog::on_ok(wxCommandEvent& e)
|
|||||||
data += "\n";
|
data += "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_used_path = boost::nowide::widen(file_path.string());
|
||||||
FILE* file;
|
FILE* file;
|
||||||
file = fopen(file_path.string().c_str(), "w");
|
file = fopen(file_path.string().c_str(), "w");
|
||||||
if (file == NULL) {
|
if (file == NULL) {
|
||||||
@ -292,8 +296,8 @@ void WifiConfigDialog::on_dpi_changed(const wxRect& suggested_rect)
|
|||||||
{
|
{
|
||||||
SetFont(wxGetApp().normal_font());
|
SetFont(wxGetApp().normal_font());
|
||||||
|
|
||||||
//const int em = em_unit();
|
const int em = em_unit();
|
||||||
//msw_buttons_rescale(this, em, { wxID_OK, wxID_CANCEL });
|
msw_buttons_rescale(this, em, { wxID_OK, wxID_CANCEL, m_ssid_button_id, m_pass_button_id, m_drive_button_id });
|
||||||
|
|
||||||
Fit();
|
Fit();
|
||||||
Refresh();
|
Refresh();
|
||||||
|
@ -22,10 +22,20 @@ class WifiConfigDialog : public DPIDialog
|
|||||||
public:
|
public:
|
||||||
WifiConfigDialog(wxWindow* parent, std::string& file_path, RemovableDriveManager* removable_manager, const wxString& preffered_drive );
|
WifiConfigDialog(wxWindow* parent, std::string& file_path, RemovableDriveManager* removable_manager, const wxString& preffered_drive );
|
||||||
~WifiConfigDialog();
|
~WifiConfigDialog();
|
||||||
|
wxString get_used_path() const { return m_used_path; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
::ComboBox* m_ssid_combo {nullptr};
|
::ComboBox* m_ssid_combo {nullptr};
|
||||||
::TextInput* m_pass_textctrl {nullptr};
|
::TextInput* m_pass_textctrl {nullptr};
|
||||||
::ComboBox* m_drive_combo {nullptr};
|
::ComboBox* m_drive_combo {nullptr};
|
||||||
|
// reference to string that is filled after ShowModal is called from owner
|
||||||
|
std::string& out_file_path;
|
||||||
|
WifiScanner* m_wifi_scanner;
|
||||||
|
RemovableDriveManager* m_removable_manager;
|
||||||
|
wxString m_used_path;
|
||||||
|
int m_ssid_button_id {wxID_ANY};
|
||||||
|
int m_pass_button_id {wxID_ANY};
|
||||||
|
int m_drive_button_id {wxID_ANY};
|
||||||
|
|
||||||
void on_ok(wxCommandEvent& e);
|
void on_ok(wxCommandEvent& e);
|
||||||
void on_combo(wxCommandEvent& e);
|
void on_combo(wxCommandEvent& e);
|
||||||
@ -35,10 +45,7 @@ private:
|
|||||||
void rescan_drives(const wxString& preffered_drive);
|
void rescan_drives(const wxString& preffered_drive);
|
||||||
void rescan_networks(bool select);
|
void rescan_networks(bool select);
|
||||||
void fill_password();
|
void fill_password();
|
||||||
// reference to string that is filled after ShowModal is called from owner
|
|
||||||
std::string& out_file_path;
|
|
||||||
WifiScanner* m_wifi_scanner;
|
|
||||||
RemovableDriveManager* m_removable_manager;
|
|
||||||
protected:
|
protected:
|
||||||
void on_dpi_changed(const wxRect& suggested_rect) override;
|
void on_dpi_changed(const wxRect& suggested_rect) override;
|
||||||
void on_sys_color_changed() override {}
|
void on_sys_color_changed() override {}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user