Пример #1
0
void AddAction::updateButtonStates()
{
	switch(indexOf(currentPage()))
	{	case 0: setNextEnabled(currentPage(), theProfiles->currentItem() != 0 || !theUseProfile->isChecked()); break;
		case 1: setNextEnabled(currentPage(), theButtons->currentItem() != 0); break;
		case 2: setNextEnabled(currentPage(), theFunctions->currentItem() != 0); break;
		case 3: setNextEnabled(currentPage(), theProfileFunctions->currentItem() != 0 || theJustStart->isChecked()); break;
		case 4: setNextEnabled(currentPage(), true); break;
		case 5: setNextEnabled(currentPage(), false); setFinishEnabled(currentPage(), true); break;
		case 6: setNextEnabled(currentPage(), false); setFinishEnabled(currentPage(), theModes->currentItem() || !theSwitchMode->isChecked()); break;
	}
}
Пример #2
0
Kaptan::Kaptan( QWidget *parent, const char *name )
    : KWizard( parent, name, true)
{
    setCaption( kapp->caption() );

    welcome = new Welcome( this );
    addPage( welcome, i18n( "Welcome" ) );
    setHelpEnabled( QWizard::page( 0 ), false );

    mouse = new MouseSetup( this );
    addPage( mouse, i18n( "Mouse Setup" ) );
    setHelpEnabled( QWizard::page( 1 ), false );

    wallpaper = new Wallpaper( this );
    addPage( wallpaper, i18n( "Wallpaper Setup" ) );
    setHelpEnabled( QWizard::page( 2 ), false );

    goodbye = new Goodbye( this );
    addPage( goodbye, i18n( "Congratulations" ) );
    setHelpEnabled( QWizard::page( 3 ), false );

    setFinishEnabled( QWizard::page( 3 ), true );

    locale = new KLocale( PACKAGE );
    locale->setLanguage( KLocale::defaultLanguage() );
}
Пример #3
0
void MigrateDialog::error(const QString &str)
{
    lblStatus->setText(str);
    barCnv->hide();
    setFinishEnabled(page2, true);
    m_bProcess = false;
}
Пример #4
0
void KNewInvestmentWizard::slotCheckPage(void)
{
  if(currentPage() == m_investmentDetailsPage) {
    setNextEnabled(m_investmentDetailsPage, false);
    if(m_investmentName->text().length() > 0
    && m_investmentSymbol->text().length() > 0
    && !m_fraction->value().isZero()
    ) {
      setNextEnabled(m_investmentDetailsPage, true);
    }
  } else if(currentPage() == m_onlineUpdatePage) {
    setFinishEnabled(m_onlineUpdatePage, true);
    if(m_onlineFactor->isEnabled() && m_onlineFactor->value().isZero())
      setFinishEnabled(m_onlineUpdatePage, false);
  }
}
Пример #5
0
void *NewProtocol::processEvent(Event *e)
{
    if (m_client == NULL)
        return NULL;
    if (m_bConnect){
        clientErrorData *d;
        switch (e->type()){
        case EventClientChanged:
            if (m_client->getState() == Client::Connected){
                QTimer::singleShot(0, this, SLOT(loginComplete()));
                return NULL;
            }
            break;
        case EventClientError:
            d = (clientErrorData*)(e->param());
            if (d->client == m_client){
                m_connectWnd->setError(d->err_str);
                m_bConnect = false;
                m_client->setStatus(STATUS_OFFLINE, false);
                setBackEnabled(m_connectWnd, true);
                setFinishEnabled(m_connectWnd, false);
                return e->param();
            }
            break;
        }
    }
    return NULL;
}
Пример #6
0
void StudyMoveCopyWizard::enableFinishButton() {
    bool enable = !sourceLineEdit->text().isEmpty() &&
                                !destinationLineEdit->text().isEmpty() &&
                                (studiesListBox->currentItem() >= 0 ||
                                 studiesListBox->selectedItem() >= 0);
    setFinishEnabled(page(1), enable);
}
Пример #7
0
/** Init _keducaFile pointer and EditMode */
void KControlAddEdit::init(FileRead *keducaFile, bool edit)
{
    setCurrentAnswerItem(0);
    _keducaFile = keducaFile;
    _editMode = edit;

    _listAnswers->setSorting(-1);
    
    if( _editMode )
    {
        setCaption(i18n("Modify Question"));
        fillPage();
    }else{
        setCaption(i18n("Add Questions"));
        slotQuestionTypeChanged( 0 );
    }

    // settings for Question page
    setHelpEnabled ( _pageQuestion, false );
    setNextEnabled( _pageQuestion, false );

    // settings for Answer page
    setHelpEnabled ( _pageAnswer, false );
    setFinishEnabled( _pageAnswer, true );
}
KLFirstDialog::KLFirstDialog(QWidget *parent, const char *name)
	: KWizard(parent, name)
{
	m_welcome = new FDWelcome(this);
	addPage(m_welcome, i18n("Welcome !"));
	
	m_initdb = new FDInitDatabase(this);
	addPage(m_initdb, i18n("Setup database"));
	connect(m_initdb, SIGNAL(enableNext(QWidget*, bool )), this, SLOT(setNextEnabled(QWidget*, bool )));
	connect(m_initdb, SIGNAL(gotoFinish()), this, SLOT(showFinish()));
	
	m_enterprise = new FDSetupEnterprise(this);
	addPage(m_enterprise, i18n("Setup Enterprise"));
	
	m_setupAdmin = new FDSetupAdmin(this);
	addPage(m_setupAdmin, i18n("Setup admin user"));
	
	m_finish = new FDWelcome(this);
	m_finish->setMessage(i18n("<h3><b>Congratulations!</b></h3><br>" +
			i18n("You has configure the system, you can become to use it!")
			       ));
	addPage(m_finish, i18n("All is good!"));
	setFinishEnabled(m_finish, true);
	
	connect( finishButton(), SIGNAL(clicked()), this, SLOT(finished()));
	connect( cancelButton(), SIGNAL(clicked()), this, SLOT(cancel()));
}
Пример #9
0
void JabberWizard::slotSelected(const QString&)
{
    if (currentPage() != m_result)
        return;
    setFinishEnabled(m_result, false);
    QString condition = m_search->condition(NULL);
    m_id = m_search->m_client->process(m_search->m_jid.c_str(), m_search->m_node.c_str(), condition, m_type.c_str());
}
Пример #10
0
void Wizard::initialize()
{
  setFinishEnabled(page(pageCount() - 1), true);
  const QStringList assoc = associatedText();
  if (assoc.count() > 1 && !assoc[1].isEmpty()) 
  {
    MyProcess proc(this);
    proc.run( KommanderWidget::evalAssociatedText(assoc[1]) );
  }
}
Пример #11
0
iqrCRWimpl::iqrCRWimpl(QString _qstrSubject, QString _qstrCoutSumm, QWidget*, const char*):
    qstrSubject(_qstrSubject), qstrCoutSumm(_qstrCoutSumm) {

    
    setFinishEnabled( WizardPage_3, TRUE );
    connect( finishButton() , SIGNAL(clicked()), SLOT(sendReport()) );
    connect( cancelButton() , SIGNAL(clicked()), qApp, SLOT(quit()) );
    finishButton()->setText("&Send");

}
Пример #12
0
QString Wizard::handleDCOP(int function, const QStringList& args)
{
  switch (function) {
    case DCOP::setEnabled:
      setFinishEnabled(page(pageCount() - 1), args[0] != "false");
      break;
    default:
      return KommanderWidget::handleDCOP(function, args);
  }
  return QString();
}
Пример #13
0
void JabberWizard::slotSelected(const QString&)
{
	if (currentPage() != m_result)
		return;
	setFinishEnabled(m_result, false);
	if (m_type == "search"){
		m_id = m_search->m_client->search(m_search->m_jid.c_str(), m_search->condition());
		m_result->setSearch(m_search->m_client, m_id.c_str());
	}
	if (m_type == "register")
		m_id = m_search->m_client->register_agent(m_search->m_jid.c_str(), m_search->condition());
}
Пример #14
0
void JabberWizard::slotSelected(const QString&)
{
    if (currentPage() != m_result)
        return;
    setFinishEnabled(m_result, false);
    bool bXSearch;
    QString condition = m_search->condition(bXSearch);
    if (m_type == "search"){
        m_id = m_search->m_client->search(m_search->m_jid.c_str(), m_search->m_node.c_str(), condition);
    }else{
        m_id = m_search->m_client->process(m_search->m_jid.c_str(), m_search->m_node.c_str(), condition, m_type.c_str());
    }
}
Пример #15
0
void NewProtocol::loginComplete()
{
    if (m_client == NULL)
        return;
    m_bConnect = false;
    m_client->setStatus(CorePlugin::m_plugin->getManualStatus(), true);
    m_connectWnd->setConnecting(false);
    setFinishEnabled(m_connectWnd, true);
    getContacts()->addClient(m_client);
    m_client = NULL;
    cancelButton()->hide();
    backButton()->hide();
}
Пример #16
0
void NewProtocol::pageChanged(const QString&)
{
    if (currentPage() == m_connectWnd){
        emit apply();
        m_bConnect = true;
        unsigned status = CorePlugin::m_plugin->getManualStatus();
        if (status == STATUS_OFFLINE)
            status = STATUS_ONLINE;
        m_client->setStatus(status, false);
        m_connectWnd->setConnecting(true);
        setBackEnabled(m_connectWnd, false);
        setNextEnabled(currentPage(), false);
        setFinishEnabled(m_connectWnd, false);
    }
    if (m_last && (currentPage() == m_last)){
        setFinishEnabled(m_connectWnd, false);
        cancelButton()->show();
        backButton()->show();
        finishButton()->hide();
        showPage(protocolPage);
        protocolChanged(0);
    }
}
Пример #17
0
void NewProtocol::pageChanged(const QString&)
{
    if (currentPage() == m_connectWnd){
        emit apply();
        m_bConnect = true;
        unsigned status = CorePlugin::m_plugin->getManualStatus();
        if (status == STATUS_OFFLINE)
            status = STATUS_ONLINE;
        m_client->setStatus(status, false);
        m_connectWnd->setConnecting(true);
        setBackEnabled(m_connectWnd, false);
        setFinishEnabled(m_connectWnd, false);
    }
}
Пример #18
0
void SaveThemeDialog::imageSelectionChanged(const QString &szImagePath)
{
	QImage pix(szImagePath);
	if(!pix.isNull())
	{
		QPixmap out;
		if(pix.width() > 300 || pix.height() > 225)
			out = QPixmap::fromImage(pix.scaled(300,225,Qt::KeepAspectRatio));
		else
			out = QPixmap::fromImage(pix);
		m_pImageLabel->setPixmap(out);
		setNextEnabled(m_pImageSelectionPage,true);
		setFinishEnabled(m_pImageSelectionPage,true);
		return;
	}

	QMessageBox::critical(this,__tr2qs_ctx("Save Current Theme - KVIrc","theme"),__tr2qs_ctx("Failed to load the selected image","theme"),
		QMessageBox::Ok,QMessageBox::NoButton,QMessageBox::NoButton);

	m_pImageSelector->setSelection("");
	m_pImageLabel->setPixmap(QPixmap());
	setNextEnabled(m_pImageSelectionPage,false);
	setFinishEnabled(m_pImageSelectionPage,false);
}
Пример #19
0
KPersonalizer::KPersonalizer(QWidget *parent, const char *name)
	: KWizard(parent, name, true) {

	// first, reset the startup from true (see desktop file in share/autostart) to false
	setCaption(kapp->caption());
	kapp->config()->setGroup("General");
	os_dirty = eye_dirty = style_dirty=false;
	kapp->config()->writeEntry("FirstLogin", false);
	kapp->config()->sync();

	countrypage= new KCountryPage(this);
	addPage( countrypage, i18n( "Step 1: Introduction" ) );
	setHelpEnabled(QWizard::page(0), false);

	ospage= new KOSPage(this);
	addPage(ospage, i18n( "Step 2: I want it my Way..." ) );
	setHelpEnabled(QWizard::page(1), false);

	eyecandy= new KEyeCandyPage(this);
	addPage( eyecandy, i18n( "Step 3: Eyecandy-O-Meter" ) );
	setHelpEnabled(QWizard::page(2), false);

	stylepage= new KStylePage(this);
	addPage( stylepage, i18n( "Step 4: Everybody loves Themes" ) );
	setHelpEnabled(QWizard::page(3), false);

	refinepage=new KRefinePage(this);
	addPage( refinepage, i18n( "Step 5: Time to Refine" ) );
	setHelpEnabled(QWizard::page(4), false);

	cancelButton()->setText(i18n("S&kip Wizard"));

	setFinishEnabled(QWizard::page(4), true);

	locale = new KLocale("kpersonalizer");
	locale->setLanguage(KLocale::defaultLanguage());

	connect(ospage, SIGNAL(selectedOS(const QString&)), stylepage, SLOT(presetStyle(const QString&)));
	connect(ospage, SIGNAL(selectedOS(const QString&)), eyecandy, SLOT(slotPresetSlider(const QString&)));
	connect(refinepage->pb_kcontrol, SIGNAL(clicked()), this, SLOT(accept()));

	setPosition();

	/* hide the detail-box on eyecandypage. we need to call it from here, to be
	   able, to call it at last. Else we would run into layout-problems later. */
	eyecandy->klv_features->hide();
}
Пример #20
0
KviRemoteMircServerImportWizard::KviRemoteMircServerImportWizard(KviRemoteMircServersIniImport * f)
: KviTalWizard(0)
{
	QString capt = __tr2qs("Remote mIRC servers.ini - Import Wizard");
	setWindowTitle(capt);

	setModal(true);

	m_pRequest = 0;
	m_pFilter = f;

	QLabel * l = new QLabel(this);
	l->setWordWrap(true);
	l->setText(__tr2qs("<center><b>Welcome!</b><br><br>This wizard will guide you in the process of " \
			"downloading a list of IRC servers. Please click \"<b>Next</b>\" to begin the operation.</center>"));
	addPage(l,capt);


	KviTalVBox * vb = new KviTalVBox(this);
	l = new QLabel(vb);
	l->setWordWrap(true);
	l->setText(__tr2qs("<center>Here you can modify the URL that the list will be downloaded from. In most cases the default URL is acceptable.</center>"));

	vb->setStretchFactor(l,1);

	m_pUrlEdit = new QLineEdit(vb);
	m_pUrlEdit->setText(KVI_WWWMIRCCOUK_SERVERSINI);

	addPage(vb,__tr2qs("URL Selection"));

	vb = new KviTalVBox(this);

	l = new QLabel(__tr2qs("Please wait while the list is being downloaded"),vb);
	vb->setStretchFactor(l,1);

	m_pOutput = new QLabel(vb);
	m_pOutput->setFrameStyle(QFrame::WinPanel | QFrame::Sunken);

	addPage(vb,__tr2qs("List Download"));

	setBackEnabled(vb,false);
	setNextEnabled(vb,false);
	setFinishEnabled(vb,true);

	connect(this,SIGNAL(pageChanged(const QString &)),this,SLOT(pageSelected(const QString &)));
}
Пример #21
0
void MigrateDialog::pageSelected(const QString&)
{
    if (currentPage() != page2)
        return;
    backButton()->hide();
    setFinishEnabled(page2, false);
    list<QCheckBox*>::iterator it;
    for (it = m_boxes.begin(); it != m_boxes.end(); ++it){
        if ((*it)->isChecked()){
            m_bProcess = true;
            break;
        }
    }
    if (!m_bProcess){
        reject();
        return;
    }
    unsigned totalSize = 0;
    for (it = m_boxes.begin(); it != m_boxes.end(); ++it){
        if (!(*it)->isChecked())
            continue;
        QString path = QFile::decodeName(user_file(QFile::encodeName((*it)->text())).c_str());
#ifdef WIN32
        path += "\\";
#else
        path += "/";
#endif
        QFile icq_conf(path + "icq.conf");
        totalSize += icq_conf.size();
        QString history_path = path + "history";
#ifdef WIN32
        history_path += "\\";
#else
        history_path += "/";
#endif
        QDir history(history_path);
        QStringList l = history.entryList("*.history", QDir::Files);
        for (QStringList::Iterator it = l.begin(); it != l.end(); ++it){
            QFile hf(history_path + (*it));
            totalSize += hf.size();
        }
    }
    barCnv->setTotalSteps(totalSize);
    QTimer::singleShot(0, this, SLOT(process()));
}
void kiptablesgenerator::setupFinishedPage()
{
  finishedPage = new QFrame(this);
  
  QVBoxLayout *layout = new QVBoxLayout(finishedPage);
  
  QLabel *finishedLabel = new QLabel(i18n(
    "<p><b>Congratulations!</b></p>"
    "<p>All the information required to create your firewall rules has been collected. "
    "Please finish the wizard to generate your firewall script.</p>"), finishedPage);
  finishedLabel->show();
  
  layout->addWidget(finishedLabel);
  
  finishedPage->show();
  this->addPage(finishedPage, i18n("Finished"));
  setFinishEnabled(finishedPage, true);
}
Пример #23
0
ProviderDB::ProviderDB(QWidget *parent) :
  KWizard(parent, "", true),
  cfg(0)
{
  setCaption(i18n("Create New Account"));

  wiz = this;

  page1 = new PDB_Intro(this);
  addPage(page1, "");
  setHelpEnabled(page1, false);
  // TODO  p1->w->setFocusPolicy(StrongFocus);

  page2 = new PDB_Country(this);
  addPage(page2, "");
  setHelpEnabled(page2, false);

  page3 = new PDB_Provider(this);
  addPage(page3, "");
  setHelpEnabled(page3, false);

  page4 = new PDB_UserInfo(this);
  addPage(page4, "");
  setHelpEnabled(page4, false);

  page5 = new PDB_DialPrefix(this);
  addPage(page5, "");
  setHelpEnabled(page5, false);

  page9 = new PDB_Finished(this);
  addPage(page9, "");
  setHelpEnabled(page9, false);
  setFinish(page9, true);
  setFinishEnabled(page9, true);

  connect((const QObject *)nextButton(), SIGNAL(clicked()),
  	  this, SLOT(pageSelected()));
  connect((const QObject *)backButton(), SIGNAL(clicked()),
  	  this, SLOT(pageSelected()));

  //  resize(minimumSize());
  adjustSize();
}
Пример #24
0
void CODBCCreate::setupPage4()
{
#ifdef QT_V4LAYOUT
	box2 = new Q3VBox( this );
#else
	box2 = new QVBox( this );
#endif

	arg_list = new QTextEdit( box2 );
    arg_list -> setGeometry( 10, 10, 300, 100);
  	arg_list -> setMinimumSize( 50, 50 );
  	arg_list -> setMaximumSize( 32767, 32767 );
	arg_list -> setReadOnly( true );

	addPage( box2, "When you click finish, you will create the data source\nwhich you have just configured. The driver may prompt\nyou for more information" );

	setHelpEnabled( box2, FALSE );
	setFinishEnabled( box2, TRUE );
}
Пример #25
0
KSWizard::KSWizard(QWidget *parent, const char *name)
    :KSWizardWzt(parent, name)
{
  m_mouseNavigation->setChecked(Configuration::mouseNavigation());
  m_scrollBar->setChecked(Configuration::scrollBar());
  m_smoothScroll->setChecked(Configuration::smoothScroll());
//  m_authorName->setText(Configuration::authorName());
//  m_authorEmail->setText(Configuration::authorEmail());

  locateLocal("appdata", "");
  m_downloadProgress->setShown(false);
  m_downloadLabel->setShown(false);
  setFinishEnabled(finish, true);
  connect(finishButton(), SIGNAL(pressed()), this, SLOT(slotFinish()));
  if(QFile::exists(locateLocal("appdata", "languages.ldft", false)))
  {
    languages->setDisabled(true);
    m_remoteLanguages->setChecked(false);
  }
}
Пример #26
0
void *JabberWizard::processEvent(Event *e)
{
	if (e->type() == static_cast<JabberPlugin*>(m_search->m_client->protocol()->plugin())->EventAgentRegister){
	    agentRegisterInfo *ai = (agentRegisterInfo*)(e->param());
		if (m_id == ai->id){
			if (ai->bOK){
				m_result->setText(i18n("Register success"));
				setFinishEnabled(m_result, true);
			}else{
				if (ai->error && *ai->error){
					m_result->setText(i18n(ai->error));
				}else{
					m_result->setText(i18n("Register failed"));
				}
			}
			return e->param();
		}
	}
	return NULL;
}
Пример #27
0
void CODBCCreate::setupPage3()
{
#ifdef QT_V4LAYOUT
	box3 = new Q3HBox( this );
#else
	box3 = new QHBox( this );
#endif
	box3->setSpacing( 5 );

	file_edit = new QLineEdit( box3 );
	file_find = new QPushButton( "Browse", box3, "Browse" );

    connect( file_find, SIGNAL(clicked()), SLOT(file_click()) );
    connect( file_edit, SIGNAL(textChanged(const QString &)), SLOT(file_changed(const QString &)) );

	addPage( box3, "Type the name of the file data source you want to save\nthis connection to. Or, find the location to save to\nby clicking Browse" );

	setHelpEnabled( box3, FALSE );
	setFinishEnabled( box3, FALSE );
}
Пример #28
0
void *JabberWizard::processEvent(Event *e)
{
    if (e->type() == EventAgentRegister){
        agentRegisterInfo *ai = (agentRegisterInfo*)(e->param());
        if (m_id == ai->id){
            if (ai->err_code){
                QString err;
                if (ai->error && *ai->error)
                    err = i18n(ai->error);
                if (err.isEmpty())
                    err = i18n("Error %1") .arg(ai->err_code);
                m_result->setText(err);
            }else{
                m_result->setText(i18n("Done"));
                setFinishEnabled(m_result, true);
                QTimer::singleShot(0, this, SLOT(close()));
            }
            return e->param();
        }
    }
    return NULL;
}
Пример #29
0
void CODBCCreate::setupPage1()
{
#ifdef QT_V4LAYOUT
	box = new Q3VBox( this );
#else
	box = new QVBox( this );
#endif
    box->setGeometry( 10,10, 410,75 );

#ifdef QT_V4LAYOUT
	bg = new Q3VButtonGroup( "", box, "Bgroup" );
#else
	bg = new QVButtonGroup( "", box, "Bgroup" );
#endif
    bg -> setGeometry( 10, 10, 300, 100);

	fds = new QRadioButton( "File Data Source", bg );
	uds = new QRadioButton( "User Data Source", bg );
	sds = new QRadioButton( "System Data Source", bg );

    connect( fds, SIGNAL(clicked()), SLOT(fds_click()) );
    connect( uds, SIGNAL(clicked()), SLOT(uds_click()) );
    connect( sds, SIGNAL(clicked()), SLOT(sds_click()) );

    lab = new QLabel( box );
#ifdef QT_V4LAYOUT
	lab -> setAlignment( Qt::AlignTop | Qt::AlignLeft );
#else
	lab -> setAlignment( AlignTop | AlignLeft );
#endif

	fds -> setChecked( true );
	fds_click();

	addPage( box, "Select type of data source" );
	setHelpEnabled( box, FALSE );
	setFinishEnabled( box, FALSE );
}
Пример #30
0
SaveThemeDialog::SaveThemeDialog(QWidget * pParent)
: KviTalWizard(pParent)
{
	setWindowTitle(__tr2qs_ctx("Save Current Theme - KVIrc","theme"));
	setMinimumSize(400,350);

	KviThemeInfo info;
	info.load(KVI_OPTION_STRING(KviOption_stringIconThemeSubdir),KviThemeInfo::Auto);

	// welcome page ==================================================================================
	QWidget * pPage = new QWidget(this);
	QGridLayout * pLayout = new QGridLayout(pPage);

	QLabel * pLabel = new QLabel(pPage);
	pLabel->setWordWrap(true);
	QString szText = "<p>";
	szText += __tr2qs_ctx("This procedure allows you to save the current theme settings to a single directory. It is useful if you want to apply other themes or play with the theme settings and later come back to this theme with a single click. It will also allow you to manually modify the theme settings and later export them to a distributable package.","theme");
	szText += "</p><p>";
	szText += __tr2qs_ctx("You will be asked to provide a theme name, a description and, if you want, a screenshot.","theme");
	szText += "</p><p>";
	szText += __tr2qs_ctx("Hit the \"Next\" button to begin.","theme");
	szText += "<p>";

	pLabel->setText(szText);
	pLayout->addWidget(pLabel,0,0);
	pLayout->setRowStretch(1,1);

	addPage(pPage,__tr2qs_ctx("Welcome","theme"));
	setBackEnabled(pPage,false);
	setNextEnabled(pPage,true);
	setHelpEnabled(pPage,false);
	setFinishEnabled(pPage,false);

	// packager information ================================================================================

	pPage = new QWidget(this);
	pLayout = new QGridLayout(pPage);

	pLabel = new QLabel(pPage);
	pLabel->setText(__tr2qs_ctx("Here you need to provide information about you (the author) and a short description of the theme you're creating.","theme"));
	pLabel->setWordWrap(true);
	pLabel->setTextFormat(Qt::RichText);
	pLayout->addWidget(pLabel,0,0,1,2);

	pLabel = new QLabel(pPage);
	pLabel->setText(__tr2qs_ctx("Theme Name:","theme"));
	pLayout->addWidget(pLabel,1,0);

	m_pThemeNameEdit = new QLineEdit(pPage);
	m_pThemeNameEdit->setText(info.name());
	pLayout->addWidget(m_pThemeNameEdit,1,1);

	pLabel = new QLabel(pPage);
	pLabel->setText(__tr2qs_ctx("Version:","theme"));
	pLayout->addWidget(pLabel,2,0);

	m_pThemeVersionEdit = new QLineEdit(pPage);
	m_pThemeVersionEdit->setText(info.version());
	QRegExp rx("\\d{1,2}\\.\\d{1,2}(\\.\\d{1,2})?");
	QValidator *validator = new QRegExpValidator(rx, this);
	m_pThemeVersionEdit->setValidator(validator);

	pLayout->addWidget(m_pThemeVersionEdit,2,1);

	pLabel = new QLabel(pPage);
	pLabel->setText(__tr2qs_ctx("Description:","theme"));
	pLayout->addWidget(pLabel,3,0);

	m_pThemeDescriptionEdit = new QTextEdit(pPage);
	m_pThemeDescriptionEdit->setText(info.description());
	pLayout->addWidget(m_pThemeDescriptionEdit,3,1);

	pLabel = new QLabel(pPage);
	pLabel->setText(__tr2qs_ctx("Theme Author:","theme"));
	pLayout->addWidget(pLabel,4,0);

	m_pAuthorNameEdit = new QLineEdit(pPage);
	m_pAuthorNameEdit->setText(info.author());
	pLayout->addWidget(m_pAuthorNameEdit,4,1);


	pLayout->setRowStretch(3,1);
	pLayout->setColumnStretch(1,1);

	addPage(pPage,__tr2qs_ctx("Theme Information","theme"));
	setBackEnabled(pPage,true);
	setHelpEnabled(pPage,false);
	setNextEnabled(pPage,true);
	setFinishEnabled(pPage,false);

	// screenshot/logo/icon ================================================================================

	pPage = new QWidget(this);
	pLayout = new QGridLayout(pPage);

	pLabel = new QLabel(pPage);
	pLabel->setText(__tr2qs_ctx("Here you can either choose a screenshot image from disk or make one now. The screenshot will be displayed in the tooltips of the theme management dialog and will be also visible in the package installation dialog if you will export the theme to a distributable package.","theme"));
	pLabel->setWordWrap(true);
	pLabel->setTextFormat(Qt::RichText);
	pLayout->addWidget(pLabel,0,0);

	m_pImageLabel = new QLabel(pPage);
	m_pImageLabel->setFrameStyle(QFrame::Sunken | QFrame::Panel);
	m_pImageLabel->setMinimumSize(300,225);
	m_pImageLabel->setAlignment(Qt::AlignCenter | Qt::AlignVCenter);
	pLayout->addWidget(m_pImageLabel,1,0);

	m_pImageSelector = new KviFileSelector(pPage,"",&m_szScreenshotPath,true,0,KVI_FILTER_IMAGE);
	connect(m_pImageSelector,SIGNAL(selectionChanged(const QString &)),this,SLOT(imageSelectionChanged(const QString &)));
	pLayout->addWidget(m_pImageSelector,2,0);

	QPushButton * pButton = new QPushButton(pPage);
	pButton->setText(__tr2qs_ctx("Make Screenshot Now","theme"));
	connect(pButton,SIGNAL(clicked()),this,SLOT(makeScreenshot()));
	pLayout->addWidget(pButton,3,0);

	pLayout->setRowStretch(1,1);

	m_pImageSelectionPage = pPage;
	addPage(pPage,__tr2qs_ctx("Screenshot","theme"));
	setBackEnabled(pPage,true);
	setHelpEnabled(pPage,false);
	setNextEnabled(pPage,true);
	setFinishEnabled(pPage,true);
}