summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-02-12 18:25:58 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-02-12 18:25:58 +0000
commit2197ea0e5ccbc66d7e6be1ee4580cd8563b58b8e (patch)
tree768a28e5bdcb3eb25a837ce136b3dc4ebb9f5adf /src
downloadtdeio-umountwrapper-2197ea0e5ccbc66d7e6be1ee4580cd8563b58b8e.tar.gz
tdeio-umountwrapper-2197ea0e5ccbc66d7e6be1ee4580cd8563b58b8e.zip
Added KDE3 version of kio-umountwrapper
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/kio-umountwrapper@1089228 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am27
-rw-r--r--src/kio_umountwrapper.cpp77
-rw-r--r--src/kio_umountwrapper.h48
-rw-r--r--src/main.cpp61
4 files changed, 213 insertions, 0 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
new file mode 100644
index 0000000..da7c4b2
--- /dev/null
+++ b/src/Makefile.am
@@ -0,0 +1,27 @@
+# set the include path for X, qt and KDE
+INCLUDES = $(all_includes)
+
+# these are the headers for your project
+noinst_HEADERS = kio_umountwrapper.h
+
+# let automoc handle all of the meta source files (moc)
+METASOURCES = AUTO
+
+messages: rc.cpp
+ $(EXTRACTRC) `find . -name \*.ui -o -name \*.rc` > rc.cpp
+ $(XGETTEXT) *.cpp -o $(podir)/kio_umountwrapper.pot
+
+KDE_ICON = AUTO
+
+#########################################################################
+# APPLICATION SECTION
+#########################################################################
+# this is the program that gets installed. it's name is used for all
+# of the other Makefile.am variables
+bin_PROGRAMS = kio_umountwrapper
+
+# the application source, library search path, and link libraries
+kio_umountwrapper_SOURCES = main.cpp kio_umountwrapper.cpp
+kio_umountwrapper_LDFLAGS = $(KDE_RPATH) $(all_libraries)
+kio_umountwrapper_LDADD = $(LIB_KDEUI)
+
diff --git a/src/kio_umountwrapper.cpp b/src/kio_umountwrapper.cpp
new file mode 100644
index 0000000..23d40a6
--- /dev/null
+++ b/src/kio_umountwrapper.cpp
@@ -0,0 +1,77 @@
+/***************************************************************************
+ * Copyright (C) 2007 by Frode M. Døving *
+ * *
+ * 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 "kio_umountwrapper.h"
+
+#include <cstdlib>
+#include <qtimer.h>
+
+#include <kapplication.h>
+#include <klocale.h>
+#include <kprogress.h>
+#include <kprocess.h>
+#include <kcmdlineargs.h>
+#include <kdebug.h>
+
+kio_umountwrapper::kio_umountwrapper(const QString& url)
+ : KApplication( 0, "kio_umountwrapper" )
+{
+ m_progress = new KProgressDialog();
+ setMainWidget(m_progress);
+ m_progress->setLabel(i18n("Synchronising data to disk, please wait")+"...");
+ m_progress->setAutoClose(true);
+ m_progress->setAllowCancel(false);
+ m_progress->progressBar()->setTextEnabled(false);
+ m_progress->progressBar()->setTotalSteps(0);
+ m_progress->show();
+
+ QTimer *t = new QTimer(this);
+ connect(t, SIGNAL(timeout()), SLOT(progressAdvance()));
+ t->start(10, FALSE);
+
+ KProcess *p = new KProcess(this);
+ *p << "kio_media_mounthelper";
+ *p << "-s";
+ *p << url;
+ kdDebug() << "KProcess: " << url << endl;
+ connect(p, SIGNAL(processExited(KProcess *)),
+ this, SLOT(processFinished(KProcess *)));
+ p->start();
+}
+
+void kio_umountwrapper::progressAdvance()
+{
+ m_progress->progressBar()->advance(1);
+}
+
+void kio_umountwrapper::processFinished(KProcess* p)
+{
+ if (p->normalExit() && p->exitStatus() == 0)
+ {
+ ::exit(0);
+ }
+ else
+ {
+ ::exit(1);
+ }
+}
+
+#include "kio_umountwrapper.moc"
diff --git a/src/kio_umountwrapper.h b/src/kio_umountwrapper.h
new file mode 100644
index 0000000..d0459e4
--- /dev/null
+++ b/src/kio_umountwrapper.h
@@ -0,0 +1,48 @@
+/***************************************************************************
+ * Copyright (C) 2007 by Frode M. Døving *
+ * *
+ * 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. *
+ ***************************************************************************/
+
+
+#ifndef _KIO_UMOUNTWRAPPER_H_
+#define _KIO_UMOUNTWRAPPER_H_
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <kapplication.h>
+#include <kprogress.h>
+#include <kprocess.h>
+
+class kio_umountwrapper : public KApplication
+{
+ Q_OBJECT
+public:
+ kio_umountwrapper(const QString&);
+
+private:
+ KProgressDialog *m_progress;
+
+private slots:
+ void progressAdvance();
+ void processFinished(KProcess* p);
+
+};
+
+#endif // _KIO_UMOUNTWRAPPER_H_
diff --git a/src/main.cpp b/src/main.cpp
new file mode 100644
index 0000000..7f98d8a
--- /dev/null
+++ b/src/main.cpp
@@ -0,0 +1,61 @@
+/***************************************************************************
+ * Copyright (C) 2007 by Frode M. Døving *
+ * *
+ * 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 "kio_umountwrapper.h"
+#include <kaboutdata.h>
+#include <kcmdlineargs.h>
+#include <klocale.h>
+#include <kdebug.h>
+
+
+static const char description[] =
+ I18N_NOOP("Safely remove wrapper. Provides progress dialog.");
+
+static const char version[] = "0.2";
+
+static KCmdLineOptions options[] =
+{
+ { "+[URL]", I18N_NOOP( "URL to Safely Remove" ), 0 },
+ KCmdLineLastOption
+};
+
+int main(int argc, char **argv)
+{
+ KAboutData about("kio_umountwrapper", I18N_NOOP("kio_umountwrapper"), version, description,
+ KAboutData::License_GPL, "(C) 2007 Frode M. Døving", 0, 0, "[email protected]");
+ about.addAuthor( "Frode M. Døving", 0, "[email protected]" );
+ KCmdLineArgs::init(argc, argv, &about);
+ KCmdLineArgs::addCmdLineOptions( options );
+
+ kio_umountwrapper *app;
+
+ KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
+ kdDebug() << "arg0: " << args->arg(0) << endl;
+
+ if (args->count() == 0)
+ KCmdLineArgs::usage(i18n("No URL specified!"));
+ else app = new kio_umountwrapper(QString(args->arg(0)));
+
+ args->clear();
+
+ return app->exec();
+}
+