summaryrefslogtreecommitdiffstats
path: root/chrome/browser/autofill
diff options
context:
space:
mode:
authordhollowa@chromium.org <dhollowa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-26 00:07:04 +0000
committerdhollowa@chromium.org <dhollowa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-26 00:07:04 +0000
commite59a1c4503496f843391641dbb947043dec2a466 (patch)
tree9e775066cfb704b1158d33d505b8a738d46f727f /chrome/browser/autofill
parent08338efa63dadfe9c830bcdd54643c8b70d1dbf1 (diff)
downloadchromium_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')
-rw-r--r--chrome/browser/autofill/autofill_dialog_controller_mac.h3
-rw-r--r--chrome/browser/autofill/autofill_dialog_controller_mac.mm16
-rw-r--r--chrome/browser/autofill/autofill_manager.cc5
-rw-r--r--chrome/browser/autofill/autofill_manager.h3
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);