diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-02-12 18:25:58 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-02-12 18:25:58 +0000 |
commit | 2197ea0e5ccbc66d7e6be1ee4580cd8563b58b8e (patch) | |
tree | 768a28e5bdcb3eb25a837ce136b3dc4ebb9f5adf /src | |
download | tdeio-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.am | 27 | ||||
-rw-r--r-- | src/kio_umountwrapper.cpp | 77 | ||||
-rw-r--r-- | src/kio_umountwrapper.h | 48 | ||||
-rw-r--r-- | src/main.cpp | 61 |
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 * + * frode@lnix.net * + * * + * 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 * + * frode@lnix.net * + * * + * 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 * + * frode@lnix.net * + * * + * 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, "frode@lnix.net"); + about.addAuthor( "Frode M. Døving", 0, "frode@lnix.net" ); + 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(); +} + |