<blockquote>
<blockquote>
<p>And if you are going to select stuff, at least make it a switch on an enum, not a series of strcmps :)</p>
</blockquote>

<p>GSettings deals in string keys, though it's possible (probable even) that it turns them into GQuarks for faster comparisons.</p>
</blockquote>

<p>Almost certainly, IIUC its a hash table, and quarks (derived from the schema) are used as the hash values of strings.</p>

<p>But hopefully there will be enough commonality to have a few types of callback to do most of the settings, with the user_data controlling them, and the few which are unique can always have their own specific callback to avoid both switches or comparisons.  </p>

<p>If that doesn't work out then fall back to a callback per setting, but if I were doing that it would be riddled with cut and paste errors :)</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/geany/geany/pull/1257#issuecomment-252397307">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/ABDrJxf_jTtnN_d6jIpUx2FI2h8dqc3aks5qxwEVgaJpZM4KPeqz">mute the thread</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/ABDrJ9bjxrj-1DwIifbFRv2DR8rOqspOks5qxwEVgaJpZM4KPeqz.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
  <link itemprop="url" href="https://github.com/geany/geany/pull/1257#issuecomment-252397307"></link>
  <meta itemprop="name" content="View Pull Request"></meta>
</div>
<meta itemprop="description" content="View this Pull Request on GitHub"></meta>
</div>

<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/geany/geany","title":"geany/geany","subtitle":"GitHub repository","main_image_url":"https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in GitHub","url":"https://github.com/geany/geany"}},"updates":{"snippets":[{"icon":"PERSON","message":"@elextr in #1257: \u003e \u003e And if you are going to select stuff, at least make it a switch on an enum, not a series of strcmps :)\r\n\r\n\u003e GSettings deals in string keys, though it's possible (probable even) that it turns them into GQuarks for faster comparisons.\r\n\r\nAlmost certainly, IIUC its a hash table, and quarks (derived from the schema) are used as the hash values of strings.\r\n\r\nBut hopefully there will be enough commonality to have a few types of callback to do most of the settings, with the user_data controlling them, and the few which are unique can always have their own specific callback to avoid both switches or comparisons.  \r\n\r\nIf that doesn't work out then fall back to a callback per setting, but if I were doing that it would be riddled with cut and paste errors :)"}],"action":{"name":"View Pull Request","url":"https://github.com/geany/geany/pull/1257#issuecomment-252397307"}}}</script>