summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2012-07-16 20:42:32 +0200
committerNatanael Copa <ncopa@alpinelinux.org>2012-07-16 20:42:32 +0200
commit0d2a5ccadac5abf08a0fdc9c80be75dc4e4b5534 (patch)
tree3b0dfb8e8b723fc74fce42b399b73538a9b33b95
parent10ea3185eeaf7c8859bef5044f5a224bf0cd3e3f (diff)
downloadalpine-usb-creator-0d2a5ccadac5abf08a0fdc9c80be75dc4e4b5534.tar.bz2
alpine-usb-creator-0d2a5ccadac5abf08a0fdc9c80be75dc4e4b5534.tar.xz
Enable start button only when source and target is selected
-rw-r--r--alpine-usb-creator.fbp6
-rw-r--r--dialog.cpp26
-rw-r--r--dialog.h4
3 files changed, 32 insertions, 4 deletions
diff --git a/alpine-usb-creator.fbp b/alpine-usb-creator.fbp
index 3c388b7..673fc16 100644
--- a/alpine-usb-creator.fbp
+++ b/alpine-usb-creator.fbp
@@ -432,7 +432,7 @@
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
- <event name="OnFileChanged"></event>
+ <event name="OnFileChanged">OnIsoChange</event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
@@ -500,7 +500,7 @@
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnChar"></event>
- <event name="OnChoice"></event>
+ <event name="OnChoice">OnTargetChange</event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
@@ -665,7 +665,7 @@
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default">0</property>
- <property name="enabled">1</property>
+ <property name="enabled">0</property>
<property name="fg"></property>
<property name="font"></property>
<property name="hidden">0</property>
diff --git a/dialog.cpp b/dialog.cpp
index 7b5145b..73a0ff2 100644
--- a/dialog.cpp
+++ b/dialog.cpp
@@ -33,11 +33,14 @@ void Dialog::RefreshDrives(void)
m_target->Clear();
m_target->Append(wxT("~/tmp/alpine"));
#endif
+ if (!m_target->IsEmpty())
+ m_target->SetSelection(0);
}
void Dialog::OnRefreshDrives(wxCommandEvent &event)
{
RefreshDrives();
+ UpdateStartButton();
}
void Dialog::OnStartButton(wxCommandEvent &event)
@@ -47,5 +50,26 @@ void Dialog::OnStartButton(wxCommandEvent &event)
void Dialog::OnCancelButton(wxCommandEvent &event)
{
- Close();
+ Close();
}
+
+void Dialog::UpdateStartButton(void)
+{
+ if ((m_target->GetSelection() != wxNOT_FOUND)
+ && wxFileExists(m_iso_picker->GetPath())) {
+ m_start_button->Enable();
+ } else {
+ m_start_button->Disable();
+ }
+}
+
+void Dialog::OnIsoChange(wxFileDirPickerEvent &event)
+{
+ UpdateStartButton();
+}
+
+void Dialog::OnTargetChange(wxCommandEvent &event)
+{
+ UpdateStartButton();
+}
+
diff --git a/dialog.h b/dialog.h
index e187c19..d8eb652 100644
--- a/dialog.h
+++ b/dialog.h
@@ -10,9 +10,13 @@ public:
void RefreshDrives(void);
protected:
+ void UpdateStartButton(void);
+
void OnRefreshDrives(wxCommandEvent& event);
void OnStartButton(wxCommandEvent& event);
void OnCancelButton(wxCommandEvent& event);
+ void OnIsoChange(wxFileDirPickerEvent &event);
+ void OnTargetChange(wxCommandEvent& event);
};
#endif