You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
195 lines
5.7 KiB
195 lines
5.7 KiB
/***************************************************************************
|
|
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 <tqlayout.h>
|
|
#include <tqbuttongroup.h>
|
|
#include <tqregexp.h>
|
|
|
|
#include <tdelocale.h>
|
|
#include "kiledebug.h"
|
|
|
|
#include "kileedit.h"
|
|
|
|
namespace KileDialog
|
|
{
|
|
|
|
FloatEnvironmentDialog::FloatEnvironmentDialog(TDEConfig *config, KileInfo *ki, TQWidget *parent)
|
|
: Wizard(config,parent), m_ki(ki)
|
|
{
|
|
TQWidget *page = new TQWidget(this);
|
|
setMainWidget(page);
|
|
|
|
TQGridLayout *grid = new TQGridLayout(page, 6,2, 8,8);
|
|
|
|
// environment groupbox
|
|
TQButtonGroup *egroup = new TQButtonGroup( i18n("Environment"),page);
|
|
egroup->setColumnLayout(0, TQt::Vertical );
|
|
egroup->layout()->setSpacing( 6 );
|
|
egroup->layout()->setMargin( 11 );
|
|
TQGridLayout *egrouplayout = new TQGridLayout( egroup->layout() );
|
|
egrouplayout->setAlignment( TQt::AlignTop );
|
|
|
|
m_rbFigure = new TQRadioButton(i18n("&Figure"), egroup);
|
|
m_rbTable = new TQRadioButton(i18n("T&able"), egroup);
|
|
|
|
egrouplayout->addWidget( m_rbFigure, 0,0 );
|
|
egrouplayout->addWidget( m_rbTable, 0,1 );
|
|
|
|
// position groupbox
|
|
TQButtonGroup *pgroup = new TQButtonGroup( i18n("Position"),page);
|
|
pgroup->setColumnLayout(0, TQt::Vertical );
|
|
pgroup->layout()->setSpacing( 6 );
|
|
pgroup->layout()->setMargin( 11 );
|
|
TQGridLayout *pgrouplayout = new TQGridLayout( pgroup->layout() );
|
|
pgrouplayout->setAlignment( TQt::AlignTop );
|
|
|
|
TQLabel *label1 = new TQLabel(i18n("Here exact:"), pgroup);
|
|
TQLabel *label2 = new TQLabel(i18n("Top of page:"), pgroup);
|
|
TQLabel *label3 = new TQLabel(i18n("Bottom of page:"), pgroup);
|
|
TQLabel *label4 = new TQLabel(i18n("Extra page:"), pgroup);
|
|
m_cbHere = new TQCheckBox(pgroup);
|
|
m_cbTop = new TQCheckBox(pgroup);
|
|
m_cbBottom = new TQCheckBox(pgroup);
|
|
m_cbPage = new TQCheckBox(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
|
|
TQLabel *label5 = new TQLabel(i18n("Center:"),page);
|
|
m_cbCenter = new TQCheckBox(page);
|
|
|
|
// Caption
|
|
TQLabel *label6 = new TQLabel(i18n("Ca&ption:"),page);
|
|
m_edCaption = new KLineEdit("",page);
|
|
m_edCaption->setMinimumWidth(300);
|
|
label6->setBuddy(m_edCaption);
|
|
|
|
// Label
|
|
TQLabel *label7 = new TQLabel(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, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotEnvironmentClicked()));
|
|
connect(m_rbTable, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotEnvironmentClicked()));
|
|
|
|
}
|
|
|
|
////////////////////////////// determine the whole tag //////////////////////////////
|
|
|
|
void FloatEnvironmentDialog::slotOk()
|
|
{
|
|
TQString envname = ( m_rbFigure->isChecked() ) ? "figure" : "table";
|
|
TQString indent = m_ki->editorExtension()->autoIndentEnvironment();
|
|
|
|
TQString 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';
|
|
|
|
TQString caption = m_edCaption->text();
|
|
if ( ! caption.isEmpty() )
|
|
m_td.tagEnd += indent + "\\caption{" + caption + "}\n";
|
|
|
|
TQString 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()
|
|
{
|
|
TQString 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);
|
|
TQString s = m_edLabel->text();
|
|
s.replace( TQRegExp(oldprefix),m_prefix);
|
|
m_edLabel->setText(s);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#include "floatdialog.moc"
|