remotemgmt_plat/syncml_ds_error_reporting_api/tsrc/QtSyncStatusSpy/qtsyncstatuslogview.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 31 Aug 2010 16:04:06 +0300
branchRCL_3
changeset 25 b183ec05bd8c
permissions -rw-r--r--
Revision: 201033 Kit: 201035

/*
* Copyright (c) 2008-2009 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:  Source file for the class QtSyncStatusLogView
*
*/
#include <QGraphicsItem>
#include <QtGui>
#include <QTimer>
#include <QWidget>
#include <QDebug>
#include <hbdataform.h>
#include <hblabel.h>
#include <hbaction.h>
#include <hbmainwindow.h>
#include <hbmenu.h>
#include <hbtoolbar.h>
#include <hbscrollarea.h>
#include <hbscrollbar.h>
#include <hbtextitem.h>
#include <hblistwidget.h>
#include <qgraphicslinearlayout.h>
#include <hbpushbutton.h>
#include <qlistiterator>

#include "qtsyncstatuslogview.h"
#include "qtsyncstatuslog.h"


QtSyncStatusLogView::QtSyncStatusLogView(QtSyncStatusLog& log, QGraphicsItem *parent)
    : HbView(parent),
      mSyncLog(log)
{
    setTitle("QtSyncStatusSpy");
    createMenu();
    
    QGraphicsLinearLayout* layout = new QGraphicsLinearLayout(Qt::Vertical);
    HbScrollArea* scrollArea = new HbScrollArea(this);
    scrollArea->setScrollDirections(Qt::Vertical);
    QGraphicsLinearLayout* layout2 = new QGraphicsLinearLayout(Qt::Vertical);
    QGraphicsWidget* content = new QGraphicsWidget(this);
    
    mTextItem = new HbTextItem();
    layout2->addItem(mTextItem);
    layout2->setContentsMargins(5, 5, 5, 5);
    content->setLayout(layout2);
    scrollArea->setContentWidget(content);

    layout->addItem(scrollArea);
    layout->setStretchFactor(scrollArea, 1);
    setLayout(layout);
}

QtSyncStatusLogView::~QtSyncStatusLogView()
{
    
}

void QtSyncStatusLogView::updateView()
    {
    readLog();
    }

void QtSyncStatusLogView::deleteLog()
    {
    mSyncLog.clear();
    readLog();
    }

void QtSyncStatusLogView::goToMainView()
    {
    emit comingBack();
    }

void QtSyncStatusLogView::activateView()
{
    mainWindow()->setCurrentView(this);
}

void QtSyncStatusLogView::createMenu()
{
    HbMenu* myMenu = menu();
    connect( myMenu->addAction( tr("Update")), SIGNAL( triggered() ), SLOT( updateView() ) );
    connect( myMenu->addAction( tr("Delete log")), SIGNAL( triggered() ), SLOT( deleteLog() ) );
    connect( myMenu->addAction( tr("Back")), SIGNAL( triggered() ), SLOT( goToMainView() ) );
    
    HbToolBar* myToolBar = toolBar();
    connect( myToolBar->addAction( tr("Update")), SIGNAL( triggered() ), SLOT( updateView() ) );
    connect( myToolBar->addAction( tr("Delete log")), SIGNAL( triggered() ), SLOT( deleteLog() ) );
    connect( myToolBar->addAction( tr("Back")), SIGNAL( triggered() ), SLOT( goToMainView() ) );
}

void QtSyncStatusLogView::showEvent(QShowEvent* event)
    {
    readLog();
    HbView::showEvent(event);
    }

void QtSyncStatusLogView::readLog()
    {
    QString logData;
    QString line;
    QStringList list;
    QStringList lines;
    QString prevDate;
    
    lines = mSyncLog.lines();
    QListIterator<QString> iter(lines);

    while (iter.hasNext()) {
        line = iter.next();
        line.remove(QChar('['));
        line.remove(QChar(']'));
        list = line.split(" ");
        if (list.at(0).compare(prevDate)) {
         logData.append(list.at(0) + "\n");
         prevDate = list.at(0); 
        }
        logData.append(list.at(1) + " " + list.at(2) + list.at(3) + "\n");
    }
    mTextItem->setText(logData);
}