/*************************************************************************** devselector.h - description ------------------- begin : Sun Jun 11 2000 copyright : (C) 2000 by Klaas Freitag email : freitag@suse.de ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef DEVSELECTOR_H #define DEVSELECTOR_H #include class QButtonGroup; class QStrList; class QStringList; class QCheckBox; /** *@author Klaas Freitag */ /* Configuration-file definitions */ #define GROUP_STARTUP "Scan Settings" #define STARTUP_SCANDEV "ScanDevice" #define STARTUP_SKIP_ASK "SkipStartupAsk" #define STARTUP_ONLY_LOCAL "QueryLocalOnly" /** * A utitlity class that lets the user select a scan device. * * This class provides functions to get the scan device to use for an * application with scan support. * * Its main purpose is to display a selection dialog, but it also reads * and writes config entries to store the users selection and handles * a field 'do not ask me again'. * */ class DeviceSelector: public KDialogBase { Q_OBJECT public: /** * constructs the dialog class * @param QWidget *parent - the parent * @param QStrList backends - a list of device names retrieved from the scan device * @param QStrList scannerNames - a list of corresponding human readable sanner names. */ DeviceSelector( QWidget *parent, QStrList&, const QStringList& ); ~DeviceSelector(); /** * returns the device the user selected. * @return a CString containing the technical name of the selected device (taken from * the backends-list from the constructor) */ QCString getSelectedDevice( void ) const; /** * returns the users selection if the dialog should be skipped in future. * @return true for should be skipped. */ bool getShouldSkip( void ) const; /** * retrieval to get the device from the config file. The function reads the applications * config file, cares for the 'do not ask me again'-settings and checks if the scandevice * specified in the config file is present at the current configuration. * If this function returns null, the DeviceSelector should be opened for a user selection. * @return a string containing the device to open or null if no device is specified or the * one specified is not valid. */ QCString getDeviceFromConfig( void ) const; public slots: void setScanSources( const QStrList&, const QStringList& ); private: QButtonGroup *selectBox; mutable QStrList devices; QCheckBox *cbSkipDialog; bool configDevValid; class DeviceSelectorPrivate; DeviceSelectorPrivate *d; }; #endif .