From 4efc34ff2fa5483b5f9687f1b4d490ca17fb284d Mon Sep 17 00:00:00 2001 From: Randy Baumgarte Date: Sat, 29 Jan 2011 18:29:06 -0500 Subject: [PATCH] Added the ability to view debugging logs. --- src/cx/fbn/nevernote/NeverNote.java | 13 +- src/cx/fbn/nevernote/dialog/LogFileDialog.java | 221 +++++++++++++++++++++++++ src/cx/fbn/nevernote/gui/MainMenuBar.java | 2 +- 3 files changed, 225 insertions(+), 11 deletions(-) create mode 100644 src/cx/fbn/nevernote/dialog/LogFileDialog.java diff --git a/src/cx/fbn/nevernote/NeverNote.java b/src/cx/fbn/nevernote/NeverNote.java index 9cd3854..35a3c3e 100644 --- a/src/cx/fbn/nevernote/NeverNote.java +++ b/src/cx/fbn/nevernote/NeverNote.java @@ -107,7 +107,6 @@ import com.trolltech.qt.gui.QHBoxLayout; import com.trolltech.qt.gui.QIcon; import com.trolltech.qt.gui.QImage; import com.trolltech.qt.gui.QLabel; -import com.trolltech.qt.gui.QListWidget; import com.trolltech.qt.gui.QMainWindow; import com.trolltech.qt.gui.QMenu; import com.trolltech.qt.gui.QMessageBox; @@ -143,6 +142,7 @@ import cx.fbn.nevernote.dialog.DatabaseLoginDialog; import cx.fbn.nevernote.dialog.DatabaseStatus; import cx.fbn.nevernote.dialog.FindDialog; import cx.fbn.nevernote.dialog.IgnoreSync; +import cx.fbn.nevernote.dialog.LogFileDialog; import cx.fbn.nevernote.dialog.LoginDialog; import cx.fbn.nevernote.dialog.NotebookArchive; import cx.fbn.nevernote.dialog.NotebookEdit; @@ -2479,15 +2479,8 @@ public class NeverNote extends QMainWindow{ @SuppressWarnings("unused") private void logger() { logger.log(logger.HIGH, "Entering NeverNote.logger"); - QDialog dialog = new QDialog(this); - QHBoxLayout layout = new QHBoxLayout(); - QListWidget textBox = new QListWidget(); - layout.addWidget(textBox); - textBox.addItems(emitLog); - - dialog.setLayout(layout); - dialog.setWindowTitle(tr("Mesasge Log")); - dialog.show(); + LogFileDialog dialog = new LogFileDialog(emitLog); + dialog.exec(); logger.log(logger.HIGH, "Leaving NeverNote.logger"); } // Menu option "help/about" was selected diff --git a/src/cx/fbn/nevernote/dialog/LogFileDialog.java b/src/cx/fbn/nevernote/dialog/LogFileDialog.java new file mode 100644 index 0000000..c90e72f --- /dev/null +++ b/src/cx/fbn/nevernote/dialog/LogFileDialog.java @@ -0,0 +1,221 @@ +/* + * This file is part of NeverNote + * Copyright 2009 Randy Baumgarte + * + * This file may be licensed under the terms of of the + * GNU General Public License Version 2 (the ``GPL''). + * + * Software distributed under the License is distributed + * on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either + * express or implied. See the GPL for the specific language + * governing rights and limitations. + * + * You should have received a copy of the GPL along with this + * program. If not, go to http://www.gnu.org/licenses/gpl.html + * or write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * +*/ + +package cx.fbn.nevernote.dialog; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; +import java.util.List; + +import com.trolltech.qt.gui.QComboBox; +import com.trolltech.qt.gui.QDialog; +import com.trolltech.qt.gui.QHBoxLayout; +import com.trolltech.qt.gui.QIcon; +import com.trolltech.qt.gui.QLabel; +import com.trolltech.qt.gui.QTextEdit; +import com.trolltech.qt.gui.QVBoxLayout; + +import cx.fbn.nevernote.Global; + +public class LogFileDialog extends QDialog { + public final QComboBox fileCombo; + public final QTextEdit textField; + private final List logs; + private final String iconPath = new String("classpath:cx/fbn/nevernote/icons/"); + + // Constructor + public LogFileDialog(List l) { + setWindowTitle(tr("Application Logs")); + logs = l; + setWindowIcon(new QIcon(iconPath+"notebook-green.png")); + QVBoxLayout main = new QVBoxLayout(); + setLayout(main); + fileCombo = new QComboBox(this); + + QHBoxLayout comboLayout = new QHBoxLayout(); + comboLayout.addWidget(new QLabel(tr("Log File:"))); + comboLayout.addWidget(fileCombo); + comboLayout.addStretch(100); + fileCombo.currentIndexChanged.connect(this, "indexChanged(Integer)"); + + main.addLayout(comboLayout); + + textField = new QTextEdit(this); + main.addWidget(textField); + + fileCombo.addItem(tr("Message Log"), "MessageLog"); + fileCombo.addItem(tr("Application Log"), "NeverNoteLog"); + fileCombo.addItem(tr("Synchronization Log"), "SyncLog"); + fileCombo.addItem(tr("Save Log"), "SaveLog"); + fileCombo.addItem(tr("Tag Counter Log"), "TagCounterLog"); + fileCombo.addItem(tr("Notebook Counter Log"), "NotebookCounterLog"); + fileCombo.addItem(tr("Trash Counter Log"), "TrashCounterLog"); + fileCombo.addItem(tr("Note Browser Log"), "NoteBrowserLog"); + fileCombo.addItem(tr("Export Log"), "ExportLog"); + fileCombo.addItem(tr("Import Log"), "ImportLog"); +// fileCombo.addItem(tr("Global Log"), "GlobalLog"); + fileCombo.addItem(tr("Index Log"), "IndexLog"); + fileCombo.addItem(tr("Database Connection Log"), "DatabaseLog"); + fileCombo.addItem(tr("Thumbnail Generator Log"), "ThumbnailLog"); + fileCombo.addItem(tr("NeverNote Database SQL Trace File"), "NeverNoteDBLog"); + fileCombo.addItem(tr("Index Database SQL Trace File"), "IndexDBLog"); + fileCombo.addItem(tr("Resource Database SQL Trace File"), "ResourceDBLog"); + + + } + + @SuppressWarnings("unused") + private void restoreAsNewPushed() { + this.close(); + } + @SuppressWarnings("unused") + private void restorePushed() { + this.close(); + } + @SuppressWarnings("unused") + private void cancelPressed() { + this.close(); + } + + @SuppressWarnings("unused") + private void indexChanged(Integer index) { + String value = (String) fileCombo.itemData(index); + + if (value.equals("MessageLog")) { + textField.clear(); + for (int i=0; i