diff -r 48060abbbeaf -r b3cee849fa46 launcher/src/outputview.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/launcher/src/outputview.cpp Tue Aug 31 15:15:20 2010 +0300 @@ -0,0 +1,159 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#include +#include +#include +#include +#include + +#include "enginewrapper.h" +#include "commonActions.h" +#include "outputview.h" + +// xml definition of view +const char *OUTPUTVIEW_XML = ":/xml/outputview.xml"; + +// name of the output view object in the xml file. +const char *OUTPUTVIEW = "outputview"; +const char *ACTIONCLEAR = "actionClearWindow"; +const char *TEXTOUTPUT = "textEdit"; +const char *ACTIONOPENAPPLICATIONVIEW = "actionOpenApplicationView"; + +// --------------------------------------------------------------------------- + + +OutputView::OutputView(): + mActionClear(0), + mActionOpenApplicationView(0), + mTextOutput(0) +{ + +} + +// --------------------------------------------------------------------------- + +OutputView::~OutputView() +{ + if(mActionClear) + mActionClear->deleteLater(); + if(mActionOpenApplicationView) + mActionOpenApplicationView->deleteLater(); +} + + +// --------------------------------------------------------------------------- + +OutputView* OutputView::create(HbDocumentLoader &loader, + CommonActions *commonActions) +{ + // Load application view from xml-file + bool ok = false; + loader.load(OUTPUTVIEW_XML, &ok); + + // Output View: + QGraphicsWidget *widget = loader.findWidget(OUTPUTVIEW); + Q_ASSERT_X(ok && (widget != 0), "Launcher", "Invalid launcher.xml file"); + OutputView *outputView = qobject_cast(widget); + + // initialize view + outputView->init(loader, commonActions); + + return outputView; +} + +// --------------------------------------------------------------------------- + + +void OutputView::loadItemsFromXml(HbDocumentLoader &loader) +{ + + // List widget: + QGraphicsWidget *widget = loader.findWidget(TEXTOUTPUT); + Q_ASSERT_X((widget != 0), "Launcher", "Invalid launcher.xml file"); + mTextOutput = qobject_cast(widget); + + // clear action: + QObject *object= loader.findObject(ACTIONCLEAR); + Q_ASSERT_X((object != 0), "Launcher", "Invalid launcher.xml file"); + mActionClear = qobject_cast(object); + + // open output view + object= loader.findObject(ACTIONOPENAPPLICATIONVIEW); + Q_ASSERT_X((object != 0), "Launcher", "Invalid launcher.xml file"); + mActionOpenApplicationView = qobject_cast(object); + +} + +// --------------------------------------------------------------------------- + + +void OutputView::init(HbDocumentLoader &loader, CommonActions *commonActions) +{ + loadItemsFromXml(loader); + connectSignalsAndSlots(); + + // set text edit components settings + mTextOutput->setPlainText("Ready.\n\n"); + mTextOutput->setReadOnly(true); + mTextOutput->setCursorVisibility( Hb::TextCursorHidden ); + mTextOutput->setAttribute(Qt::WA_InputMethodEnabled, false); + + // add actions to menu + commonActions->addActionsToMenu(menu()); + +} + +// --------------------------------------------------------------------------- + +void OutputView::connectSignalsAndSlots() +{ + // Clear action + connect(mActionClear, SIGNAL(triggered()), this, SLOT(clearOutput())); + connect(mActionOpenApplicationView, SIGNAL(triggered()), this, SLOT(openApplicationView())); +} + +// --------------------------------------------------------------------------- + +void OutputView::clearOutput() +{ + mTextOutput->setPlainText(""); +} + +// --------------------------------------------------------------------------- + +void OutputView::printText(const QString &text) +{ + QString newText = mTextOutput->toPlainText() + text; + mTextOutput->setPlainText(newText); + mTextOutput->setCursorPosition(newText.length()-1); +} + +// --------------------------------------------------------------------------- + +void OutputView::openApplicationView() +{ + qDebug("openApplicationView"); + LauncherMainWindow *pMainWindow = static_cast< LauncherMainWindow * >( mainWindow() ); + if( pMainWindow ) + { + pMainWindow->openApplicationView(); + } +} + +// --------------------------------------------------------------------------- +