summaryrefslogtreecommitdiffstats
path: root/kexi/plugins/macros/kexipart/keximacrodesignview.h
diff options
context:
space:
mode:
Diffstat (limited to 'kexi/plugins/macros/kexipart/keximacrodesignview.h')
-rw-r--r--kexi/plugins/macros/kexipart/keximacrodesignview.h129
1 files changed, 129 insertions, 0 deletions
diff --git a/kexi/plugins/macros/kexipart/keximacrodesignview.h b/kexi/plugins/macros/kexipart/keximacrodesignview.h
new file mode 100644
index 00000000..c3eca2d2
--- /dev/null
+++ b/kexi/plugins/macros/kexipart/keximacrodesignview.h
@@ -0,0 +1,129 @@
+/* This file is part of the KDE project
+ Copyright (C) 2006 Sebastian Sauer <mail@dipe.org>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+ This library 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
+ Library General Public License for more details.
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+#ifndef KEXIMACRODESIGNVIEW_H
+#define KEXIMACRODESIGNVIEW_H
+
+#include "keximacroview.h"
+
+// Forward declarations.
+namespace KoMacro {
+ class Action;
+ class Macro;
+ class MacroItem;
+}
+namespace KoProperty {
+ class Property;
+}
+namespace KexiDB {
+ class ResultInfo;
+}
+class KexiTableItem;
+
+/**
+ * The KexiScriptDesignView implements \a KexiMacroView to provide
+ * a GUI-Editor to edit a Macro.
+ */
+class KexiMacroDesignView : public KexiMacroView
+{
+ Q_OBJECT
+ public:
+
+ /**
+ * Constructor.
+ *
+ * \param mainwin The \a KexiMainWindow instance this \a KexiViewBase
+ * belongs to.
+ * \param parent The parent widget this widget should be displayed in.
+ * \param macro The \a KoMacro::Macro instance this view is for.
+ */
+ KexiMacroDesignView(KexiMainWindow *mainwin, QWidget *parent, ::KoMacro::Macro* const macro);
+
+ /**
+ * Destructor.
+ */
+ virtual ~KexiMacroDesignView();
+
+ /**
+ * Load the data from XML source and fill the internally
+ * used \a KoMacro::Macro instance.
+ */
+ virtual bool loadData();
+
+ /**
+ * \return the \a KoProperty::Set properties this view provides.
+ */
+ virtual KoProperty::Set* propertySet();
+
+ private slots:
+
+ /**
+ * Called before a cell changed in the internaly used
+ * \a KexiTableView .
+ */
+ void beforeCellChanged(KexiTableItem*, int, QVariant&, KexiDB::ResultInfo*);
+
+ /**
+ * Called if the passed \p item got updated.
+ */
+ void rowUpdated(KexiTableItem* item);
+
+ /**
+ * Called if a row got deleted.
+ */
+ void rowDeleted();
+
+ /**
+ * Called if a row got inserted.
+ */
+ void rowInserted(KexiTableItem* item, uint row, bool repaint);
+
+ /**
+ * Called if a property in the \a KoProperty got changed.
+ */
+ void propertyChanged(KoProperty::Set&, KoProperty::Property&);
+
+ /**
+ * Reloads the propertyset delayed.
+ */
+ void reloadPropertyLater();
+
+ private:
+ /// \internal d-pointer class.
+ class Private;
+ /// \internal d-pointer instance.
+ Private* const d;
+
+ /**
+ * Update the table's data.
+ */
+ void updateData();
+
+ /**
+ * Update the \a KoProperty::Set set with the passed \a KoMacro::MacroItem
+ * \p item and the variablename \p variablename .
+ */
+ bool updateSet(KoProperty::Set* set, KSharedPtr<KoMacro::MacroItem> item, const QString& variablename);
+
+ /**
+ * Update the properties of the \a KoProperty::Set \p set at
+ * row-number \p row with the \a KoMacro::MacroItem \p macroitem .
+ */
+ void updateProperties(int row, KoProperty::Set* set, KSharedPtr<KoMacro::MacroItem> macroitem);
+};
+
+#endif