Bug 164573 - Better support for small screens
Summary: Better support for small screens
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Usability-Ergonomy (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR wishlist
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-06-21 04:25 UTC by Pablo Cholaky
Modified: 2017-08-04 21:20 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 0.9.5
Sentry Crash Report:


Attachments
Better sidebar usability using qscrollview instead qwidget (3.08 KB, patch)
2008-11-10 14:56 UTC, caulier.gilles
Details
Better sidebar usability using qscrollview instead qwidget (2nd) (3.17 KB, patch)
2008-11-10 15:18 UTC, caulier.gilles
Details
Better sidebar usability using qscrollview instead qwidget (3th) (4.21 KB, patch)
2008-11-10 15:59 UTC, caulier.gilles
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Pablo Cholaky 2008-06-21 04:25:25 UTC
Version:           0.9.4-beta5 - from svn (using Devel)
Installed from:    Compiled sources
Compiler:          gcc-4.2.4 
OS:                Linux

Details: Using a EeePC, res 800x480

I'm a digikam fan, i love see my taken photos in this great app... but fails in one great thing the kde4 version...

All is too big!

With kde3.5 version of digikam, my window fit perfect in the window, all was great

Now installing the kde4 version, is likely for 1024x768 minimal..., so, view my pictures isn't fine anymore :(

So my wishlist is:

* Option for remove the right panel, and do it MORE small, seems a big unused space.
* Left and right panel smaller, likely kde3.5, now is BIGGER, and i see 1/2 window of directory and 1/2 window of photo.
* Min. size of window 640x480 (seems possible)
* Some plugin for import digikam3 db, i have replaced with digikam4 db, but common users can have problems.
* Still doing this great project :)

Waiting for a reply :)
Comment 1 Andi Clemens 2008-06-21 08:02:46 UTC
As far as I know, this is a bug of kde4libs... the sidebars are not supposed to be that big and you can't simply resize them. Also they disappear sometimes.
Comment 2 Pablo Cholaky 2008-06-22 03:29:01 UTC
Oh, is a external problem so... i will wait for a kdelibs improvement...

:)
Comment 3 Pablo Cholaky 2008-08-29 05:46:06 UTC
Something new?

Digikam still too unuseable for netbooks and umpc.
Comment 4 Arnd Baecker 2008-08-29 07:39:16 UTC
Pablo, to me it seems that to make progress on this issue is
to provide the simplest possible example (i.e. code!)
for a panel which is too large. This can then be reported
as a bug for kdelibs (after making sure that this
is still true with the most recent version).

Also note, that 0.10 is not yet meant to be used in production!

Comment 5 caulier.gilles 2008-11-10 13:09:54 UTC
SVN commit 882317 by cgilles:

Sharpen tool : optimize layout for small screen 
CCBUGS: 164573


 M  +6 -6      sharpentool.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=882317
Comment 6 caulier.gilles 2008-11-10 13:12:21 UTC
SVN commit 882318 by cgilles:

backport commit #882317 from KDE3 branch
CCBUGS: 164573


 M  +6 -6      sharpentool.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=882318
Comment 7 caulier.gilles 2008-11-10 14:56:52 UTC
Created attachment 28453 [details]
Better sidebar usability using qscrollview instead qwidget

with this patch, all editortools use a scrollview to host all image plugins settings. This is not perfect, but it's a first step.

Let's me hear it usability is better on small screen, to continue or not in this way...

Gilles Caulier
Comment 8 caulier.gilles 2008-11-10 15:18:40 UTC
Created attachment 28454 [details]
Better sidebar usability using qscrollview instead qwidget (2nd)

Second version of patch with better layout adjustment.
Comment 9 Andi Clemens 2008-11-10 15:39:36 UTC
Well it works for me...
But somehow the reset buttons are all "hidden", I have to resize the splitter so that the reset buttons can be seen again. But I guess this is also true without the patch.

Andi
Comment 10 caulier.gilles 2008-11-10 15:56:08 UTC
SVN commit 882343 by cgilles:

Color image properties: use same optimized vertical layout that KDE4 version
CCBUGS: 164573


 M  +17 -23    imagepropertiescolorstab.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=882343
Comment 11 caulier.gilles 2008-11-10 15:59:10 UTC
Created attachment 28457 [details]
Better sidebar usability using qscrollview instead qwidget (3th)

And now, Caption & Tags sidebar tab use too scrollview for better usability on small screen
Comment 12 caulier.gilles 2008-11-10 18:50:55 UTC
SVN commit 882414 by cgilles:

digiKam from KDE3 : use QScrollView to host sidebar tab content everywhere to improve usability with small screen.
Now digiKam can be used on small computer screen, as with EEEPC for ex.
TODO: KDE4PORT
BUGS: 164573


 M  +12 -6     libs/imageproperties/cameraitempropertiestab.cpp
 M  +9 -2      libs/imageproperties/imagedescedittab.cpp
 M  +17 -6     libs/imageproperties/imagepropertiescolorstab.cpp
 M  +13 -6     libs/imageproperties/imagepropertiestab.cpp
 M  +15 -19    utilities/imageeditor/editor/editortoolsettings.cpp
 M  +2 -2      utilities/imageeditor/editor/editortoolsettings.h


--- branches/extragear/kde3/graphics/digikam/libs/imageproperties/cameraitempropertiestab.cpp #882413:882414
@@ -31,6 +31,7 @@
 #include <qcombobox.h>
 #include <qwhatsthis.h>
 #include <qframe.h>
+#include <qscrollview.h>

 // KDE includes.

@@ -161,14 +162,23 @@
    d = new CameraItemPropertiesTabPriv;

    setupNavigateBar(navBar);
-    d->settingsArea = new QFrame(this);
+
+    QScrollView *sv = new QScrollView(this);
+    sv->viewport()->setBackgroundMode(Qt::PaletteBackground);
+    sv->setResizePolicy(QScrollView::AutoOneFit);
+    sv->setFrameStyle(QFrame::NoFrame);
+
+    d->settingsArea = new QFrame(sv->viewport());
    d->settingsArea->setFrameStyle( QFrame::StyledPanel | QFrame::Sunken );
    d->settingsArea->setLineWidth( style().pixelMetric(QStyle::PM_DefaultFrameWidth, this) );

-    QGridLayout *settingsLayout = new QGridLayout(d->settingsArea, 27, 1, KDialog::spacingHint(), 0);
+    sv->addChild(d->settingsArea);
+    m_navigateBarLayout->addWidget(sv);

    // --------------------------------------------------

+    QGridLayout *settingsLayout = new QGridLayout(d->settingsArea, 27, 1, KDialog::spacingHint(), 0);
+
    d->title                  = new QLabel(i18n("<big><b>Camera File Properties</b></big>"), d->settingsArea);
    d->file                   = new QLabel(i18n("<b>File</b>:"), d->settingsArea);
    d->folder                 = new QLabel(i18n("<b>Folder</b>:"), d->settingsArea);
@@ -318,10 +328,6 @@
    settingsLayout->addMultiCellWidget(d->labelPhotoWhiteBalance, 26, 26, 1, 1);
    settingsLayout->setRowStretch(27, 10);
    settingsLayout->setColStretch(1, 10);
-
-    // --------------------------------------------------
-
-    m_navigateBarLayout->addWidget(d->settingsArea);
 }

 CameraItemPropertiesTab::~CameraItemPropertiesTab()
--- branches/extragear/kde3/graphics/digikam/libs/imageproperties/imagedescedittab.cpp #882413:882414
@@ -34,6 +34,7 @@
 #include <qiconset.h>
 #include <qwhatsthis.h>
 #include <qtooltip.h>
+#include <qscrollview.h>

 // KDE includes.

@@ -138,10 +139,16 @@
    d = new ImageDescEditTabPriv;

    setupNavigateBar(navBar);
-    QWidget *settingsArea = new QWidget(this);

-    m_navigateBarLayout->addWidget(settingsArea);
+    QScrollView *sv = new QScrollView(this);
+    sv->viewport()->setBackgroundMode(Qt::PaletteBackground);
+    sv->setResizePolicy(QScrollView::AutoOneFit);
+    sv->setFrameStyle(QFrame::NoFrame);

+    QWidget *settingsArea = new QWidget(sv->viewport());
+    sv->addChild(settingsArea);
+    m_navigateBarLayout->addWidget(sv);
+
    QGridLayout *settingsLayout = new QGridLayout(settingsArea, 6, 1,
                                      KDialog::spacingHint(), KDialog::spacingHint());

--- branches/extragear/kde3/graphics/digikam/libs/imageproperties/imagepropertiescolorstab.cpp #882413:882414
@@ -37,6 +37,7 @@
 #include <qpushbutton.h>
 #include <qtooltip.h>
 #include <qvbox.h>
