Re: [Development] QSettings refactor updates

2014-10-10 Thread Tomaz Canabrava
On Fri, Oct 10, 2014 at 8:31 AM, Milian Wolff  wrote:

> On Friday 10 October 2014 13:21:22 Oswald Buddenhagen wrote:
> > On Fri, Oct 10, 2014 at 11:26:52AM +0200, Milian Wolff wrote:
> > > On Friday 10 October 2014 11:18:38 Oswald Buddenhagen wrote:
> > > > On Fri, Oct 10, 2014 at 11:07:52AM +0200, Milian Wolff wrote:
> > > > > may I ask why you don't simply copy KConfig? It's API design has
> > > > > proven to be extremely versatile and efficient over the years.
> > > >
> > > > actually, it has proven horrible and is slated for a rewrite for a
> > > > decade. the only thing it does right is what tomaz copied to his api.
> > >
> > > To my knowledge, only the internals are horrible and could easily be
> > > improved, speed wise.
> >
> > the api is also horrible. it's full of inconsistencies. it has some
> > specifics that make a clean multi-backend implementation not fully
> > feasible. the c'tor flags for cascading and other features are rather
> > error-prone. also, the duality of KConfig vs. KSharedConfig makes no
> > sense.
>
> There are some dark corners in the API - that is correct. But you usually
> don't have to care about that. The API that one uses normally is pretty
> good
> and definitely better than having to manually use references or such.
> That's
> what I have in mind when I talk about the good API of KConfig :)
>
> > on a different matter, what do we do about config change notifications?
> > i tend to a separate class, say:
> >
> >   QConfigWatcher::QConfigWatcher(const QConfigGroup &group);
> >   Q_SIGNAL changed(const QString &key);
> >
> > then we can postpone the actual design and implementation.
>
> Yeah, I like that idea, similar to what one can do via
> KSettings::Dispatcher,
> just nicer.
>

I tougth about having a changed() signal on the QConfig / QConfigGroup
classes, is the QConfigWatcher a better approach?


>
> Bye
> --
> Qt Developer Days 2014 - October 6 - 8 at BCC, Berlin
>
> Milian Wolff | milian.wo...@kdab.com | Software Engineer
> KDAB (Deutschland) GmbH&Co KG, a KDAB Group company
> Tel. Germany +49-30-521325470, Sweden (HQ) +46-563-540090
> KDAB - Qt Experts - Platform-independent software solutions
>
> ___
> Development mailing list
> Development@qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development
>
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QSettings refactor updates

2014-10-10 Thread Tomaz Canabrava
On Fri, Oct 10, 2014 at 6:35 AM, Milian Wolff  wrote:

> On Friday 10 October 2014 06:22:12 Tomaz Canabrava wrote:
> > Em 10/10/2014 06:18, "Oswald Buddenhagen" <
> >
> > oswald.buddenha...@theqtcompany.com> escreveu:
> > > On Fri, Oct 10, 2014 at 11:07:52AM +0200, Milian Wolff wrote:
> > > > may I ask why you don't simply copy KConfig? It's API design has
> > > > proven to be extremely versatile and efficient over the years.
> > >
> > > actually, it has proven horrible and is slated for a rewrite for a
> > > decade. the only thing it does right is what tomaz copied to his api.
> >
> > (still sleeping, só I will write better latter)  I used kconfig and I
> > tougth it was terrible to use, that why I came to thiago and hélio Castro
> > asking if I could try a new one.
> >
> > I'll read the emails on this thread and change the code accordingly.
>
> Please double-check the KConfig API and copy more of its behavior. Some of
> that stuff was also mentioned by Thiago, Bo and Kai:
>
> QConfig("identifier_or_filename"); // this should also be the root group
>
> config.setValue("bla", 123); // would set a global config value, with
> multiple
> overloads or template functions
>
> QConfigGroup group = config.group("something"); // smart handle with
> reference
> semantics
> group.readValue("blub", /* default value */); // read value in group, also
> overloads and/or template function
>
> foreach (QConfigGroup subGroup, group.groups()) // or similar
>qDebug() << subGroup.name();
>
> I still think that KConfig, API-wise, is extremely convenient and haven't
> seen
> anything better so far. The internals and performance is a bit lacking, but
> usually not a problem and definitely not related to the API.
>

