File indexing completed on 2024-05-12 16:40:53

0001 /* This file is part of the KDE project
0002    Copyright (C) 2005-2015 Jarosław Staniek <staniek@kde.org>
0003 
0004    This library is free software; you can redistribute it and/or
0005    modify it under the terms of the GNU Library General Public
0006    License as published by the Free Software Foundation; either
0007    version 2 of the License, or (at your option) any later version.
0008 
0009    This library is distributed in the hope that it will be useful,
0010    but WITHOUT ANY WARRANTY; without even the implied warranty of
0011    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0012    Library General Public License for more details.
0013 
0014    You should have received a copy of the GNU Library General Public License
0015    along with this library; see the file COPYING.LIB.  If not, write to
0016    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0017  * Boston, MA 02110-1301, USA.
0018 */
0019 
0020 #ifndef KEXIDBDRIVERCOMBOBOX_H
0021 #define KEXIDBDRIVERCOMBOBOX_H
0022 
0023 #include "kexiextwidgets_export.h"
0024 
0025 #include <KComboBox>
0026 
0027 //! \brief A combo box widget for selecting a database driver
0028 //! @todo move to a KDbWidgets lib within KDb
0029 class KEXIEXTWIDGETS_EXPORT KexiDBDriverComboBox : public KComboBox
0030 {
0031     Q_OBJECT
0032 public:
0033     enum Option {
0034         ShowFileDrivers = 1,
0035         ShowServerDrivers = 2,
0036         ShowAllDrivers = ShowFileDrivers|ShowServerDrivers
0037     };
0038     Q_DECLARE_FLAGS(Options, Option)
0039 
0040     /*! Constructs a new KexiDBDriverComboBox object.
0041 
0042         The combobox is populated with user-visible names of drivers obtained from
0043         the KDbDriverManager.
0044         If @a options include ShowFileDrivers, file-based drivers are included.
0045         If @a options include ShowServerDrivers, setver-based drivers are included.
0046     */
0047     explicit KexiDBDriverComboBox(QWidget* parent = 0,
0048                                   Options options = ShowAllDrivers);
0049 
0050     ~KexiDBDriverComboBox();
0051 
0052     //! @return ID of the currently selected driver
0053     QString currentDriverId() const;
0054 
0055     //! Set the ID of currently selected driver to @a driverId.
0056     void setCurrentDriverId(const QString& driverId);
0057 
0058 private:
0059     class Private;
0060     Private * const d;
0061 };
0062 
0063 Q_DECLARE_OPERATORS_FOR_FLAGS(KexiDBDriverComboBox::Options)
0064 
0065 #endif