19 #include "textlabelwizard.moc"
24 #include <qcheckbox.h>
27 #include <qtextedit.h>
30 #include <ktoolinvocation.h>
36 class TextPage :
public QWizardPage
48 : QWizardPage( parent ), mmode( mode )
50 setTitle( i18n(
"Enter Label Text" ) );
51 setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding );
54 QVBoxLayout* lay =
new QVBoxLayout(
this );
56 QLabel* label =
new QLabel(
this );
57 lay->addWidget( label );
59 i18n(
"Enter the text for your label here and press \"Next\".\n"
60 "If you want to show variable parts, then put %1, %2, ... "
61 "at the appropriate places (e.g. \"This segment is %1 units "
62 "long.\").", QString(
"%1" ), QString(
"%2" ) ) );
63 label->setAlignment( Qt::AlignTop );
64 label->setWordWrap(
true );
65 mtext =
new QTextEdit(
this );
66 lay->addWidget( mtext );
67 QCheckBox* wantframe =
new QCheckBox(
this );
68 lay->addWidget( wantframe );
69 wantframe->setText( i18n(
"Show text in a frame" ) );
71 registerField(
"wantframe", wantframe );
73 connect( mtext, SIGNAL( textChanged() ), parent, SLOT( textChanged() ) );
77 class ArgsPage :
public QWizardPage
82 virtual bool validatePage();
91 : QWizardPage( parent ), mmode( mode )
93 setTitle( i18n(
"Select Arguments" ) );
94 setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding );
97 QVBoxLayout* lay =
new QVBoxLayout(
this );
99 QLabel* label =
new QLabel(
this );
100 lay->addWidget( label );
102 i18n(
"Now select the argument(s) you need. For every argument, "
103 "click on it, select an object and a property in the Kig "
104 "window, and click finish when you are done..." ) );
105 label->setWordWrap(
true );
107 lay->addWidget( mlinks );
109 connect( mlinks, SIGNAL( changed() ),
this, SIGNAL( completeChanged() ) );
112 bool ArgsPage::validatePage()
114 return mmode->canFinish();
119 :
QWizard( parent ), mmode( mode )
122 setObjectName( QLatin1String(
"TextLabelWizard" ) );
123 setWindowTitle( KDialog::makeStandardCaption( i18n(
"Construct Label" ) ) );
124 setOption( HaveHelpButton );
125 setOption( HaveFinishButtonOnEarlyPages );
127 mtextPage =
new TextPage(
this, mmode );
129 margsPage =
new ArgsPage(
this, mmode );
132 connect(
this, SIGNAL( helpRequested() ),
this,
133 SLOT( slotHelpClicked() ) );
134 connect(
linksLabel(), SIGNAL( linkClicked(
int ) ),
135 SLOT( linkClicked(
int ) ) );
136 connect(
this, SIGNAL( currentIdChanged(
int ) ),
137 this, SLOT( currentIdChanged(
int ) ) );
139 mtextPage->mtext->setFocus();
148 return margsPage->mlinks;
153 return mtextPage->mtext->toPlainText();
158 mtextPage->mtext->setPlainText( newtext );
169 if( validateCurrentPage() )
176 void TextLabelWizard::textChanged()
181 button( QWizard::FinishButton )->setEnabled( percentcount == 0 );
182 button( QWizard::NextButton )->setEnabled( percentcount > 0 );
185 void TextLabelWizard::linkClicked(
int which )
190 void TextLabelWizard::currentIdChanged(
int id )
209 void TextLabelWizard::slotHelpClicked()
211 KToolInvocation::invokeHelp(
"text-labels",
"kig" );
void setText(const QString &newtext)
void enterTextPageEntered()
LinksLabel * linksLabel()
TextLabelWizard(QWidget *parent, TextLabelModeBase *mode)
void selectArgumentsPageEntered()
static const int TextPageId
static const int ArgsPageId
uint percentCount(const QString &s)
this widget shows a line of text, with some links underlined, and emits a signal if one of the links ...
this is the base class for TextLabelConstructionMode and TextLabelRedefineMode.
bool percentCountChanged(uint percentcount)