UIVMLogViewer.h revision e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync/** @file
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync *
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync * VBox frontends: Qt4 GUI ("VirtualBox"):
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync * UIVMLogViewer class declaration
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync */
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync/*
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync * Copyright (C) 2008-2011 Oracle Corporation
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync *
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync * available from http://www.virtualbox.org. This file is free software;
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync * you can redistribute it and/or modify it under the terms of the GNU
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync * General Public License (GPL) as published by the Free Software
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync */
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync#ifndef __UIVMLogViewer_h__
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync#define __UIVMLogViewer_h__
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync/* Global includes: */
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync#include <QMainWindow>
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync#include <QMap>
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync#include <QPair>
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync/* Local includes: */
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync#include "UIVMLogViewer.gen.h"
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync#include "QIWithRetranslateUI.h"
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync#include "COMDefs.h"
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync/* Forward declarations: */
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsyncclass QPushButton;
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsyncclass QTextEdit;
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsyncclass QITabWidget;
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsyncclass UIVMLogViewer;
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsyncclass UIVMLogViewerSearchPanel;
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync/* Typedefs: */
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsynctypedef QMap<QString, UIVMLogViewer*> VMLogViewerMap;
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsynctypedef QPair<QString, QTextEdit*> LogPage;
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsynctypedef QList<LogPage> LogBook;
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync/* VM Log Viewer window: */
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsyncclass UIVMLogViewer : public QIWithRetranslateUI2<QMainWindow>,
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync public Ui::UIVMLogViewer
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync{
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync Q_OBJECT;
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsyncpublic:
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync /* Static method to create/show VM Log Viewer: */
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync static void showLogViewerFor(QWidget *pParent, const CMachine &machine);
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsyncprotected:
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync /* Constructor/destructor: */
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync UIVMLogViewer(QWidget *pParent, Qt::WindowFlags flags, const CMachine &machine);
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync ~UIVMLogViewer();
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsyncprivate slots:
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync /* Button slots: */
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync void search();
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync void refresh();
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync bool close();
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync void save();
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsyncprivate:
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync /* Translation stuff: */
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync void retranslateUi();
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync /* Event handlers: */
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync void showEvent(QShowEvent *aEvent);
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync void keyPressEvent(QKeyEvent *pEvent);
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync /* Various helpers: */
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync QTextEdit* currentLogPage();
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync QTextEdit* createLogPage(const QString &strPage);
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync /* Array containing all VM Log Viewers: */
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync static VMLogViewerMap m_viewers;
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync /* VM Log Viewer variables: */
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync bool m_fIsPolished;
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync CMachine m_machine;
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync QITabWidget *m_pViewerContainer;
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync UIVMLogViewerSearchPanel *m_pSearchPanel;
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync LogBook m_book;
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync /* Buttons: */
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync QPushButton *mBtnHelp;
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync QPushButton *mBtnFind;
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync QPushButton *mBtnRefresh;
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync QPushButton *mBtnClose;
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync QPushButton *mBtnSave;
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync /* Friends: */
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync friend class UIVMLogViewerSearchPanel;
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync};
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync#endif // __UIVMLogViewer_h__
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync