[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [plasmate/terietor/remoteinstaller] /: Initial commit for Plasma Remote Installer
From:       Giorgos Tsiapaliwkas <terietor () gmail ! com>
Date:       2012-05-18 12:24:07
Message-ID: 20120518122407.0D85CA60A9 () git ! kde ! org
[Download RAW message or body]

Git commit ca08bb6ac50cd98fe8949e6481003807e4f3fc93 by Giorgos Tsiapaliwkas.
Committed on 18/05/2012 at 14:22.
Pushed by tsiapaliwkas into branch 'terietor/remoteinstaller'.

Initial commit for Plasma Remote Installer

M  +24   -1    CMakeLists.txt
M  +53   -9    publisher/publisher.cpp
M  +4    -2    publisher/publisher.h
A  +48   -0    publisher/remoteinstaller/remoteinstaller.cpp     [License: GPL (v2+)]
A  +27   -0    publisher/remoteinstaller/remoteinstaller.h     [License: GPL (v2+)]
A  +105  -0    publisher/remoteinstaller/remoteinstaller.ui
A  +32   -0    publisher/remoteinstaller/remoteinstallerdialog.cpp     [License: GPL \
(v2+)] A  +29   -0    publisher/remoteinstaller/remoteinstallerdialog.h     [License: \
GPL (v2+)] A  +50   -0    publisher/remoteinstaller/standalone/main.cpp     [License: \
GPL (v2+)] A  +56   -0    \
publisher/remoteinstaller/standalone/plasmaremoteinstaller.cpp     [License: GPL \
(v2+)] A  +30   -0    publisher/remoteinstaller/standalone/plasmaremoteinstaller.h    \
[License: GPL (v2+)] A  +120  -0    \
publisher/remoteinstaller/standalone/plasmaremoteinstaller.ui

http://commits.kde.org/plasmate/ca08bb6ac50cd98fe8949e6481003807e4f3fc93

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7e1bf4b..2bffc9e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -54,9 +54,11 @@ set (PlasMate_SRC
     publisher/signingwidget.cpp
     publisher/signingdialog.cpp
     publisher/publisher.cpp
+    publisher/remoteinstaller/remoteinstaller.cpp
+    publisher/remoteinstaller/remoteinstallerdialog.cpp
     docbrowser/docbrowser.cpp
     projectmanager/projectmanager.cpp
-    )
+)
 
 if (DEBUG_MODEL)
       set (PlasMate_SRC
@@ -69,6 +71,7 @@ endif (DEBUG_MODEL)
 kde4_add_ui_files (PlasMate_SRC
    startpage.ui
    editors/metadata/metadata.ui
+   publisher/remoteinstaller/remoteinstaller.ui
 )
 
 include_directories(${KDE4_INCLUDES}
@@ -103,4 +106,24 @@ install(FILES plasmate.desktop DESTINATION \
${XDG_APPS_INSTALL_DIR})  install(FILES plasmateui.rc  DESTINATION \
${DATA_INSTALL_DIR}/plasmate)  install(FILES plasmate.knsrc DESTINATION \
${CONFIG_INSTALL_DIR})  
+#standalone applications
+set (PlasmaRemoteInstaller_SRC
+    publisher/remoteinstaller/remoteinstaller.cpp
+    publisher/remoteinstaller/standalone/main.cpp
+    publisher/remoteinstaller/standalone/plasmaremoteinstaller.cpp
+)
+
+kde4_add_ui_files (PlasmaRemoteInstaller_SRC
+   publisher/remoteinstaller/standalone/plasmaremoteinstaller.ui
+)
+
+kde4_add_executable(plasmaremoteinstaller ${PlasmaRemoteInstaller_SRC})
+target_link_libraries(plasmaremoteinstaller
+                      ${KDE4_KDEUI_LIBS}
+                      ${KDE4_KIO_LIBRARY}
+)
+
+install(TARGETS plasmaremoteinstaller ${INSTALL_TARGETS_DEFAULT_ARGS})
+
+
 macro_display_feature_log()
diff --git a/publisher/publisher.cpp b/publisher/publisher.cpp
index 3fcd268..bcace17 100644
--- a/publisher/publisher.cpp
+++ b/publisher/publisher.cpp
@@ -13,7 +13,11 @@
 #include <QVBoxLayout>
 #include <QCheckBox>
 #include <QComboBox>
+#include <QPointer>
 
+#include <KConfigGroup>
+#include <KIO/DeleteJob>
+#include <KSharedConfig>
 #include <KUrlRequester>
 #include <KLocalizedString>
 #include <KProcess>
@@ -27,6 +31,7 @@
 #include "signingwidget.h"
 #include "../packagemodel.h"
 #include "../projectmanager/projectmanager.h"
+#include "remoteinstaller/remoteinstallerdialog.h"
 
 Publisher::Publisher(QWidget *parent, const KUrl &path, const QString& type)
         : QDialog(parent),
@@ -53,12 +58,14 @@ Publisher::Publisher(QWidget *parent, const KUrl &path, const \
QString& type)  m_installerButton->addItem("");
     m_installerButton->addItem("Use PlasmaPkg");
     m_installerButton->addItem("Use cmake");
+    m_installerButton->addItem("Remote Install");
     m_publisherButton = new QPushButton(i18n("Publish current project"), this);
 
     connect(m_exporterUrl, SIGNAL(urlSelected(const KUrl&)), this, \
SLOT(addSuffix()));  connect(m_exporterButton, SIGNAL(clicked()), this, \
                SLOT(doExport()));
-    connect(m_installerButton, SIGNAL(currentIndexChanged(int)), this, \
                SLOT(doPlasmaPkg()));
-    connect(m_installerButton, SIGNAL(currentIndexChanged(int)), this, \
SLOT(doCMake())); +    connect(m_installerButton, SIGNAL(currentIndexChanged(int)), \
this, SLOT(doPlasmaPkg(int))); +    connect(m_installerButton, \
SIGNAL(currentIndexChanged(int)), this, SLOT(doCMake(int))); +    \
connect(m_installerButton, SIGNAL(currentIndexChanged(int)), this, \
                SLOT(doRemoteInstall(int)));
     connect(m_publisherButton, SIGNAL(clicked()), this, SLOT(doPublish()));
 
     // Publish only works right for Plasmoid now afaik. Disabling for other project \
types. @@ -126,7 +133,7 @@ void Publisher::doExport()
     }
     bool ok = exportToFile(m_exporterUrl->url());
 
-    // If signign is enabled, lets do that!
+    // If signign is enabled, lets do that!1
     if (m_signingWidget->signingEnabled()) {
         ok = ok && m_signingWidget->sign(m_exporterUrl->url());
     }
@@ -139,16 +146,21 @@ void Publisher::doExport()
 }
 
 // Plasmoid specific, for now
