[Digikam-devel] [Bug 164573] Better support for small screens

Gilles Caulier caulier.gilles at gmail.com
Mon Nov 10 17:50:57 GMT 2008


http://bugs.kde.org/show_bug.cgi?id=164573


Gilles Caulier caulier gilles gmail com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |FIXED




--- Comment #12 from Gilles Caulier <caulier gilles gmail com>  2008-11-10 18:50:55 ---
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


-- 
Configure bugmail: http://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the Digikam-devel mailing list