/*************************************************************************** copyright : (C) 2003-2006 by Robby Stephenson email : robby@periapsis.org ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of version 2 of the GNU General Public License as * * published by the Free Software Foundation; * * * ***************************************************************************/ #ifndef FETCHCONFIGWIDGET_H #define FETCHCONFIGWIDGET_H #include "../datavectors.h" #include #include #include class TDEConfigGroup; class TQStringList; namespace Tellico { namespace Fetch { /** * @author Robby Stephenson */ class ConfigWidget : public TQWidget { TQ_OBJECT public: ConfigWidget(TQWidget* parent); virtual ~ConfigWidget() {} void setAccepted(bool accepted_) { m_accepted = accepted_; } bool shouldSave() const { return m_modified && m_accepted; } /** * Saves any configuration options. The config group must be * set before calling this function. * * @param config_ The TDEConfig pointer */ virtual void saveConfig(TDEConfigGroup& config) = 0; /** * Called when a fetcher data source is removed. Useful for any cleanup work necessary. * The ExecExternalFetcher might need to remove the script, for example. * Because of the way the ConfigDialog is setup, easier to have that in the ConfigWidget * class than in the Fetcher class itself */ virtual void removed() {} virtual TQString preferredName() const = 0; signals: void signalName(const TQString& name); public slots: void slotSetModified(bool modified_ = true) { m_modified = modified_; } protected: TQWidget* optionsWidget() { return m_optionsWidget; } void addFieldsWidget(const StringMap& customFields, const TQStringList& fieldsToAdd); void saveFieldsConfig(TDEConfigGroup& config) const; private: bool m_modified; bool m_accepted; TQWidget* m_optionsWidget; TQDict m_fields; }; } } #endif