e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync/** @file
f9d86faa081f7cdcaf7d7f073d322e0b23dfb5ffvboxsync * VBox Qt GUI - UIVMLogViewer class declaration.
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync */
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync/*
c58f1213e628a545081c70e26c6b67a841cff880vboxsync * Copyright (C) 2008-2012 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
8bf8c6b1914c9e7e60b1547888400668f1774497vboxsync/* Qt includes: */
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync#include <QMainWindow>
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync#include <QMap>
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync#include <QPair>
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync
8bf8c6b1914c9e7e60b1547888400668f1774497vboxsync/* GUI includes: */
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync#include "UIVMLogViewer.gen.h"
e4f39b88642e679d6ac9a770165b1ebc1d9e5dd9vboxsync#include "QIWithRetranslateUI.h"
8bf8c6b1914c9e7e60b1547888400668f1774497vboxsync
8bf8c6b1914c9e7e60b1547888400668f1774497vboxsync/* COM includes: */
8bf8c6b1914c9e7e60b1547888400668f1774497vboxsync#include "COMEnums.h"
8bf8c6b1914c9e7e60b1547888400668f1774497vboxsync#include "CMachine.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