-void Publisher::doCMake()
+void Publisher::doCMake(int index)
 {
+    //check if this the index that we want
+    if (index != 2) {
+        return;
+    }
+
     if (m_projectType != "Plasma/Applet") {
         qDebug() << "chaos";
         return;
     }
 
-    qDebug() << "aei gamis";
-    const KUrl tempPackage(tempPackagePath());
+    //this is the CMakeLists.txt from the templates directory
     QFile cmakeListsSourceFile(KStandardDirs::locate("appdata", "templates/") + \
"cmakelists"); +
     QFile cmakeListsDestinationFile(m_projectPath.pathOrUrl() + "CMakeLists.txt");
 
     cmakeListsSourceFile.open(QIODevice::ReadOnly);
@@ -164,21 +176,41 @@ void Publisher::doCMake()
 
     cmakeListsDestinationFile.close();
     cmakeListsSourceFile.close();
+
+    //we need the last loaded package which also is the current package.
+    KConfigGroup cg(KGlobal::config(), "PackageModel::package");
+    QString packagePath(cg.readEntry("lastLoadedPackage", QString()));
+
+    //create a temporary build dir
+    QDir dir(packagePath);
+    dir.mkdir("build");
+
+    //TODO now we have to move into the build dir but how?
     QStringList argv("cmake");
-    argv.append("-DCMAKE_INSTALL_PREFIX=$HOME");
-    argv.append(tempPackagePath());
+    argv.append(packagePath);
+
     if(KProcess::execute(argv) >= 0 ? true: false) {
         QDBusInterface dbi("org.kde.kded", "/kbuildsycoca", "org.kde.kbuildsycoca");
         dbi.call(QDBus::NoBlock, "recreate");
+        KMessageBox::information(this, i18n("Project has been installed"));
     } else {
         KMessageBox::error(this, i18n("Project has not been installed"));
         return;
     }
+
+    //now delete the temporary build directory. We don't need it anymore
+    KIO::del(packagePath + "build", KIO::HideProgressInfo);
+    //TODO remove the CMakeLists.txt in \
~/.kde4/share/apps/plasma/plasmoids/projectName  }
 
 // Plasmoid specific, for now
