Branch: master

39808986 2014-03-29 04:12:02 Timothy Pearson
Add preliminary support for uploading crash reports to a central server without requiring Bugzilla
A drkonqi/bugdescription.cpp
A drkonqi/bugdescription.h
A drkonqi/bugdescriptiondialog.cpp
A drkonqi/bugdescriptiondialog.h
A drkonqi/sha1.cc
A drkonqi/sha1.h
M drkonqi/CMakeLists.txt
M drkonqi/toplevel.cpp
M drkonqi/toplevel.h
diff --git a/drkonqi/CMakeLists.txt b/drkonqi/CMakeLists.txt
index 47866c4..6296ae3 100644
--- a/drkonqi/CMakeLists.txt
+++ b/drkonqi/CMakeLists.txt
@@ -31,7 +31,9 @@
 tde_add_executable( drkonqi AUTOMOC
   SOURCES
     krashdcopinterface.skel main.cpp debugger.cpp
-    krashconf.cpp drbugreport.cpp backtrace.cpp toplevel.cpp
+    bugdescription.cpp bugdescriptiondialog.cpp
+    sha1.cc krashconf.cpp drbugreport.cpp
+    backtrace.cpp toplevel.cpp
   LINK tdeio-shared
   DESTINATION ${BIN_INSTALL_DIR}
 )
diff --git a/drkonqi/bugdescription.cpp b/drkonqi/bugdescription.cpp
new file mode 100644
index 0000000..620ae95
--- /dev/null
+++ b/drkonqi/bugdescription.cpp
@@ -0,0 +1,75 @@
+/* This file is part of the TDE project
+   Copyright (C) 2014 Timothy Pearson <kb9vqf@...>
+
+   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 <tqmultilineedit.h>
+#include <tqlineedit.h>
+#include <tqlabel.h>
+
+#include <tdemessagebox.h>
+#include <tdelocale.h>
+
+#include "bugdescription.moc"
+#include "bugdescription.h"
+
+BugDescription::BugDescription(TQWidget *parent, bool modal,
+                           const TDEAboutData *aboutData)
+  : BugDescriptionDialog(parent, modal, aboutData)
+{
+}
+
+void BugDescription::setText(const TQString &str)
+{
+	m_lineedit->setText(str);
+	m_startstring = str.simplifyWhiteSpace();
+}
+
+TQString BugDescription::emailAddress()
+{
+	return m_email->text();
+}
+
+TQString BugDescription::crashDescription()
+{
+	return m_lineedit->text();
+}
+
+void BugDescription::fullReportViewMode( bool enabled ) {
+	if (enabled) {
+		m_email->hide();
+		m_emailLabel->hide();
+		m_descriptionLabel->hide();
+		m_lineedit->setReadOnly(true);
+		showButtonCancel(false);
+		setCaption(i18n("Crash Report"));
+	}
+	else {
+		m_email->show();
+		m_emailLabel->show();
+		m_descriptionLabel->show();
+		m_lineedit->setReadOnly(false);
+		showButtonCancel(true);
+		setCaption(i18n("Bug Description"));
+	}
+}
+
+void BugDescription::slotOk()
+{
+	BugDescriptionDialog::slotOk();
+}
+
diff --git a/drkonqi/bugdescription.h b/drkonqi/bugdescription.h
new file mode 100644
index 0000000..04d31d3
--- /dev/null
+++ b/drkonqi/bugdescription.h
@@ -0,0 +1,58 @@
+/* This file is part of the TDE project
+   Copyright (C) 2014 Timothy Pearson <kb9vqf@...>
+
+   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.
+*/
+
+#ifndef BUGDESCRIPTION_H
+#define BUGDESCRIPTION_H
+
+class TDEAboutData;
+
+#include "bugdescriptiondialog.h"
+
+class BugDescription : public BugDescriptionDialog
+{
+	TQ_OBJECT
+	
+	public:
+		/**
+		* Constructor.
+		*/
+		BugDescription(TQWidget *parent = 0, bool modal = true, const TDEAboutData *aboutData = 0);
+	
+	public:
+		/**
+		* Allows the debugger to set the default text in the editor.
+		*/
+		void setText(const TQString &str);
+
+		TQString emailAddress();
+		TQString crashDescription();
+
+		void fullReportViewMode( bool enabled );
+	
+	protected slots:
+		/**
+		* OK has been clicked
+		*/
+		virtual void slotOk( void );
+	
+	private:
+		TQString m_startstring;
+};
+
+#endif
diff --git a/drkonqi/bugdescriptiondialog.cpp b/drkonqi/bugdescriptiondialog.cpp
new file mode 100644
index 0000000..6d6b2d7
--- /dev/null
+++ b/drkonqi/bugdescriptiondialog.cpp
@@ -0,0 +1,121 @@
+/* This file is part of the TDE project
+   Copyright (C) 2014 Timothy Pearson <kb9vqf@...>
+
+   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 <tqhbuttongroup.h>
+#include <tqpushbutton.h>
+#include <tqlabel.h>
+#include <tqlayout.h>
+#include <tqmultilineedit.h>
+#include <tqradiobutton.h>
+#include <tqregexp.h>
+
+#include <tdeapplication.h>
+#include <tdeconfig.h>
+#include <kdebug.h>
+#include <klineedit.h>
+#include <tdelocale.h>
+#include <tdemessagebox.h>
+#include <kprocess.h>
+#include <kstandarddirs.h>
+#include <kstdguiitem.h>
+#include <kurl.h>
+#include <kurllabel.h>
+
+#include "bugdescriptiondialog.h"
+
+#include <stdio.h>
+#include <pwd.h>
+#include <unistd.h>
+
+#include <sys/utsname.h>
+
+#include <kcombobox.h>
+#include <config.h>
+#include <tdetempfile.h>
+#include <tqtextstream.h>
+#include <tqfile.h>
+
+class BugDescriptionDialogPrivate {
+	public:
+};
+
+BugDescriptionDialog::BugDescriptionDialog( TQWidget * parentw, bool modal, const TDEAboutData *aboutData )
+  : KDialogBase( Plain,
+                 i18n("Bug Description"),
+                 Ok | Cancel,
+                 Ok,
+                 parentw,
+                 "BugDescriptionDialog",
+                 modal, // modal
+                 true // separator
+                 )
+{
+	d = new BugDescriptionDialogPrivate;
+
+	TQWidget * parent = plainPage();
+	
+	TQVBoxLayout * lay = new TQVBoxLayout( parent, 0, spacingHint() );
+	
+	TQGridLayout *glay = new TQGridLayout( lay, 4, 3 );
+	glay->setColStretch( 1, 10 );
+	glay->setColStretch( 2, 10 );
+	
+	showButtonOK( true );
+
+	// Email
+	TQHBoxLayout * hlay = new TQHBoxLayout( lay );
+	m_emailLabel = new TQLabel( i18n("Contact Email: "), parent );
+	hlay->addWidget( m_emailLabel );
 ** Diff limit reached (max: 250 lines) **