Git commit ea8b15ef1b454b610b8e1bf2c6df0c0592e4d954 by Martin Koller. Committed on 14/08/2012 at 11:08. Pushed by mkoller into branch 'master'.
help the user and show explanation if no device was found BUG: 170623 FIXED-IN: 4.10 REVIEW: 105993 GUI: M +24 -5 libksane/ksane_device_dialog.cpp http://commits.kde.org/libksane/ea8b15ef1b454b610b8e1bf2c6df0c0592e4d954 diff --git a/libksane/ksane_device_dialog.cpp b/libksane/ksane_device_dialog.cpp index 10fc20e..4c3e615 100644 --- a/libksane/ksane_device_dialog.cpp +++ b/libksane/ksane_device_dialog.cpp @@ -44,6 +44,8 @@ extern "C" #include <KPushButton> #include <QScrollArea> +#include <QLabel> + namespace KSaneIface { @@ -55,23 +57,35 @@ KSaneDeviceDialog::KSaneDeviceDialog(QWidget *parent) setButtonText(User1, i18n("Reload devices list")); m_btnGroup = new QButtonGroup(this); - + m_btnBox = new QGroupBox; - m_btnLayout = new QVBoxLayout; QVBoxLayout *layout = new QVBoxLayout; m_btnContainer = new QWidget; m_btnLayout = new QVBoxLayout(m_btnContainer); QScrollArea *area = new QScrollArea; m_btnBox->setLayout(layout); - + + QLabel *explanation = + new QLabel(i18n("<html>The SANE (Scanner Access Now Easy) system could not find any device.<br>" + "Check that the scanner is plugged in and turned on<br>" + "or check your systems scanner setup.<br>" + "For details about SANE see the " + "<a href='http://www.sane-project.org/'>SANE homepage</a>.</html>")); + explanation->setOpenExternalLinks(true); + int l,t,r,b; + layout->getContentsMargins(&l, &t, &r, &b); + explanation->setContentsMargins(l, t, r, b); + + layout->addWidget(explanation); + m_btnBox->adjustSize(); // make sure to see the complete explanation text layout->addWidget(area); layout->setContentsMargins(0,0,0,0); area->setWidgetResizable(true); area->setFrameShape(QFrame::NoFrame); area->setWidget(m_btnContainer); - + setMainWidget(m_btnBox); setMinimumHeight(200); m_findDevThread = FindSaneDevicesThread::getInstance(); @@ -93,6 +107,7 @@ void KSaneDeviceDialog::reloadDevicesList() delete m_btnGroup->buttons().takeFirst(); } m_btnBox->setTitle(i18n("Looking for devices. Please wait.")); + m_btnBox->layout()->itemAt(0)->widget()->hide(); // explanation enableButton(KDialog::User1, false); if(!m_findDevThread->isRunning()) { @@ -131,6 +146,8 @@ void KSaneDeviceDialog::updateDevicesList() const QList<KSaneWidget::DeviceInfo> list = m_findDevThread->devicesList(); if (list.isEmpty()) { m_btnBox->setTitle(i18n("Sorry. No devices found.")); + m_btnBox->layout()->itemAt(0)->widget()->show(); // explanation + m_btnBox->layout()->itemAt(1)->widget()->hide(); // scroll area enableButton(KDialog::User1, true); return; } @@ -139,7 +156,9 @@ void KSaneDeviceDialog::updateDevicesList() m_btnLayout = new QVBoxLayout; m_btnContainer->setLayout(m_btnLayout); m_btnBox->setTitle(i18n("Found devices:")); - + m_btnBox->layout()->itemAt(0)->widget()->hide(); // explanation + m_btnBox->layout()->itemAt(1)->widget()->show(); // scroll area + for (int i=0; i< list.size(); i++) { QRadioButton *b = new QRadioButton(this); b->setObjectName(list[i].name);
