summaryrefslogtreecommitdiffstats
path: root/src/newbasketdialog.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/newbasketdialog.h')
-rw-r--r--src/newbasketdialog.h100
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