Launcher::TextInputDialog::TextInputDialog(const QString& title, const QString &text, QWidget *parent) : QDialog(parent) { setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); mButtonBox = new QDialogButtonBox(this); mButtonBox->addButton(QDialogButtonBox::Ok); mButtonBox->addButton(QDialogButtonBox::Cancel); mButtonBox->button(QDialogButtonBox::Ok)->setEnabled (false); // Line edit QValidator *validator = new QRegExpValidator(QRegExp("^[a-zA-Z0-9_]*$"), this); // Alpha-numeric + underscore mLineEdit = new DialogLineEdit(this); mLineEdit->setValidator(validator); mLineEdit->setCompleter(0); QLabel *label = new QLabel(this); label->setText(text); QVBoxLayout *dialogLayout = new QVBoxLayout(this); dialogLayout->addWidget(label); dialogLayout->addWidget(mLineEdit); dialogLayout->addWidget(mButtonBox); // Messageboxes on mac have no title #ifndef Q_OS_MAC setWindowTitle(title); #else Q_UNUSED(title); #endif setModal(true); connect(mButtonBox, SIGNAL(accepted()), this, SLOT(accept())); connect(mButtonBox, SIGNAL(rejected()), this, SLOT(reject())); connect(mLineEdit, SIGNAL(textChanged(QString)), this, SLOT(slotUpdateOkButton(QString))); }
FileDlg::FileDlg(KGetMetalink::File *file, const QStringList ¤tFileNames, QSortFilterProxyModel *countrySort, QSortFilterProxyModel *languageSort, QWidget *parent, bool edit) : KGetSaveSizeDialog("FileDlg", parent), m_file(file), m_initialFileName(m_file->name), m_currentFileNames(currentFileNames), m_edit(edit) { //remove the initial name, to see later if the chosen name is still free m_currentFileNames.removeAll(m_initialFileName); QWidget *widget = new QWidget(this); ui.setupUi(widget); setMainWidget(widget); m_urlWidget = new UrlWidget(this); m_urlWidget->init(&m_file->resources, countrySort); ui.urlLayout->addWidget(m_urlWidget->widget()); connect(m_urlWidget, SIGNAL(urlsChanged()), this, SLOT(slotUpdateOkButton())); QWidget *data = new QWidget(this); uiData.setupUi(data); ui.dataLayout->addWidget(data); ui.infoWidget->setCloseButtonVisible(false); ui.infoWidget->setMessageType(KMessageWidget::Information); //set the file data ui.name->setText(m_file->name); uiData.identity->setText(m_file->data.identity); uiData.version->setText(m_file->data.version); uiData.description->setText(m_file->data.description); uiData.logo->setUrl(m_file->data.logo); if (m_file->data.oses.count()) { uiData.os->setText(m_file->data.oses.join(i18nc("comma, to seperate members of a list", ","))); } uiData.copyright->setText(m_file->data.copyright); uiData.pub_name->setText(m_file->data.publisher.name); uiData.pub_url->setUrl(m_file->data.publisher.url); if (m_file->size) { ui.size->setText(QString::number(m_file->size)); } //create the language selection uiData.language->setModel(languageSort); if (m_file->data.languages.count()) {//TODO 4.5 support multiple languages const int index = uiData.language->findData(m_file->data.languages.first()); uiData.language->setCurrentIndex(index); } else { //Do not select a language of a file if none was defined. uiData.language->setCurrentIndex(-1); } //create the verification stuff m_verificationModel = new VerificationModel(this); QHash<QString, QString>::const_iterator it; QHash<QString, QString>::const_iterator itEnd = m_file->verification.hashes.constEnd(); for (it = m_file->verification.hashes.constBegin(); it != itEnd; ++it) { m_verificationModel->addChecksum(it.key(), it.value()); } ui.add_hash->setGuiItem(KStandardGuiItem::add()); ui.remove_hash->setGuiItem(KStandardGuiItem::remove()); m_verificationProxy = new QSortFilterProxyModel(this); m_verificationProxy->setSourceModel(m_verificationModel); ui.used_hashes->setSortingEnabled(true); ui.used_hashes->hideColumn(VerificationModel::Verified); ui.used_hashes->setModel(m_verificationProxy); ui.used_hashes->setItemDelegate(new VerificationDelegate(this)); slotUpdateVerificationButtons(); connect(m_verificationModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(slotUpdateVerificationButtons())); connect(m_verificationModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(slotUpdateVerificationButtons())); connect(ui.used_hashes, SIGNAL(clicked(QModelIndex)), this, SLOT(slotUpdateVerificationButtons())); connect(ui.add_hash, SIGNAL(clicked()), this, SLOT(slotAddHash())); connect(ui.remove_hash, SIGNAL(clicked()), this, SLOT(slotRemoveHash())); connect(ui.name, SIGNAL(textEdited(QString)), this, SLOT(slotUpdateOkButton())); connect(this, SIGNAL(okClicked()), this, SLOT(slotOkClicked())); slotUpdateOkButton(); setCaption(i18n("File Properties")); }