It's too error prone regarding typos.

// main.cpp

KConfig c;
KConfigGroup g = c.group("blah");
g.setValue("width", 10);

//  otherfile
Kconfig c;
KConfigGroup g = c.group("blah");
g.value("widht"); // <- no error is issued, this is something that I wanna
have it fixed.



> --
> Qt Developer Days 2014 - October 6 - 8 at BCC, Berlin
>
> Milian Wolff | milian.wo...@kdab.com | Software Engineer
> KDAB (Deutschland) GmbH&Co KG, a KDAB Group company
> Tel. Germany +49-30-521325470, Sweden (HQ) +46-563-540090
> KDAB - Qt Experts - Platform-independent software solutions
>
> ___
> Development mailing list
> Development@qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development
>
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QSettings refactor updates

2014-10-10 Thread Tomaz Canabrava
On Fri, Oct 10, 2014 at 6:24 AM, Thiago Macieira 
wrote:

> On Friday 10 October 2014 11:07:52 Milian Wolff wrote:
> > may I ask why you don't simply copy KConfig? It's API design has proven
> to
> > be extremely versatile and efficient over the years.
>
> He is copying KConfig's API. That's why the main class is QConfigGroup,
> like
> KConfigGroup.
>

Actually, I'm not - this was a design decision because I didn't tougth of a
better way to do it - I didn't even looked at the KConfig api, and the last
time I used it was the KConfigXT , years ago. :)


>
> > So is there any reason
> > for writing something from scratch, instead of picking KConfig and adding
> > the JSON cache feature on-top? Maybe I'm just missing some context or
> > previous discussion on that matter?
>
> Licensing.
>
> Unless you're able to contact all the contributors to KConfig and convince
> them
> to relicense under the CLA for inclusion into Qt, then you have the time to
> clean it up. David wanted the same for KStandardDirs, but he ended up
> rewriting from scratch for QStandardPaths and the result was much cleaner.
> I'm
> expecting the same here.
>
> > Note that KConfig uses a pluggable format in the background, so adding
> > registry or plist support is possible.
>
> --
> Thiago Macieira - thiago.macieira (AT) intel.com
>   Software Architect - Intel Open Source Technology Center
>
> ___
> Development mailing list
> Development@qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development
>
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QSettings refactor updates

2014-10-10 Thread Tomaz Canabrava
On Fri, Oct 10, 2014 at 3:50 AM,  wrote:

> I once programmed a class hierarchy targeting the same features (and
> much more). It consited of settings group objects and settings object
> ordered in a tree hierarchy. That hierarchy was much more complex
> (having templated settings, units, limits, flags, value checking,
> attributes for GUI form generation etc.). Each of the groups and
> settings shared a common interface base.
>
> One feature that was very useful was the fact that we could
> display/edit the settings hierarchy using a QAbstractItemModel in a
> QTreeView.
>
> Do you intend to support the latter with your classes?
>

Yes - the QConfig is actually a QAbstractTableModel already.


>
> --
> Regards,
> Bernhard Lindner
>
>
> ___
> Development mailing list
> Development@qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development
>
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QSettings refactor updates

2014-10-10 Thread Tomaz Canabrava
Hey,


On Fri, Oct 10, 2014 at 3:37 AM, Bo Thorsen  wrote:

> Hi Tomaz,
>
> Den 10-10-2014 kl. 00:43 skrev Tomaz Canabrava:
> >  QConfig config;
> >  QConfigGroup& root = config.root();
> >  QConfigGroup& window = root.group("window");
>
> This looks a bit more complicated from the user point of view than it
> needs to be. But this might be because I don't know what the QConfig
> class does. If it's pretty much only a wrapper that holds the root and
> the file name, I would prefer that it's not exposed to the user.
>
> First possible way:
>
> QConfig config(optional filename);
>

Already works with filenames. :)


> config.setValue(...
> QConfigGroup window(config, "window");
>

Just changed to value semantics, got that out of the box. :)


