void MainWindow::slotUpdateTitlePercent() { int percent = transfersPercent(); if (percent != -1) { setPlainCaption(i18nc("window title including overall download progress in percent", "KGet - %1%", percent)); } else { setPlainCaption(i18n("KGet")); } }
void MainWindow::initCamera() { /* Clear thumbnail overview */ iconView->clear(); statusBar()->message(i18n("Initializing camera ...")); try { /* Initialize Camera */ GPInterface::initCamera(); //statusBar()->message(i18n("Camera ready")); /* Enable downloading of thumbs */ downloadThumbsAction->setEnabled(true); /* Change window title */ setCaption(GPInterface::getCamera()); statusBar()->message(i18n("Done"),MESSAGE_TIME); } catch (QString msg) { /* Disable downloading of thumbs */ downloadThumbsAction->setEnabled(false); /* Change window title */ setPlainCaption("QtKam"); KMessageBox::error(this, msg); statusBar()->message(i18n("Error"), MESSAGE_TIME); } }
SearchProviderDialog::SearchProviderDialog(SearchProvider *provider, QList<SearchProvider*> &providers, QWidget *parent) : KDialog( parent ) , m_provider(provider) { setModal(true); setButtons( Ok | Cancel ); m_dlg.setupUi(mainWidget()); m_dlg.leQuery->setMinimumWidth(kapp->fontMetrics().averageCharWidth() * 50); connect(m_dlg.leName, SIGNAL(textChanged(QString)), SLOT(slotChanged())); connect(m_dlg.leQuery, SIGNAL(textChanged(QString)), SLOT(slotChanged())); connect(m_dlg.leShortcut, SIGNAL(textChanged(QString)), SLOT(slotChanged())); connect(m_dlg.leShortcut, SIGNAL(textChanged(QString)), SLOT(shortcutsChanged(QString))); connect(m_dlg.pbPaste, SIGNAL(clicked()), SLOT(pastePlaceholder())); // Data init m_providers = providers; QStringList charsets = KGlobal::charsets()->availableEncodingNames(); charsets.prepend(i18nc("@item:inlistbox The default character set", "Default")); m_dlg.cbCharset->addItems(charsets); if (m_provider) { setPlainCaption(i18n("Modify Web Shortcut")); m_dlg.leName->setText(m_provider->name()); m_dlg.leQuery->setText(m_provider->query()); m_dlg.leShortcut->setText(m_provider->keys().join(",")); m_dlg.cbCharset->setCurrentIndex(m_provider->charset().isEmpty() ? 0 : charsets.indexOf(m_provider->charset())); m_dlg.leName->setEnabled(false); m_dlg.leQuery->setFocus(); } else { setPlainCaption(i18n("New Web Shortcut")); m_dlg.leName->setFocus(); //If the clipboard contains a url copy it to the query lineedit const QClipboard *clipboard = QApplication::clipboard(); const QString url = clipboard->text(); if (!KUrl(url).host().isEmpty()) m_dlg.leQuery->setText(url); enableButton(Ok, false); } }
AppletConfigDialog::AppletConfigDialog( QWidget * parent, const char * name ) : KDialogBase( KDialogBase::Plain, QString::null, KDialogBase::Ok | KDialogBase::Apply | KDialogBase::Cancel, KDialogBase::Ok, parent, name, false, true) { setPlainCaption(i18n("Configure - Mixer Applet")); QFrame* page = plainPage(); QVBoxLayout *topLayout = new QVBoxLayout(page); colorWidget = new ColorWidget(page); topLayout->addWidget(colorWidget); setUseCustomColors(false); }
KConfigDialogImp::KConfigDialogImp( QWidget *parent, const char *name, KConfigSkeleton *prefs, KDialogBase::DialogType dialogType, KDialogBase::ButtonCode defaultButton, bool modal) : KConfigDialog(parent, name, prefs, dialogType,(KDialogBase::ButtonCode) (KDialogBase::Default | KDialogBase::Ok | KDialogBase::Apply | KDialogBase::Cancel ), defaultButton, modal) { // As a temporary mesure until the kicker applet's app name is set to the // applets name so KDialogBase gets the right info. setPlainCaption(i18n("Configure - KBinaryClock")); setIcon(SmallIcon("date")); settings = new SettingsImp(0, "General"); addPage(settings, i18n("General"), "package_settings"); connect(this, SIGNAL(widgetModified()), settings, SLOT(updatePreview())); }
RestartOrBack::RestartOrBack (QWidget *parent) : KDialogBase (parent, "rbDialog", true, 0, KDialogBase::User1 | KDialogBase::User2, KDialogBase::User2, false, i18n("&Restart"), i18n("&Back") ) { setPlainCaption( i18n("Finished Execution") ); setButtonWhatsThis( KDialogBase::User1, i18n("Click here to restart the current logo program.") ); setButtonWhatsThis( KDialogBase::User2, i18n("Click here to switch back to the edit mode.") ); QWidget *baseWidget = new QWidget(this); setMainWidget(baseWidget); baseLayout = new QVBoxLayout(baseWidget); label = new QLabel(baseWidget); label->setText( i18n("Execution was finished without errors.\nWhat do you want to do next?") ); label->setScaledContents(true); baseLayout->addWidget(label); disableResize(); }
CInputDialog::CInputDialog(const QString& caption, const QString& description, const QString& text, QWidget *parent, const char *name, const bool modal ) : KDialog(parent,name,modal) { setPlainCaption(caption); QVBoxLayout* topLayout = new QVBoxLayout(this, 5,5); QLabel* l = new QLabel(description, this); topLayout->addWidget(l); topLayout->addSpacing(10); m_editWidget = new QTextEdit(this, "edit widget"); m_editWidget->setWordWrap( QTextEdit::WidgetWidth ); m_editWidget->setText(text); if (!text.isEmpty()) m_editWidget->selectAll(); topLayout->addWidget(m_editWidget); KSeparator* separator = new KSeparator(KSeparator::HLine, this); topLayout->addWidget(separator); QHBoxLayout* buttonLayout = new QHBoxLayout(topLayout); buttonLayout->addStretch(2); QPushButton* cancel = new QPushButton(this); cancel->setText(i18n("&Cancel")); connect(cancel, SIGNAL(clicked()), SLOT(reject())); buttonLayout->addWidget(cancel,1); buttonLayout->addSpacing(15); QPushButton* clear = new QPushButton(this); clear->setText(i18n("C&lear")); connect(clear, SIGNAL(clicked()),m_editWidget, SLOT(clear())); buttonLayout->addWidget(clear,1); buttonLayout->addSpacing(15); QPushButton* ok = new QPushButton(this); ok->setText(i18n("&Ok")); connect(ok, SIGNAL(clicked()), SLOT(accept())); buttonLayout->addWidget(ok,1); m_editWidget->setFocus(); }
DiagnosticDialog::DiagnosticDialog( const KAboutData *aboutData, QWidget *parent ) : KDialog( parent ) { if( aboutData == 0 ) aboutData = KGlobal::mainComponent().aboutData(); m_textBox = new QPlainTextEdit( generateReport( aboutData ), this ); setPlainCaption( i18nc( "%1 is the program name", "%1 Diagnostics", aboutData->programName() ) ); setButtons( Close | User1 ); setButtonText( User1, i18n( "Copy to Clipboard" ) ); m_textBox->setReadOnly( true ); setMainWidget( m_textBox ); setInitialSize( QSize( 480, 460 ) ); connect( this, SIGNAL(user1Clicked()), SLOT(slotCopyToClipboard()) ); connect( this, SIGNAL(finished()), SLOT(deleteLater()) ); }
void TopLevel::retranslateUi() { setPlainCaption( i18n( "System Monitor" ) ); mRefreshTabAction->setText(i18n("&Refresh Tab")); mNewWorksheetAction->setText(i18n( "&New Tab..." )); mInsertWorksheetAction->setText(i18n( "Import Tab Fr&om File..." )); mTabExportAction->setText( i18n( "Save Tab &As..." ) ); mTabRemoveAction->setText( i18n( "&Close Tab" ) ); mMonitorRemoteAction->setText( i18n( "Monitor &Remote Machine..." ) ); mHotNewWorksheetAction->setText( i18n( "&Download New Tabs..." ) ); mHotNewWorksheetUploadAction->setText( i18n( "&Upload Current Tab..." ) ); mConfigureSheetAction->setText( i18n( "Tab &Properties" ) ); if(mQuitAction) { QAction *tmpQuitAction = KStandardAction::quit( NULL, NULL, NULL ); mQuitAction->setText(tmpQuitAction->text()); mQuitAction->setWhatsThis(tmpQuitAction->whatsThis()); mQuitAction->setToolTip(tmpQuitAction->toolTip()); delete tmpQuitAction; } else mQuitAction = KStandardAction::quit( this, SLOT(close()), actionCollection() ); }
MainWindow::MainWindow(bool showMainwindow, bool startWithoutAnimation, bool doTesting, QWidget *parent) : KXmlGuiWindow( parent ), m_drop(0), m_dock(0), clipboardTimer(0), m_startWithoutAnimation(startWithoutAnimation), m_doTesting(doTesting), m_webinterface(0) { // do not quit the app when it has been minimized to system tray and a new transfer dialog // gets opened and closed again. qApp->setQuitOnLastWindowClosed(false); setAttribute(Qt::WA_DeleteOnClose, false); // create the model m_kget = KGet::self( this ); m_viewsContainer = new ViewsContainer(this); // create actions setupActions(); setupGUI(ToolBar | Keys | Save | Create); setCentralWidget(m_viewsContainer); // restore position, size and visibility move( Settings::mainPosition() ); setPlainCaption(i18n("KGet")); init(); if ( Settings::showMain() && showMainwindow) show(); else hide(); }
ExtendedAboutDialog::ExtendedAboutDialog(const KAboutData *aboutData, const OcsData *ocsData, QWidget *parent) : KDialog(parent) , d(new Private(this)) { DEBUG_BLOCK if (aboutData == 0) aboutData = KGlobal::mainComponent().aboutData(); d->aboutData = aboutData; if (!aboutData) { QLabel *errorLabel = new QLabel(i18n("<qt>No information available.<br />" "The supplied KAboutData object does not exist.</qt>"), this); errorLabel->setTextInteractionFlags(Qt::TextBrowserInteraction); setMainWidget(errorLabel); return; } if( !ocsData ) { QLabel *errorLabel = new QLabel(i18n("<qt>No information available.<br />" "The supplied OcsData object does not exist.</qt>"), this); errorLabel->setTextInteractionFlags(Qt::TextBrowserInteraction); setMainWidget(errorLabel); return; } m_ocsData = *ocsData; setPlainCaption(i18n("About %1", aboutData->programName())); setButtons(KDialog::Close); setDefaultButton(KDialog::Close); setModal(false); //Set up the title widget... KTitleWidget *titleWidget = new KTitleWidget(this); QIcon windowIcon; if (!aboutData->programIconName().isEmpty()) { windowIcon = KIcon(aboutData->programIconName()); } else { windowIcon = qApp->windowIcon(); } titleWidget->setPixmap(windowIcon.pixmap(64, 64), KTitleWidget::ImageLeft); if (aboutData->programLogo().canConvert<QPixmap>()) titleWidget->setPixmap(aboutData->programLogo().value<QPixmap>(), KTitleWidget::ImageLeft); else if (aboutData->programLogo().canConvert<QImage>()) titleWidget->setPixmap(QPixmap::fromImage(aboutData->programLogo().value<QImage>()), KTitleWidget::ImageLeft); titleWidget->setText(i18n("<html><font size=\"5\">%1</font><br /><b>Version %2</b><br />Using KDE %3</html>", aboutData->programName(), aboutData->version(), KDE::versionString())); //Now let's add the tab bar... QTabWidget *tabWidget = new QTabWidget; tabWidget->setUsesScrollButtons(false); //Set up the first page... QString aboutPageText = aboutData->shortDescription() + '\n'; if (!aboutData->otherText().isEmpty()) aboutPageText += '\n' + aboutData->otherText() + '\n'; if (!aboutData->copyrightStatement().isEmpty()) aboutPageText += '\n' + aboutData->copyrightStatement() + '\n'; if (!aboutData->homepage().isEmpty()) aboutPageText += '\n' + QString("<a href=\"%1\">%1</a>").arg(aboutData->homepage()) + '\n'; aboutPageText = aboutPageText.trimmed(); QLabel *aboutLabel = new QLabel; aboutLabel->setWordWrap(true); aboutLabel->setOpenExternalLinks(true); aboutLabel->setText(aboutPageText.replace('\n', "<br />")); aboutLabel->setTextInteractionFlags(Qt::TextBrowserInteraction); QVBoxLayout *aboutLayout = new QVBoxLayout; aboutLayout->addStretch(); aboutLayout->addWidget(aboutLabel); const int licenseCount = aboutData->licenses().count(); debug()<< "About to show license stuff"; debug()<< "License count is"<<licenseCount; for (int i = 0; i < licenseCount; ++i) { const KAboutLicense &license = aboutData->licenses().at(i); QLabel *showLicenseLabel = new QLabel; showLicenseLabel->setText(QString("<a href=\"%1\">%2</a>").arg(QString::number(i), i18n("License: %1", license.name(KAboutData::FullName)))); showLicenseLabel->setTextInteractionFlags(Qt::TextBrowserInteraction); connect(showLicenseLabel, SIGNAL(linkActivated(QString)), this, SLOT(_k_showLicense(QString))); aboutLayout->addWidget(showLicenseLabel); } debug()<<"License widget added"; aboutLayout->addStretch(); QWidget *aboutWidget = new QWidget(this); aboutWidget->setLayout(aboutLayout); tabWidget->addTab(aboutWidget, i18n("&About")); //Stuff needed by both Authors and Credits pages: QPixmap openDesktopPixmap = QPixmap( KStandardDirs::locate( "data", "amarok/images/opendesktop-22.png" ) ); QIcon openDesktopIcon = QIcon( openDesktopPixmap ); //And now, the Authors page: const int authorCount = d->aboutData->authors().count(); if (authorCount) { m_authorWidget = new QWidget( this ); QVBoxLayout *authorLayout = new QVBoxLayout( m_authorWidget.data() ); m_showOcsAuthorButton = new AnimatedBarWidget( openDesktopIcon, i18n( "Get data from openDesktop.org to learn more about the team" ), "process-working", m_authorWidget.data() ); connect( m_showOcsAuthorButton.data(), SIGNAL(clicked()), this, SLOT(switchToOcsWidgets()) ); authorLayout->addWidget( m_showOcsAuthorButton.data() ); if (!aboutData->customAuthorTextEnabled() || !aboutData->customAuthorRichText().isEmpty()) { QLabel *bugsLabel = new QLabel( m_authorWidget.data() ); bugsLabel->setContentsMargins( 4, 2, 0, 4 ); if (!aboutData->customAuthorTextEnabled()) { if (aboutData->bugAddress().isEmpty() || aboutData->bugAddress() == "*****@*****.**") bugsLabel->setText( i18n("Please use <a href=\"http://bugs.kde.org\">http://bugs.kde.org</a> to report bugs.\n") ); else { if(aboutData->authors().count() == 1 && (aboutData->authors().first().emailAddress() == aboutData->bugAddress())) { bugsLabel->setText( i18n("Please report bugs to <a href=\"mailto:%1\">%2</a>.\n", aboutData->authors().first().emailAddress(), aboutData->authors().first().emailAddress())); } else { bugsLabel->setText( i18n("Please report bugs to <a href=\"mailto:%1\">%2</a>.\n", aboutData->bugAddress(), aboutData->bugAddress())); } } } else bugsLabel->setText( aboutData->customAuthorRichText() ); authorLayout->addWidget( bugsLabel ); } m_authorListWidget = new OcsPersonListWidget( d->aboutData->authors(), m_ocsData.authors(), OcsPersonItem::Author, m_authorWidget.data() ); connect( m_authorListWidget.data(), SIGNAL(switchedToOcs()), m_showOcsAuthorButton.data(), SLOT(stop()) ); connect( m_authorListWidget.data(), SIGNAL(switchedToOcs()), m_showOcsAuthorButton.data(), SLOT(fold()) ); authorLayout->addWidget( m_authorListWidget.data() ); authorLayout->setMargin( 0 ); authorLayout->setSpacing( 2 ); m_authorWidget.data()->setLayout( authorLayout ); m_authorPageTitle = ( authorCount == 1 ) ? i18n("A&uthor") : i18n("A&uthors"); tabWidget->addTab(m_authorWidget.data(), m_authorPageTitle); m_isOfflineAuthorWidget = true; //is this still used? } //Then the Credits page: const int creditCount = aboutData->credits().count(); if (creditCount) { m_creditWidget = new QWidget( this ); QVBoxLayout *creditLayout = new QVBoxLayout( m_creditWidget.data() ); m_showOcsCreditButton = new AnimatedBarWidget( openDesktopIcon, i18n( "Get data from openDesktop.org to learn more about contributors" ), "process-working", m_creditWidget.data() ); connect( m_showOcsCreditButton.data(), SIGNAL(clicked()), this, SLOT(switchToOcsWidgets()) ); creditLayout->addWidget( m_showOcsCreditButton.data() ); m_creditListWidget = new OcsPersonListWidget( d->aboutData->credits(), m_ocsData.credits(), OcsPersonItem::Contributor, m_creditWidget.data() ); connect( m_creditListWidget.data(), SIGNAL(switchedToOcs()), m_showOcsCreditButton.data(), SLOT(stop()) ); connect( m_creditListWidget.data(), SIGNAL(switchedToOcs()), m_showOcsCreditButton.data(), SLOT(fold()) ); creditLayout->addWidget( m_creditListWidget.data() ); creditLayout->setMargin( 0 ); creditLayout->setSpacing( 2 ); m_creditWidget.data()->setLayout( creditLayout ); tabWidget->addTab( m_creditWidget.data(), i18n("&Contributors")); m_isOfflineCreditWidget = true; //is this still used? } //Finally, the Donors page: const int donorCount = ocsData->donors()->count(); if (donorCount) { m_donorWidget = new QWidget( this ); QVBoxLayout *donorLayout = new QVBoxLayout( m_donorWidget.data() ); m_showOcsDonorButton = new AnimatedBarWidget( openDesktopIcon, i18n( "Get data from openDesktop.org to learn more about our generous donors" ), "process-working", m_donorWidget.data() ); connect( m_showOcsDonorButton.data(), SIGNAL(clicked()), this, SLOT(switchToOcsWidgets()) ); donorLayout->addWidget( m_showOcsDonorButton.data() ); QList< KAboutPerson > donors; for( QList< QPair< QString, KAboutPerson > >::const_iterator it = m_ocsData.donors()->constBegin(); it != m_ocsData.donors()->constEnd(); ++it ) { donors << ( *it ).second; } m_donorListWidget = new OcsPersonListWidget( donors , m_ocsData.donors(), OcsPersonItem::Contributor, m_donorWidget.data() ); connect( m_donorListWidget.data(), SIGNAL(switchedToOcs()), m_showOcsDonorButton.data(), SLOT(stop()) ); connect( m_donorListWidget.data(), SIGNAL(switchedToOcs()), m_showOcsDonorButton.data(), SLOT(fold()) ); donorLayout->addWidget( m_donorListWidget.data() ); donorLayout->setMargin( 0 ); donorLayout->setSpacing( 2 ); QLabel *roktoberLabel = new QLabel(i18n("<p>Each year in October the Amarok team organizes a funding " "drive called <b>Roktober</b>.</p>" "<p>If you want your name mentioned on this list " "<a href=\"http://amarok.kde.org/donations\"> donate " "during Roktober</a> and opt-in.</p>")); roktoberLabel->setOpenExternalLinks(true); donorLayout->addWidget(roktoberLabel); m_donorWidget.data()->setLayout( donorLayout ); tabWidget->addTab( m_donorWidget.data(), i18n("&Donors")); m_isOfflineDonorWidget = true; } //And the translators: QPalette transparentBackgroundPalette; transparentBackgroundPalette.setColor( QPalette::Base, Qt::transparent ); transparentBackgroundPalette.setColor( QPalette::Text, transparentBackgroundPalette.color( QPalette::WindowText ) ); const QList<KAboutPerson> translatorList = aboutData->translators(); if(translatorList.count() > 0) { QString translatorPageText; QList<KAboutPerson>::ConstIterator it; for(it = translatorList.begin(); it != translatorList.end(); ++it) { translatorPageText += QString("<p style=\"margin: 0px;\">%1</p>").arg((*it).name()); if (!(*it).emailAddress().isEmpty()) translatorPageText += QString("<p style=\"margin: 0px; margin-left: 15px;\"><a href=\"mailto:%1\">%1</a></p>").arg((*it).emailAddress()); translatorPageText += "<p style=\"margin: 0px;\"> </p>"; } translatorPageText += KAboutData::aboutTranslationTeam(); KTextBrowser *translatorTextBrowser = new KTextBrowser; translatorTextBrowser->setFrameStyle(QFrame::NoFrame); translatorTextBrowser->setPalette(transparentBackgroundPalette); translatorTextBrowser->setHtml(translatorPageText); tabWidget->addTab(translatorTextBrowser, i18n("T&ranslation")); } //Jam everything together in a layout: QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addWidget(titleWidget); mainLayout->addWidget(tabWidget); mainLayout->setMargin(0); QWidget *mainWidget = new QWidget; mainWidget->setLayout(mainLayout); setMainWidget(mainWidget); setInitialSize( QSize( 480, 460 ) ); }
/* * Draws & initializes all the widgets of the main window */ void MainWindow::initWidgets() { setPlainCaption("QtKam"); /* Construct Actions */ saveAction = KStdAction::save(this, SLOT(saveSelected()),this); quitAction = KStdAction::quit(this, SLOT(close()),this); deleteAction = new KAction(i18n("Delete"), "edittrash", Key_Delete, this, SLOT(deleteSelected()), this); downloadThumbsAction = new KAction(i18n("Download Thumbs"), "queue", CTRL + Key_T, this, SLOT(downloadThumbs()), this); selectAllAction = new KAction(i18n("Select &All"), SHIFT + Key_A, this, SLOT(selectAll()), this); invertSelectionAction = new KAction(i18n("&Invert Selection"), SHIFT + Key_I, this, SLOT(selectInverse()), this); clearSelectionAction = new KAction(i18n("&Clear Selection"), SHIFT + Key_N, this, SLOT(selectNone()), this); selectCameraAction = new KAction(i18n("Select &Camera"), CTRL + Key_C, this, SLOT(selectCamera()), this); initCameraAction = new KAction(i18n("Reset Camera"), "connect_creating", CTRL + Key_R, this, SLOT(initCamera()), this); configureCameraAction = new KAction(i18n("&Configure"), 0, this, SLOT(configureCamera()), this); cameraInformationAction = new KAction(i18n("&Information"), 0, this, SLOT(cameraInformation()), this); cameraManualAction = new KAction(i18n("&Manual"), 0, this, SLOT(cameraManual()), this); cameraAboutAction = new KAction(i18n("&About the driver"), 0, this, SLOT(cameraAbout()), this); /* Initialize actions */ saveAction->setEnabled(false); deleteAction->setEnabled(false); /* Create & initialize icon view */ iconView = new KIconView(this); iconView->setMode(KIconView::Select); iconView->setSelectionMode(KIconView::Multi); iconView->setItemsMovable(false); iconView->setResizeMode(KIconView::Adjust); connect(iconView,SIGNAL(selectionChanged()), this,SLOT(selectionChanged())); setCentralWidget(iconView); /* Create file menu */ fileMenu = new KPopupMenu(); saveAction->plug(fileMenu); deleteAction->plug(fileMenu); fileMenu->insertSeparator(); quitAction->plug(fileMenu); /* Create edit menu */ editMenu = new KPopupMenu(); selectAllAction->plug(editMenu); invertSelectionAction->plug(editMenu); clearSelectionAction->plug(editMenu); /* Create command menu */ commandMenu = new KPopupMenu(); initCameraAction->plug(commandMenu); downloadThumbsAction->plug(commandMenu); /* Camera menu */ cameraMenu = new KPopupMenu(); selectCameraAction->plug(cameraMenu); cameraMenu->insertSeparator(); configureCameraAction->plug(cameraMenu); cameraInformationAction->plug(cameraMenu); cameraManualAction->plug(cameraMenu); cameraAboutAction->plug(cameraMenu); /* Help menu */ help = helpMenu(); /* Menu Bar */ menuBar()->insertItem(i18n("&File"), fileMenu); menuBar()->insertItem(i18n("&Edit"), editMenu); menuBar()->insertItem(i18n("&Command"),commandMenu); menuBar()->insertItem(i18n("C&amera"),cameraMenu); menuBar()->insertItem(i18n("&Help"), help); /* Create toolbar */ downloadThumbsAction->plug(toolBar()); saveAction->plug(toolBar()); deleteAction->plug(toolBar()); }
void KDialog::setCaption( const QString &_caption ) { QString caption = kapp ? kapp->makeStdCaption( _caption ) : _caption; setPlainCaption( caption ); }