summaryrefslogtreecommitdiffstats
path: root/quanta/components/framewizard/framewizard.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'quanta/components/framewizard/framewizard.cpp')
-rw-r--r--quanta/components/framewizard/framewizard.cpp120
1 files changed, 120 insertions, 0 deletions
diff --git a/quanta/components/framewizard/framewizard.cpp b/quanta/components/framewizard/framewizard.cpp
new file mode 100644
index 00000000..2f3903dd
--- /dev/null
+++ b/quanta/components/framewizard/framewizard.cpp
@@ -0,0 +1,120 @@
+/***************************************************************************
+ framewizard.cpp - description
+ -------------------
+ begin : mer giu 4 14:14:07 CEST 2003
+ copyright : (C) |YEAR| by Gu2003Luciano
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * 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. *
+ * *
+ ***************************************************************************/
+
+#include "framewizard.h"
+#include "fmrceditor.h"
+#include "fmfpeditor.h"
+#include <kmessagebox.h>
+//#include <kdebug.h>
+#include <klocale.h>
+#include <qpushbutton.h>
+
+#include "fwglobal.h"
+
+static const QString info1=i18n("You must select an area."),
+ info2=i18n("Before editing a frame you must save the file.");
+
+FrameWizard::FrameWizard(QWidget *parent, const char *name) : FrameWizardS(parent, name),
+m_hasSelected(false),m_saved(false)
+{
+ m_hasSelected = false;
+ m_currSA=vfe->internalTree()->root()->label();
+ connect(this, SIGNAL(launchDraw()), this, SLOT(draw()));
+ connect(vfe, SIGNAL(areaSelected(const QString &)), this, SLOT(catchSelectedArea(const QString &)));
+
+ connect(pbHorizontal, SIGNAL(clicked()), this, SLOT(split()));
+ connect(pbVertical, SIGNAL(clicked()), this, SLOT(split()));
+ connect(pbEditFrame, SIGNAL(clicked()), this, SLOT(showFrameEditorDlg()));
+ connect(pbReset, SIGNAL(clicked()), this, SLOT(reset()));
+ connect(pbDelete, SIGNAL(clicked()), this, SLOT(remove()));
+}
+
+FrameWizard::~FrameWizard(){
+#define QT_CHECK_NULL
+Q_CHECK_PTR( vfe );
+}
+
+void FrameWizard::catchSelectedArea(const QString &id ){
+ m_currSA = id; //is the current SelectableArea selected
+ m_hasSelected = true;// a SelectableArea has been selected
+}
+
+void FrameWizard::split(){
+ if(m_hasSelected) {
+ int split = 0;
+ QString currNodeLabel = m_currSA;
+ QString senderName=sender()->name();
+ if(senderName=="pbHorizontal"){
+ split = showRCeditorDlg(i18n("Enter the desired number of rows:"));
+ if(split>=2) vfe->split(currNodeLabel,split,HORIZONTAL);
+ }
+ else
+ if(senderName=="pbVertical"){
+ split = showRCeditorDlg(i18n("Enter the desired number of columns:"));
+ if(split>=2) vfe->split(currNodeLabel,split,VERTICAL);
+ }
+ emit launchDraw();
+ }
+ else KMessageBox::information( this, info1, i18n("Warning") );
+ m_hasSelected=false;
+}
+
+void FrameWizard::draw(){
+ vfe->draw();
+}
+
+int FrameWizard::showRCeditorDlg(const QString &s){
+ int res = 0;
+ fmRCeditor *dlg = new fmRCeditor;
+ dlg->setLabelText(s);
+ if(dlg->exec()) res = dlg->spinBoxValue();
+ delete dlg;
+ return res;
+}
+
+void FrameWizard::showFrameEditorDlg(){
+ if(m_saved){
+ if(m_hasSelected) {
+ fmFPeditor *dlg = new fmFPeditor();
+ dlg->setup(vfe->internalTree()->findAreaAttribute(m_currSA)->attributeMap());
+ if(dlg->exec()) {
+ vfe->internalTree()->findAreaAttribute(m_currSA)->setAllAttributes(dlg->attributeMap());
+ vfe->draw();
+ }
+ delete dlg;
+ }
+ else KMessageBox::information( this, info1, i18n("Warning") );
+ m_hasSelected=false;
+ }
+ else KMessageBox::information( this, info2, i18n("Warning") );
+}
+
+void FrameWizard::reset(){
+ vfe->internalTree()->reset();
+ draw();
+}
+
+void FrameWizard::remove(){
+ if(m_hasSelected) {
+ vfe->removeNode(m_currSA);
+ draw();
+ }
+ else KMessageBox::information( this, info1, i18n("Warning") );
+ m_hasSelected=false;
+}
+
+#include "framewizard.moc"