> or
>
> QConfigGroup config(optional filename, optional QConfig)
>
> Thiago asked you not to use references. A design where you have an
> internally shared object that is the top config could work around this.
>
> But, as I said above, I'm not sure what your plans are for your QConfig
> class, and what the responsibilities of it are.
>
> Bo Thorsen,
> Director, Viking Software.
>
> --
> Viking Software
> Qt and C++ developers for hire
> http://www.vikingsoft.eu
> ___
> Development mailing list
> Development@qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development
>
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QSettings refactor updates

2014-10-10 Thread Adam Light
On Fri, Oct 10, 2014 at 7:25 AM, Ziller Eike 
wrote:

>
> On Oct 10, 2014, at 3:37 PM, Adam Light  wrote:
>
> > On the flip side, our large Qt application runs on Mac and Windows and
> we're intentionally using QSettings with INI format on both platforms for
> consistency. Since the storage of settings is really an implementation
> detail (users should hopefully never need to edit the settings files
> themselves), it's easier for us if the settings are stored the same way on
> all platforms.
>
> Qt Creator intentionally used ini format for “consistency” as well, but:
> * Since the paths are different through the platforms (Windows XP vs
> Windows vs Linux vs OS X), and have to be, there is not much consistency in
> the end after all, and
> * Uninstallation process involves manually removing settings and
> application data, at least on OS X, and there are even uninstallation tools
> out there which do it for you, if the application follows the platform
> convention
>
> So there are IMO very good reasons why someone would want their
> application to follow platform conventions for application settings.
> Possibly with a way to opt-in or opt-out.
>
>
Sure, I understand why a developer might want an application to be able to
follow platform conventions. I'm just making the case that I think there
are valid reasons to *not* follow platform conventions as well. Currently
QSettings makes it relatively easy for the developer to decide. But if this
new class is eventually going to replace QSettings, I feel that the option
should remain for the developer to force the settings to be saved in a
consistent way across platforms, not always using the platform convention.
Otherwise it's a loss of functionality.

Adam
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] Account problems with codereview.qt-project.org

2014-10-10 Thread paulovictor.pinhe...@gmail.com
Hello Everyone,

I was told to look for help here.

I have an jira account for bugreports.qt-project.org and now tried to push
some code into codereview.qt-project.org. Log in goes ok, but when i try to
register my email it gives me this error: "Identity in use by another
account". Please help.

Steps:
1 -  log in codereview.qt-project.org
2 - codereview.qt-project.org/#/settings/contact
3 - click in 'Register new E-mail'
4 - Receive an e-mail and click the verification link
5 - gerrit gives me: "Identity in use by another account".

Don't remeber register this e-mail in any other account. Please point
directions.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QSettings refactor updates

2014-10-10 Thread Ziller Eike

On Oct 10, 2014, at 3:37 PM, Adam Light  wrote:

>> On Fri, Oct 10, 2014 at 4:27 AM, Ziller Eike  
>> wrote:
>> 
>> On Oct 10, 2014, at 11:48 AM, Morten Johan Sørvig  
>> wrote:
>> 
>> >>
>> >>> Mac people: do we need access to plist files?
>> >>
>> >> Plist is the format for application and other settings on OS X, and there 
>> >> are native tools for nicely editing these. Ini is highly alien on OS X.
>> >> So, I’d answer yes.
>> >
>> > On the other hand, git uses the ini file format for the config files also 
>> > on OS X.
>> 
>> git is a command line tool, and used by a very specific audience.
>> 
>> > I see this as two separate use cases:
>> > 1) Cross-platform API for managing application settings.
>> 
>> We regularly have people which complain that Qt Creator application settings 
>> do not follow platform convention on OS X, because they do not find a qt 
>> creator plist in ~/Library/Preferences, or actually there is one that 
>> contains some settings coming from Qt (NSNavLastRootDirectory, 
>> PMPrintingExpandedState, some WebKit stuff, and a few more), but not the 
>> actual application settings.
>> 
> 
> On the flip side, our large Qt application runs on Mac and Windows and we're 
> intentionally using QSettings with INI format on both platforms for 
> consistency. Since the storage of settings is really an implementation detail 
> (users should hopefully never need to edit the settings files themselves), 
> it's easier for us if the settings are stored the same way on all platforms.

Qt Creator intentionally used ini format for “consistency” as well, but:
* Since the paths are different through the platforms (Windows XP vs Windows vs 
Linux vs OS X), and have to be, there is not much consistency in the end after 
all, and
* Uninstallation process involves manually removing settings and application 
data, at least on OS X, and there are even uninstallation tools out there which 
do it for you, if the application follows the platform convention

So there are IMO very good reasons why someone would want their application to 
follow platform conventions for application settings. Possibly with a way to 
opt-in or opt-out.

-- 
Eike Ziller, Senior Software Engineer - Digia, Qt
 
Digia Germany GmbH, Rudower Chaussee 13, D-12489 Berlin
Geschäftsführer: Mika Pälsi, Juha Varelius, Tuula Haataja
Sitz der Gesellschaft: Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 
144331 B

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QSettings refactor updates

2014-10-10 Thread Adam Light
On Fri, Oct 10, 2014 at 4:27 AM, Ziller Eike 
wrote:

>
> On Oct 10, 2014, at 11:48 AM, Morten Johan Sørvig 
> wrote:
>
> >>
> >>> Mac people: do we need access to plist files?
> >>
> >> Plist is the format for application and other settings on OS X, and
> there are native tools for nicely editing these. Ini is highly alien on OS
> X.
> >> So, I’d answer yes.
> >
> > On the other hand, git uses the ini file format for the config files
> also on OS X.
>
> git is a command line tool, and used by a very specific audience.
>
> > I see this as two separate use cases:
> > 1) Cross-platform API for managing application settings.
>
> We regularly have people which complain that Qt Creator application
> settings do not follow platform convention on OS X, because they do not
> find a qt creator plist in ~/Library/Preferences, or actually there is one
> that contains some settings coming from Qt (NSNavLastRootDirectory,
> PMPrintingExpandedState, some WebKit stuff, and a few more), but not
> the actual application settings.
>
>
On the flip side, our large Qt application runs on Mac and Windows and
we're intentionally using QSettings with INI format on both platforms for
consistency. Since the storage of settings is really an implementation
detail (users should hopefully never need to edit the settings files
themselves), it's easier for us if the settings are stored the same way on
all platforms.

Adam
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QSettings refactor updates

2014-10-10 Thread Milian Wolff
On Friday 10 October 2014 13:21:22 Oswald Buddenhagen wrote:
> On Fri, Oct 10, 2014 at 11:26:52AM +0200, Milian Wolff wrote:
> > On Friday 10 October 2014 11:18:38 Oswald Buddenhagen wrote:
> > > On Fri, Oct 10, 2014 at 11:07:52AM +0200, Milian Wolff wrote:
> > > > may I ask why you don't simply copy KConfig? It's API design has
> > > > proven to be extremely versatile and efficient over the years.
> > > 
> > > actually, it has proven horrible and is slated for a rewrite for a
> > > decade. the only thing it does right is what tomaz copied to his api.
> > 
> > To my knowledge, only the internals are horrible and could easily be
> > improved, speed wise.
> 
> the api is also horrible. it's full of inconsistencies. it has some
> specifics that make a clean multi-backend implementation not fully
> feasible. the c'tor flags for cascading and other features are rather
> error-prone. also, the duality of KConfig vs. KSharedConfig makes no
> sense.

There are some dark corners in the API - that is correct. But you usually 
don't have to care about that. The API that one uses normally is pretty good 
and definitely better than having to manually use references or such. That's 
what I have in mind when I talk about the good API of KConfig :)

> on a different matter, what do we do about config change notifications?
> i tend to a separate class, say:
> 
>   QConfigWatcher::QConfigWatcher(const QConfigGroup &group);
>   Q_SIGNAL changed(const QString &key);
> 
> then we can postpone the actual design and implementation.

Yeah, I like that idea, similar to what one can do via KSettings::Dispatcher, 
just nicer.

Bye
-- 
Qt Developer Days 2014 - October 6 - 8 at BCC, Berlin

Milian Wolff | milian.wo...@kdab.com | Software Engineer
KDAB (Deutschland) GmbH&Co KG, a KDAB Group company
Tel. Germany +49-30-521325470, Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-independent software solutions

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QSettings refactor updates

