[Digikam-devel] SpliiterState
Andi Clemens
andi.clemens at gmx.net
Mon Dec 1 19:36:53 GMT 2008
Marcel, any comment on why we use toBase64() methods to save splitter state?
Otherwise I will commit the changes to SVN, for me it works fine in my GIT
repo, even with "broken" digikamrc files.
Andi
On Monday 01 December 2008 11:51:09 Andi Clemens wrote:
> I've done this already... and I guess the window size is saved wrong,
> too... when I look into the digikamrc file now, there is one base64 value
> in it:
>
> [General Settings]
> State=AAAA/wAAAAD9AAAAAAAAA7gAAAI4AAAABAAAAAQAAAAIAAAACPwAAAABAAAAAgAAAAEAA
>AAOAFQAbwBvAGwAQgBhAHIBAAAAAAAAA7gAAAAAAAAAAA==
>
> I will change this, too, because at my machine digikam never starts
> maximized, although I quit it in maximized window state.
>
> Andi
>
> On Monday 01 December 2008 11:44:55 Gilles Caulier wrote:
> > 2008/12/1 Gilles Caulier <caulier.gilles at gmail.com>
> >
> > > Note : look code from Qt4.4.3::QSplitter class :
> > >
> > > QByteArray QSplitter::saveState() const
> > > {
> > > int version = 0;
> > > QByteArray data;
> > > QDataStream stream(&data, QIODevice::WriteOnly);
> > >
> > > stream << qint32(SplitterMagic);
> > > stream << qint32(version);
> > > stream << sizes();
> > > stream << childrenCollapsible();
> > > stream << qint32(handleWidth());
> > > stream << opaqueResize();
> > > stream << qint32(orientation());
> > > return data;
> > > }
> > >
> > > bool QSplitter::restoreState(const QByteArray &state)
> > > {
> > > Q_D(QSplitter);
> > > int version = 0;
> > > QByteArray sd = state;
> > > QDataStream stream(&sd, QIODevice::ReadOnly);
> > > QList<int> list;
> > > bool b;
> > > qint32 i;
> > > qint32 marker;
> > > qint32 v;
> > >
> > > stream >> marker;
> > > stream >> v;
> > > if (marker != SplitterMagic || v != version)
> > > return false;
> > >
> > > stream >> list;
> > > setSizes(list);
> > >
> > > stream >> b;
> > > setChildrenCollapsible(b);
> > >
> > > stream >> i;
> > > setHandleWidth(i);
> > >
> > > stream >> b;
> > > setOpaqueResize(b);
> > >
> > > stream >> i;
> > > setOrientation(Qt::Orientation(i));
> > > d->doResize();
> > >
> > > return true;
> > > }
> > >
> > > ==> base64 stuff is never used here.
> > >
> > > Gilles
> >
> > To resume : i think to use QByteArray::toBase64() is wrong here...
> >
> > But we use it too in :
> >
> > - sidebar.cpp
> > - lighttablewindow.cpp.
> > - editorwindow.cpp
> >
> > I think these entries need to be fixed too in the same way.
> >
> > Best
> >
> > Gilles
>
> _______________________________________________
> Digikam-devel mailing list
> Digikam-devel at kde.org
> https://mail.kde.org/mailman/listinfo/digikam-devel
More information about the Digikam-devel
mailing list