logsui/logsengine/src/logscommondata.cpp
changeset 21 2f0af9ba7665
parent 17 90fe74753f71
--- a/logsui/logsengine/src/logscommondata.cpp	Fri Sep 17 16:47:32 2010 +0300
+++ b/logsui/logsengine/src/logscommondata.cpp	Fri Oct 15 14:47:48 2010 +0300
@@ -25,6 +25,9 @@
 #include <xqsettingsmanager.h>
 #include <qcontactmanager.h>
 #include <LogsDomainCRKeys.h>
+#include <QCoreApplication>
+#include <hbinstance.h>
+#include <hbcolorscheme.h>
 
 static LogsCommonData* mLogsCommonInstance = 0;
 
@@ -44,14 +47,27 @@
 //
 // -----------------------------------------------------------------------------
 //
-LogsCommonData::LogsCommonData() : 
+LogsCommonData::LogsCommonData() : QObject(),
     mContactManager(0), mMaxReadSize(-1), 
     mMaxReadSizeDir(LogsEvent::DirUndefined), 
     mSettingsManager(new XQSettingsManager()),
     mMatchLen(logsDefaultMatchLength),
-    mPredictiveSearchStatus(logsNotInitialized)
+    mPredictiveSearchStatus(logsNotInitialized),
+    mCompressed(false),
+    mPendingThemeChange(false)
 {
-    LOGS_QDEBUG( "logs [ENG] <-> LogsCommonData::LogsCommonData()" )
+    LOGS_QDEBUG( "logs [ENG] -> LogsCommonData::LogsCommonData()" )
+    // If client has created only coreapp, don't treat as GUI client
+    // since many things will not work properly
+    QApplication* app = qobject_cast<QApplication*>( qApp );
+    mIsInGuiProcess = ( app != 0 );
+    if ( mIsInGuiProcess ){
+        LOGS_QDEBUG( "logs [ENG]    Full GUI" )
+        updateHighlightColor();
+        connect( hbInstance->theme(), SIGNAL ( changeFinished() ),
+                 this, SLOT ( handleThemeChange()));
+    }
+    LOGS_QDEBUG( "logs [ENG] <- LogsCommonData::LogsCommonData()" )
 }
     
 // -----------------------------------------------------------------------------
@@ -259,5 +275,98 @@
     return ok;
 }
 
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+bool LogsCommonData::isGui() const
+{
+    return mIsInGuiProcess;
+}
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+const QString& LogsCommonData::highlightStart() const
+{
+    return mHighlightColorStart;
+}
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+const QString& LogsCommonData::highlightEnd() const
+{
+    return mHighlightColorEnd;
+}
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void LogsCommonData::refreshData()
+{
+    LOGS_QDEBUG( "logs [ENG] -> LogsCommonData::refreshData()" )
+    bool prevCompressed = mCompressed;
+    mCompressed = false;
+    if ( isGui() && prevCompressed ){
+        updateHighlightColor();
+        if ( mPendingThemeChange ){
+            LOGS_QDEBUG( "logs [ENG]    Theme changed while compressed" )
+            emit commonDataChanged();
+        }
+    }
+    mPendingThemeChange = false;
+    LOGS_QDEBUG( "logs [ENG] <- LogsCommonData::refreshData()" )
+}
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void LogsCommonData::compressData()
+{
+    mCompressed = true;
+}
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void LogsCommonData::handleThemeChange()
+{
+    LOGS_QDEBUG_2( "logs [ENG] -> LogsCommonData::handleThemeChange(), compr", mCompressed )
+    if ( mCompressed ){
+        mPendingThemeChange = true;
+    } else {
+        updateHighlightColor();
+        emit commonDataChanged();
+    }
+    LOGS_QDEBUG( "logs [ENG] <- LogsCommonData::handleThemeChange()" )
+}
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void LogsCommonData::updateHighlightColor()
+{
+    LOGS_QDEBUG( "logs [ENG] -> LogsCommonData::updateHighlightColor()" )
+    QColor highlight = HbColorScheme::color("qtc_lineedit_marker_normal");
+    QColor color = HbColorScheme::color("qtc_lineedit_selected");
+                    
+    mHighlightColorStart = QString("<span style=\"background-color: %1; color: %2\">")
+            .arg(highlight.name().toUpper())
+            .arg(color.name().toUpper());
+    mHighlightColorEnd = "</span>";
+    
+    LOGS_QDEBUG_2( "logs [ENG] <- LogsCommonData::updateHighlightColor():", 
+                   mHighlightColorStart )
+}
+
+   
 // End of file
 
+