2014-10-10 Thread Ziller Eike

On Oct 10, 2014, at 11:48 AM, Morten Johan Sørvig  
wrote:

>> 
>>> Mac people: do we need access to plist files?
>> 
>> Plist is the format for application and other settings on OS X, and there 
>> are native tools for nicely editing these. Ini is highly alien on OS X.
>> So, I’d answer yes.
> 
> On the other hand, git uses the ini file format for the config files also on 
> OS X.

git is a command line tool, and used by a very specific audience.

> I see this as two separate use cases: 
> 1) Cross-platform API for managing application settings.

We regularly have people which complain that Qt Creator application settings do 
not follow platform convention on OS X, because they do not find a qt creator 
plist in ~/Library/Preferences, or actually there is one that contains some 
settings coming from Qt (NSNavLastRootDirectory, PMPrintingExpandedState, 
some WebKit stuff, and a few more), but not the actual application settings.

> 2) API for reading native settings, following the conventions of the platform

What kind of native settings are you thinking about here (on OS X)?

> To what degree was QSettings successful in combining these? Focusing on 
> ini+json as supported formats will certainly simplify the implementation work.
> 
> Morten
> 
> ___
> Development mailing list
> Development@qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development

-- 
Eike Ziller, Senior Software Engineer - Digia, Qt
 
Digia Germany GmbH, Rudower Chaussee 13, D-12489 Berlin
Geschäftsführer: Mika Pälsi, Juha Varelius, Tuula Haataja
Sitz der Gesellschaft: Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 
144331 B

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QSettings refactor updates

2014-10-10 Thread Oswald Buddenhagen
On Fri, Oct 10, 2014 at 11:26:52AM +0200, Milian Wolff wrote:
> On Friday 10 October 2014 11:18:38 Oswald Buddenhagen wrote:
> > On Fri, Oct 10, 2014 at 11:07:52AM +0200, Milian Wolff wrote:
> > > may I ask why you don't simply copy KConfig? It's API design has
> > > proven to be extremely versatile and efficient over the years.
> > 
> > actually, it has proven horrible and is slated for a rewrite for a
> > decade. the only thing it does right is what tomaz copied to his api.
> 
> To my knowledge, only the internals are horrible and could easily be
> improved, speed wise.
>
the api is also horrible. it's full of inconsistencies. it has some
specifics that make a clean multi-backend implementation not fully
feasible. the c'tor flags for cascading and other features are rather
error-prone. also, the duality of KConfig vs. KSharedConfig makes no
sense.

on a different matter, what do we do about config change notifications?
i tend to a separate class, say:

  QConfigWatcher::QConfigWatcher(const QConfigGroup &group);
  Q_SIGNAL changed(const QString &key);

then we can postpone the actual design and implementation.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QSettings refactor updates

2014-10-10 Thread Joerg Bornemann
On 10-Oct-14 11:48, Morten Johan Sørvig wrote:

> I see this as two separate use cases:
> 1) Cross-platform API for managing application settings.
> 2) API for reading native settings, following the conventions of the platform
>
> To what degree was QSettings successful in combining these? Focusing on 
> ini+json as supported formats will certainly simplify the implementation work.

For the Windows registry, QSettings is quite convenient to use, though 
there's no real benefit of using the registry compared to ini files.

But there are idosyncrasies of the Windows registry that are IMO out of 
scope for QSettings. See QTBUG-2894 for example.
I think that QConfig should only cover use case 1, and native wrapper 
classes can handle case 2.


BR,

Joerg
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Building Qt 5 in release mode with debug symbols

2014-10-10 Thread Milian Wolff
On Friday 10 October 2014 11:39:33 Milian Wolff wrote:
> Hello all,
> 
> once more I'm preparing a Qt 5 build for profiling purposes and wonder again
> why there is no way to combine -release and -debug in Qt's configure
> script. The only way to get a sane build for profiling Qt code itself that
> I know of is hacking the mkspec and ensuring that -g is added even in
> -release mode.
> 
> Is there any reason for that? Could we improve this situation somehow to
> make it simpler to get a Qt build with optimizations and debug symbols?
> 
> Am I missing the recommended way to get this done?

