Bug 21856 - Need a way to store and retrieve preferences for the Web Inspector
Summary: Need a way to store and retrieve preferences for the Web Inspector
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Web Inspector (Deprecated) (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: Timothy Hatcher
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-10-24 10:00 PDT by Timothy Hatcher
Modified: 2008-10-24 11:49 PDT (History)
4 users (show)

See Also:


Attachments
Proposed patch (41.71 KB, patch)
2008-10-24 10:17 PDT, Timothy Hatcher
darin: review+
Details | Formatted Diff | Diff
Proposed patch (round two) (43.15 KB, patch)
2008-10-24 11:31 PDT, Timothy Hatcher
timothy: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
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.