Terminal Prefs: replace "OK" with "Defaults"

Again, this is the more standard way to do things in Haiku.
This commit is contained in:
Adrien Destugues
2014-11-10 11:46:26 +01:00
parent cca6cae659
commit defb82922a
5 changed files with 32 additions and 38 deletions
+4 -2
View File
@@ -411,9 +411,11 @@ AppearancePrefView::_SetCurrentColorScheme()
} }
} }
// If the scheme is not one of the known ones, assume a custom one.
if (currentSchemeName == NULL)
currentSchemeName = "Custom";
for (int32 i = 0; i < fColorSchemeField->Menu()->CountItems(); i++) { for (int32 i = 0; i < fColorSchemeField->Menu()->CountItems(); i++) {
if (currentSchemeName == NULL)
break;
BMenuItem* item = fColorSchemeField->Menu()->ItemAt(i); BMenuItem* item = fColorSchemeField->Menu()->ItemAt(i);
if (strcmp(item->Label(), currentSchemeName) == 0) { if (strcmp(item->Label(), currentSchemeName) == 0) {
item->SetMarked(true); item->SetMarked(true);
+6 -4
View File
@@ -98,15 +98,17 @@ static const pref_defaults kTermDefaults[] = {
PrefHandler *PrefHandler::sPrefHandler = NULL; PrefHandler *PrefHandler::sPrefHandler = NULL;
PrefHandler::PrefHandler() PrefHandler::PrefHandler(bool loadSettings)
: :
fContainer('Pref') fContainer('Pref')
{ {
_LoadFromDefault(kTermDefaults); _LoadFromDefault(kTermDefaults);
BPath path; if (loadSettings) {
GetDefaultPath(path); BPath path;
OpenText(path.Path()); GetDefaultPath(path);
OpenText(path.Path());
}
_ConfirmFont(be_fixed_font); _ConfirmFont(be_fixed_font);
} }
+1 -1
View File
@@ -42,7 +42,7 @@ class BEntry;
class PrefHandler { class PrefHandler {
public: public:
PrefHandler(const PrefHandler* p); PrefHandler(const PrefHandler* p);
PrefHandler(); PrefHandler(bool loadSettings = true);
~PrefHandler(); ~PrefHandler();
static PrefHandler *Default(); static PrefHandler *Default();
+18 -28
View File
@@ -54,12 +54,13 @@ PrefWindow::PrefWindow(const BMessenger& messenger)
.Add(fRevertButton = new BButton("revertbutton", .Add(fRevertButton = new BButton("revertbutton",
B_TRANSLATE("Revert"), new BMessage(MSG_REVERT_PRESSED), B_TRANSLATE("Revert"), new BMessage(MSG_REVERT_PRESSED),
B_WILL_DRAW)) B_WILL_DRAW))
.Add(fSaveButton = new BButton("okbutton", B_TRANSLATE("OK"), .Add(fDefaultsButton = new BButton("okbutton",
new BMessage(MSG_SAVE_PRESSED), B_WILL_DRAW)) B_TRANSLATE("Defaults"), new BMessage(MSG_DEFAULTS_PRESSED),
B_WILL_DRAW))
.End() .End()
.End(); .End();
fSaveButton->MakeDefault(true); fRevertButton->SetEnabled(fDirty);
AddShortcut('Q', B_COMMAND_KEY, new BMessage(B_QUIT_REQUESTED)); AddShortcut('Q', B_COMMAND_KEY, new BMessage(B_QUIT_REQUESTED));
AddShortcut('W', B_COMMAND_KEY, new BMessage(B_QUIT_REQUESTED)); AddShortcut('W', B_COMMAND_KEY, new BMessage(B_QUIT_REQUESTED));
@@ -87,26 +88,8 @@ PrefWindow::Quit()
bool bool
PrefWindow::QuitRequested() PrefWindow::QuitRequested()
{ {
if (!fDirty) if (fDirty)
return true;
BAlert* alert = new BAlert("",
B_TRANSLATE("Save changes to this settings panel?"),
B_TRANSLATE("Cancel"), B_TRANSLATE("Don't save"), B_TRANSLATE("Save"),
B_WIDTH_AS_USUAL, B_OFFSET_SPACING,
B_WARNING_ALERT);
alert->SetShortcut(0, B_ESCAPE);
alert->SetShortcut(1, 'd');
alert->SetShortcut(2, 's');
int32 index = alert->Go();
if (index == 0)
return false;
if (index == 2)
_Save(); _Save();
else
_Revert();
return true; return true;
} }
@@ -136,7 +119,8 @@ PrefWindow::_SaveRequested(BMessage *msg)
BDirectory dir(&dirref); BDirectory dir(&dirref);
BPath path(&dir, filename); BPath path(&dir, filename);
PrefHandler::Default()->SaveAsText(path.Path(), PREFFILE_MIMETYPE, TERM_SIGNATURE); PrefHandler::Default()->SaveAsText(path.Path(), PREFFILE_MIMETYPE,
TERM_SIGNATURE);
} }
@@ -165,6 +149,7 @@ PrefWindow::_Revert()
fAppearanceView->Revert(); fAppearanceView->Revert();
fDirty = false; fDirty = false;
fRevertButton->SetEnabled(fDirty);
} }
} }
@@ -173,11 +158,6 @@ void
PrefWindow::MessageReceived(BMessage* msg) PrefWindow::MessageReceived(BMessage* msg)
{ {
switch (msg->what) { switch (msg->what) {
case MSG_SAVE_PRESSED:
_Save();
PostMessage(B_QUIT_REQUESTED);
break;
case MSG_SAVEAS_PRESSED: case MSG_SAVEAS_PRESSED:
_SaveAs(); _SaveAs();
break; break;
@@ -186,8 +166,18 @@ PrefWindow::MessageReceived(BMessage* msg)
_Revert(); _Revert();
break; break;
case MSG_DEFAULTS_PRESSED:
PrefHandler::SetDefault(new PrefHandler(false));
fTerminalMessenger.SendMessage(MSG_HALF_FONT_CHANGED);
fTerminalMessenger.SendMessage(MSG_COLOR_CHANGED);
fTerminalMessenger.SendMessage(MSG_TAB_TITLE_SETTING_CHANGED);
fTerminalMessenger.SendMessage(MSG_WINDOW_TITLE_SETTING_CHANGED);
fAppearanceView->Revert();
// fallthrough
case MSG_PREF_MODIFIED: case MSG_PREF_MODIFIED:
fDirty = true; fDirty = true;
fRevertButton->SetEnabled(fDirty);
break; break;
case B_SAVE_REQUESTED: case B_SAVE_REQUESTED:
+3 -3
View File
@@ -14,7 +14,7 @@
#include <Window.h> #include <Window.h>
// local messages // local messages
const ulong MSG_SAVE_PRESSED = 'okok'; const ulong MSG_DEFAULTS_PRESSED = 'defl';
const ulong MSG_SAVEAS_PRESSED = 'canl'; const ulong MSG_SAVEAS_PRESSED = 'canl';
const ulong MSG_REVERT_PRESSED = 'revt'; const ulong MSG_REVERT_PRESSED = 'revt';
const ulong MSG_PREF_CLOSED = 'mspc'; const ulong MSG_PREF_CLOSED = 'mspc';
@@ -48,10 +48,10 @@ class PrefWindow : public BWindow
private: private:
PrefHandler *fPreviousPref; PrefHandler *fPreviousPref;
BFilePanel *fSavePanel; BFilePanel *fSavePanel;
BButton *fSaveAsFileButton, BButton *fSaveAsFileButton,
*fRevertButton, *fRevertButton,
*fSaveButton; *fDefaultsButton;
AppearancePrefView *fAppearanceView; AppearancePrefView *fAppearanceView;