emailuis/nmsettingui/src/nmmailboxsettingsmanager.cpp
changeset 30 759dc5235cdb
parent 20 ecc8def7944a
child 47 f83bd4ae1fe3
equal deleted inserted replaced
27:9ba4404ef423 30:759dc5235cdb
    41   Creates list of folder paths where plug-ins can be loaded from.
    41   Creates list of folder paths where plug-ins can be loaded from.
    42   \return folder path list.
    42   \return folder path list.
    43 */
    43 */
    44 QStringList pluginFolders()
    44 QStringList pluginFolders()
    45 {
    45 {
    46     NMLOG(QString("NmMailboxSettingsManager - HELPER FUNCTIONS - pluginFolders"));
    46     NM_FUNCTION;
    47 
    47     
    48     const QString nmSettingsPluginFolderPath("resource/qt/plugins/nmail/settings");
    48     const QString nmSettingsPluginFolderPath("resource/qt/plugins/nmail/settings");
    49     QStringList pluginDirectories;
    49     QStringList pluginDirectories;
    50     QFileInfoList driveList = QDir::drives();
    50     QFileInfoList driveList = QDir::drives();
    51 
    51 
    52     foreach(const QFileInfo &driveInfo, driveList) {
    52     foreach(const QFileInfo &driveInfo, driveList) {
    55 
    55 
    56         if (QFileInfo(pluginDirectory).exists()) {
    56         if (QFileInfo(pluginDirectory).exists()) {
    57             pluginDirectories.append(pluginDirectory);
    57             pluginDirectories.append(pluginDirectory);
    58         }
    58         }
    59     }
    59     }
    60 
    60     
    61     NMLOG(QString("NmMailboxSettingsManager - HELPER FUNCTIONS - pluginFolders - OK"));
       
    62     return pluginDirectories;
    61     return pluginDirectories;
    63 }
    62 }
    64 
    63 
    65 
    64 
    66 // ======== MEMBER FUNCTIONS ========
    65 // ======== MEMBER FUNCTIONS ========
    69     Contructor of NmMailboxSettingsManager.
    68     Contructor of NmMailboxSettingsManager.
    70 */
    69 */
    71 NmMailboxSettingsManager::NmMailboxSettingsManager()
    70 NmMailboxSettingsManager::NmMailboxSettingsManager()
    72 : mDataManager(0)
    71 : mDataManager(0)
    73 {
    72 {
       
    73     NM_FUNCTION;
       
    74     
    74     QScopedPointer<NmDataManager> dataManager(new NmDataManager());
    75     QScopedPointer<NmDataManager> dataManager(new NmDataManager());
    75     loadPlugins();
    76     loadPlugins();
    76     mDataManager = dataManager.take();
    77     mDataManager = dataManager.take();
    77 }
    78 }
    78 
    79 
    80 /*!
    81 /*!
    81     Destructor of NmMailboxSettingsManager.
    82     Destructor of NmMailboxSettingsManager.
    82 */
    83 */
    83 NmMailboxSettingsManager::~NmMailboxSettingsManager()
    84 NmMailboxSettingsManager::~NmMailboxSettingsManager()
    84 {
    85 {
       
    86     NM_FUNCTION;
       
    87     
    85     unloadPlugins();
    88     unloadPlugins();
    86     qDeleteAll(mPluginLoaders);
    89     qDeleteAll(mPluginLoaders);
    87     mPluginLoaders.clear();
    90     mPluginLoaders.clear();
    88     NmIcons::freeIcons();
    91     NmIcons::freeIcons();
    89     delete mDataManager;
    92     delete mDataManager;
    96     \param mailboxList List to be popuplated with mailbox entries.
    99     \param mailboxList List to be popuplated with mailbox entries.
    97 
   100 
    98 */
   101 */
    99 void NmMailboxSettingsManager::listMailboxes(QList<NmMailbox *> &mailboxList)
   102 void NmMailboxSettingsManager::listMailboxes(QList<NmMailbox *> &mailboxList)
   100 {
   103 {
       
   104     NM_FUNCTION;
       
   105     
   101     mDataManager->listMailboxes(mailboxList);
   106     mDataManager->listMailboxes(mailboxList);
   102 }
   107 }
   103 
   108 
   104 
   109 
   105 /*!
   110 /*!
   108     \param mailboxId Id of the mailbox.
   113     \param mailboxId Id of the mailbox.
   109     \return Icon for the mailbox.
   114     \return Icon for the mailbox.
   110 */
   115 */
   111 HbIcon &NmMailboxSettingsManager::mailboxIcon(const NmId &mailboxId) const
   116 HbIcon &NmMailboxSettingsManager::mailboxIcon(const NmId &mailboxId) const
   112 {
   117 {
       
   118     NM_FUNCTION;
       
   119     
   113     Q_UNUSED(mailboxId);
   120     Q_UNUSED(mailboxId);
   114     // TODO: use some branding feature when it is available.
   121     // TODO: use some branding feature when it is available.
   115     return NmIcons::getIcon(NmIcons::NmIconDefaultMailbox);
   122     return NmIcons::getIcon(NmIcons::NmIconDefaultMailbox);
   116 }
   123 }
   117 
   124 
   126                      the model.
   133                      the model.
   127 */
   134 */
   128 void NmMailboxSettingsManager::populateModel(HbDataFormModel &model,
   135 void NmMailboxSettingsManager::populateModel(HbDataFormModel &model,
   129     HbDataForm &form, const NmId &mailboxId) const
   136     HbDataForm &form, const NmId &mailboxId) const
   130 {
   137 {
   131     NMLOG(QString("NmMailboxSettingsManager::populateModel"));
   138     NM_FUNCTION;
   132 
   139     
   133     NmSettingsPluginInterface *plugin = 0;
   140     NmSettingsPluginInterface *plugin = 0;
   134 
   141 
   135     foreach (QPluginLoader *loader, mPluginLoaders) {
   142     foreach (QPluginLoader *loader, mPluginLoaders) {
   136         QObject *pluginInstance = loader->instance();
   143         QObject *pluginInstance = loader->instance();
   137         plugin = qobject_cast<NmSettingsPluginInterface *>(pluginInstance);
   144         plugin = qobject_cast<NmSettingsPluginInterface *>(pluginInstance);
   163             	pluginInstance, SLOT(aboutToClose()));
   170             	pluginInstance, SLOT(aboutToClose()));
   164 
   171 
   165             break;
   172             break;
   166         }
   173         }
   167     }
   174     }
   168     NMLOG(QString("NmMailboxSettingsManager::populateModel - OK"));
       
   169 }
   175 }
   170 
   176 
   171 
   177 
   172 /*!
   178 /*!
   173     Loads plug-ins which implements NmSettingsPluginInterface and are registered
   179     Loads plug-ins which implements NmSettingsPluginInterface and are registered
   174     to <code>/resource/qt/plugins/nmail/settings</code> folder.
   180     to <code>/resource/qt/plugins/nmail/settings</code> folder.
   175 */
   181 */
   176 void NmMailboxSettingsManager::loadPlugins()
   182 void NmMailboxSettingsManager::loadPlugins()
   177 {
   183 {
   178     NMLOG(QString("NmMailboxSettingsManager::loadPlugins"));
   184     NM_FUNCTION;
   179 
   185     
   180     QStringList directories(pluginFolders());
   186     QStringList directories(pluginFolders());
   181 
   187 
   182     foreach (const QString &directoryPath, directories) {
   188     foreach (const QString &directoryPath, directories) {
   183         QDir directory(directoryPath);
   189         QDir directory(directoryPath);
   184         QFileInfoList fileList(directory.entryInfoList());
   190         QFileInfoList fileList(directory.entryInfoList());
   188                 new QPluginLoader(fileInfo.absoluteFilePath()));
   194                 new QPluginLoader(fileInfo.absoluteFilePath()));
   189             mPluginLoaders.append(loader.data());
   195             mPluginLoaders.append(loader.data());
   190             loader.take();
   196             loader.take();
   191         }
   197         }
   192     }
   198     }
   193 
       
   194     NMLOG(QString("NmMailboxSettingsManager::loadPlugins - OK"));
       
   195 }
   199 }
   196 
   200 
   197 
   201 
   198 /*!
   202 /*!
   199     Unloads plug-ins to ensure that the root component is deleted.
   203     Unloads plug-ins to ensure that the root component is deleted.
   200 */
   204 */
   201 void NmMailboxSettingsManager::unloadPlugins()
   205 void NmMailboxSettingsManager::unloadPlugins()
   202 {
   206 {
   203     NMLOG(QString("NmMailboxSettingsManager::unloadPlugins"));
   207     NM_FUNCTION;
   204 
   208     
   205     foreach (QPluginLoader *loader, mPluginLoaders) {
   209     foreach (QPluginLoader *loader, mPluginLoaders) {
   206         loader->unload();
   210         loader->unload();
   207     }
   211     }
   208 
       
   209     NMLOG(QString("NmMailboxSettingsManager::unloadPlugins - OK"));
       
   210 }
   212 }
   211 
   213 
   212 // End of file.
   214 // End of file.