+#include <qscrollview.h>

 // KDE includes.

@@ -153,9 +154,15 @@

    // Histogram tab area -----------------------------------------------------

-    QWidget* histogramPage = new QWidget( d->tab );
+    QScrollView *sv = new QScrollView(d->tab);
+    sv->viewport()->setBackgroundMode(Qt::PaletteBackground);
+    sv->setResizePolicy(QScrollView::AutoOneFit);
+    sv->setFrameStyle(QFrame::NoFrame);
+
+    QWidget* histogramPage = new QWidget(sv->viewport());
    QGridLayout *topLayout = new QGridLayout(histogramPage, 8, 3,
                                 KDialog::spacingHint(), KDialog::spacingHint());
+    sv->addChild(histogramPage);

    QLabel *label1 = new QLabel(i18n("Channel:"), histogramPage);
    label1->setAlignment ( Qt::AlignRight | Qt::AlignVCenter );
@@ -240,8 +247,6 @@
    SelectionImageButton->setPixmap( QPixmap( directory + "image-selection.png" ) );
    SelectionImageButton->setToggleButton(true);

-
-
    // -------------------------------------------------------------

    QVBox *histoBox    = new QVBox(histogramPage);
@@ -329,13 +334,19 @@
    topLayout->setColStretch(2, 10);
    topLayout->setRowStretch(7, 10);

-    d->tab->insertTab(histogramPage, i18n("Histogram"), ImagePropertiesColorsTabPriv::HISTOGRAM );
+    d->tab->insertTab(sv, i18n("Histogram"), ImagePropertiesColorsTabPriv::HISTOGRAM );

    // ICC Profiles tab area ---------------------------------------

-    d->iccProfileWidget = new ICCProfileWidget(d->tab);
-    d->tab->insertTab(d->iccProfileWidget, i18n("ICC profile"), ImagePropertiesColorsTabPriv::ICCPROFILE);
+    QScrollView *sv2 = new QScrollView(d->tab);
+    sv2->viewport()->setBackgroundMode(Qt::PaletteBackground);
+    sv2->setResizePolicy(QScrollView::AutoOneFit);
+    sv2->setFrameStyle(QFrame::NoFrame);

+    d->iccProfileWidget = new ICCProfileWidget(sv2->viewport());
+    sv2->addChild(d->iccProfileWidget);
+    d->tab->insertTab(sv2, i18n("ICC profile"), ImagePropertiesColorsTabPriv::ICCPROFILE);
+
    // -------------------------------------------------------------

    connect(d->channelCB, SIGNAL(activated(int)),
--- branches/extragear/kde3/graphics/digikam/libs/imageproperties/imagepropertiestab.cpp #882413:882414
@@ -31,6 +31,7 @@
 #include <qfileinfo.h>
 #include <qwhatsthis.h>
 #include <qframe.h>
+#include <qscrollview.h>

 // KDE includes.

@@ -174,10 +175,21 @@
    d = new ImagePropertiesTabPriv;

    setupNavigateBar(navBar);
-    d->settingsArea = new QFrame(this);
+
+    QScrollView *sv = new QScrollView(this);
+    sv->viewport()->setBackgroundMode(Qt::PaletteBackground);
+    sv->setResizePolicy(QScrollView::AutoOneFit);
+    sv->setFrameStyle(QFrame::NoFrame);
+
+    d->settingsArea = new QFrame(sv->viewport());
    d->settingsArea->setFrameStyle( QFrame::StyledPanel | QFrame::Sunken );
    d->settingsArea->setLineWidth( style().pixelMetric(QStyle::PM_DefaultFrameWidth, this) );

+    sv->addChild(d->settingsArea);
+    m_navigateBarLayout->addWidget(sv);
+
+    // --------------------------------------------------
+
    QGridLayout *settingsLayout = new QGridLayout(d->settingsArea, 33, 1, KDialog::spacingHint(), 0);

    // --------------------------------------------------
@@ -354,11 +366,6 @@

    settingsLayout->setRowStretch(33, 10);
    settingsLayout->setColStretch(1, 10);
-
-    // --------------------------------------------------
-
-    m_navigateBarLayout->addWidget(d->settingsArea);
-
 }

 ImagePropertiesTab::~ImagePropertiesTab()
--- branches/extragear/kde3/graphics/digikam/utilities/imageeditor/editor/editortoolsettings.cpp #882413:882414
@@ -23,6 +23,7 @@
 // Qt includes.

 #include <qhbox.h>
