• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • tdeui
 

tdeui

  • tdeui
kbugreport.cpp
1/* This file is part of the KDE project
2 Copyright (C) 1999 David Faure <faure@kde.org>
3
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public
6 License as published by the Free Software Foundation; either
7 version 2 of the License, or (at your option) any later version.
8
9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Library General Public License for more details.
13
14 You should have received a copy of the GNU Library General Public License
15 along with this library; see the file COPYING.LIB. If not, write to
16 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 Boston, MA 02110-1301, USA.
18*/
19
20#include <tqhbuttongroup.h>
21#include <tqpushbutton.h>
22#include <tqlabel.h>
23#include <tqlayout.h>
24#include <tqmultilineedit.h>
25#include <tqradiobutton.h>
26#include <tqwhatsthis.h>
27#include <tqregexp.h>
28
29#include <tdeaboutdata.h>
30#include <tdeapplication.h>
31#include <tdeconfig.h>
32#include <kdebug.h>
33#include <klineedit.h>
34#include <tdelocale.h>
35#include <tdemessagebox.h>
36#include <tdeprocess.h>
37#include <tdestandarddirs.h>
38#include <kstdguiitem.h>
39#include <kurl.h>
40#include <kurllabel.h>
41
42#include "kbugreport.h"
43
44#include <stdio.h>
45#include <pwd.h>
46#include <unistd.h>
47
48#include <sys/utsname.h>
49
50#include "kdepackages.h"
51#include <kcombobox.h>
52#include <config.h>
53#include <tdetempfile.h>
54#include <tqtextstream.h>
55#include <tqfile.h>
56
57class KBugReportPrivate {
58public:
59 KComboBox *appcombo;
60 TQString lastError;
61 TQString tde_version;
62 TQString appname;
63 TQString os;
64 TQPushButton *submitBugButton;
65 KURL url;
66};
67
68KBugReport::KBugReport( TQWidget * parentw, bool modal, const TDEAboutData *aboutData )
69 : KDialogBase( Plain,
70 i18n("Submit Bug Report"),
71 Ok | Cancel,
72 Ok,
73 parentw,
74 "KBugReport",
75 modal, // modal
76 true // separator
77 )
78{
79 d = new KBugReportPrivate;
80
81 // Use supplied aboutdata, otherwise the one from the active instance
82 // otherwise the TDEGlobal one. _activeInstance should neved be 0L in theory.
83 m_aboutData = aboutData
84 ? aboutData
85 : ( TDEGlobal::_activeInstance ? TDEGlobal::_activeInstance->aboutData()
86 : TDEGlobal::instance()->aboutData() );
87 m_process = 0;
88 TQWidget * parent = plainPage();
89 d->submitBugButton = 0;
90
91 //if ( m_aboutData->bugAddress() == TQString::fromLatin1("submit@bugs.trinitydesktop.org") )
92 //{
93 // // This is a core KDE application -> redirect to the web form
94 // Always redirect to the Web form for Trinity
95 d->submitBugButton = new TQPushButton( parent );
96 setButtonCancel( KStdGuiItem::close() );
97 //}
98
99 TQLabel * tmpLabel;
100 TQVBoxLayout * lay = new TQVBoxLayout( parent, 0, spacingHint() );
101
102 TQGridLayout *glay = new TQGridLayout( lay, 4, 3 );
103 glay->setColStretch( 1, 10 );
104 glay->setColStretch( 2, 10 );
105
106 int row = 0;
107
108 if ( !d->submitBugButton )
109 {
110 // From
111 TQString qwtstr = i18n( "Your email address. If incorrect, use the Configure Email button to change it" );
112 tmpLabel = new TQLabel( i18n("From:"), parent );
113 glay->addWidget( tmpLabel, row,0 );
114 TQWhatsThis::add( tmpLabel, qwtstr );
115 m_from = new TQLabel( parent );
116 glay->addWidget( m_from, row, 1 );
117 TQWhatsThis::add( m_from, qwtstr );
118
119
120 // Configure email button
121 m_configureEmail = new TQPushButton( i18n("Configure Email..."),
122 parent );
123 connect( m_configureEmail, TQ_SIGNAL( clicked() ), this,
124 TQ_SLOT( slotConfigureEmail() ) );
125 glay->addMultiCellWidget( m_configureEmail, 0, 2, 2, 2, TQt::AlignTop|TQt::AlignRight );
126
127 // To
128 qwtstr = i18n( "The email address this bug report is sent to." );
129 tmpLabel = new TQLabel( i18n("To:"), parent );
130 glay->addWidget( tmpLabel, ++row,0 );
131 TQWhatsThis::add( tmpLabel, qwtstr );
132 tmpLabel = new TQLabel( m_aboutData->bugAddress(), parent );
133 glay->addWidget( tmpLabel, row, 1 );
134 TQWhatsThis::add( tmpLabel, qwtstr );
135
136 setButtonOK( KGuiItem( i18n("&Send"), "mail-send", i18n( "Send bug report." ),
137 i18n( "Send this bug report to %1." ).arg( m_aboutData->bugAddress() ) ) );
138
139 }
140 else
141 {
142 m_configureEmail = 0;
143 m_from = 0;
144 showButtonOK( false );
145 }
146
147 // Program name
148 TQString qwtstr = i18n( "The application for which you wish to submit a bug report - if incorrect, please use the Report Bug menu item of the correct application" );
149 tmpLabel = new TQLabel( i18n("Application: "), parent );
150 glay->addWidget( tmpLabel, ++row, 0 );
151 TQWhatsThis::add( tmpLabel, qwtstr );
152 d->appcombo = new KComboBox( false, parent, "app");
153 TQWhatsThis::add( d->appcombo, qwtstr );
154 d->appcombo->insertStrList((const char**)packages);
155 connect(d->appcombo, TQ_SIGNAL(activated(int)), TQ_SLOT(appChanged(int)));
156 d->appname = TQString::fromLatin1( m_aboutData
157 ? m_aboutData->productName()
158 : tqApp->name() );
159 glay->addWidget( d->appcombo, row, 1 );
160 int index = 0;
161 for (; index < d->appcombo->count(); index++) {
162 if (d->appcombo->text(index) == d->appname) {
163 break;
164 }
165 }
166 if (index == d->appcombo->count()) { // not present
167 d->appcombo->insertItem(d->appname);
168 }
169 d->appcombo->setCurrentItem(index);
170
171 TQWhatsThis::add( tmpLabel, qwtstr );
172
173 // Version
174 qwtstr = i18n( "The version of this application - please make sure that no newer version is available before sending a bug report" );
175 tmpLabel = new TQLabel( i18n("Version:"), parent );
176 glay->addWidget( tmpLabel, ++row, 0 );
177 TQWhatsThis::add( tmpLabel, qwtstr );
178 if (m_aboutData)
179 m_strVersion = m_aboutData->version();
180 else
181 m_strVersion = i18n("no version set (programmer error!)");
182 d->tde_version = TQString::fromLatin1( TDE_VERSION_STRING );
183 if (TQString::fromLatin1( KDE_DISTRIBUTION_TEXT ) != "")
184 d->tde_version += ", " + TQString::fromLatin1( KDE_DISTRIBUTION_TEXT );
185 if ( !d->submitBugButton )
186 m_strVersion += " " + d->tde_version;
187 m_version = new TQLabel( m_strVersion, parent );
188 //glay->addWidget( m_version, row, 1 );
189 glay->addMultiCellWidget( m_version, row, row, 1, 2 );
190 TQWhatsThis::add( m_version, qwtstr );
191
192 tmpLabel = new TQLabel(i18n("OS:"), parent);
193 glay->addWidget( tmpLabel, ++row, 0 );
194
195 struct utsname unameBuf;
196 uname( &unameBuf );
197 d->os = TQString::fromLatin1( unameBuf.sysname ) +
198 " (" + TQString::fromLatin1( unameBuf.machine ) + ") "
199 "release " + TQString::fromLatin1( unameBuf.release );
200
201 tmpLabel = new TQLabel(d->os, parent);
202 glay->addMultiCellWidget( tmpLabel, row, row, 1, 2 );
203
204 tmpLabel = new TQLabel(i18n("Compiler:"), parent);
205 glay->addWidget( tmpLabel, ++row, 0 );
206 tmpLabel = new TQLabel(TQString::fromLatin1(KDE_COMPILER_VERSION), parent);
207 glay->addMultiCellWidget( tmpLabel, row, row, 1, 2 );
208
209 if ( !d->submitBugButton )
210 {
211 // Severity
212 m_bgSeverity = new TQHButtonGroup( i18n("Se&verity"), parent );
213 static const char * const sevNames[5] = { "critical", "grave", "normal", "wishlist", "i18n" };
214 const TQString sevTexts[5] = { i18n("Critical"), i18n("Grave"), i18n("normal severity","Normal"), i18n("Wishlist"), i18n("Translation") };
215
216 for (int i = 0 ; i < 5 ; i++ )
217 {
218 // Store the severity string as the name
219 TQRadioButton *rb = new TQRadioButton( sevTexts[i], m_bgSeverity, sevNames[i] );
220 if (i==2) rb->setChecked(true); // default : "normal"
221 }
222
223 lay->addWidget( m_bgSeverity );
224
225 // Subject
226 TQHBoxLayout * hlay = new TQHBoxLayout( lay );
227 tmpLabel = new TQLabel( i18n("S&ubject: "), parent );
228 hlay->addWidget( tmpLabel );
229 m_subject = new KLineEdit( parent );
230 m_subject->setFocus();
231 tmpLabel->setBuddy(m_subject);
232 hlay->addWidget( m_subject );
233
234 TQString text = i18n("Enter the text (in English if possible) that you wish to submit for the "
235 "bug report.\n"
236 "If you press \"Send\", a mail message will be sent to the maintainer of "
237 "this program.\n");
238 TQLabel * label = new TQLabel( parent, "label" );
239
240 label->setText( text );
241 lay->addWidget( label );
242
243 // The multiline-edit
244 m_lineedit = new TQMultiLineEdit( parent, "TQMultiLineEdit" );
245 m_lineedit->setMinimumHeight( 180 ); // make it big
246 m_lineedit->setWordWrap(TQMultiLineEdit::WidgetWidth);
247 lay->addWidget( m_lineedit, 10 /*stretch*/ );
248
249 slotSetFrom();
250 } else {
251 // Point to the web form
252
253 lay->addSpacing(10);
254 TQString text = i18n("Reporting bugs and requesting enhancements are maintained using the Bugzilla reporting system.\n"
255 "You'll need a login account and password to use the reporting system.\n"
256 "To control spam and rogue elements the login requires a valid email address.\n"
257 "Consider using any large email service if you want to avoid using your private email address.\n"
258 "\n"
259 "Selecting the button below opens your web browser to http://bugs.trinitydesktop.org,\n"
260 "where you will find the report form.\n"
261 "The information displayed above will be transferred to the reporting system.\n"
262 "Session cookies must be enabled to use the reporting system.\n"
263 "\n"
264 "Thank you for helping!");
265 TQLabel * label = new TQLabel( text, parent, "label");
266 lay->addWidget( label );
267 lay->addSpacing(10);
268
269 updateURL();
270 d->submitBugButton->setText( i18n("&Launch Bug Report Wizard") );
271 d->submitBugButton->setSizePolicy(TQSizePolicy::Fixed,TQSizePolicy::Fixed);
272 lay->addWidget( d->submitBugButton );
273 lay->addSpacing(10);
274
275 connect( d->submitBugButton, TQ_SIGNAL(clicked()),
276 this, TQ_SLOT(slotOk()));
277 }
278}
279
280KBugReport::~KBugReport()
281{
282 delete d;
283}
284
285void KBugReport::updateURL()
286{
287 KURL url ( "http://bugs.trinitydesktop.org/enter_bug.cgi" );
288 url.addQueryItem( "product", "TDE" );
289 url.addQueryItem( "op_sys", d->os );
290 url.addQueryItem( "cf_kde_compiler", KDE_COMPILER_VERSION );
291 url.addQueryItem( "cf_tde_version", d->tde_version );
292 url.addQueryItem( "cf_kde_appversion", m_strVersion );
293 url.addQueryItem( "cf_kde_package", d->appcombo->currentText() );
294 url.addQueryItem( "cf_kde_kbugreport", "1" );
295 d->url = url;
296}
297
298void KBugReport::appChanged(int i)
299{
300 TQString appName = d->appcombo->text(i);
301 int index = appName.find( '/' );
302 if ( index > 0 )
303 appName = appName.left( index );
304 kdDebug() << "appName " << appName << endl;
305
306 if (d->appname == appName && m_aboutData)
307 m_strVersion = m_aboutData->version();
308 else
309 m_strVersion = i18n("unknown program name", "unknown");
310
311 if ( !d->submitBugButton )
312 m_strVersion += d->tde_version;
313
314 m_version->setText(m_strVersion);
315 if ( d->submitBugButton )
316 updateURL();
317}
318
319void KBugReport::slotConfigureEmail()
320{
321 if (m_process) return;
322 m_process = new TDEProcess;
323 *m_process << TQString::fromLatin1("tdecmshell") << TQString::fromLatin1("kcm_useraccount");
324 connect(m_process, TQ_SIGNAL(processExited(TDEProcess *)), TQ_SLOT(slotSetFrom()));
325 if (!m_process->start())
326 {
327 kdDebug() << "Couldn't start tdecmshell.." << endl;
328 delete m_process;
329 m_process = 0;
330 return;
331 }
332 m_configureEmail->setEnabled(false);
333}
334
335void KBugReport::slotSetFrom()
336{
337 delete m_process;
338 m_process = 0;
339 m_configureEmail->setEnabled(true);
340
341 // ### KDE4: why oh why is KEmailSettings in tdeio?
342 TDEConfig emailConf( TQString::fromLatin1("emaildefaults") );
343
344 // find out the default profile
345 emailConf.setGroup( TQString::fromLatin1("Defaults") );
346 TQString profile = TQString::fromLatin1("PROFILE_");
347 profile += emailConf.readEntry( TQString::fromLatin1("Profile"),
348 TQString::fromLatin1("Default") );
349
350 emailConf.setGroup( profile );
351 TQString fromaddr = emailConf.readEntry( TQString::fromLatin1("EmailAddress") );
352 if (fromaddr.isEmpty()) {
353 struct passwd *p;
354 p = getpwuid(getuid());
355 fromaddr = TQString::fromLatin1(p->pw_name);
356 } else {
357 TQString name = emailConf.readEntry( TQString::fromLatin1("FullName"));
358 if (!name.isEmpty())
359 fromaddr = name + TQString::fromLatin1(" <") + fromaddr + TQString::fromLatin1(">");
360 }
361 m_from->setText( fromaddr );
362}
363
364void KBugReport::slotUrlClicked(const TQString &urlText)
365{
366 if ( tdeApp )
367 tdeApp->invokeBrowser( urlText );
368
369 // When using the web form, a click can also close the window, as there's
370 // not much to do. It also gives the user a direct response to his click:
371 if ( d->submitBugButton )
372 KDialogBase::slotCancel();
373}
374
375
376void KBugReport::slotOk( void )
377{
378 if ( d->submitBugButton ) {
379 if ( tdeApp )
380 tdeApp->invokeBrowser( d->url.url() );
381 return;
382 }
383
384 if( m_lineedit->text().isEmpty() ||
385 m_subject->text().isEmpty() )
386 {
387 TQString msg = i18n("You must specify both a subject and a description "
388 "before the report can be sent.");
389 KMessageBox::error(this,msg);
390 return;
391 }
392
393 switch ( m_bgSeverity->id( m_bgSeverity->selected() ) )
394 {
395 case 0: // critical
396 if ( KMessageBox::questionYesNo( this, i18n(
397 "<p>You chose the severity <b>Critical</b>. "
398 "Please note that this severity is intended only for bugs that</p>"
399 "<ul><li>break unrelated software on the system (or the whole system)</li>"
400 "<li>cause serious data loss</li>"
401 "<li>introduce a security hole on the system where the affected package is installed</li></ul>\n"
402 "<p>Does the bug you are reporting cause any of the above damage? "
403 "If it does not, please select a lower severity. Thank you!</p>" ),TQString::null,KStdGuiItem::cont(),KStdGuiItem::cancel() ) == KMessageBox::No )
404 return;
405 break;
406 case 1: // grave
407 if ( KMessageBox::questionYesNo( this, i18n(
408 "<p>You chose the severity <b>Grave</b>. "
409 "Please note that this severity is intended only for bugs that</p>"
410 "<ul><li>make the package in question unusable or mostly so</li>"
411 "<li>cause data loss</li>"
412 "<li>introduce a security hole allowing access to the accounts of users who use the affected package</li></ul>\n"
413 "<p>Does the bug you are reporting cause any of the above damage? "
414 "If it does not, please select a lower severity. Thank you!</p>" ),TQString::null,KStdGuiItem::cont(),KStdGuiItem::cancel() ) == KMessageBox::No )
415 return;
416 break;
417 }
418 if( !sendBugReport() )
419 {
420 TQString msg = i18n("Unable to send the bug report.\n"
421 "Please submit a bug report manually...\n"
422 "See http://bugs.trinitydesktop.org/ for instructions.");
423 KMessageBox::error(this, msg + "\n\n" + d->lastError);
424 return;
425 }
426
427 KMessageBox::information(this,
428 i18n("Bug report sent, thank you for your input."));
429 accept();
430}
431
432void KBugReport::slotCancel()
433{
434 if( !d->submitBugButton && ( m_lineedit->edited() || m_subject->edited() ) )
435 {
436 int rc = KMessageBox::warningYesNo( this,
437 i18n( "Close and discard\nedited message?" ),
438 i18n( "Close Message" ), KStdGuiItem::discard(), KStdGuiItem::cont() );
439 if( rc == KMessageBox::No )
440 return;
441 }
442 KDialogBase::slotCancel();
443}
444
445
446TQString KBugReport::text() const
447{
448 kdDebug() << m_bgSeverity->selected()->name() << endl;
449 // Prepend the pseudo-headers to the contents of the mail
450 TQString severity = TQString::fromLatin1(m_bgSeverity->selected()->name());
451 TQString appname = d->appcombo->currentText();
452 TQString os = TQString::fromLatin1("OS: %1 (%2)\n").
453 arg(KDE_COMPILING_OS).
454 arg(KDE_DISTRIBUTION_TEXT);
455 TQString bodyText;
456 for(int i = 0; i < m_lineedit->numLines(); i++)
457 {
458 TQString line = m_lineedit->textLine(i);
459 if (!line.endsWith("\n"))
460 line += '\n';
461 bodyText += line;
462 }
463
464 if (severity == TQString::fromLatin1("i18n") && TDEGlobal::locale()->language() != TDELocale::defaultLanguage()) {
465 // Case 1 : i18n bug
466 TQString package = TQString::fromLatin1("i18n_%1").arg(TDEGlobal::locale()->language());
467 package = package.replace(TQString::fromLatin1("_"), TQString::fromLatin1("-"));
468 return TQString::fromLatin1("Package: %1").arg(package) +
469 TQString::fromLatin1("\n"
470 "Application: %1\n"
471 // not really i18n's version, so better here IMHO
472 "Version: %2\n").arg(appname).arg(m_strVersion)+
473 os+TQString::fromLatin1("\n")+bodyText;
474 } else {
475 appname = appname.replace(TQString::fromLatin1("_"), TQString::fromLatin1("-"));
476 // Case 2 : normal bug
477 return TQString::fromLatin1("Package: %1\n"
478 "Version: %2\n"
479 "Severity: %3\n")
480 .arg(appname).arg(m_strVersion).arg(severity)+
481 TQString::fromLatin1("Compiler: %1\n").arg(KDE_COMPILER_VERSION)+
482 os+TQString::fromLatin1("\n")+bodyText;
483 }
484}
485
486bool KBugReport::sendBugReport()
487{
488 TQString recipient ( m_aboutData ?
489 m_aboutData->bugAddress() :
490 TQString::fromLatin1("submit@bugs.trinitydesktop.org") );
491
492 TQString command;
493 command = locate("exe", "tdesendbugmail");
494 if (command.isEmpty())
495 command = TDEStandardDirs::findExe( TQString::fromLatin1("tdesendbugmail") );
496
497 KTempFile outputfile;
498 outputfile.close();
499
500 TQString subject = m_subject->text();
501 command += " --subject ";
502 command += TDEProcess::quote(subject);
503 command += " --recipient ";
504 command += TDEProcess::quote(recipient);
505 command += " > ";
506 command += TDEProcess::quote(outputfile.name());
507
508 fflush(stdin);
509 fflush(stderr);
510
511 FILE * fd = popen(TQFile::encodeName(command), "w");
512 if (!fd)
513 {
514 kdError() << "Unable to open a pipe to " << command << endl;
515 return false;
516 }
517
518 TQString btext = text();
519 fwrite(btext.ascii(),btext.length(),1,fd);
520 fflush(fd);
521
522 int error = pclose(fd);
523 kdDebug() << "exit status1 " << error << " " << (WIFEXITED(error)) << " " << WEXITSTATUS(error) << endl;
524
525 if ((WIFEXITED(error)) && WEXITSTATUS(error) == 1) {
526 TQFile of(outputfile.name());
527 if (of.open(IO_ReadOnly )) {
528 TQTextStream is(&of);
529 is.setEncoding(TQTextStream::UnicodeUTF8);
530 TQString line;
531 while (!is.eof())
532 line = is.readLine();
533 d->lastError = line;
534 } else {
535 d->lastError = TQString::null;
536 }
537 outputfile.unlink();
538 return false;
539 }
540 outputfile.unlink();
541 return true;
542}
543
544TQString KBugReport::compilerVersion() {
545 return KDE_COMPILER_VERSION;
546}
547
548TQString KBugReport::operatingSystem() {
549 return d->os;
550}
551
552TQString KBugReport::tdeVersion() {
553 return d->tde_version;
554}
555
556void KBugReport::virtual_hook( int id, void* data )
557{ KDialogBase::virtual_hook( id, data ); }
558
559#include "kbugreport.moc"
KBugReport::slotConfigureEmail
virtual void slotConfigureEmail()
"Configure email" has been clicked - this calls tdecmshell System/email
Definition: kbugreport.cpp:319
KBugReport::slotCancel
virtual void slotCancel()
Cancel has been clicked.
Definition: kbugreport.cpp:432
KBugReport::slotOk
virtual void slotOk(void)
OK has been clicked.
Definition: kbugreport.cpp:376
KBugReport::appChanged
void appChanged(int)
Application combo selection changed (and was activated)
Definition: kbugreport.cpp:298
KBugReport::~KBugReport
virtual ~KBugReport()
Destructor.
Definition: kbugreport.cpp:280
KBugReport::text
TQString text() const
A complete copy of the bug report.
Definition: kbugreport.cpp:446
KBugReport::slotSetFrom
virtual void slotSetFrom()
Sets the "From" field from the e-mail configuration Called at creation time, but also after "Configur...
Definition: kbugreport.cpp:335
KBugReport::slotUrlClicked
virtual void slotUrlClicked(const TQString &)
The URL-Label "http://bugs.trinitydesktop.org/" was clicked.
Definition: kbugreport.cpp:364
KBugReport::updateURL
void updateURL()
Update the url to match the current os, compiler, selected app, etc.
Definition: kbugreport.cpp:285
KBugReport::KBugReport
KBugReport(TQWidget *parent=0L, bool modal=true, const TDEAboutData *aboutData=0L)
Creates a bug-report dialog.
Definition: kbugreport.cpp:68
KBugReport::sendBugReport
bool sendBugReport()
Attempt to e-mail the bug report.
Definition: kbugreport.cpp:486
KComboBox
An enhanced combo box.
Definition: kcombobox.h:152
KDialogBase
A dialog base class with standard buttons and predefined layouts.
Definition: kdialogbase.h:192
KDialogBase::slotCancel
virtual void slotCancel()
Activated when the Cancel button has been clicked.
Definition: kdialogbase.cpp:1215
KDialogBase::setButtonOK
void setButtonOK(const KGuiItem &item=KStdGuiItem::ok())
Sets the appearance of the OK button.
Definition: kdialogbase.cpp:916
KDialogBase::setButtonCancel
void setButtonCancel(const KGuiItem &item=KStdGuiItem::cancel())
Sets the appearance of the Cancel button.
Definition: kdialogbase.cpp:970
KDialogBase::plainPage
TQFrame * plainPage()
Retrieve the empty page when the predefined layout is used in Plain mode.
Definition: kdialogbase.cpp:420
KDialogBase::showButtonOK
void showButtonOK(bool state)
Hide or display the OK button.
Definition: kdialogbase.cpp:876
KDialog::spacingHint
static int spacingHint()
Return the number of pixels you shall use between widgets inside a dialog according to the KDE standa...
Definition: kdialog.cpp:110
KGuiItem
An abstract class for GUI data such as ToolTip and Icon.
Definition: kguiitem.h:39
KLineEdit
An enhanced TQLineEdit widget for inputting text.
Definition: klineedit.h:146
KMessageBox::information
static void information(TQWidget *parent, const TQString &text, const TQString &caption=TQString::null, const TQString &dontShowAgainName=TQString::null, int options=Notify)
Display an "Information" dialog.
Definition: tdemessagebox.cpp:883
KMessageBox::error
static void error(TQWidget *parent, const TQString &text, const TQString &caption=TQString::null, int options=Notify)
Display an "Error" dialog.
Definition: tdemessagebox.cpp:734
KMessageBox::questionYesNo
static int questionYesNo(TQWidget *parent, const TQString &text, const TQString &caption=TQString::null, const KGuiItem &buttonYes=KStdGuiItem::yes(), const KGuiItem &buttonNo=KStdGuiItem::no(), const TQString &dontAskAgainName=TQString::null, int options=Notify)
Display a simple "question" dialog.
Definition: tdemessagebox.cpp:317
KMessageBox::warningYesNo
static int warningYesNo(TQWidget *parent, const TQString &text, const TQString &caption=TQString::null, const KGuiItem &buttonYes=KStdGuiItem::yes(), const KGuiItem &buttonNo=KStdGuiItem::no(), const TQString &dontAskAgainName=TQString::null, int options=Notify|Dangerous)
Display a "warning" dialog.
Definition: tdemessagebox.cpp:505
KStdGuiItem::cont
static KGuiItem cont()
Returns a "continue" item.
Definition: kstdguiitem.cpp:212
KTempFile
KTempFile::close
bool close()
KTempFile::unlink
void unlink()
KTempFile::name
TQString name() const
KURL
KURL::addQueryItem
void addQueryItem(const TQString &_item, const TQString &_value, int encoding_hint=0)
TDEAboutData
TDEAboutData::bugAddress
TQString bugAddress() const
TDEAboutData::version
TQString version() const
TDEAboutData::productName
const char * productName() const
TDEConfigBase::readEntry
TQString readEntry(const TQString &pKey, const TQString &aDefault=TQString::null) const
TDEConfigBase::setGroup
void setGroup(const TQString &group)
TDEConfig
TDEGlobal::instance
static TDEInstance * instance()
TDEGlobal::locale
static TDELocale * locale()
TDEInstance::aboutData
const TDEAboutData * aboutData() const
TDELocale::defaultLanguage
static TQString defaultLanguage()
TDEProcess
TDEProcess::start
virtual bool start(RunMode runmode=NotifyOnExit, Communication comm=NoCommunication)
TDEProcess::quote
static TQString quote(const TQString &arg)
TDEStandardDirs::findExe
static TQString findExe(const TQString &appname, const TQString &pathstr=TQString::null, bool ignoreExecBit=false)
kdError
kdbgstream kdError(int area=0)
endl
kndbgstream & endl(kndbgstream &s)
kdDebug
kdbgstream kdDebug(int area=0)
locate
TQString locate(const char *type, const TQString &filename, const TDEInstance *instance=TDEGlobal::instance())
tdelocale.h

tdeui

Skip menu "tdeui"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

tdeui

Skip menu "tdeui"
  • arts
  • dcop
  • dnssd
  • interfaces
  •   kspeech
  •     interface
  •     library
  •   tdetexteditor
  • kate
  • kded
  • kdoctools
  • kimgio
  • kjs
  • libtdemid
  • libtdescreensaver
  • tdeabc
  • tdecmshell
  • tdecore
  • tdefx
  • tdehtml
  • tdeinit
  • tdeio
  •   bookmarks
  •   httpfilter
  •   kpasswdserver
  •   kssl
  •   tdefile
  •   tdeio
  •   tdeioexec
  • tdeioslave
  •   http
  • tdemdi
  •   tdemdi
  • tdenewstuff
  • tdeparts
  • tdeprint
  • tderandr
  • tderesources
  • tdespell2
  • tdesu
  • tdeui
  • tdeunittest
  • tdeutils
  • tdewallet
Generated for tdeui by doxygen 1.9.4
This website is maintained by Timothy Pearson.