diff options
author | dhollowa@chromium.org <dhollowa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-26 00:07:04 +0000 |
---|---|---|
committer | dhollowa@chromium.org <dhollowa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-26 00:07:04 +0000 |
commit | e59a1c4503496f843391641dbb947043dec2a466 (patch) | |
tree | 9e775066cfb704b1158d33d505b8a738d46f727f /chrome/browser/autofill | |
parent | 08338efa63dadfe9c830bcdd54643c8b70d1dbf1 (diff) | |
download | chromium_src-e59a1c4503496f843391641dbb947043dec2a466.zip chromium_src-e59a1c4503496f843391641dbb947043dec2a466.tar.gz chromium_src-e59a1c4503496f843391641dbb947043dec2a466.tar.bz2 |
AutoFill dialog UI polish. Based on feedback from thakis.
Change to AutoFillDialog.xib was window anchoring flags to better position dialog in different window sizes on first run.
> 1.) The initial position of the dialog is half off-screen on my 15'' MBP. It should probably be
> more on the left.
>
Done. Auto centering now.
> 2.) Furthermore, the dialog should autosave its position. See e.g.
> keyword_editor_cocoa_controller.mm on how to do this (the |if (g_browser_process...)| block in
> |initWithProfile| – it takes only a couple lines).
>
Done.
> 3.) When clicking "Add an address", I find it weird that the new address starts in the collapsed
> state. That makes it hard to see how to delete it again, and chances are that when I'm adding a
> new address I want to edit it immediately.
>
Done.
BUG=36441
TEST=see manual repro steps above.
Review URL: http://codereview.chromium.org/660130
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40075 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/autofill')
4 files changed, 25 insertions, 2 deletions
diff --git a/chrome/browser/autofill/autofill_dialog_controller_mac.h b/chrome/browser/autofill/autofill_dialog_controller_mac.h index 322e4cc..2ea9c54 100644 --- a/chrome/browser/autofill/autofill_dialog_controller_mac.h +++ b/chrome/browser/autofill/autofill_dialog_controller_mac.h @@ -15,6 +15,7 @@ @class AutoFillAddressViewController; @class AutoFillCreditCardViewController; @class SectionSeparatorView; +@class WindowSizeAutosaver; // A window controller for managing the autofill options dialog. // Application modally presents a dialog allowing the user to store @@ -39,6 +40,8 @@ AutoFillDialogObserver* observer_; // Weak, not retained. std::vector<AutoFillProfile> profiles_; std::vector<CreditCard> creditCards_; + + scoped_nsobject<WindowSizeAutosaver> sizeSaver_; } // Main interface for displaying an application modal autofill dialog on screen. diff --git a/chrome/browser/autofill/autofill_dialog_controller_mac.mm b/chrome/browser/autofill/autofill_dialog_controller_mac.mm index 418f699..e5f325e 100644 --- a/chrome/browser/autofill/autofill_dialog_controller_mac.mm +++ b/chrome/browser/autofill/autofill_dialog_controller_mac.mm @@ -9,9 +9,12 @@ #import "chrome/browser/autofill/autofill_address_view_controller_mac.h" #import "chrome/browser/autofill/autofill_credit_card_model_mac.h" #import "chrome/browser/autofill/autofill_credit_card_view_controller_mac.h" +#include "chrome/browser/browser_process.h" #import "chrome/browser/cocoa/disclosure_view_controller.h" #import "chrome/browser/cocoa/section_separator_view.h" +#import "chrome/browser/cocoa/window_size_autosaver.h" #include "chrome/browser/profile.h" +#include "chrome/common/pref_names.h" #include "grit/generated_resources.h" @interface AutoFillDialogController (PrivateMethods) @@ -106,7 +109,7 @@ AutoFillAddressViewController* addressViewController = [[AutoFillAddressViewController alloc] initWithProfile:newProfile - disclosure:NSOffState + disclosure:NSOnState controller:self]; [addressFormViewControllers_.get() addObject:addressViewController]; @@ -141,7 +144,7 @@ AutoFillCreditCardViewController* creditCardViewController = [[AutoFillCreditCardViewController alloc] initWithCreditCard:newCreditCard - disclosure:NSOffState + disclosure:NSOnState controller:self]; [creditCardFormViewControllers_.get() addObject:creditCardViewController]; @@ -282,6 +285,15 @@ // Run application modal. - (void)runModalDialog { + // Use stored window geometry if it exists. + if (g_browser_process && g_browser_process->local_state()) { + sizeSaver_.reset([[WindowSizeAutosaver alloc] + initWithWindow:[self window] + prefService:g_browser_process->local_state() + path:prefs::kAutoFillDialogPlacement + state:kSaveWindowPos]); + } + [NSApp runModalForWindow:[self window]]; } diff --git a/chrome/browser/autofill/autofill_manager.cc b/chrome/browser/autofill/autofill_manager.cc index 1ede7bf..0d005aa 100644 --- a/chrome/browser/autofill/autofill_manager.cc +++ b/chrome/browser/autofill/autofill_manager.cc @@ -32,6 +32,11 @@ AutoFillManager::~AutoFillManager() { } // static +void AutoFillManager::RegisterBrowserPrefs(PrefService* prefs) { + prefs->RegisterDictionaryPref(prefs::kAutoFillDialogPlacement); +} + +// static void AutoFillManager::RegisterUserPrefs(PrefService* prefs) { prefs->RegisterBooleanPref(prefs::kAutoFillInfoBarShown, false); prefs->RegisterBooleanPref(prefs::kAutoFillEnabled, false); diff --git a/chrome/browser/autofill/autofill_manager.h b/chrome/browser/autofill/autofill_manager.h index 1517272..d629e4f 100644 --- a/chrome/browser/autofill/autofill_manager.h +++ b/chrome/browser/autofill/autofill_manager.h @@ -34,6 +34,9 @@ class AutoFillManager : public RenderViewHostDelegate::AutoFill, explicit AutoFillManager(TabContents* tab_contents); virtual ~AutoFillManager(); + // Registers our browser prefs. + static void RegisterBrowserPrefs(PrefService* prefs); + // Registers our Enable/Disable AutoFill pref. static void RegisterUserPrefs(PrefService* prefs); |