diff options
Diffstat (limited to 'src/newbasketdialog.h')
-rw-r--r-- | src/newbasketdialog.h | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/src/newbasketdialog.h b/src/newbasketdialog.h new file mode 100644 index 0000000..9e9477f --- /dev/null +++ b/src/newbasketdialog.h @@ -0,0 +1,100 @@ +/*************************************************************************** + * Copyright (C) 2003 by Sébastien Laoût * + * slaout@linux62.org * + * * + * 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. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ + +#ifndef NEWBASKETDIALOG_H +#define NEWBASKETDIALOG_H + +#include <kdialogbase.h> +#include <kiconview.h> +#include <qmap.h> + +class KIconButton; +class QLineEdit; +class QDragObject; +class QListViewItem; + +class Basket; + +class KColorCombo2; + +/** The class KIconView allow to drag items. We don't want to, so we disable it. + * This class also unselect the selected item when the user right click an empty space. We don't want to, so we reselect it if that happens. + * @author Sébastien Laoût + */ +class SingleSelectionKIconView : public KIconView +{ + Q_OBJECT + public: + SingleSelectionKIconView(QWidget *parent = 0, const char *name = 0, WFlags f = 0); + QDragObject* dragObject(); + QIconViewItem* selectedItem() { return m_lastSelected; } + private slots: + void slotSelectionChanged(QIconViewItem *item); + void slotSelectionChanged(); + private: + QIconViewItem *m_lastSelected; +}; + +/** Struct to store default properties of a new basket. + * When the dialog shows up, the @p icon is used, as well as the @p backgroundColor. + * A template is choosen depending on @p freeLayout and @p columnLayout. + * If @p columnLayout is too high, the template with the more columns will be chosen instead. + * If the user change the background color in the dialog, then @p backgroundImage and @p textColor will not be used! + * @author Sébastien Laoût + */ +struct NewBasketDefaultProperties +{ + QString icon; + QString backgroundImage; + QColor backgroundColor; + QColor textColor; + bool freeLayout; + int columnCount; + + NewBasketDefaultProperties(); +}; + +/** The dialog to create a new basket from a template. + * @author Sébastien Laoût + */ +class NewBasketDialog : public KDialogBase +{ + Q_OBJECT + public: + NewBasketDialog(Basket *parentBasket, const NewBasketDefaultProperties &defaultProperties, QWidget *parent = 0); + ~NewBasketDialog(); + void polish(); + protected slots: + void slotOk(); + void returnPressed(); + void manageTemplates(); + void nameChanged(const QString &newName); + private: + int populateBasketsList(QListViewItem *item, int indent, int index); + NewBasketDefaultProperties m_defaultProperties; + KIconButton *m_icon; + QLineEdit *m_name; + KColorCombo2 *m_backgroundColor; + KIconView *m_templates; + QComboBox *m_createIn; + QMap<int, Basket*> m_basketsMap; +}; + +#endif // NEWBASKETDIALOG_H |