[dasher: 26/217] Win32 Config to turn off unsaved file prompt. Added prompt at exit
- From: Patrick Welche <pwelche src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [dasher: 26/217] Win32 Config to turn off unsaved file prompt. Added prompt at exit
- Date: Sat, 27 Feb 2016 12:02:31 +0000 (UTC)
commit bee3f2a93ac5e90bf53b3e0b675ae1d3a50c59a5
Author: ipomoena <amajorek google com>
Date: Thu Sep 10 19:27:20 2015 -0700
Win32 Config to turn off unsaved file prompt. Added prompt at exit
Src/Common/AppSettingsData.h | 3 ++-
Src/Common/AppSettingsHeader.h | 2 +-
Src/Win32/Dasher.rc | 15 ++++++++-------
Src/Win32/DasherWindow.cpp | 7 ++++---
Src/Win32/Widgets/AdvancedPage.cpp | 12 ++----------
Src/Win32/Widgets/Edit.cpp | 35 ++++++++++++++++-------------------
Src/Win32/Widgets/Edit.h | 2 +-
Src/Win32/Widgets/FilenameGUI.cpp | 4 ++--
Src/Win32/resource.h | 1 +
9 files changed, 37 insertions(+), 44 deletions(-)
---
diff --git a/Src/Common/AppSettingsData.h b/Src/Common/AppSettingsData.h
index 399c2f4..913566e 100644
--- a/Src/Common/AppSettingsData.h
+++ b/Src/Common/AppSettingsData.h
@@ -52,7 +52,8 @@ struct app_sp_table {
// is useful
app_bp_table app_boolparamtable[] = {
- {APP_BP_TIME_STAMP, "TimeStampNewFiles", PERS, true, true, "TimeStampNewFiles"},
+ { APP_BP_TIME_STAMP, "TimeStampNewFiles", PERS, true, true, "TimeStampNewFiles" },
+ { APP_BP_CONFIRM_UNSAVED, "ConfirmUnsavedFiles", PERS, true, true, "ConfirmUnsavedFiles" },
{APP_BP_SHOW_TOOLBAR, "ViewToolbar", PERS, true, true, "ViewToolbar"},
{APP_BP_SHOW_TOOLBAR_TEXT, "ShowToolbarText", PERS, true, true, "ShowToolbarText"},
{APP_BP_SHOW_LARGE_ICONS, "ShowLargeIcons", PERS, true, true, "ShowLargeIcons"},
diff --git a/Src/Common/AppSettingsHeader.h b/Src/Common/AppSettingsHeader.h
index 7024a47..516500e 100644
--- a/Src/Common/AppSettingsHeader.h
+++ b/Src/Common/AppSettingsHeader.h
@@ -7,7 +7,7 @@
#endif
enum {
- APP_BP_TIME_STAMP = END_OF_SPS, APP_BP_SHOW_TOOLBAR,
+ APP_BP_TIME_STAMP = END_OF_SPS, APP_BP_CONFIRM_UNSAVED, APP_BP_SHOW_TOOLBAR,
APP_BP_SHOW_TOOLBAR_TEXT, APP_BP_SHOW_LARGE_ICONS, APP_BP_FIX_LAYOUT,
APP_BP_COPY_ALL_ON_STOP,APP_BP_WINDOW_PAUSE, APP_BP_SPEECH_MODE,
APP_BP_KEYBOARD_MODE, APP_BP_SPEECH_WORD, END_OF_APP_BPS
diff --git a/Src/Win32/Dasher.rc b/Src/Win32/Dasher.rc
index b5a7a09..9d47662 100644
--- a/Src/Win32/Dasher.rc
+++ b/Src/Win32/Dasher.rc
@@ -177,23 +177,24 @@ BEGIN
END
IDD_APPPAGE DIALOGEX 0, 0, 381, 238
-STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
- CONTROL "Control mode",IDC_CONTROLMODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,54,59,10
- CONTROL "Show toolbar",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,30,58,10
- CONTROL "Show statusbar",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,42,66,10
CONTROL "Timestamp new files",IDC_TIMESTAMP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,18,80,8
+ CONTROL "Confirm unsaved changes",IDC_CONFIRM_UNSAVED,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,12,30,108,8
+ CONTROL "Show toolbar",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,42,58,10
+ CONTROL "Show statusbar",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,54,66,10
+ CONTROL "Control mode",IDC_CONTROLMODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,66,59,10
CONTROL "Stand-alone",IDC_STYLE_STANDALONE,"Button",BS_AUTORADIOBUTTON | WS_GROUP |
WS_TABSTOP,204,96,55,10
CONTROL "Composition",IDC_STYLE_COMPOSITION,"Button",BS_AUTORADIOBUTTON |
WS_TABSTOP,204,120,55,10
CONTROL "Direct entry",IDC_STYLE_DIRECT,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,204,108,54,10
GROUPBOX "Application Style:",IDC_STATIC,198,84,180,63
CONTROL "Full screen",IDC_STYLE_FULL,"Button",BS_AUTORADIOBUTTON | NOT WS_VISIBLE |
WS_TABSTOP,204,132,50,10
- GROUPBOX "Application Options:",IDC_STATIC,6,6,180,66
+ GROUPBOX "Application Options:",IDC_STATIC,6,6,180,78
GROUPBOX "Speech:",IDC_STATIC,198,6,180,39
- GROUPBOX "Editor Font:",IDC_STATIC,6,78,180,30
- PUSHBUTTON "Change Font",IDC_EFONT_BUTTON,12,90,166,14
+ GROUPBOX "Editor Font:",IDC_STATIC,6,90,180,30
+ PUSHBUTTON "Change Font",IDC_EFONT_BUTTON,12,102,166,14
CONTROL "Speak on stop",IDC_CHECK3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,204,18,99,10
CONTROL "Speak on word breaks",IDC_CHECK4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,204,30,90,10
GROUPBOX "Clipboard:",IDC_STATIC,198,48,180,30
diff --git a/Src/Win32/DasherWindow.cpp b/Src/Win32/DasherWindow.cpp
index 9984797..d48f6e5 100644
--- a/Src/Win32/DasherWindow.cpp
+++ b/Src/Win32/DasherWindow.cpp
@@ -321,9 +321,10 @@ LRESULT CDasherWindow::OnInitMenuPopup(UINT message, WPARAM wParam, LPARAM lPara
}
LRESULT CDasherWindow::OnClose(UINT message, WPARAM wParam, LPARAM lParam, BOOL& bHandled) {
- // TODO: Prompt for confirmation here
- SaveWindowState();
- DestroyWindow();
+ if (m_pEdit->ConfirmAndSaveIfNeeded()) {
+ SaveWindowState();
+ DestroyWindow();
+ }
return 0;
}
diff --git a/Src/Win32/Widgets/AdvancedPage.cpp b/Src/Win32/Widgets/AdvancedPage.cpp
index 9c2dead..40f10e9 100644
--- a/Src/Win32/Widgets/AdvancedPage.cpp
+++ b/Src/Win32/Widgets/AdvancedPage.cpp
@@ -40,7 +40,8 @@ struct menuentry {
static menuentry menutable[] = {
{APP_BP_SHOW_TOOLBAR, IDC_CHECK1},
{BP_SHOW_SLIDER, IDC_CHECK2},
- {APP_BP_TIME_STAMP, IDC_TIMESTAMP},
+ { APP_BP_TIME_STAMP, IDC_TIMESTAMP },
+ { APP_BP_CONFIRM_UNSAVED, IDC_CONFIRM_UNSAVED },
{BP_CONTROL_MODE, IDC_CONTROLMODE}, // Not global setting - specific to editbox/widget
{BP_SPEAK_WORDS, IDC_CHECK4},
{BP_SPEAK_ALL_ON_STOP, IDC_CHECK3},
@@ -60,15 +61,6 @@ std::string CAdvancedPage::GetControlText(HWND Dialog, int ControlID)
}
void CAdvancedPage::PopulateList() {
-
- //if(m_pAppSettings->GetBoolParameter(APP_BP_TIME_STAMP)) {
- // SendMessage(GetDlgItem(m_hwnd, IDC_TIMESTAMP), BM_SETCHECK, BST_CHECKED, 0);
- // }
- // else {
- // SendMessage(GetDlgItem(m_hwnd, IDC_TIMESTAMP), BM_SETCHECK, BST_UNCHECKED, 0);
- // }
-
-
// Populate the controls in the dialogue box based on the relevent parameters
for(int ii = 0; ii<sizeof(menutable)/sizeof(menuentry); ii++)
{
diff --git a/Src/Win32/Widgets/Edit.cpp b/Src/Win32/Widgets/Edit.cpp
index 0f283e0..4535b22 100644
--- a/Src/Win32/Widgets/Edit.cpp
+++ b/Src/Win32/Widgets/Edit.cpp
@@ -175,35 +175,32 @@ bool CEdit::Save() {
return true;
}
-void CEdit::New() {
+bool CEdit::ConfirmAndSaveIfNeeded() {
+ if (!m_pAppSettings->GetBoolParameter(APP_BP_CONFIRM_UNSAVED))
+ return true;
+
switch (m_FilenameGUI->QuerySaveFirst()) {
case IDYES:
- if(!Save())
- if(!TSaveAs(m_FilenameGUI->SaveAs()))
- return;
+ if (!Save())
+ if (!TSaveAs(m_FilenameGUI->SaveAs()))
+ return false;
break;
case IDNO:
break;
default:
- return;
+ return false;
}
- TNew(TEXT(""));
+ return true;
+}
+
+void CEdit::New() {
+ if (ConfirmAndSaveIfNeeded())
+ TNew(TEXT(""));
}
void CEdit::Open() {
- switch (m_FilenameGUI->QuerySaveFirst()) {
- case IDYES:
- if(!Save())
- if(!TSaveAs(m_FilenameGUI->SaveAs()))
- return;
- break;
- case IDNO:
- break;
- default:
- return;
- break;
- }
- TOpen(m_FilenameGUI->Open());
+ if (ConfirmAndSaveIfNeeded())
+ TOpen(m_FilenameGUI->Open());
}
void CEdit::SaveAs() {
diff --git a/Src/Win32/Widgets/Edit.h b/Src/Win32/Widgets/Edit.h
index c670d08..4d81127 100644
--- a/Src/Win32/Widgets/Edit.h
+++ b/Src/Win32/Widgets/Edit.h
@@ -87,7 +87,7 @@ class CEdit : public ATL::CWindowImpl<CEdit> {
int Move(bool bForwards, Dasher::CControlManager::EditDistance iDist);
int Delete(bool bForwards, Dasher::CControlManager::EditDistance iDist);
void SetKeyboardTarget(HWND hwnd);
-
+ bool ConfirmAndSaveIfNeeded();
bool Save();
// Functions for Windows GUI to call
void New();
diff --git a/Src/Win32/Widgets/FilenameGUI.cpp b/Src/Win32/Widgets/FilenameGUI.cpp
index 3120bc8..62736c9 100644
--- a/Src/Win32/Widgets/FilenameGUI.cpp
+++ b/Src/Win32/Widgets/FilenameGUI.cpp
@@ -203,8 +203,8 @@ int CFilenameGUI::QuerySaveFirst() {
WinLocalisation::GetResourceString(IDS_QUERY_SAVE_CHANGES, &ResourceString);
WinLocalisation::GetResourceString(IDS_UNSAVED_CHANGES, &Title);
- return IDNO;// MessageBox(WindowWithTitlebar, ResourceString.c_str(), Title.c_str(), MB_YESNOCANCEL |
MB_ICONWARNING | MB_DEFBUTTON1 | MB_APPLMODAL);
- }
+ return MessageBox(WindowWithTitlebar, ResourceString.c_str(), Title.c_str(), MB_YESNOCANCEL |
MB_ICONWARNING | MB_DEFBUTTON1 | MB_APPLMODAL);
+ }
return IDNO;
}
diff --git a/Src/Win32/resource.h b/Src/Win32/resource.h
index 28cdaa6..851aa80 100644
--- a/Src/Win32/resource.h
+++ b/Src/Win32/resource.h
@@ -55,6 +55,7 @@
#define IDC_OUTLINE 1091
#define IDC_STOPIDLE 1091
#define IDC_TIMESTAMP 1092
+#define IDC_CONFIRM_UNSAVED 1093
#define IDC_DRAWMOUSE 1094
#define IDC_DRAWMOUSELINE 1097
#define IDC_COLOURSCHEME 1098
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]