Ugh, apparently I'm out of the loop here. While looking at the mkspecs, I 
noticed the (to me) new *_RELEASE_WITH_DEBUGINFO qmake variables. That lead me 
in turn to try out the (still mac-only) -debug-and-release once more which 
prints the somewhat cryptic message that its not required anymore thanks to 
separate debug information. Reading the output of configure -help then finally 
gave me -force-debug-info, so I'm now trying this out.

./configure ... -release -force-debug-info

Is that the recommended way to get this done?

Thanks, sorry for the noise (probably)
-- 
Qt Developer Days 2014 - October 6 - 8 at BCC, Berlin

Milian Wolff | milian.wo...@kdab.com | Software Engineer
KDAB (Deutschland) GmbH&Co KG, a KDAB Group company
Tel. Germany +49-30-521325470, Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-independent software solutions

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QSettings refactor updates

2014-10-10 Thread Morten Johan Sørvig
> 
>> Mac people: do we need access to plist files?
> 
> Plist is the format for application and other settings on OS X, and there are 
> native tools for nicely editing these. Ini is highly alien on OS X.
> So, I’d answer yes.

On the other hand, git uses the ini file format for the config files also on OS 
X.

I see this as two separate use cases: 
1) Cross-platform API for managing application settings.
2) API for reading native settings, following the conventions of the platform

To what degree was QSettings successful in combining these? Focusing on 
ini+json as supported formats will certainly simplify the implementation work.

Morten

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Building Qt 5 in release mode with debug symbols

2014-10-10 Thread Sergio Martins
On Friday, October 10, 2014 11:39:33 Milian Wolff wrote:
> Hello all,
> 
> once more I'm preparing a Qt 5 build for profiling purposes and wonder again
> why there is no way to combine -release and -debug in Qt's configure
> script. The only way to get a sane build for profiling Qt code itself that
> I know of is hacking the mkspec and ensuring that -g is added even in
> -release mode.
> 
> Is there any reason for that? Could we improve this situation somehow to
> make it simpler to get a Qt build with optimizations and debug symbols?
> 
> Am I missing the recommended way to get this done?

Hi,

-force-debug-info: Create symbol files for release builds.

Should work no ?


Regards,
-- 
Sérgio Martins | sergio.mart...@kdab.com | Software Engineer
Klarälvdalens Datakonsult AB, a KDAB Group company
Tel. Sweden (HQ) +46-563-540090, USA +1-866-777-KDAB(5322)
KDAB - Qt Experts - Platform-independent software solutions

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] Building Qt 5 in release mode with debug symbols

2014-10-10 Thread Milian Wolff
Hello all,

once more I'm preparing a Qt 5 build for profiling purposes and wonder again 
why there is no way to combine -release and -debug in Qt's configure script. 
The only way to get a sane build for profiling Qt code itself that I know of 
is hacking the mkspec and ensuring that -g is added even in -release mode.

Is there any reason for that? Could we improve this situation somehow to make 
it simpler to get a Qt build with optimizations and debug symbols?

Am I missing the recommended way to get this done?

Bye
-- 
Qt Developer Days 2014 - October 6 - 8 at BCC, Berlin

Milian Wolff | milian.wo...@kdab.com | Software Engineer
KDAB (Deutschland) GmbH&Co KG, a KDAB Group company
Tel. Germany +49-30-521325470, Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-independent software solutions

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QSettings refactor updates

2014-10-10 Thread Milian Wolff
On Friday 10 October 2014 06:22:12 Tomaz Canabrava wrote:
> Em 10/10/2014 06:18, "Oswald Buddenhagen" <
> 
> oswald.buddenha...@theqtcompany.com> escreveu:
> > On Fri, Oct 10, 2014 at 11:07:52AM +0200, Milian Wolff wrote:
> > > may I ask why you don't simply copy KConfig? It's API design has
> > > proven to be extremely versatile and efficient over the years.
> > 
> > actually, it has proven horrible and is slated for a rewrite for a
> > decade. the only thing it does right is what tomaz copied to his api.
> 
> (still sleeping, só I will write better latter)  I used kconfig and I
> tougth it was terrible to use, that why I came to thiago and hélio Castro
> asking if I could try a new one.
> 
> I'll read the emails on this thread and change the code accordingly.

