Bug 21856

Summary: Need a way to store and retrieve preferences for the Web Inspector
Product: WebKit Reporter: Timothy Hatcher <timothy>
Component: Web Inspector (Deprecated)Assignee: Timothy Hatcher <timothy>
Status: RESOLVED FIXED    
Severity: Normal CC: aroben, kmccullough, rik, timothy
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Attachments:
Description Flags
Proposed patch
darin: review+
Proposed patch (round two) timothy: review+

Description Timothy Hatcher 2008-10-24 10:00:04 PDT
The time has come where we need to have preferences that persist for the Web Inspector. So we need a way to access them from C++ and JavaScript and have them persist (preferably in the application's preferences.)
Comment 1 Timothy Hatcher 2008-10-24 10:17:47 PDT
Created attachment 24642 [details]
Proposed patch
Comment 2 Darin Adler 2008-10-24 10:43:56 PDT
Comment on attachment 24642 [details]
Proposed patch

> +        typedef enum {
> +            NoType, StringType, StringVectorType, DoubleType, IntegerType, BooleanType
> +        } Type;

You should just use "enum Type { }" syntax.

> +        Setting(const Setting& o)
> +            : m_type(o.m_type)
> +            , m_string(o.m_string)
> +            , m_stringVector(o.m_stringVector)
> +            , m_simpleContent(o.m_simpleContent)
> +        {
> +        }
> +
> +        Setting& operator=(const Setting& o)
> +        {
> +            m_type = o.m_type;
> +            m_string = o.m_string;
> +            m_stringVector = o.m_stringVector;
> +            m_simpleContent = o.m_simpleContent;
> +            return *this;
> +        }

These are the same as what the compiler generates if you don't declare the operator at all. Just leave these out and it should work the same.

> @@ -405,6 +405,10 @@ public:
>      virtual void highlight(Node*) {};
>      virtual void hideHighlight() {};
>      virtual void inspectedURLChanged(const String& newURL) {};
> +
> +    virtual void populateSetting(const String& key, InspectorController::Setting&) {};
> +    virtual void storeSetting(const String& key, const InspectorController::Setting&) {};
> +    virtual void removeSetting(const String& key) {};

All these semicolons at the ends of lines after {} are unneeded and should be omitted.

> +    // FIXME: this can be shared between Mac and Windows, this is currently copied code.

Why not make a shared source file and do this now? Is there some obstacle?

r=me
Comment 3 Timothy Hatcher 2008-10-24 11:31:37 PDT
Created attachment 24643 [details]
Proposed patch (round two)
Comment 4 Timothy Hatcher 2008-10-24 11:43:15 PDT
Comment on attachment 24643 [details]
Proposed patch (round two)

Adam reviewed the windows parts of this. The rest is basically the same from the patch Darin reviewed, with his suggestions fixed.
Comment 5 Timothy Hatcher 2008-10-24 11:49:58 PDT
Landed in r37848.