From bd9e6617827818fd043452c08c606f07b78014a0 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdesdk@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- cervisia/addrepositorydlg.cpp | 202 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 202 insertions(+) create mode 100644 cervisia/addrepositorydlg.cpp (limited to 'cervisia/addrepositorydlg.cpp') diff --git a/cervisia/addrepositorydlg.cpp b/cervisia/addrepositorydlg.cpp new file mode 100644 index 00000000..d1d24cb0 --- /dev/null +++ b/cervisia/addrepositorydlg.cpp @@ -0,0 +1,202 @@ +/* + * Copyright (C) 1999-2002 Bernd Gehrmann + * bernd@mail.berlios.de + * Copyright (c) 2002-2004 Christian Loose + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + + +#include "addrepositorydlg.h" + +#include +#include +#include +#include + +#include +#include +#include +#include + + +AddRepositoryDialog::AddRepositoryDialog(KConfig& cfg, const QString& repo, + QWidget* parent, const char* name) + : KDialogBase(parent, name, true, i18n("Add Repository"), + Ok | Cancel, Ok, true) + , partConfig(cfg) +{ + QFrame* mainWidget = makeMainWidget(); + + QBoxLayout* layout = new QVBoxLayout(mainWidget, 0, spacingHint()); + + QLabel* repo_label = new QLabel(i18n("&Repository:"), mainWidget); + layout->addWidget(repo_label); + + repo_edit = new KLineEdit(mainWidget); + repo_edit->setFocus(); + repo_label->setBuddy(repo_edit); + if( !repo.isNull() ) + { + repo_edit->setText(repo); + repo_edit->setEnabled(false); + } + layout->addWidget(repo_edit); + + QLabel* rsh_label = new QLabel(i18n("Use remote &shell (only for :ext: repositories):"), mainWidget); + layout->addWidget(rsh_label); + + rsh_edit = new KLineEdit(mainWidget); + rsh_label->setBuddy(rsh_edit); + layout->addWidget(rsh_edit); + + QLabel* server_label = new QLabel(i18n("Invoke this program on the server side:"), + mainWidget); + layout->addWidget(server_label); + + server_edit = new KLineEdit(mainWidget); + server_label->setBuddy(server_edit); + layout->addWidget(server_edit); + + QHBox* compressionBox = new QHBox(mainWidget); + m_useDifferentCompression = new QCheckBox(i18n("Use different &compression level:"), compressionBox); + + m_compressionLevel = new KIntNumInput(compressionBox); + m_compressionLevel->setRange(0, 9, 1, false); + layout->addWidget(compressionBox); + + m_retrieveCvsignoreFile = new QCheckBox(i18n("Download cvsignore file from " + "server"), mainWidget); + layout->addWidget(m_retrieveCvsignoreFile); + + connect( repo_edit, SIGNAL(textChanged(const QString&)), + this, SLOT(repoChanged()) ); + connect( m_useDifferentCompression, SIGNAL(toggled(bool)), + this, SLOT(compressionToggled(bool)) ); + repoChanged(); + + QSize size = configDialogSize(partConfig, "AddRepositoryDialog"); + resize(size); +} + + +AddRepositoryDialog::~AddRepositoryDialog() +{ + saveDialogSize(partConfig, "AddRepositoryDialog"); +} + + +void AddRepositoryDialog::setRsh(const QString& rsh) +{ + rsh_edit->setText(rsh); +} + + +void AddRepositoryDialog::setServer(const QString& server) +{ + server_edit->setText(server); +} + + +void AddRepositoryDialog::setCompression(int compression) +{ + if( compression < 0 ) + { + // TODO: use KConfigXT to retrieve default compression level + m_compressionLevel->setValue(0); + m_useDifferentCompression->setChecked(false); + } + else + { + m_useDifferentCompression->setChecked(true); + m_compressionLevel->setValue(compression); + } + + compressionToggled(m_useDifferentCompression->isChecked()); +} + + +void AddRepositoryDialog::setRetrieveCvsignoreFile(bool enabled) +{ + m_retrieveCvsignoreFile->setChecked(enabled); +} + + +QString AddRepositoryDialog::repository() const +{ + return repo_edit->text(); +} + + +QString AddRepositoryDialog::rsh() const +{ + return rsh_edit->text(); +} + + +QString AddRepositoryDialog::server() const +{ + return server_edit->text(); +} + + +int AddRepositoryDialog::compression() const +{ + if( m_useDifferentCompression->isChecked() ) + return m_compressionLevel->value(); + else + return -1; +} + + +bool AddRepositoryDialog::retrieveCvsignoreFile() const +{ + return m_retrieveCvsignoreFile->isChecked(); +} + + +void AddRepositoryDialog::setRepository(const QString& repo) +{ + setCaption(i18n("Repository Settings")); + + repo_edit->setText(repo); + repo_edit->setEnabled(false); +} + + +void AddRepositoryDialog::repoChanged() +{ + QString repo = repository(); + rsh_edit->setEnabled((!repo.startsWith(":pserver:")) + && repo.contains(":")); + m_useDifferentCompression->setEnabled(repo.contains(":")); + if( !repo.contains(":") ) + m_compressionLevel->setEnabled(false); + else + compressionToggled(m_useDifferentCompression->isChecked()); +} + + +void AddRepositoryDialog::compressionToggled(bool checked) +{ + m_compressionLevel->setEnabled(checked); +} + +#include "addrepositorydlg.moc" + + +// Local Variables: +// c-basic-offset: 4 +// End: -- cgit v1.2.1