SVN commit 773349 by annma: allow previews of static pictures in config dialog M +21 -10 configdialog.cpp M +7 -1 configdialog.h M +2 -2 frame.cpp --- trunk/extragear/plasma/applets/frame/configdialog.cpp #773348:773349 @@ -21,8 +21,8 @@ #include #include "configdialog.h" +#include "picture.h" - ConfigDialog::ConfigDialog( QWidget *parent ) : KDialog( parent ) { @@ -43,18 +43,16 @@ QString monitorPath = KStandardDirs::locate("data", "kcontrol/pics/monitor.png"); // Size of monitor image: 200x186 // Geometry of "display" part of monitor image: (23,14)-[151x115] - qreal previewRatio = 128.0 / (101.0 * m_ratio); - QSize monitorSize(200, int(186 * previewRatio)); - QRect previewRect(23, int(14 * previewRatio), 151, int(115 * previewRatio)); - //m_preview_renderer.setSize(previewRect.size()); - - ui.monitorLabel->setPixmap(QPixmap(monitorPath));//.scaled(monitorSize)); + ui.monitorLabel->setPixmap(QPixmap(monitorPath)); ui.monitorLabel->setWhatsThis(i18n( "This picture of a monitor contains a preview of " - "what the current settings will look like on your desktop.")); + "the picture you currently have in your frame.")); m_preview = new QLabel(ui.monitorLabel); m_preview->setScaledContents(true); - m_preview->setGeometry(previewRect); + m_preview->setGeometry(23,14,151,115); + m_preview->show(); + + connect(ui.picRequester, SIGNAL(urlSelected(const KUrl & )), this, SLOT(changePreview(const KUrl &))); } ConfigDialog::~ConfigDialog() @@ -109,4 +107,17 @@ KUrl ConfigDialog::currentUrl() const { return ui.picRequester->url(); -} \ No newline at end of file +} + +void ConfigDialog::previewPicture(const QImage &image) +{ + QImage scaledImage = image.scaled(QRect(23,14,151,115).size(), Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation); + m_preview->setPixmap(QPixmap::fromImage(scaledImage)); +} + +void ConfigDialog::changePreview(const KUrl &path) +{ + Picture myPicture; + previewPicture(myPicture.setPicture(path)); +} + --- trunk/extragear/plasma/applets/frame/configdialog.h #773348:773349 @@ -26,6 +26,7 @@ class ConfigDialog : public KDialog { + Q_OBJECT public: ConfigDialog( QWidget *parent ); ~ConfigDialog(); @@ -49,7 +50,12 @@ Ui::config ui; /// Image Preview QLabel *m_preview; - float m_ratio; + /// Allow to preview each new chosen picture + void previewPicture(const QImage &pix); + +private slots: + void changePreview(const KUrl &); + }; #endif --- trunk/extragear/plasma/applets/frame/frame.cpp #773348:773349 @@ -140,7 +140,7 @@ } connect(m_configDialog->ui.removeDirButton, SIGNAL(clicked()), this, SLOT(removeDir())); connect(m_configDialog->ui.addDirButton, SIGNAL(clicked()), this, SLOT(addDir())); - + m_configDialog->setRoundCorners( m_roundCorners ); m_configDialog->setShadow(m_shadow); m_configDialog->setShowFrame(m_frame); @@ -152,7 +152,7 @@ m_configDialog->ui.slideShowDirList->addItems(m_slideShowPaths); m_configDialog->ui.removeDirButton->setEnabled(!m_slideShowPaths.isEmpty()); m_configDialog->ui.slideShowDelay->setTime(QTime(m_slideshowTime / 3600, (m_slideshowTime / 60) % 60, m_slideshowTime % 60)); - + m_configDialog->previewPicture(m_picture); m_configDialog->show(); m_configDialog->raise(); }