summaryrefslogtreecommitdiffstats
path: root/knetattach/knetattach.ui.h
diff options
context:
space:
mode:
Diffstat (limited to 'knetattach/knetattach.ui.h')
-rw-r--r--knetattach/knetattach.ui.h288
1 files changed, 288 insertions, 0 deletions
diff --git a/knetattach/knetattach.ui.h b/knetattach/knetattach.ui.h
new file mode 100644
index 000000000..de890e228
--- /dev/null
+++ b/knetattach/knetattach.ui.h
@@ -0,0 +1,288 @@
+/****************************************************************************
+** ui.h extension file, included from the uic-generated form implementation.
+**
+** If you want to add, delete, or rename functions or slots, use
+** Qt Designer to update this file, preserving your code.
+**
+** You should not define a constructor or destructor in this file.
+** Instead, write your code in functions called init() and destroy().
+** These will automatically be called by the form's constructor and
+** destructor.
+*****************************************************************************/
+
+void KNetAttach::init()
+{
+ setIcon(SmallIcon("knetattach"));
+ disconnect(finishButton(), SIGNAL(clicked()), (QDialog*)this, SLOT(accept()));
+ connect(finishButton(), SIGNAL(clicked()), this, SLOT(finished()));
+ finishButton()->setText(i18n("Save && C&onnect"));
+ //setResizeMode(Fixed); FIXME: make the wizard fixed-geometry
+ setFinishEnabled(_folderParameters, false);
+ KConfig recent("krecentconnections", true, false);
+ recent.setGroup("General");
+ QStringList idx = recent.readListEntry("Index");
+ if (idx.isEmpty()) {
+ _recent->setEnabled(false);
+ if (_recent->isChecked()) {
+ _webfolder->setChecked(true);
+ }
+ } else {
+ _recent->setEnabled(true);
+ _recentConnectionName->insertStringList(idx);
+ }
+}
+
+void KNetAttach::setInformationText( const QString &type )
+{
+ QString text;
+
+ if (type=="WebFolder") {
+ text = i18n("Enter a name for this <i>WebFolder</i> as well as a server address, port and folder path to use and press the <b>Save & Connect</b> button.");
+ } else if (type=="Fish") {
+ text = i18n("Enter a name for this <i>Secure shell connection</i> as well as a server address, port and folder path to use and press the <b>Save & Connect</b> button.");
+ } else if (type=="FTP") {
+ text = i18n("Enter a name for this <i>File Transfer Protocol connection</i> as well as a server address and folder path to use and press the <b>Save & Connect</b> button.");
+ } else if (type=="SMB") {
+ text = i18n("Enter a name for this <i>Microsoft Windows network drive</i> as well as a server address and folder path to use and press the <b>Save & Connect</b> button.");
+ }
+
+ _informationText->setText(text);
+}
+
+void KNetAttach::showPage( QWidget *page )
+{
+ if (page == _folderType) {
+ } else if (page == _folderParameters) {
+ _host->setFocus();
+ _connectionName->setFocus();
+
+ if (_webfolder->isChecked()) {
+ setInformationText("WebFolder");
+ updateForProtocol("WebFolder");
+ _port->setValue(80);
+ } else if (_fish->isChecked()) {
+ setInformationText("Fish");
+ updateForProtocol("Fish");
+ _port->setValue(22);
+ } else if (_ftp->isChecked()) {
+ setInformationText("FTP");
+ updateForProtocol("FTP");
+ _port->setValue(21);
+ if (_path->text().isEmpty()) {
+ _path->setText("/");
+ }
+ } else if (_smb->isChecked()) {
+ setInformationText("SMB");
+ updateForProtocol("SMB");
+ } else { //if (_recent->isChecked()) {
+ KConfig recent("krecentconnections", true, false);
+ if (!recent.hasGroup(_recentConnectionName->currentText())) {
+ recent.setGroup("General");
+ QStringList idx = recent.readListEntry("Index");
+ if (idx.isEmpty()) {
+ _recent->setEnabled(false);
+ if (_recent->isChecked()) {
+ _webfolder->setChecked(true);
+ }
+ } else {
+ _recent->setEnabled(true);
+ _recentConnectionName->insertStringList(idx);
+ }
+ showPage(_folderType);
+ return;
+ }
+ recent.setGroup(_recentConnectionName->currentText());
+ _type = recent.readEntry("Type");
+ setInformationText(_type);
+ if (!updateForProtocol(_type)) {
+ // FIXME: handle error
+ }
+ KURL u(recent.readEntry("URL"));
+ _host->setText(u.host());
+ _user->setText(u.user());
+ _path->setText(u.path());
+ if (recent.hasKey("Port")) {
+ _port->setValue(recent.readNumEntry("Port"));
+ } else {
+ _port->setValue(u.port());
+ }
+ _connectionName->setText(_recentConnectionName->currentText());
+ _createIcon->setChecked(false);
+ }
+ updateParametersPageStatus();
+ }
+
+ QWizard::showPage(page);
+}
+
+
+void KNetAttach::updateParametersPageStatus()
+{
+ setFinishEnabled(_folderParameters,
+ !_host->text().stripWhiteSpace().isEmpty() &&
+ !_path->text().stripWhiteSpace().isEmpty() &&
+ !_connectionName->text().stripWhiteSpace().isEmpty());
+}
+
+void KNetAttach::finished()
+{
+ setBackEnabled(_folderParameters,false);
+ setFinishEnabled(_folderParameters, false);
+ KURL url;
+ if (_type == "WebFolder") {
+ if (_useEncryption->isChecked()) {
+ url.setProtocol("webdavs");
+ } else {
+ url.setProtocol("webdav");
+ }
+ url.setPort(_port->value());
+ } else if (_type == "Fish") {
+ url.setProtocol("fish");
+ url.setPort(_port->value());
+ } else if (_type == "FTP") {
+ url.setProtocol("ftp");
+ url.setPort(_port->value());
+ } else if (_type == "SMB") {
+ url.setProtocol("smb");
+ } else { // recent
+ }
+
+ url.setHost(_host->text().stripWhiteSpace());
+ url.setUser(_user->text().stripWhiteSpace());
+ QString path = _path->text().stripWhiteSpace();
+ if (!path.startsWith("/")) {
+ path = QString("/") + path;
+ }
+ url.setPath(path);
+ _folderParameters->setEnabled(false);
+ bool success = doConnectionTest(url);
+ _folderParameters->setEnabled(true);
+ if (!success) {
+ KMessageBox::sorry(this, i18n("Unable to connect to server. Please check your settings and try again."));
+ showPage(_folderParameters);
+ setBackEnabled(_folderParameters, true);
+ return;
+ }
+
+ kapp->invokeBrowser(url.url());
+
+ QString name = _connectionName->text().stripWhiteSpace();
+
+ if (_createIcon->isChecked()) {
+ KGlobal::dirs()->addResourceType("remote_entries",
+ KStandardDirs::kde_default("data") + "remoteview");
+
+ QString path = KGlobal::dirs()->saveLocation("remote_entries");
+ path += name + ".desktop";
+ KSimpleConfig desktopFile(path, false);
+ desktopFile.setGroup("Desktop Entry");
+ desktopFile.writeEntry("Icon", "package_network");
+ desktopFile.writeEntry("Name", name);
+ desktopFile.writeEntry("Type", "Link");
+ desktopFile.writeEntry("URL", url.prettyURL());
+ desktopFile.sync();
+ KDirNotify_stub notifier("*", "*");
+ notifier.FilesAdded( "remote:/" );
+ }
+
+ if (!name.isEmpty()) {
+ KConfig recent("krecentconnections", false, false);
+ recent.setGroup("General");
+ QStringList idx = recent.readListEntry("Index");
+ recent.deleteGroup(name); // erase anything stale
+ if (idx.contains(name)) {
+ idx.remove(name);
+ idx.prepend(name);
+ recent.writeEntry("Index", idx);
+ recent.setGroup(name);
+ } else {
+ QString last;
+ if (!idx.isEmpty()) {
+ last = idx.last();
+ idx.pop_back();
+ }
+ idx.prepend(name);
+ recent.deleteGroup(last);
+ recent.writeEntry("Index", idx);
+ }
+ recent.setGroup(name);
+ recent.writeEntry("URL", url.prettyURL());
+ if (_type == "WebFolder" || _type == "Fish" || _type == "FTP") {
+ recent.writeEntry("Port", _port->value());
+ }
+ recent.writeEntry("Type", _type);
+ recent.sync();
+ }
+
+ QDialog::accept();
+}
+
+
+void KNetAttach::updatePort(bool encryption)
+{
+ if (_webfolder->isChecked()) {
+ if (encryption) {
+ _port->setValue(443);
+ } else {
+ _port->setValue(80);
+ }
+ }
+}
+
+
+bool KNetAttach::doConnectionTest(const KURL& url)
+{
+ KIO::UDSEntry entry;
+ if (KIO::NetAccess::stat(url, entry, this)) {
+ // Anything to test here?
+ return true;
+ }
+ return false;
+}
+
+
+bool KNetAttach::updateForProtocol(const QString& protocol)
+{
+ _type = protocol;
+ if (protocol == "WebFolder") {
+ _useEncryption->show();
+ _portText->show();
+ _port->show();
+ _userText->show();
+ _user->show();
+ } else if (protocol == "Fish") {
+ _useEncryption->hide();
+ _portText->show();
+ _port->show();
+ _userText->show();
+ _user->show();
+ } else if (protocol == "FTP") {
+ _useEncryption->hide();
+ _portText->show();
+ _port->show();
+ _userText->show();
+ _user->show();
+ } else if (protocol == "SMB") {
+ _useEncryption->hide();
+ _portText->hide();
+ _port->hide();
+ _userText->hide();
+ _user->hide();
+ } else {
+ _type = "";
+ return false;
+ }
+ return true;
+}
+
+
+void KNetAttach::updateFinishButtonText(bool save)
+{
+ if (save) {
+ finishButton()->setText(i18n("Save && C&onnect"));
+ } else {
+ finishButton()->setText(i18n("C&onnect"));
+ }
+}
+
+// vim: ts=8 sw=4 noet