Please double-check the KConfig API and copy more of its behavior. Some of 
that stuff was also mentioned by Thiago, Bo and Kai:

QConfig("identifier_or_filename"); // this should also be the root group

config.setValue("bla", 123); // would set a global config value, with multiple 
overloads or template functions

QConfigGroup group = config.group("something"); // smart handle with reference 
semantics
group.readValue("blub", /* default value */); // read value in group, also 
overloads and/or template function

foreach (QConfigGroup subGroup, group.groups()) // or similar
   qDebug() << subGroup.name();

I still think that KConfig, API-wise, is extremely convenient and haven't seen 
anything better so far. The internals and performance is a bit lacking, but 
usually not a problem and definitely not related to the API.

-- 
Qt Developer Days 2014 - October 6 - 8 at BCC, Berlin

Milian Wolff | milian.wo...@kdab.com | Software Engineer
KDAB (Deutschland) GmbH&Co KG, a KDAB Group company
Tel. Germany +49-30-521325470, Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-independent software solutions

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Nominating Louai Al-Khanji as approver

2014-10-10 Thread Al-Khanji Louai
Thanks for the votes of confidence!


-- Louai



From: development-bounces+louai.al-khanji=theqtcompany@qt-project.org 
 on behalf 
of Blasche Alexander 
Sent: Friday, October 10, 2014 11:17 AM
To: development@qt-project.org
Subject: Re: [Development] Nominating Louai Al-Khanji as approver


Congratulations. The Approver rights have been set in Jira and Gerrit.


--

Alex


From: development-bounces+alexander.blasche=digia@qt-project.org 
 on behalf of 
Friedemann Kleint 
Sent: Friday, September 19, 2014 10:31
To: development@qt-project.org
Subject: [Development] Nominating Louai Al-Khanji as approver

Hi,
I'd like to nominate Louai Al-Khanji as approver in the Qt Project:
https://codereview.qt-project.org/#/q/owner:louai.al-khanji,n,z
https://codereview.qt-project.org/#/q/reviewer:louai.al-khanji,n,z
He implemented the Windows Direct2D platform plugin (which works well beyond 
expectations) and has also done significant work in other areas (Qt3D, Wayland).
Regards,
Friedemann

--
Friedemann Kleint
Digia, Qt

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QSettings refactor updates

2014-10-10 Thread Milian Wolff
On Friday 10 October 2014 11:18:38 Oswald Buddenhagen wrote:
> On Fri, Oct 10, 2014 at 11:07:52AM +0200, Milian Wolff wrote:
> > may I ask why you don't simply copy KConfig? It's API design has
> > proven to be extremely versatile and efficient over the years.
> 
> actually, it has proven horrible and is slated for a rewrite for a
> decade. the only thing it does right is what tomaz copied to his api.

To my knowledge, only the internals are horrible and could easily be improved, 
speed wise. But the licensing issue that Thiago raised is a valid one of 
course.
-- 
Milian Wolff
m...@milianw.de
http://milianw.de
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QSettings refactor updates

2014-10-10 Thread Thiago Macieira
On Friday 10 October 2014 11:07:52 Milian Wolff wrote:
> may I ask why you don't simply copy KConfig? It's API design has proven to
> be extremely versatile and efficient over the years. 

He is copying KConfig's API. That's why the main class is QConfigGroup, like 
KConfigGroup.

> So is there any reason
> for writing something from scratch, instead of picking KConfig and adding
> the JSON cache feature on-top? Maybe I'm just missing some context or
> previous discussion on that matter?

Licensing.

Unless you're able to contact all the contributors to KConfig and convince them 
to relicense under the CLA for inclusion into Qt, then you have the time to 
clean it up. David wanted the same for KStandardDirs, but he ended up 
rewriting from scratch for QStandardPaths and the result was much cleaner. I'm 
expecting the same here.

> Note that KConfig uses a pluggable format in the background, so adding
> registry or plist support is possible.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QSettings refactor updates

