summaryrefslogtreecommitdiffstats
path: root/src/kile/floatdialog.cpp
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-02-10 03:05:17 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-02-10 03:05:17 +0000
commit2c945cd914550233ed352ff195afeb4dd793f122 (patch)
tree4796bfab5733942b90b5a66bb05655be5fdcca03 /src/kile/floatdialog.cpp
downloadkile-2c945cd914550233ed352ff195afeb4dd793f122.tar.gz
kile-2c945cd914550233ed352ff195afeb4dd793f122.zip
Added abandoned KDE3 version of Kile
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/kile@1088055 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'src/kile/floatdialog.cpp')
-rw-r--r--src/kile/floatdialog.cpp194
1 files changed, 194 insertions, 0 deletions
diff --git a/src/kile/floatdialog.cpp b/src/kile/floatdialog.cpp
new file mode 100644
index 0000000..e515d70
--- /dev/null
+++ b/src/kile/floatdialog.cpp
@@ -0,0 +1,194 @@
+/***************************************************************************
+ date : Dec 06 2005
+ version : 0.12
+ copyright : (C) 2005 by Holger Danielsson
+ email : holger.danielsson@t-online.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * 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 "floatdialog.h"
+
+#include <qlayout.h>
+#include <qbuttongroup.h>
+#include <qregexp.h>
+
+#include <klocale.h>
+#include "kiledebug.h"
+
+#include "kileedit.h"
+
+namespace KileDialog
+{
+
+FloatEnvironmentDialog::FloatEnvironmentDialog(KConfig *config, KileInfo *ki, QWidget *parent)
+ : Wizard(config,parent), m_ki(ki)
+{
+ QWidget *page = new QWidget(this);
+ setMainWidget(page);
+
+ QGridLayout *grid = new QGridLayout(page, 6,2, 8,8);
+
+ // environment groupbox
+ QButtonGroup *egroup = new QButtonGroup( i18n("Environment"),page);
+ egroup->setColumnLayout(0, Qt::Vertical );
+ egroup->layout()->setSpacing( 6 );
+ egroup->layout()->setMargin( 11 );
+ QGridLayout *egrouplayout = new QGridLayout( egroup->layout() );
+ egrouplayout->setAlignment( Qt::AlignTop );
+
+ m_rbFigure = new QRadioButton(i18n("&Figure"), egroup);
+ m_rbTable = new QRadioButton(i18n("T&able"), egroup);
+
+ egrouplayout->addWidget( m_rbFigure, 0,0 );
+ egrouplayout->addWidget( m_rbTable, 0,1 );
+
+ // position groupbox
+ QButtonGroup *pgroup = new QButtonGroup( i18n("Position"),page);
+ pgroup->setColumnLayout(0, Qt::Vertical );
+ pgroup->layout()->setSpacing( 6 );
+ pgroup->layout()->setMargin( 11 );
+ QGridLayout *pgrouplayout = new QGridLayout( pgroup->layout() );
+ pgrouplayout->setAlignment( Qt::AlignTop );
+
+ QLabel *label1 = new QLabel(i18n("Here exact:"), pgroup);
+ QLabel *label2 = new QLabel(i18n("Top of page:"), pgroup);
+ QLabel *label3 = new QLabel(i18n("Bottom of page:"), pgroup);
+ QLabel *label4 = new QLabel(i18n("Extra page:"), pgroup);
+ m_cbHere = new QCheckBox(pgroup);
+ m_cbTop = new QCheckBox(pgroup);
+ m_cbBottom = new QCheckBox(pgroup);
+ m_cbPage = new QCheckBox(pgroup);
+
+ pgrouplayout->addWidget( label1, 0,0 );
+ pgrouplayout->addWidget( label2, 1,0 );
+ pgrouplayout->addWidget( label3, 0,2 );
+ pgrouplayout->addWidget( label4, 1,2 );
+ pgrouplayout->addWidget( m_cbHere, 0,1 );
+ pgrouplayout->addWidget( m_cbTop, 1,1 );
+ pgrouplayout->addWidget( m_cbBottom, 0,3 );
+ pgrouplayout->addWidget( m_cbPage, 1,3 );
+
+ // center environment
+ QLabel *label5 = new QLabel(i18n("Center:"),page);
+ m_cbCenter = new QCheckBox(page);
+
+ // Caption
+ QLabel *label6 = new QLabel(i18n("Ca&ption:"),page);
+ m_edCaption = new KLineEdit("",page);
+ m_edCaption->setMinimumWidth(300);
+ label6->setBuddy(m_edCaption);
+
+ // Label
+ QLabel *label7 = new QLabel(i18n("&Label:"),page);
+ m_edLabel = new KLineEdit("",page);
+ m_edLabel->setMinimumWidth(300);
+ label7->setBuddy(m_edLabel);
+
+
+ // add widgets
+ grid->addMultiCellWidget( egroup, 0,0,0,1 );
+ grid->addMultiCellWidget( pgroup, 1,1,0,1 );
+ grid->addWidget(label5,2,0);
+ grid->addWidget(label6,3,0);
+ grid->addWidget(label7,4,0);
+ grid->addWidget(m_cbCenter,2,1);
+ grid->addWidget(m_edCaption,3,1);
+ grid->addWidget(m_edLabel,4,1);
+
+ // default values
+ m_cbCenter->setChecked(true);
+ m_cbHere->setChecked(true);
+ m_cbTop->setChecked(true);
+ m_cbPage->setChecked(true);
+ m_rbFigure->setChecked(true);
+ m_prefix = "fig:";
+ m_edLabel->setText(m_prefix);
+ slotEnvironmentClicked();
+
+ grid->setRowStretch(5,1);
+ setFocusProxy( m_edCaption );
+
+ // signals and slots
+ connect(m_rbFigure, SIGNAL(clicked()), this, SLOT(slotEnvironmentClicked()));
+ connect(m_rbTable, SIGNAL(clicked()), this, SLOT(slotEnvironmentClicked()));
+
+}
+
+////////////////////////////// determine the whole tag //////////////////////////////
+
+void FloatEnvironmentDialog::slotOk()
+{
+ QString envname = ( m_rbFigure->isChecked() ) ? "figure" : "table";
+ QString indent = m_ki->editorExtension()->autoIndentEnvironment();
+
+ QString position;
+ if ( m_cbHere->isChecked() )
+ position += 'h';
+ if ( m_cbTop->isChecked() )
+ position += 't';
+ if ( m_cbBottom->isChecked() )
+ position += 'b';
+ if ( m_cbPage->isChecked() )
+ position += 'p';
+
+ m_td.tagBegin = "\\begin{" + envname + '}';
+ if ( !position.isEmpty() )
+ m_td.tagBegin += '[' + position + ']';
+ m_td.tagBegin += '\n';
+
+ int row = 1;
+ if ( m_cbCenter->isChecked() ) {
+ m_td.tagBegin += indent + "\\centering\n";
+ row = 2;
+ }
+
+ m_td.tagEnd = indent + '\n';
+
+ QString caption = m_edCaption->text();
+ if ( ! caption.isEmpty() )
+ m_td.tagEnd += indent + "\\caption{" + caption + "}\n";
+
+ QString label = m_edLabel->text();
+ if ( !label.isEmpty() && label!=m_prefix )
+ m_td.tagEnd += indent + "\\label{" + label + "}\n";
+
+ m_td.tagEnd += "\\end{" + envname + "}\n";
+
+ m_td.dy=row;
+ m_td.dx=indent.length();
+
+ accept();
+}
+
+void FloatEnvironmentDialog::slotEnvironmentClicked()
+{
+ QString caption,oldprefix;
+
+ if ( m_rbFigure->isChecked() ) {
+ caption = i18n("Figure Environment");
+ oldprefix = "^tab:";
+ m_prefix = "fig:";
+ } else {
+ caption = i18n("Table Environment");
+ oldprefix = "^fig:";
+ m_prefix = "tab:";
+ }
+
+ setCaption(caption);
+ QString s = m_edLabel->text();
+ s.replace( QRegExp(oldprefix),m_prefix);
+ m_edLabel->setText(s);
+
+}
+
+}
+
+#include "floatdialog.moc"