-void Publisher::doPlasmaPkg()
+void Publisher::doPlasmaPkg(int index)
 {
+    //check if this the index that we want
+    if (index != 1) {
+        return;
+    }
+
     const KUrl tempPackage(tempPackagePath());
     qDebug() << "tempPackagePath" << tempPackage.pathOrUrl();
     qDebug() << "m_projectPath" << m_projectPath.pathOrUrl();
@@ -242,6 +274,18 @@ void Publisher::doPlasmaPkg()
     }
 }
 
+void Publisher::doRemoteInstall(int index)
+{
+    //check if this the index that we want
+    if (index != 3) {
+        return;
+    }
+
+    QPointer<RemoteInstallerDialog> dialog = new RemoteInstallerDialog();
+    dialog->exec();
+    delete dialog;
+}
+
 const QString Publisher::tempPackagePath()
 {
     QDir d(m_projectPath.pathOrUrl());
diff --git a/publisher/publisher.h b/publisher/publisher.h
index 6eba693..e001f19 100644
--- a/publisher/publisher.h
+++ b/publisher/publisher.h
@@ -22,6 +22,7 @@ class QComboBox;
 namespace Ui
 {
 class Publisher;
+class RemoteInstaller;
 }
 
 class Publisher : public QDialog
@@ -35,8 +36,9 @@ private slots:
     void doExport();
     void addSuffix();
     void doPublish();
-    void doPlasmaPkg();
-    void doCMake();
+    void doPlasmaPkg(int index);
+    void doCMake(int index);
+    void doRemoteInstall(int index);
 
 private:
     bool exportToFile(const KUrl& url);
diff --git a/publisher/remoteinstaller/remoteinstaller.cpp \
b/publisher/remoteinstaller/remoteinstaller.cpp new file mode 100644
index 0000000..9c3729e
--- /dev/null
+++ b/publisher/remoteinstaller/remoteinstaller.cpp
@@ -0,0 +1,48 @@
+/*
+ *  Copyright 2012 Giorgos Tsiapaliwkas <terietor@gmail.com>>
+ *
+ *  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.
+ */
+
+#include "remoteinstaller.h"
+
+#include <KIO/NetAccess>
+#include <KStandardDirs>
+#include <KConfigGroup>
+#include <KSharedConfig>
+
+#include <QWidget>
+
+RemoteInstaller::RemoteInstaller(QObject* parent)
+        : QObject(parent)
+{
+}
+
+#include <QDebug>
+void RemoteInstaller::install(const QString& username, const QString& ip, QWidget \
*window) +{
+    //like fish://username@192.123.23.1
+    KUrl execUrl = "fish://" + username + "@" + ip;
+
+    //now we need the src
+    KConfigGroup c(KGlobal::config(), "PackageModel::package");
+    QString src = c.readEntry("lastLoadedPackage", QString());
+
+    //now we need the destination in the target pc
+    QString destination = KIO::NetAccess::fish_execute(execUrl, "kde4-config --path \
data > ~/a", window); +
+    qDebug() << "dest" << destination;
+    //copy the project in the target's plasmate data directory
+    //KIO::NetAccess::dircopy(src, destination, window);
+
+    //TODO we need both but this isn't a good solution
+    //execute plasmapkg
+    //KIO::NetAccess::fish_execute(execUrl, "plasmapkg -i + projectPath, window);
+    // KIO::NetAccess::fish_execute(execUrl, "plasmapkg -u + projectPath, window);
+
+    //execute kbuildsycoca4
+    KIO::NetAccess::fish_execute(execUrl, "kbuildsycoca4", window);
+}
\ No newline at end of file
diff --git a/publisher/remoteinstaller/remoteinstaller.h \
b/publisher/remoteinstaller/remoteinstaller.h new file mode 100644
index 0000000..07eecf5
--- /dev/null
+++ b/publisher/remoteinstaller/remoteinstaller.h
@@ -0,0 +1,27 @@
+/*
+ *  Copyright 2012 Giorgos Tsiapaliwkas <terietor@gmail.com>
+ * 
+ *  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.
+ */
+
+#ifndef REMOTEINSTALLERCORE_H
+#define REMOTEINSTALLERCORE_H
+
+#include <QObject>
+#include <KUrl>
+
+class QWidget;
+
+class RemoteInstaller : public QObject
+{
+    Q_OBJECT;
+public:
+    RemoteInstaller(QObject* parent = 0);
+
+    static void install(const QString& username, const QString& ip, QWidget \
*window); +};
+
+#endif // PUBLISHER_H
diff --git a/publisher/remoteinstaller/remoteinstaller.ui \
b/publisher/remoteinstaller/remoteinstaller.ui new file mode 100644
index 0000000..a9f1ee5
--- /dev/null
+++ b/publisher/remoteinstaller/remoteinstaller.ui
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>RemoteInstaller</class>
+ <widget class="QWidget" name="RemoteInstaller">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>612</width>
+    <height>250</height>
+   </rect>
+  </property>
+  <property name="minimumSize">
+   <size>
+    <width>550</width>
+    <height>250</height>
+   </size>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <widget class="QWidget" name="verticalLayoutWidget">
+   <property name="geometry">
+    <rect>
+     <x>0</x>
+     <y>0</y>
+     <width>614</width>
+     <height>221</height>
+    </rect>
+   </property>
+   <layout class="QVBoxLayout" name="verticalLayout">
+    <item>
+     <layout class="QHBoxLayout" name="horizontalLayout">
+      <item>
+       <spacer name="horizontalSpacer">
+        <property name="orientation">
+         <enum>Qt::Horizontal</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>40</width>
+          <height>20</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item>
+       <widget class="QLabel" name="label_3">
+        <property name="text">
+         <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; \
font-weight:600;&quot;&gt;HINT: Add below the username and the ip of the target \
computer&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> +        \
</property> +       </widget>
+      </item>
+      <item>
+       <spacer name="horizontalSpacer_2">
+        <property name="orientation">
+         <enum>Qt::Horizontal</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>40</width>
+          <height>20</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+     </layout>
+    </item>
+    <item>
+     <layout class="QGridLayout" name="gridLayout">
+      <item row="1" column="0">
+       <widget class="QLabel" name="label_2">
+        <property name="text">
+         <string>Target ip address</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="1">
+       <widget class="KLineEdit" name="ipLineEdit"/>
+      </item>
+      <item row="0" column="0">
+       <widget class="QLabel" name="label">
+        <property name="text">
+         <string>Target Username</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1">
+       <widget class="KLineEdit" name="usernameLineEdit"/>
+      </item>
+     </layout>
+    </item>
+   </layout>
+  </widget>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>KLineEdit</class>
+   <extends>QLineEdit</extends>
+   <header>klineedit.h</header>
+  </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/publisher/remoteinstaller/remoteinstallerdialog.cpp \
b/publisher/remoteinstaller/remoteinstallerdialog.cpp new file mode 100644
index 0000000..bd643c3
--- /dev/null
+++ b/publisher/remoteinstaller/remoteinstallerdialog.cpp
@@ -0,0 +1,32 @@
+/*
+ *  Copyright 2012 Giorgos Tsiapaliwkas <terietor@gmail.com>>
+ *
+ *  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.
+ */
+
+#include "remoteinstallerdialog.h"
+#include "remoteinstaller.h"
+
+RemoteInstallerDialog::RemoteInstallerDialog(QWidget* parent)
+        : KDialog(parent)
+{
+    QWidget *widget = new QWidget(this);
+
+    m_ui.setupUi(widget);
+    setMainWidget(widget);
+
+    connect(this, SIGNAL(okClicked()), this, SLOT(install()));
+}
+
+void RemoteInstallerDialog::install()
+{
+    const QString username = m_ui.usernameLineEdit->text();
+    const QString ip = m_ui.ipLineEdit->text();
+    if (!username.isEmpty() && !ip.isEmpty()) {
+        RemoteInstaller::install(username, ip, this);
+    }
+}
+
diff --git a/publisher/remoteinstaller/remoteinstallerdialog.h \
b/publisher/remoteinstaller/remoteinstallerdialog.h new file mode 100644
index 0000000..0ab7b85
--- /dev/null
+++ b/publisher/remoteinstaller/remoteinstallerdialog.h
@@ -0,0 +1,29 @@
+/*
+ *  Copyright 2012 Giorgos Tsiapaliwkas <terietor@gmail.com>
+ * 
+ *  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.
+ */
+
+#ifndef REMOTEINSTALLERDIALOG_H
+#define REMOTEINSTALLERDIALOG_H
+
+#include <KDialog>
+
+#include "ui_remoteinstaller.h"
+
+class RemoteInstallerDialog : public KDialog
+{
+    Q_OBJECT;
+public:
+    RemoteInstallerDialog(QWidget* parent = 0);
+    
+public Q_SLOTS:
+    void install();
+private:
+    Ui::RemoteInstaller m_ui;
+};
+
+#endif // PUBLISHER_H
diff --git a/publisher/remoteinstaller/standalone/main.cpp \
b/publisher/remoteinstaller/standalone/main.cpp new file mode 100644
index 0000000..71f3954
--- /dev/null
+++ b/publisher/remoteinstaller/standalone/main.cpp
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2012 Giorgos Tsiapaliwkas <terietor@gmail.com>
+ * 
+ * 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, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <KApplication>
+#include <KAboutData>
+#include <KLocale>
+#include <KCmdLineArgs>
+
+#include <QPointer>
+
+#include "plasmaremoteinstaller.h"
+
+int main(int argc, char *argv[])
+{
+    KAboutData aboutData("plasmaremoteinstaller", 0, ki18n("Plasma Remote \
installer"), +                         "0.1alpha3", ki18n("Plasma Remote Installer"),
+                         KAboutData::License_GPL,
+                         ki18n("Copyright 2012 Plasma Development Team"),
+                         KLocalizedString(), "", "plasma-devel@kde.org");
+
+    aboutData.addAuthor(ki18n("Giorgos Tsiapaliwkas"), ki18n("Author"), \
"terietor@gmail.com"); +
+    KCmdLineArgs::init(argc, argv, &aboutData);
+
+    KCmdLineOptions options;
+    KCmdLineArgs::addCmdLineOptions(options);
+    KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
+    KApplication app;
+
+    QPointer<PlasmaRemoteInstaller> dialog = new PlasmaRemoteInstaller();
+    dialog->exec();
+    delete dialog;
+
+    return app.exec();
+}
+
diff --git a/publisher/remoteinstaller/standalone/plasmaremoteinstaller.cpp \
b/publisher/remoteinstaller/standalone/plasmaremoteinstaller.cpp new file mode 100644
index 0000000..3fa4a4f
--- /dev/null
+++ b/publisher/remoteinstaller/standalone/plasmaremoteinstaller.cpp
@@ -0,0 +1,56 @@
+/*
+ *  Copyright 2012 Giorgos Tsiapaliwkas <terietor@gmail.com>>
+ *
+ *  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.
+ */
+
+#include "plasmaremoteinstaller.h"
+#include "../remoteinstaller.h"
+
+PlasmaRemoteInstaller::PlasmaRemoteInstaller(QWidget* parent)
+        : KDialog(parent)
+{
+    QWidget *widget = new QWidget(this);
+
+    m_ui.setupUi(widget);
+    setMainWidget(widget);
+
+    connect(this, SIGNAL(okClicked()), this, SLOT(install()));
+    connect(m_ui.srcUrl, SIGNAL(textChanged(const QString&)), this, \
SLOT(checkProjectPath(const QString&))); +
+    //disable the buttons. The user hasn't give a path yet.
+    m_ui.usernameLineEdit->setEnabled(false);
+    m_ui.ipLineEdit->setEnabled(false);
+    enableButtonOk(false);
+}
+
+void PlasmaRemoteInstaller::install()
+{
+    const QString username = m_ui.usernameLineEdit->text();
+    const QString ip = m_ui.ipLineEdit->text();
+    if (!username.isEmpty() && !ip.isEmpty()) {
+        RemoteInstaller::install(username, ip, this);
+    }
+}
+
+void PlasmaRemoteInstaller::checkProjectPath(const QString& path)
+{
+    if (path.isEmpty()) {
+        return;
+    }
+
+    //check if projectName/metadata.desktop exists
+    if(path.endsWith("metadata.desktop")) {
+       m_ui.usernameLineEdit->setEnabled(true);
+        m_ui.ipLineEdit->setEnabled(true);
+        enableButtonOk(true);
+    } else {
+        m_ui.usernameLineEdit->setEnabled(false);
+        m_ui.ipLineEdit->setEnabled(false);
+        enableButtonOk(false);
+    }
+}
+
diff --git a/publisher/remoteinstaller/standalone/plasmaremoteinstaller.h \
b/publisher/remoteinstaller/standalone/plasmaremoteinstaller.h new file mode 100644
index 0000000..9145ce7
--- /dev/null
+++ b/publisher/remoteinstaller/standalone/plasmaremoteinstaller.h
@@ -0,0 +1,30 @@
+/*
+ *  Copyright 2012 Giorgos Tsiapaliwkas <terietor@gmail.com>
+ * 
+ *  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.
+ */
+
+#ifndef PLASMAREMOTEINSTALLER_H
+#define PLASMAREMOTEINSTALLER_H
+
+#include <KDialog>
+
+#include "ui_plasmaremoteinstaller.h"
+
+class PlasmaRemoteInstaller : public KDialog
+{
+    Q_OBJECT;
+public:
+    PlasmaRemoteInstaller(QWidget* parent = 0);
+
+public Q_SLOTS:
+    void install();
+    void checkProjectPath(const QString& path);
+private:
+    Ui::PlasmaRemoteInstaller m_ui;
+};
+
+#endif // PUBLISHER_H
diff --git a/publisher/remoteinstaller/standalone/plasmaremoteinstaller.ui \
b/publisher/remoteinstaller/standalone/plasmaremoteinstaller.ui new file mode 100644
index 0000000..1965c44
--- /dev/null
+++ b/publisher/remoteinstaller/standalone/plasmaremoteinstaller.ui
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>PlasmaRemoteInstaller</class>
+ <widget class="QWidget" name="PlasmaRemoteInstaller">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>652</width>
+    <height>260</height>
+   </rect>
+  </property>
+  <property name="minimumSize">
+   <size>
+    <width>650</width>
+    <height>250</height>
+   </size>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <widget class="QWidget" name="verticalLayoutWidget">
+   <property name="geometry">
+    <rect>
+     <x>0</x>
+     <y>0</y>
+     <width>651</width>
+     <height>251</height>
+    </rect>
+   </property>
+   <layout class="QVBoxLayout" name="verticalLayout">
+    <item>
+     <layout class="QHBoxLayout" name="horizontalLayout">
+      <item>
+       <spacer name="horizontalSpacer">
+        <property name="orientation">
+         <enum>Qt::Horizontal</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>40</width>
+          <height>20</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item>
+       <widget class="QLabel" name="label_3">
+        <property name="text">
+         <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; \
font-weight:600;&quot;&gt;HINT: Add below the username and the ip of the target \
computer&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> +        \
</property> +       </widget>
+      </item>
+      <item>
+       <spacer name="horizontalSpacer_2">
+        <property name="orientation">
+         <enum>Qt::Horizontal</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>40</width>
+          <height>20</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+     </layout>
+    </item>
+    <item>
+     <layout class="QGridLayout" name="gridLayout">
+      <item row="2" column="0">
+       <widget class="QLabel" name="label_2">
+        <property name="text">
+         <string>Target ip address</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="0">
+       <widget class="QLabel" name="label">
+        <property name="text">
+         <string>Target Username</string>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="1">
+       <widget class="KLineEdit" name="ipLineEdit"/>
+      </item>
+      <item row="1" column="1">
+       <widget class="KLineEdit" name="usernameLineEdit"/>
+      </item>
+      <item row="0" column="0">
+       <widget class="QLabel" name="label_4">
+        <property name="text">
+         <string>Project source</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1">
+       <widget class="KUrlRequester" name="srcUrl"/>
+      </item>
+     </layout>
+    </item>
+   </layout>
+  </widget>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>KLineEdit</class>
+   <extends>QLineEdit</extends>
+   <header>klineedit.h</header>
+  </customwidget>
+  <customwidget>
+   <class>KUrlRequester</class>
+   <extends>QFrame</extends>
+   <header>kurlrequester.h</header>
+  </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic