summaryrefslogtreecommitdiffstats
path: root/kdebugdialog/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kdebugdialog/main.cpp')
-rw-r--r--kdebugdialog/main.cpp124
1 files changed, 124 insertions, 0 deletions
diff --git a/kdebugdialog/main.cpp b/kdebugdialog/main.cpp
new file mode 100644
index 000000000..e2309d586
--- /dev/null
+++ b/kdebugdialog/main.cpp
@@ -0,0 +1,124 @@
+/* This file is part of the KDE libraries
+ Copyright (C) 2000 David Faure <[email protected]>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+#include "kdebugdialog.h"
+#include "klistdebugdialog.h"
+#include <kcmdlineargs.h>
+#include <kaboutdata.h>
+#include <kstandarddirs.h>
+#include <qtextstream.h>
+#include <klocale.h>
+#include <kdebug.h>
+#include <kuniqueapplication.h>
+#include <kconfig.h>
+
+#include <qfile.h>
+
+QStringList readAreaList()
+{
+ QStringList lst;
+ lst.append( "0 (generic)" );
+
+ QString confAreasFile = locate( "config", "kdebug.areas" );
+ QFile file( confAreasFile );
+ if (!file.open(IO_ReadOnly)) {
+ kdWarning() << "Couldn't open " << confAreasFile << endl;
+ file.close();
+ }
+ else
+ {
+ QString data;
+
+ QTextStream *ts = new QTextStream(&file);
+ ts->setEncoding( QTextStream::Latin1 );
+ while (!ts->eof()) {
+ data = ts->readLine().simplifyWhiteSpace();
+
+ int pos = data.find("#");
+ if ( pos != -1 )
+ data.truncate( pos );
+
+ if (data.isEmpty())
+ continue;
+
+ lst.append( data );
+ }
+
+ delete ts;
+ file.close();
+ }
+
+ return lst;
+}
+
+static KCmdLineOptions options[] =
+{
+ { "fullmode", I18N_NOOP("Show the fully-fledged dialog instead of the default list dialog"), 0 },
+ { "on <area>", /*I18N_NOOP TODO*/ "Turn area on", 0 },
+ { "off <area>", /*I18N_NOOP TODO*/ "Turn area off", 0 },
+ KCmdLineLastOption
+};
+
+int main(int argc, char ** argv)
+{
+ KAboutData data( "kdebugdialog", I18N_NOOP( "KDebugDialog"),
+ "1.0", I18N_NOOP("A dialog box for setting preferences for debug output"),
+ KAboutData::License_GPL, "(c) 1999-2000, David Faure <[email protected]>");
+ data.addAuthor("David Faure", I18N_NOOP("Maintainer"), "[email protected]");
+ KCmdLineArgs::init( argc, argv, &data );
+ KCmdLineArgs::addCmdLineOptions( options );
+ KUniqueApplication::addCmdLineOptions();
+ KUniqueApplication app;
+ KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
+
+ QStringList areaList ( readAreaList() );
+ KAbstractDebugDialog * dialog;
+ if (args->isSet("fullmode"))
+ dialog = new KDebugDialog(areaList, 0L);
+ else
+ {
+ KListDebugDialog * listdialog = new KListDebugDialog(areaList, 0L);
+ if (args->isSet("on"))
+ {
+ listdialog->activateArea( args->getOption("on"), true );
+ /*listdialog->save();
+ listdialog->config()->sync();
+ return 0;*/
+ } else if ( args->isSet("off") )
+ {
+ listdialog->activateArea( args->getOption("off"), false );
+ /*listdialog->save();
+ listdialog->config()->sync();
+ return 0;*/
+ }
+ dialog = listdialog;
+ }
+
+ /* Show dialog */
+ int nRet = dialog->exec();
+ if( nRet == QDialog::Accepted )
+ {
+ dialog->save();
+ dialog->config()->sync();
+ }
+ else
+ dialog->config()->rollback( true );
+
+ return 0;
+}