[Digikam-devel] SpliiterState

Andi Clemens andi.clemens at gmx.net
Mon Dec 1 20:36:53 CET 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