+#include <qvbox.h>
 #include <qlabel.h>
 #include <qlayout.h>
 #include <qstring.h>
@@ -101,22 +102,20 @@
 };

 EditorToolSettings::EditorToolSettings(int buttonMask, int toolMask, QWidget *parent)
-                  : QWidget(parent)
+                  : QScrollView(parent)
 {
    d = new EditorToolSettingsPriv;

-    // ---------------------------------------------------------------
+    viewport()->setBackgroundMode(Qt::PaletteBackground);
+    setResizePolicy(QScrollView::AutoOneFit);
+    setFrameStyle(QFrame::NoFrame);

-    QGridLayout* gridSettings = new QGridLayout(this, 4, 2);
+    QVBox* vbox = new QVBox(viewport());
+    addChild(vbox);

-    d->plainPage = new QWidget(this);
-    d->guideBox  = new QHBox(this);
-    d->btnBox1   = new QHBox(this);
-    d->btnBox2   = new QHBox(this);
-
    // ---------------------------------------------------------------

-    QFrame *frame     = new QFrame(this);
+    QFrame *frame     = new QFrame(vbox);
    frame->setFrameStyle(QFrame::Panel|QFrame::Sunken);
    QVBoxLayout* vlay = new QVBoxLayout(frame, 5, 0);
    d->panIconView    = new ImagePanIconWidget(360, 240, frame);
@@ -131,6 +130,13 @@

    // ---------------------------------------------------------------

+    d->plainPage = new QWidget(vbox);
+    d->guideBox  = new QHBox(vbox);
+    d->btnBox1   = new QHBox(vbox);
+    d->btnBox2   = new QHBox(vbox);
+
+    // ---------------------------------------------------------------
+
    new QLabel(i18n("Guide:"), d->guideBox);
    QLabel *space4  = new QLabel(d->guideBox);
    d->guideColorBt = new KColorButton(QColor(Qt::red), d->guideBox);
@@ -208,16 +214,6 @@

    // ---------------------------------------------------------------

-    gridSettings->addMultiCellWidget(frame,        0, 0, 0, 1);
-    gridSettings->addMultiCellWidget(d->plainPage, 1, 1, 0, 1);
-    gridSettings->addMultiCellWidget(d->guideBox,  2, 2, 0, 1);
-    gridSettings->addMultiCellWidget(d->btnBox2,   3, 3, 0, 1);
-    gridSettings->addMultiCellWidget(d->btnBox1,   4, 4, 0, 1);
-    gridSettings->setSpacing(spacingHint());
-    gridSettings->setMargin(0);
-
-    // ---------------------------------------------------------------
-
    connect(d->okBtn, SIGNAL(clicked()),
            this, SIGNAL(signalOkClicked()));

--- branches/extragear/kde3/graphics/digikam/utilities/imageeditor/editor/editortoolsettings.h #882413:882414
@@ -25,7 +25,7 @@

 // Qt includes.

-#include <qwidget.h>
+#include <qscrollview.h>

 // Local includes.

@@ -39,7 +39,7 @@
 class ImagePanIconWidget;
 class EditorToolSettingsPriv;

-class DIGIKAM_EXPORT EditorToolSettings : public QWidget
+class DIGIKAM_EXPORT EditorToolSettings : public QScrollView
 {
    Q_OBJECT
Comment 13 caulier.gilles 2008-11-10 22:25:55 UTC
SVN commit 882526 by cgilles:

backport commit #882414 from KDE3 branch
CCBUGS: 164573


 M  +50 -47    libs/imageproperties/cameraitempropertiestab.cpp  
 M  +2 -2      libs/imageproperties/cameraitempropertiestab.h  
 M  +18 -11    libs/imageproperties/imagedescedittab.cpp  
 M  +2 -2      libs/imageproperties/imagedescedittab.h  
 M  +15 -4     libs/imageproperties/imagepropertiescolorstab.cpp  
 M  +54 -51    libs/imageproperties/imagepropertiestab.cpp  
 M  +2 -2      libs/imageproperties/imagepropertiestab.h  
 M  +10 -2     project/project.kdevelop  
 M  +14 -9     utilities/imageeditor/editor/editortoolsettings.cpp  
 M  +2 -2      utilities/imageeditor/editor/editortoolsettings.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=882526
Comment 14 Christophe Marin 2010-03-26 14:28:39 UTC
*** Bug 229622 has been marked as a duplicate of this bug. ***