2014-10-10 Thread Tomaz Canabrava
Em 10/10/2014 06:18, "Oswald Buddenhagen" <
oswald.buddenha...@theqtcompany.com> escreveu:
>
> On Fri, Oct 10, 2014 at 11:07:52AM +0200, Milian Wolff wrote:
> > may I ask why you don't simply copy KConfig? It's API design has
> > proven to be extremely versatile and efficient over the years.
> >
> actually, it has proven horrible and is slated for a rewrite for a
> decade. the only thing it does right is what tomaz copied to his api.

(still sleeping, só I will write better latter)  I used kconfig and I
tougth it was terrible to use, that why I came to thiago and hélio Castro
asking if I could try a new one.

I'll read the emails on this thread and change the code accordingly.

> ___
> Development mailing list
> Development@qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QSettings refactor updates

2014-10-10 Thread Thiago Macieira
On Friday 10 October 2014 06:47:39 Ziller Eike wrote:
> I think it would not be good to create a new API for settings, and
> simultaneously force us to keep the old API because the new API doesn’t
> cover the old use cases. So, if Windows registry access should not be done
> through the new settings API (which I can’t tell), we should have a
> dedicated API for it at the same time the new settings API is introduced.

Ossi was talking about moving the qtbase/tools/shared/windows/registry* class 
into QtCore. That would be the replacement.

> > Mac people: do we need access to plist files?
> 
> Plist is the format for application and other settings on OS X, and there
> are native tools for nicely editing these. Ini is highly alien on OS X. So,
> I’d answer yes.

So you're saying that QConfig should read from and save to Plist files on Mac, 
instead of .ini files. Is that it?

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QSettings refactor updates

2014-10-10 Thread Oswald Buddenhagen
On Fri, Oct 10, 2014 at 11:07:52AM +0200, Milian Wolff wrote:
> may I ask why you don't simply copy KConfig? It's API design has
> proven to be extremely versatile and efficient over the years.
>
actually, it has proven horrible and is slated for a rewrite for a
decade. the only thing it does right is what tomaz copied to his api.
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] QSettings refactor updates

2014-10-10 Thread Milian Wolff
On Thursday 09 October 2014 19:43:08 Tomaz Canabrava wrote:
> Please be kind, this is the first step to contributing to qt that I'm
> trying. :)
> 
> First, I'v implemented the rationale that thiago asked me to do on the
> other thread:
> 
> Settings format: .ini ( current settings uses native format, should I
> implement that too or the reasoning here is 'be simple'? )
> 
> Cache format: binary json
> 
> If the json cache was created before the .ini, it will recreate the cache.
> 
> Internal format: I'v created a QConfigGroup / QConfig / QConfigCore set of
> classes, that can be renamed if it better fits.
> 
> Usage on code:

Hey Tomaz,

may I ask why you don't simply copy KConfig? It's API design has proven to be 
extremely versatile and efficient over the years. So is there any reason for 
writing something from scratch, instead of picking KConfig and adding the JSON 
cache feature on-top? Maybe I'm just missing some context or previous 
discussion on that matter?

Note that KConfig uses a pluggable format in the background, so adding 
registry or plist support is possible.

Bye
-- 
Qt Developer Days 2014 - October 6 - 8 at BCC, Berlin

Milian Wolff | milian.wo...@kdab.com | Software Engineer
KDAB (Deutschland) GmbH&Co KG, a KDAB Group company
Tel. Germany +49-30-521325470, Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-independent software solutions

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Nominating Louai Al-Khanji as approver

2014-10-10 Thread Blasche Alexander
Congratulations. The Approver rights have been set in Jira and Gerrit.


--

Alex


From: development-bounces+alexander.blasche=digia@qt-project.org 
 on behalf of 
Friedemann Kleint 
Sent: Friday, September 19, 2014 10:31
To: development@qt-project.org
Subject: [Development] Nominating Louai Al-Khanji as approver

Hi,
I'd like to nominate Louai Al-Khanji as approver in the Qt Project:
https://codereview.qt-project.org/#/q/owner:louai.al-khanji,n,z
https://codereview.qt-project.org/#/q/reviewer:louai.al-khanji,n,z
He implemented the Windows Direct2D platform plugin (which works well beyond 
expectations) and has also done significant work in other areas (Qt3D, Wayland).
Regards,
Friedemann

--
Friedemann Kleint
Digia, Qt

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development