phoneuis/bubblemanager2/bubblecore/src/bubblewidgetmanager.cpp
branchGCC_SURGE
changeset 51 f39ed5e045e0
parent 30 ebdbd102c78a
parent 46 bc5a64e5bc3c
equal deleted inserted replaced
40:bab96b7ed1a4 51:f39ed5e045e0
    48     BubbleImageManager& imageManager, QObject* parent)
    48     BubbleImageManager& imageManager, QObject* parent)
    49     : QObject(parent), mImageManager(imageManager),
    49     : QObject(parent), mImageManager(imageManager),
    50       mOrientation(Qt::Vertical)
    50       mOrientation(Qt::Vertical)
    51 {
    51 {
    52     // .docml mappings
    52     // .docml mappings
    53     mFileNames.insert(SingleCallView,":/xml/bubble_layout_1.docml");
    53     mFileNames.insert(SingleCallView,
    54     mFileNames.insert(TwoCallsView,  ":/xml/bubble_layout_2.docml");
    54                       QLatin1String(":/xml/bubble_layout_1.docml"));
    55     mFileNames.insert(ThreeCallsView,":/xml/bubble_layout_3.docml");
    55     mFileNames.insert(TwoCallsView,
    56     mFileNames.insert(ConferenceView,":/xml/bubble_layout_4.docml");
    56                       QLatin1String(":/xml/bubble_layout_2.docml"));
    57     mFileNames.insert(MutedOverlay,  ":/xml/bubble_layout_5.docml");
    57     mFileNames.insert(ThreeCallsView,
    58 
    58                       QLatin1String(":/xml/bubble_layout_3.docml"));
    59     mOrientationName.insert(Qt::Vertical,   "portrait");
    59     mFileNames.insert(ConferenceView,
    60     mOrientationName.insert(Qt::Horizontal, "landscape");
    60                       QLatin1String(":/xml/bubble_layout_4.docml"));
    61 
    61     mFileNames.insert(MutedOverlay,
    62     mWidgetPrefix.insert(ExpandedBubble, "eb:");
    62                       QLatin1String(":/xml/bubble_layout_5.docml"));
    63     mWidgetPrefix.insert(CollapsedBubble,    "cb:");
    63 
    64     mWidgetPrefix.insert(CollapsedBubble2,    "cb2:");
    64     mOrientationName.insert(Qt::Vertical, QLatin1String("portrait"));
    65     mContainerName.insert(ExpandedBubble, "expandedBubble");
    65     mOrientationName.insert(Qt::Horizontal, QLatin1String("landscape"));
    66     mContainerName.insert(CollapsedBubble,   "collapsedBubble");
    66 
    67     mContainerName.insert(CollapsedBubble2,   "collapsedBubble2");
    67     mWidgetPrefix.insert(ExpandedBubble, QLatin1String("eb:"));
    68     mWidgetName.insert(Heading,        "bubbleHeading");
    68     mWidgetPrefix.insert(CollapsedBubble, QLatin1String("cb:"));
    69     mWidgetName.insert(Image,          "callImage");
    69     mWidgetPrefix.insert(CollapsedBubble2, QLatin1String("cb2:"));
    70     mWidgetName.insert(LeftButton,     "leftButton");
    70     mContainerName.insert(ExpandedBubble, QLatin1String("expandedBubble"));
    71     mWidgetName.insert(CenterButton,   "centerButton");
    71     mContainerName.insert(CollapsedBubble, QLatin1String("collapsedBubble"));
    72     mWidgetName.insert(RightButton,    "rightButton");
    72     mContainerName.insert(CollapsedBubble2, QLatin1String("collapsedBubble2"));
    73     mWidgetName.insert(ConferenceTimer,"callTimer");
    73     mWidgetName.insert(Heading, QLatin1String("bubbleHeading"));
    74     mWidgetName.insert(ParticipantList,"participantList");
    74     mWidgetName.insert(Image, QLatin1String("callImage"));
    75     mWidgetName.insert(MutedIcon,      "mutedIcon");
    75     mWidgetName.insert(LeftButton, QLatin1String("leftButton"));
       
    76     mWidgetName.insert(CenterButton, QLatin1String("centerButton"));
       
    77     mWidgetName.insert(RightButton, QLatin1String("rightButton"));
       
    78     mWidgetName.insert(ParticipantList, QLatin1String("participantList"));
       
    79     mWidgetName.insert(MutedIcon, QLatin1String("mutedIcon"));
    76 }
    80 }
    77 
    81 
    78 BubbleWidgetManager::~BubbleWidgetManager()
    82 BubbleWidgetManager::~BubbleWidgetManager()
    79 {
    83 {
    80     qDeleteAll(mDocumentLoaders);
    84     qDeleteAll(mDocumentLoaders);
    97         // load from .docml
   101         // load from .docml
    98         return loadDocument(view,mOrientation);
   102         return loadDocument(view,mOrientation);
    99     }
   103     }
   100 }
   104 }
   101 
   105 
       
   106 bool BubbleWidgetManager::isLoaded(View view)
       
   107 {
       
   108     if (mDocumentContent.contains(view)) {
       
   109         return true;
       
   110     } else {
       
   111         return false;
       
   112     }
       
   113 }
       
   114 
   102 void BubbleWidgetManager::releaseView(View view)
   115 void BubbleWidgetManager::releaseView(View view)
   103 {
   116 {
   104     Q_UNUSED(view)
   117     Q_UNUSED(view)
       
   118 
       
   119     // release loaders
       
   120     BubbleDocumentLoader* loader = mDocumentLoaders.value(view,0);
       
   121     delete loader;
       
   122     mDocumentLoaders.remove(view);
       
   123 
       
   124     // release handler
       
   125     QList<BubbleHandler*>* handlers = mDocumentHandlers.value(view,0);
       
   126     if (handlers) {
       
   127         qDeleteAll(*handlers);
       
   128         delete handlers;
       
   129         mDocumentHandlers.remove(view);
       
   130     }
       
   131 
       
   132     // release document objects
       
   133     QObjectList objectList = mDocumentObjects.value(view);
       
   134     foreach(QObject* object, objectList) {
       
   135         QMetaObject::invokeMethod(object, "deleteLater", Qt::QueuedConnection);
       
   136     }
       
   137     mDocumentObjects.remove(view);
       
   138     mDocumentContent.remove(view);
   105 }
   139 }
   106 
   140 
   107 QGraphicsWidget* BubbleWidgetManager::loadDocument(
   141 QGraphicsWidget* BubbleWidgetManager::loadDocument(
   108     View view,
   142     View view,
   109     Qt::Orientation orientation)
   143     Qt::Orientation orientation)
   110 {
   144 {
   111     BubbleDocumentLoader* loader =
   145     BubbleDocumentLoader* loader =
   112         new BubbleDocumentLoader(mImageManager);
   146         new BubbleDocumentLoader(mImageManager);
   113     bool ok;
   147     bool ok;
   114 
   148 
   115     loader->load(mFileNames[view],&ok);
   149     QObjectList objectList = loader->load(mFileNames[view],&ok);
   116     Q_ASSERT(ok);
   150     Q_ASSERT(ok);
   117     loader->load(mFileNames[view],mOrientationName[orientation],&ok);
   151     loader->load(mFileNames[view],mOrientationName[orientation],&ok);
   118     Q_ASSERT(ok);
   152     Q_ASSERT(ok);
   119 
   153 
   120     mDocumentLoaders.insert(view,loader);
   154     mDocumentLoaders.insert(view,loader);
       
   155     mDocumentObjects.insert(view,objectList);
   121 
   156 
   122     QGraphicsWidget* widget =
   157     QGraphicsWidget* widget =
   123         mDocumentLoaders[view]->findWidget(BUBBLE_DOCUMENT_CONTENT);
   158         mDocumentLoaders[view]->findWidget(BUBBLE_DOCUMENT_CONTENT);
   124 
   159 
   125     Q_ASSERT(widget);
   160     Q_ASSERT(widget);
   144 {
   179 {
   145     HbWidget* w;
   180     HbWidget* w;
   146     w = qobject_cast<HbWidget*>(widget);
   181     w = qobject_cast<HbWidget*>(widget);
   147     if (w) {
   182     if (w) {
   148         HbFrameItem* item =
   183         HbFrameItem* item =
   149             new HbFrameItem("qtg_fr_popup_trans",HbFrameDrawer::NinePieces);
   184             new HbFrameItem(QLatin1String("qtg_fr_popup_trans"),
       
   185                             HbFrameDrawer::NinePieces);
   150         w->setBackgroundItem(item); // takes ownership
   186         w->setBackgroundItem(item); // takes ownership
   151     }
   187     }
   152 }
   188 }
   153 
   189 
   154 void BubbleWidgetManager::createDocumentHandlers(View view)
   190 void BubbleWidgetManager::createDocumentHandlers(View view)