diff options
Diffstat (limited to 'connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.cxx')
-rw-r--r-- | connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.cxx | 209 |
1 files changed, 0 insertions, 209 deletions
diff --git a/connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.cxx b/connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.cxx deleted file mode 100644 index 4dd9110a6f0f..000000000000 --- a/connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.cxx +++ /dev/null @@ -1,209 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - - -#include "MNSProfileDiscover.hxx" -#include "MNSFolders.hxx" -#include "MNSINIParser.hxx" - -namespace connectivity::mozab -{ - ProfileStruct::ProfileStruct() - { - } - - ProfileStruct::ProfileStruct(const OUString& aProfileName, - const OUString& aProfilePath) - : profileName(aProfileName) - , profilePath(aProfilePath) - { - } - - const OUString& ProfileStruct::getProfilePath() const - { - return profilePath; - } - - ProfileAccess::~ProfileAccess() - { - } - - ProfileAccess::ProfileAccess() - { - LoadProductsInfo(); - } - - void ProfileAccess::LoadProductsInfo() - { - //tdf#39279: LO should search Thunderbird first then Seamonkey and finally Firefox - //load thunderbird profiles to m_ProductProfileList - LoadXPToolkitProfiles(MozillaProductType_Thunderbird); - - //load SeaMonkey 2 profiles to m_ProductProfileList - LoadXPToolkitProfiles(MozillaProductType_Mozilla); - - //load firefox profiles to m_ProductProfileList - //firefox profile does not contain address book, but maybe others need them - LoadXPToolkitProfiles(MozillaProductType_Firefox); - } - //Thunderbird and firefox profiles are saved in profiles.ini - void ProfileAccess::LoadXPToolkitProfiles(MozillaProductType product) - { - sal_Int32 index=static_cast<sal_Int32>(product); - ProductStruct &rProduct = m_ProductProfileList[index]; - - OUString regDir = getRegistryDir(product); - OUString profilesIni = regDir + "profiles.ini"; - IniParser parser( profilesIni ); - IniSectionMap &rAllSection = parser.getAllSection(); - - for(auto& rSection : rAllSection) - { - ini_Section *aSection = &rSection.second; - OUString profileName; - OUString profilePath; - OUString sIsRelative; - OUString sIsDefault; - - for(auto& rValue : aSection->vVector) - { - struct ini_NameValue * aValue = &rValue; - if ( aValue->sName == "Name" ) - { - profileName = aValue->sValue; - } - else if ( aValue->sName == "IsRelative" ) - { - sIsRelative = aValue->sValue; - } - else if ( aValue->sName == "Path" ) - { - profilePath = aValue->sValue; - } - else if ( aValue->sName == "Default" ) - { - sIsDefault = aValue->sValue; - } - } - if (!(profileName.isEmpty() && profilePath.isEmpty())) - { - sal_Int32 isRelative = 0; - if (!sIsRelative.isEmpty()) - { - isRelative = sIsRelative.toInt32(); - } - - OUString fullProfilePath; - if(isRelative) - { - fullProfilePath = regDir + profilePath; - } - else - { - fullProfilePath = profilePath; - } - - rProduct.mProfileList[profileName] = ProfileStruct(profileName,fullProfilePath); - - sal_Int32 isDefault = 0; - if (!sIsDefault.isEmpty()) - { - isDefault = sIsDefault.toInt32(); - } - if (isDefault) - rProduct.mCurrentProfileName = profileName; - - } - - // Depending on TB versions, some generate "default" profile - // others "default-release" profile - // See https://support.mozilla.org/gl/questions/1264072 - // for some background info (the link quotes Firefox but it seems - // the same for TB). - if (profileName == "default-release") - { - rProduct.mCurrentProfileName = profileName; - break; - } - } - } - - OUString ProfileAccess::getProfilePath( css::mozilla::MozillaProductType product, const OUString& profileName ) - { - sal_Int32 index=static_cast<sal_Int32>(product); - ProductStruct &rProduct = m_ProductProfileList[index]; - if (rProduct.mProfileList.empty() || rProduct.mProfileList.find(profileName) == rProduct.mProfileList.end()) - { - //Profile not found - return OUString(); - } - else - return rProduct.mProfileList[profileName].getProfilePath(); - } - - ::sal_Int32 ProfileAccess::getProfileCount( css::mozilla::MozillaProductType product) - { - sal_Int32 index=static_cast<sal_Int32>(product); - ProductStruct &rProduct = m_ProductProfileList[index]; - return static_cast< ::sal_Int32 >(rProduct.mProfileList.size()); - } - ::sal_Int32 ProfileAccess::getProfileList( css::mozilla::MozillaProductType product, css::uno::Sequence< OUString >& list ) - { - sal_Int32 index=static_cast<sal_Int32>(product); - ProductStruct &rProduct = m_ProductProfileList[index]; - list.realloc(static_cast<sal_Int32>(rProduct.mProfileList.size())); - sal_Int32 i=0; - for(const auto& rEntry : rProduct.mProfileList) - { - const ProfileStruct& rProfile = rEntry.second; - list[i] = rProfile.getProfileName(); - i++; - } - - return static_cast< ::sal_Int32 >(rProduct.mProfileList.size()); - } - - OUString ProfileAccess::getDefaultProfile( css::mozilla::MozillaProductType product ) - { - sal_Int32 index=static_cast<sal_Int32>(product); - ProductStruct &rProduct = m_ProductProfileList[index]; - if (!rProduct.mCurrentProfileName.isEmpty()) - { - //default profile set in mozilla registry - return rProduct.mCurrentProfileName; - } - if (rProduct.mProfileList.empty()) - { - //there are not any profiles - return OUString(); - } - const ProfileStruct& rProfile = (*rProduct.mProfileList.begin()).second; - return rProfile.getProfileName(); - } - - bool ProfileAccess::getProfileExists( css::mozilla::MozillaProductType product, const OUString& profileName ) - { - sal_Int32 index=static_cast<sal_Int32>(product); - ProductStruct &rProduct = m_ProductProfileList[index]; - return rProduct.mProfileList.find(profileName) != rProduct.mProfileList.end(); - } -} - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |