Rebased ref, commits from common ancestor: commit a1b6dd748098a09dde5c31f1c5f6d3851283e219 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Fri Nov 25 14:02:06 2016 +0100
KAB loplugin:datamembershadow Change-Id: I1962ab1d131cf714f8bd540b589e793c4389cfb2 diff --git a/connectivity/source/drivers/kab/KCatalog.cxx b/connectivity/source/drivers/kab/KCatalog.cxx index 63d0449..06cc13c 100644 --- a/connectivity/source/drivers/kab/KCatalog.cxx +++ b/connectivity/source/drivers/kab/KCatalog.cxx @@ -34,8 +34,7 @@ using namespace ::cppu; KabCatalog::KabCatalog(KabConnection* _pCon) : connectivity::sdbcx::OCatalog(_pCon), - m_pConnection(_pCon), - m_xMetaData(m_pConnection->getMetaData()) + m_pConnection(_pCon) { } diff --git a/connectivity/source/drivers/kab/KCatalog.hxx b/connectivity/source/drivers/kab/KCatalog.hxx index e524b57..c3c45fa 100644 --- a/connectivity/source/drivers/kab/KCatalog.hxx +++ b/connectivity/source/drivers/kab/KCatalog.hxx @@ -31,7 +31,6 @@ namespace connectivity class KabCatalog : public connectivity::sdbcx::OCatalog { KabConnection* m_pConnection; // used to get the metadata - css::uno::Reference< css::sdbc::XDatabaseMetaData > m_xMetaData; // just to make things easier public: explicit KabCatalog(KabConnection* _pCon); diff --git a/connectivity/source/drivers/kab/KStatement.cxx b/connectivity/source/drivers/kab/KStatement.cxx index a59070c..2b0a3cd 100644 --- a/connectivity/source/drivers/kab/KStatement.cxx +++ b/connectivity/source/drivers/kab/KStatement.cxx @@ -66,8 +66,7 @@ KabCommonStatement::KabCommonStatement(KabConnection* _pConnection ) m_aParser(_pConnection->getComponentContext()), m_aSQLIterator(_pConnection, _pConnection->createCatalog()->getTables(), m_aParser), m_pParseTree(nullptr), - m_pConnection(_pConnection), - rBHelper(KabCommonStatement_BASE::rBHelper) + m_pConnection(_pConnection) { m_pConnection->acquire(); } diff --git a/connectivity/source/drivers/kab/KStatement.hxx b/connectivity/source/drivers/kab/KStatement.hxx index d0fe69f..e76522c 100644 --- a/connectivity/source/drivers/kab/KStatement.hxx +++ b/connectivity/source/drivers/kab/KStatement.hxx @@ -91,7 +91,7 @@ namespace connectivity virtual ~KabCommonStatement() override; public: - ::cppu::OBroadcastHelper& rBHelper; + using KabCommonStatement_BASE::rBHelper; explicit KabCommonStatement(KabConnection *_pConnection); using KabCommonStatement_BASE::operator css::uno::Reference< css::uno::XInterface >; commit 01aaddd4e501f576405d64ccea33f41f1dbbe17b Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Thu Nov 24 13:52:23 2016 +0100 MM UNO always print single files to printer Fix a missing hunk from e0ad036eed6b151ea81311fcf9ba46f1726b103c, which causes assertion, if MM is used via UNO. Thanks to Alex Kempshall, finding the assertion when testing MM. Change-Id: Ia0cd6053838adc6f0a4ce93902f06423849bf851 diff --git a/sw/source/uibase/uno/unomailmerge.cxx b/sw/source/uibase/uno/unomailmerge.cxx index 0107496..32e2fd1 100644 --- a/sw/source/uibase/uno/unomailmerge.cxx +++ b/sw/source/uibase/uno/unomailmerge.cxx @@ -693,7 +693,7 @@ uno::Any SAL_CALL SwXMailMerge::execute( // #i25686# printing should not be done asynchronously to prevent dangling offices // when mail merge is called as command line macro aMergeDesc.aPrintOptions = m_aPrintSettings; - aMergeDesc.bCreateSingleFile = false; + aMergeDesc.bCreateSingleFile = true; } break; case MailMergeType::SHELL: commit d3d9d26372b0da5626389aef835f81129bd1882a Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Tue Oct 4 10:13:24 2016 +0000 tdf#102010 Never overwrite MM files via UNO Fixes the regression introduced by commit e637b6743a506ef74c93ccbe15ab6642f3baa34f This commit removed the crazy bSubjectIsFilename handling, where I didn't understood the case of bSubjectIsFilename and a user supplied prefix. Mail merge to files never overwrites an existing document, but there is the special case, when a user selects a target filename in the MM dialog for single file MM. Should be fixed by a successive commmit, reverting this and removing an existing file before starting the MM job. Change-Id: Idda487023e6984de9c1e701fc088a6b7f92e9847 diff --git a/sw/CppunitTest_sw_mailmerge.mk b/sw/CppunitTest_sw_mailmerge.mk index 693a5e2..8d2a3f8 100644 --- a/sw/CppunitTest_sw_mailmerge.mk +++ b/sw/CppunitTest_sw_mailmerge.mk @@ -21,6 +21,7 @@ $(eval $(call gb_CppunitTest_use_libraries,sw_mailmerge, \ sfx \ sw \ test \ + tl \ unotest \ utl \ )) diff --git a/sw/inc/dbmgr.hxx b/sw/inc/dbmgr.hxx index 6078b27..b124106 100644 --- a/sw/inc/dbmgr.hxx +++ b/sw/inc/dbmgr.hxx @@ -162,7 +162,23 @@ struct SwMergeDescriptor * @defgroup file Mail merge as File settings * @addtogroup file * @{ */ - OUString sPath; + + /** + * Basename incl. the path for the generated files. + * + * The final filename will be created by concating a number to prevent + * overwriting an existing file and the extension based on the filter + * settings. + */ + OUString sPrefix; + /** + * Use the sPrefix as the target filename also overwriting an existing + * target file. + * + * Just used for the internal mail merge dialogs as mail merge never + * overwrites existing files (see SwDBManager::ExecuteFormLetter). + */ + bool bPrefixIsFilename; /** @} */ /** @@ -205,6 +221,7 @@ struct SwMergeDescriptor rSh(rShell), rDescriptor(rDesc), bCreateSingleFile( false ), + bPrefixIsFilename( false ), bSendAsHTML( true ), bSendAsAttachment( false ), pMailMergeConfigItem( nullptr ) diff --git a/sw/qa/extras/mailmerge/mailmerge.cxx b/sw/qa/extras/mailmerge/mailmerge.cxx index 7d45b17..0c35652 100644 --- a/sw/qa/extras/mailmerge/mailmerge.cxx +++ b/sw/qa/extras/mailmerge/mailmerge.cxx @@ -25,6 +25,8 @@ #include <com/sun/star/sdbc/XRowSet.hpp> #include <com/sun/star/sdbcx/XRowLocate.hpp> +#include <tools/urlobj.hxx> + #include <wrtsh.hxx> #include <ndtxt.hxx> #include <swdtflvr.hxx> @@ -145,7 +147,8 @@ public: ( OUString( m_directories.getURLFromSrc(mpTestDocumentPath) + OUString::createFromAscii(filename)) ) ) ) ); mMMargs.push_back( beans::NamedValue( OUString( UNO_NAME_DATA_SOURCE_NAME ), uno::Any( aDBName ) ) ); mMMargs.push_back( beans::NamedValue( OUString( UNO_NAME_OUTPUT_URL ), uno::Any( aWorkDir ) ) ); - mMMargs.push_back( beans::NamedValue( OUString( UNO_NAME_FILE_NAME_PREFIX ), uno::Any( aPrefix )) ); + if (file) + mMMargs.push_back( beans::NamedValue( OUString( UNO_NAME_FILE_NAME_PREFIX ), uno::Any( aPrefix )) ); if (bPrefixIsColumn) mMMargs.push_back( beans::NamedValue( OUString( UNO_NAME_FILE_NAME_FROM_COLUMN ), uno::Any( true ) ) ); @@ -173,7 +176,7 @@ public: } - void executeMailMerge() + void executeMailMerge( bool bDontLoadResult = false ) { uno::Sequence< beans::NamedValue > aSeqMailMergeArgs = comphelper::containerToSequence( mMMargs ); uno::Any res = mxJob->execute( aSeqMailMergeArgs ); @@ -196,6 +199,8 @@ public: bOk &= rValue >>= mnCurOutputType; else if (rName == UNO_NAME_FILE_NAME_FROM_COLUMN) bOk &= rValue >>= bMMFilenameFromColumn; + else if (rName == UNO_NAME_DOCUMENT_URL) + bOk &= rValue >>= msMailMergeDocumentURL; } CPPUNIT_ASSERT(bOk); @@ -214,7 +219,7 @@ public: else { CPPUNIT_ASSERT(res == true); - if( !bMMFilenameFromColumn ) + if( !bMMFilenameFromColumn && !bDontLoadResult ) loadMailMergeDocument( 0 ); } } @@ -252,7 +257,17 @@ public: */ void loadMailMergeDocument( int number ) { - OUString name = msMailMergeOutputPrefix + OUString::number( number ) + ".odt"; + OUString name; + if (!msMailMergeOutputPrefix.isEmpty()) + name = msMailMergeOutputPrefix; + else + { + INetURLObject aURLObj; + aURLObj.SetSmartProtocol( INetProtocol::File ); + aURLObj.SetSmartURL( msMailMergeDocumentURL ); + name = aURLObj.GetBase(); + } + name += OUString::number( number ) + ".odt"; loadMailMergeDocument( name ); } @@ -262,6 +277,7 @@ protected: uno::Reference< css::task::XJob > mxJob; std::vector< beans::NamedValue > mMMargs; + OUString msMailMergeDocumentURL; OUString msMailMergeOutputURL; OUString msMailMergeOutputPrefix; sal_Int16 mnCurOutputType; @@ -603,5 +619,27 @@ DECLARE_FILE_MAILMERGE_TEST_COLUMN(testDirMailMerge, "simple-mail-merge.odt", "1 } } +DECLARE_FILE_MAILMERGE_TEST(testTdf102010, "empty.odt", "10-testing-addresses.ods", "testing-addresses") +{ + // Create "correct" automatic filename for non-user-supplied-prefix + for (auto aNamedValueIter = mMMargs.begin(); aNamedValueIter != mMMargs.end();) + { + if ( aNamedValueIter->Name == UNO_NAME_FILE_NAME_PREFIX ) + aNamedValueIter = mMMargs.erase( aNamedValueIter ); + else + { + std::cout << aNamedValueIter->Name << ": " << aNamedValueIter->Value << std::endl; + ++aNamedValueIter; + } + } + mMMargs.push_back( beans::NamedValue( OUString( UNO_NAME_SAVE_AS_SINGLE_FILE ), uno::Any( true ) ) ); + + // Generate correct mail merge result filename + executeMailMerge(); + // Don't overwrite previous result + executeMailMerge( true ); + loadMailMergeDocument( 1 ); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/uibase/dbui/dbmgr.cxx b/sw/source/uibase/dbui/dbmgr.cxx index 1a3e035..398486c 100644 --- a/sw/source/uibase/dbui/dbmgr.cxx +++ b/sw/source/uibase/dbui/dbmgr.cxx @@ -1098,11 +1098,13 @@ bool SwDBManager::MergeMailFiles(SwWrtShell* pSourceShell, bool bCheckSingleFile_ = rMergeDescriptor.bCreateSingleFile; if( bMT_EMAIL ) { + assert( !rMergeDescriptor.bPrefixIsFilename ); assert( bMT_EMAIL && !bCheckSingleFile_ ); bCheckSingleFile_ = false; } else if( bMT_SHELL || bMT_PRINTER ) { + assert( !rMergeDescriptor.bPrefixIsFilename ); assert( (bMT_SHELL || bMT_PRINTER) && bCheckSingleFile_ ); bCheckSingleFile_ = true; } @@ -1318,7 +1320,7 @@ bool SwDBManager::MergeMailFiles(SwWrtShell* pSourceShell, // create a new temporary file name - only done once in case of bCreateSingleFile if( bNeedsTempFiles && ( !bWorkDocInitialized || !bCreateSingleFile )) { - OUString sPath = rMergeDescriptor.sPath; + OUString sPrefix = rMergeDescriptor.sPrefix; OUString sLeading; //#i97667# if the name is from a database field then it will be used _as is_ @@ -1331,14 +1333,14 @@ bool SwDBManager::MergeMailFiles(SwWrtShell* pSourceShell, } else { - INetURLObject aEntry( sPath ); + INetURLObject aEntry( sPrefix ); sLeading = aEntry.GetBase(); aEntry.removeSegment(); - sPath = aEntry.GetMainURL( INetURLObject::NO_DECODE ); + sPrefix = aEntry.GetMainURL( INetURLObject::NO_DECODE ); } OUString sExt(comphelper::string::stripStart(pStoreToFilter->GetDefaultExtension(), '*')); - aTempFile.reset( new utl::TempFile(sLeading, sColumnData.isEmpty(), &sExt, &sPath, true) ); + aTempFile.reset( new utl::TempFile(sLeading, sColumnData.isEmpty(), &sExt, &sPrefix, true) ); if( !aTempFile->IsValid() ) { ErrorHandler::HandleError( ERRCODE_IO_NOTSUPPORTED ); @@ -1559,11 +1561,11 @@ bool SwDBManager::MergeMailFiles(SwWrtShell* pSourceShell, // save merged document assert( aTempFile.get() ); INetURLObject aTempFileURL; - if( rMergeDescriptor.sPath.isEmpty() ) + if( rMergeDescriptor.sPrefix.isEmpty() || !rMergeDescriptor.bPrefixIsFilename ) aTempFileURL.SetURL( aTempFile->GetURL() ); else { - aTempFileURL.SetURL( rMergeDescriptor.sPath ); + aTempFileURL.SetURL( rMergeDescriptor.sPrefix ); // remove the unneeded temporary file aTempFile->EnableKillingFile(); } @@ -2863,7 +2865,8 @@ void SwDBManager::ExecuteFormLetter( SwWrtShell& rSh, SwMergeDescriptor aMergeDesc( pImpl->pMergeDialog->GetMergeType(), rSh, aDescriptor ); aMergeDesc.sSaveToFilter = pImpl->pMergeDialog->GetSaveFilter(); aMergeDesc.bCreateSingleFile = pImpl->pMergeDialog->IsSaveSingleDoc(); - aMergeDesc.sPath = pImpl->pMergeDialog->GetTargetURL(); + aMergeDesc.bPrefixIsFilename = aMergeDesc.bCreateSingleFile; + aMergeDesc.sPrefix = pImpl->pMergeDialog->GetTargetURL(); if( !aMergeDesc.bCreateSingleFile && pImpl->pMergeDialog->IsGenerateFromDataBase() ) { aMergeDesc.sDBcolumn = pImpl->pMergeDialog->GetColumnName(); diff --git a/sw/source/uibase/uno/unomailmerge.cxx b/sw/source/uibase/uno/unomailmerge.cxx index 49aaacc..0107496 100644 --- a/sw/source/uibase/uno/unomailmerge.cxx +++ b/sw/source/uibase/uno/unomailmerge.cxx @@ -738,7 +738,7 @@ uno::Any SAL_CALL SwXMailMerge::execute( aPath += aCurFileNamePrefix; } - aMergeDesc.sPath = aPath; + aMergeDesc.sPrefix = aPath; aMergeDesc.sSaveToFilter = m_sSaveFilter; aMergeDesc.sSaveToFilterOptions = m_sSaveFilterOptions; aMergeDesc.aSaveToFilterData = m_aSaveFilterData; commit 5c967a92537604a7c0f35f7aed18308dc52b0e98 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Mon Oct 3 21:51:56 2016 +0200 MM allow easier manipulation of MM test arguments Keep the beans::NamedValue vector around and convert it to a uno::Sequence just before executing the mail merge job. Change-Id: Ib2b4863337af20fb4423cc1b4ea4223d66d63ae5 diff --git a/sw/qa/extras/mailmerge/mailmerge.cxx b/sw/qa/extras/mailmerge/mailmerge.cxx index bb4ec55..7d45b17 100644 --- a/sw/qa/extras/mailmerge/mailmerge.cxx +++ b/sw/qa/extras/mailmerge/mailmerge.cxx @@ -138,29 +138,29 @@ public: uno::Reference< task::XJob > xJob( getMultiServiceFactory()->createInstance( "com.sun.star.text.MailMerge" ), uno::UNO_QUERY_THROW ); mxJob.set( xJob ); - std::vector< beans::NamedValue > args; + mMMargs.reserve( 15 ); - args.push_back( beans::NamedValue( OUString( UNO_NAME_OUTPUT_TYPE ), uno::Any( file ? text::MailMergeType::FILE : text::MailMergeType::SHELL ) ) ); - args.push_back( beans::NamedValue( OUString( UNO_NAME_DOCUMENT_URL ), uno::Any( + mMMargs.push_back( beans::NamedValue( OUString( UNO_NAME_OUTPUT_TYPE ), uno::Any( file ? text::MailMergeType::FILE : text::MailMergeType::SHELL ) ) ); + mMMargs.push_back( beans::NamedValue( OUString( UNO_NAME_DOCUMENT_URL ), uno::Any( ( OUString( m_directories.getURLFromSrc(mpTestDocumentPath) + OUString::createFromAscii(filename)) ) ) ) ); - args.push_back( beans::NamedValue( OUString( UNO_NAME_DATA_SOURCE_NAME ), uno::Any( aDBName ) ) ); - args.push_back( beans::NamedValue( OUString( UNO_NAME_OUTPUT_URL ), uno::Any( aWorkDir ) ) ); - args.push_back( beans::NamedValue( OUString( UNO_NAME_FILE_NAME_PREFIX ), uno::Any( aPrefix )) ); + mMMargs.push_back( beans::NamedValue( OUString( UNO_NAME_DATA_SOURCE_NAME ), uno::Any( aDBName ) ) ); + mMMargs.push_back( beans::NamedValue( OUString( UNO_NAME_OUTPUT_URL ), uno::Any( aWorkDir ) ) ); + mMMargs.push_back( beans::NamedValue( OUString( UNO_NAME_FILE_NAME_PREFIX ), uno::Any( aPrefix )) ); if (bPrefixIsColumn) - args.push_back( beans::NamedValue( OUString( UNO_NAME_FILE_NAME_FROM_COLUMN ), uno::Any( true ) ) ); + mMMargs.push_back( beans::NamedValue( OUString( UNO_NAME_FILE_NAME_FROM_COLUMN ), uno::Any( true ) ) ); if (tablename) { - args.push_back( beans::NamedValue( OUString( UNO_NAME_DAD_COMMAND_TYPE ), uno::Any( sdb::CommandType::TABLE ) ) ); - args.push_back( beans::NamedValue( OUString( UNO_NAME_DAD_COMMAND ), uno::Any( OUString::createFromAscii(tablename) ) ) ); + mMMargs.push_back( beans::NamedValue( OUString( UNO_NAME_DAD_COMMAND_TYPE ), uno::Any( sdb::CommandType::TABLE ) ) ); + mMMargs.push_back( beans::NamedValue( OUString( UNO_NAME_DAD_COMMAND ), uno::Any( OUString::createFromAscii(tablename) ) ) ); } if (nDataSets > 0) { uno::Reference< sdbc::XRowSet > xCurResultSet = getXResultFromDataset( tablename, aDBName ); uno::Reference< sdbcx::XRowLocate > xCurRowLocate( xCurResultSet, uno::UNO_QUERY ); - args.push_back( beans::NamedValue( OUString( UNO_NAME_RESULT_SET ), uno::Any( xCurResultSet ) ) ); + mMMargs.push_back( beans::NamedValue( OUString( UNO_NAME_RESULT_SET ), uno::Any( xCurResultSet ) ) ); std::vector< uno::Any > vResult; vResult.reserve( nDataSets ); sal_Int32 i; @@ -168,20 +168,20 @@ public: { vResult.push_back( uno::Any( xCurRowLocate->getBookmark() ) ); } - args.push_back( beans::NamedValue( OUString( UNO_NAME_SELECTION ), uno::Any( comphelper::containerToSequence(vResult) ) ) ); + mMMargs.push_back( beans::NamedValue( OUString( UNO_NAME_SELECTION ), uno::Any( comphelper::containerToSequence(vResult) ) ) ); } - mSeqMailMergeArgs = comphelper::containerToSequence( args ); } void executeMailMerge() { - uno::Any res = mxJob->execute( mSeqMailMergeArgs ); + uno::Sequence< beans::NamedValue > aSeqMailMergeArgs = comphelper::containerToSequence( mMMargs ); + uno::Any res = mxJob->execute( aSeqMailMergeArgs ); - const beans::NamedValue *pArguments = mSeqMailMergeArgs.getConstArray(); + const beans::NamedValue *pArguments = aSeqMailMergeArgs.getConstArray(); bool bOk = true; bool bMMFilenameFromColumn = false; - sal_Int32 nArgs = mSeqMailMergeArgs.getLength(); + sal_Int32 nArgs = aSeqMailMergeArgs.getLength(); for (sal_Int32 i = 0; i < nArgs; ++i) { const OUString &rName = pArguments[i].Name; @@ -189,9 +189,9 @@ public: // all error checking was already done by the MM job execution if (rName == UNO_NAME_OUTPUT_URL) - bOk &= rValue >>= mailMergeOutputURL; + bOk &= rValue >>= msMailMergeOutputURL; else if (rName == UNO_NAME_FILE_NAME_PREFIX) - bOk &= rValue >>= mailMergeOutputPrefix; + bOk &= rValue >>= msMailMergeOutputPrefix; else if (rName == UNO_NAME_OUTPUT_TYPE) bOk &= rValue >>= mnCurOutputType; else if (rName == UNO_NAME_FILE_NAME_FROM_COLUMN) @@ -227,8 +227,8 @@ public: if (mnCurOutputType != text::MailMergeType::FILE) return nullptr; - OUString name = mailMergeOutputPrefix + OUString::number( 0 ) + ".odt"; - return parseExportInternal( mailMergeOutputURL + "/" + name, rStreamName ); + OUString name = msMailMergeOutputPrefix + OUString::number( 0 ) + ".odt"; + return parseExportInternal( msMailMergeOutputURL + "/" + name, rStreamName ); } void loadMailMergeDocument( const OUString &filename ) @@ -239,7 +239,7 @@ public: // Output name early, so in the case of a hang, the name of the hanging input file is visible. std::cout << filename << ","; mnStartTime = osl_getGlobalTimer(); - mxComponent = loadFromDesktop(mailMergeOutputURL + "/" + filename, "com.sun.star.text.TextDocument"); + mxComponent = loadFromDesktop(msMailMergeOutputURL + "/" + filename, "com.sun.star.text.TextDocument"); CPPUNIT_ASSERT( mxComponent.is()); OString name2 = OUStringToOString( filename, RTL_TEXTENCODING_UTF8 ); discardDumpedLayout(); @@ -252,7 +252,7 @@ public: */ void loadMailMergeDocument( int number ) { - OUString name = mailMergeOutputPrefix + OUString::number( number ) + ".odt"; + OUString name = msMailMergeOutputPrefix + OUString::number( number ) + ".odt"; loadMailMergeDocument( name ); } @@ -261,9 +261,9 @@ protected: int documentStartPageNumber( int document ) const; uno::Reference< css::task::XJob > mxJob; - uno::Sequence< beans::NamedValue > mSeqMailMergeArgs; - OUString mailMergeOutputURL; - OUString mailMergeOutputPrefix; + std::vector< beans::NamedValue > mMMargs; + OUString msMailMergeOutputURL; + OUString msMailMergeOutputPrefix; sal_Int16 mnCurOutputType; uno::Reference< lang::XComponent > mxMMComponent; const char* maMMtestFilename; commit 9b1d3707106b2eca0e94c4c50dcbec104500dafb Author: Eike Rathke <er...@redhat.com> Date: Fri Nov 25 13:41:50 2016 +0100 show next free formatindex hint for errors Change-Id: I4252a572c1cef02ff5e7de0ecc78d84ddc806919 diff --git a/i18npool/source/localedata/LocaleNode.cxx b/i18npool/source/localedata/LocaleNode.cxx index 26f0e69..9f778e4 100644 --- a/i18npool/source/localedata/LocaleNode.cxx +++ b/i18npool/source/localedata/LocaleNode.cxx @@ -661,6 +661,8 @@ void LCFormatNode::generateCode (const OFileWriter &of) const NameSet aDefaultsSet; bool bCtypeIsRef = false; bool bHaveEngineering = false; + bool bShowNextFreeFormatIndex = false; + const sal_Int16 nFirstFreeFormatIndex = 60; for (sal_Int32 i = 0; i< getNumberOfChildren() ; i++, formatCount++) { @@ -707,10 +709,16 @@ void LCFormatNode::generateCode (const OFileWriter &of) const sal_Int16 formatindex = (sal_Int16)aFormatIndex.toInt32(); // Ensure the new reserved range is not used anymore, free usage start // was up'ed from 50 to 60. - if (50 <= formatindex && formatindex < 60) - incErrorInt( "Error: Reserved formatindex=\"%d\" in FormatElement, free usage starts at 60.\n", formatindex); + if (50 <= formatindex && formatindex < nFirstFreeFormatIndex) + { + incErrorInt( "Error: Reserved formatindex=\"%d\" in FormatElement.\n", formatindex); + bShowNextFreeFormatIndex = true; + } if (!aFormatIndexSet.insert( formatindex).second) + { incErrorInt( "Error: Duplicated formatindex=\"%d\" in FormatElement.\n", formatindex); + bShowNextFreeFormatIndex = true; + } of.writeIntParameter("Formatindex", formatCount, formatindex); // Ensure only one default per usage and type. @@ -906,6 +914,22 @@ void LCFormatNode::generateCode (const OFileWriter &of) const } + if (bShowNextFreeFormatIndex) + { + sal_Int16 nNext = nFirstFreeFormatIndex; + std::set<sal_Int16>::const_iterator it( aFormatIndexSet.find( nNext)); + if (it != aFormatIndexSet.end()) + { + // nFirstFreeFormatIndex already used, find next free including gaps. + do + { + ++nNext; + } + while (++it != aFormatIndexSet.end() && *it == nNext); + } + fprintf( stderr, "Hint: Next free formatindex is %d.\n", (int)nNext); + } + // Check presence of all required format codes only in first section // LC_FORMAT, not in optional LC_FORMAT_1 if (mnSection == 0) commit f32a75c25b0450eba9cdd9b343e1263c600c0151 Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Fri Nov 25 13:46:51 2016 +0200 convert LF constants to o3tl::typed_flags Change-Id: I4fa3a62e53eb02fe60c9ca0675709b76e56a7912 diff --git a/uui/source/iahndl-authentication.cxx b/uui/source/iahndl-authentication.cxx index fa7d63f..93a1ddc 100644 --- a/uui/source/iahndl-authentication.cxx +++ b/uui/source/iahndl-authentication.cxx @@ -72,21 +72,21 @@ executeLoginDialog( bool bSavePassword = rInfo.GetCanRememberPassword(); bool bCanUseSysCreds = rInfo.GetCanUseSystemCredentials(); - sal_uInt16 nFlags = 0; + LoginFlags nFlags = LoginFlags::NONE; if (rInfo.GetPath().isEmpty()) - nFlags |= LF_NO_PATH; + nFlags |= LoginFlags::NoPath; if (rInfo.GetErrorText().isEmpty()) - nFlags |= LF_NO_ERRORTEXT; + nFlags |= LoginFlags::NoErrorText; if (!bAccount) - nFlags |= LF_NO_ACCOUNT; + nFlags |= LoginFlags::NoAccount; if (!(rInfo.GetFlags() & LOGINERROR_FLAG_MODIFY_USER_NAME)) - nFlags |= LF_USERNAME_READONLY; + nFlags |= LoginFlags::UsernameReadonly; if (!bSavePassword) - nFlags |= LF_NO_SAVEPASSWORD; + nFlags |= LoginFlags::NoSavePassword; if (!bCanUseSysCreds) - nFlags |= LF_NO_USESYSCREDS; + nFlags |= LoginFlags::NoUseSysCreds; ScopedVclPtrInstance< LoginDialog > xDialog(pParent, nFlags, rInfo.GetServer(), rRealm); if (!rInfo.GetErrorText().isEmpty()) diff --git a/uui/source/logindlg.cxx b/uui/source/logindlg.cxx index 1bdb85f..76465d9 100644 --- a/uui/source/logindlg.cxx +++ b/uui/source/logindlg.cxx @@ -67,52 +67,52 @@ void LoginDialog::SetPassword( const OUString& rNew ) SetRequest(); } -void LoginDialog::HideControls_Impl( sal_uInt16 nFlags ) +void LoginDialog::HideControls_Impl( LoginFlags nFlags ) { - if ( ( nFlags & LF_NO_PATH ) == LF_NO_PATH ) + if ( nFlags & LoginFlags::NoPath ) { m_pPathFT->Hide(); m_pPathED->Hide(); m_pPathBtn->Hide(); } - else if ( ( nFlags & LF_PATH_READONLY ) == LF_PATH_READONLY ) + else if ( nFlags & LoginFlags::PathReadonly ) { m_pPathED->Enable( false ); m_pPathBtn->Enable( false ); } - if ( ( nFlags & LF_NO_USERNAME ) == LF_NO_USERNAME ) + if ( nFlags & LoginFlags::NoUsername ) { m_pNameFT->Hide(); m_pNameED->Hide(); } - else if ( ( nFlags & LF_USERNAME_READONLY ) == LF_USERNAME_READONLY ) + else if ( nFlags & LoginFlags::UsernameReadonly ) { m_pNameED->Enable( false ); } - if ( ( nFlags & LF_NO_PASSWORD ) == LF_NO_PASSWORD ) + if ( nFlags & LoginFlags::NoPassword ) { m_pPasswordFT->Hide(); m_pPasswordED->Hide(); } - if ( ( nFlags & LF_NO_SAVEPASSWORD ) == LF_NO_SAVEPASSWORD ) + if ( nFlags & LoginFlags::NoSavePassword ) m_pSavePasswdBtn->Hide(); - if ( ( nFlags & LF_NO_ERRORTEXT ) == LF_NO_ERRORTEXT ) + if ( nFlags & LoginFlags::NoErrorText ) { m_pErrorInfo->Hide(); m_pErrorFT->Hide(); } - if ( ( nFlags & LF_NO_ACCOUNT ) == LF_NO_ACCOUNT ) + if ( nFlags & LoginFlags::NoAccount ) { m_pAccountFT->Hide(); m_pAccountED->Hide(); } - if ( ( nFlags & LF_NO_USESYSCREDS ) == LF_NO_USESYSCREDS ) + if ( nFlags & LoginFlags::NoUseSysCreds ) { m_pUseSysCredsCB->Hide(); } @@ -186,7 +186,7 @@ IMPL_LINK_NOARG(LoginDialog, UseSysCredsHdl_Impl, Button*, void) EnableUseSysCredsControls_Impl( m_pUseSysCredsCB->IsChecked() ); } -LoginDialog::LoginDialog(vcl::Window* pParent, sal_uInt16 nFlags, +LoginDialog::LoginDialog(vcl::Window* pParent, LoginFlags nFlags, const OUString& rServer, const OUString& rRealm) : ModalDialog(pParent, "LoginDialog", "uui/ui/logindialog.ui"), m_server(rServer), m_realm(rRealm) @@ -207,7 +207,7 @@ LoginDialog::LoginDialog(vcl::Window* pParent, sal_uInt16 nFlags, get(m_pUseSysCredsCB, "syscreds"); get(m_pOKBtn, "ok"); - if ( !( ( nFlags & LF_NO_USESYSCREDS ) == LF_NO_USESYSCREDS ) ) + if ( !( nFlags & LoginFlags::NoUseSysCreds ) ) EnableUseSysCredsControls_Impl( m_pUseSysCredsCB->IsChecked() ); SetRequest(); diff --git a/uui/source/logindlg.hxx b/uui/source/logindlg.hxx index 01bd2d8..8b6e773 100644 --- a/uui/source/logindlg.hxx +++ b/uui/source/logindlg.hxx @@ -24,17 +24,24 @@ #include <vcl/dialog.hxx> #include <vcl/edit.hxx> #include <vcl/fixed.hxx> +#include <o3tl/typed_flags_set.hxx> -#define LF_NO_PATH 0x0001 // hide "path" -#define LF_NO_USERNAME 0x0002 // hide "name" -#define LF_NO_PASSWORD 0x0004 // hide "password" -#define LF_NO_SAVEPASSWORD 0x0008 // hide "save password" -#define LF_NO_ERRORTEXT 0x0010 // hide message -#define LF_PATH_READONLY 0x0020 // "path" readonly -#define LF_USERNAME_READONLY 0x0040 // "name" readonly -#define LF_NO_ACCOUNT 0x0080 // hide "account" -#define LF_NO_USESYSCREDS 0x0100 // hide "use system credentials" +enum class LoginFlags { + NONE = 0x0000, + NoPath = 0x0001, // hide "path" + NoUsername = 0x0002, // hide "name" + NoPassword = 0x0004, // hide "password" + NoSavePassword = 0x0008, // hide "save password" + NoErrorText = 0x0010, // hide message + PathReadonly = 0x0020, // "path" readonly + UsernameReadonly = 0x0040, // "name" readonly + NoAccount = 0x0080, // hide "account" + NoUseSysCreds = 0x0100, // hide "use system credentials" +}; +namespace o3tl { + template<> struct typed_flags<LoginFlags> : is_typed_flags<LoginFlags, 0x01ff> {}; +} class LoginDialog : public ModalDialog @@ -57,7 +64,7 @@ class LoginDialog : public ModalDialog OUString m_server; OUString m_realm; - void HideControls_Impl( sal_uInt16 nFlags ); + void HideControls_Impl( LoginFlags nFlags ); void EnableUseSysCredsControls_Impl( bool bUseSysCredsEnabled ); void SetRequest(); @@ -66,7 +73,7 @@ class LoginDialog : public ModalDialog DECL_LINK(UseSysCredsHdl_Impl, Button*, void); public: - LoginDialog(vcl::Window* pParent, sal_uInt16 nFlags, + LoginDialog(vcl::Window* pParent, LoginFlags nFlags, const OUString& rServer, const OUString &rRealm); virtual ~LoginDialog() override; virtual void dispose() override; commit 413e63c301a4a9ca8a4a85d03549fbe240142148 Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Fri Nov 25 13:40:16 2016 +0200 convert FILTERCFG constants to o3tl::typed_flags Change-Id: I01a4df6bb9b90177ce72c61fd0d611a63559166e diff --git a/unotools/source/config/fltrcfg.cxx b/unotools/source/config/fltrcfg.cxx index c26e4d5..32a61fd 100644 --- a/unotools/source/config/fltrcfg.cxx +++ b/unotools/source/config/fltrcfg.cxx @@ -20,6 +20,7 @@ #include <config_features.h> #include <o3tl/any.hxx> +#include <o3tl/typed_flags_set.hxx> #include <unotools/fltrcfg.hxx> #include <tools/debug.hxx> #include <tools/solar.h> @@ -30,28 +31,34 @@ using namespace utl; using namespace com::sun::star::uno; -#define FILTERCFG_WORD_CODE 0x0001 -#define FILTERCFG_WORD_STORAGE 0x0002 -#define FILTERCFG_EXCEL_CODE 0x0004 -#define FILTERCFG_EXCEL_STORAGE 0x0008 -#define FILTERCFG_PPOINT_CODE 0x0010 -#define FILTERCFG_PPOINT_STORAGE 0x0020 -#define FILTERCFG_MATH_LOAD 0x0100 -#define FILTERCFG_MATH_SAVE 0x0200 -#define FILTERCFG_WRITER_LOAD 0x0400 -#define FILTERCFG_WRITER_SAVE 0x0800 -#define FILTERCFG_CALC_LOAD 0x1000 -#define FILTERCFG_CALC_SAVE 0x2000 -#define FILTERCFG_IMPRESS_LOAD 0x4000 -#define FILTERCFG_IMPRESS_SAVE 0x8000 -#define FILTERCFG_EXCEL_EXECTBL 0x10000 -#define FILTERCFG_ENABLE_PPT_PREVIEW 0x20000 -#define FILTERCFG_ENABLE_EXCEL_PREVIEW 0x40000 -#define FILTERCFG_ENABLE_WORD_PREVIEW 0x80000 -#define FILTERCFG_USE_ENHANCED_FIELDS 0x100000 -#define FILTERCFG_WORD_WBCTBL 0x200000 -#define FILTERCFG_SMARTART_SHAPE_LOAD 0x400000 -#define FILTERCFG_CHAR_BACKGROUND_TO_HIGHLIGHTING 0x8000000 +enum class ConfigFlags { + NONE = 0x0000000, + WordCode = 0x0000001, + WordStorage = 0x0000002, + ExcelCode = 0x0000004, + ExcelStorage = 0x0000008, + PowerPointCode = 0x0000010, + PowerPointStorage = 0x0000020, + MathLoad = 0x0000100, + MathSave = 0x0000200, + WriterLoad = 0x0000400, + WriterSave = 0x0000800, + CalcLoad = 0x0001000, + CalcSave = 0x0002000, + ImpressLoad = 0x0004000, + ImpressSave = 0x0008000, + ExcelExecTbl = 0x0010000, + EnablePowerPointPreview = 0x0020000, + EnableExcelPreview = 0x0040000, + EnableWordPreview = 0x0080000, + UseEnhancedFields = 0x0100000, + WordWbctbl = 0x0200000, + SmartArtShapeLoad = 0x0400000, + CharBackgroundToHighlighting = 0x8000000 +}; +namespace o3tl { + template<> struct typed_flags<ConfigFlags> : is_typed_flags<ConfigFlags, 0x87fff3f> {}; +} class SvtAppFilterOptions_Impl : public utl::ConfigItem { @@ -213,7 +220,7 @@ void SvtCalcFilterOptions_Impl::Load() struct SvtFilterOptions_Impl { - sal_uLong nFlags; + ConfigFlags nFlags; SvtWriterFilterOptions_Impl aWriterCfg; SvtCalcFilterOptions_Impl aCalcCfg; SvtAppFilterOptions_Impl aImpressCfg; @@ -223,28 +230,28 @@ struct SvtFilterOptions_Impl aCalcCfg("Office.Calc/Filter/Import/VBA"), aImpressCfg("Office.Impress/Filter/Import/VBA") { - nFlags = FILTERCFG_WORD_CODE | - FILTERCFG_WORD_STORAGE | - FILTERCFG_EXCEL_CODE | - FILTERCFG_EXCEL_STORAGE | - FILTERCFG_PPOINT_CODE | - FILTERCFG_PPOINT_STORAGE | - FILTERCFG_MATH_LOAD | - FILTERCFG_MATH_SAVE | - FILTERCFG_WRITER_LOAD | - FILTERCFG_WRITER_SAVE | - FILTERCFG_CALC_LOAD | - FILTERCFG_CALC_SAVE | - FILTERCFG_IMPRESS_LOAD | - FILTERCFG_IMPRESS_SAVE | - FILTERCFG_USE_ENHANCED_FIELDS | - FILTERCFG_SMARTART_SHAPE_LOAD | - FILTERCFG_CHAR_BACKGROUND_TO_HIGHLIGHTING; + nFlags = ConfigFlags::WordCode | + ConfigFlags::WordStorage | + ConfigFlags::ExcelCode | + ConfigFlags::ExcelStorage | + ConfigFlags::PowerPointCode | + ConfigFlags::PowerPointStorage | + ConfigFlags::MathLoad | + ConfigFlags::MathSave | + ConfigFlags::WriterLoad | + ConfigFlags::WriterSave | + ConfigFlags::CalcLoad | + ConfigFlags::CalcSave | + ConfigFlags::ImpressLoad | + ConfigFlags::ImpressSave | + ConfigFlags::UseEnhancedFields | + ConfigFlags::SmartArtShapeLoad | + ConfigFlags::CharBackgroundToHighlighting; Load(); } - void SetFlag( sal_uLong nFlag, bool bSet ); - bool IsFlag( sal_uLong nFlag ) const; + void SetFlag( ConfigFlags nFlag, bool bSet ); + bool IsFlag( ConfigFlags nFlag ) const; void Load() { aWriterCfg.Load(); @@ -253,18 +260,18 @@ struct SvtFilterOptions_Impl } }; -void SvtFilterOptions_Impl::SetFlag( sal_uLong nFlag, bool bSet ) +void SvtFilterOptions_Impl::SetFlag( ConfigFlags nFlag, bool bSet ) { switch(nFlag) { - case FILTERCFG_WORD_CODE: aWriterCfg.SetLoad(bSet);break; - case FILTERCFG_WORD_STORAGE: aWriterCfg.SetSave(bSet);break; - case FILTERCFG_WORD_WBCTBL: aWriterCfg.SetLoadExecutable(bSet);break; - case FILTERCFG_EXCEL_CODE: aCalcCfg.SetLoad(bSet);break; - case FILTERCFG_EXCEL_STORAGE: aCalcCfg.SetSave(bSet);break; - case FILTERCFG_EXCEL_EXECTBL: aCalcCfg.SetLoadExecutable(bSet);break; - case FILTERCFG_PPOINT_CODE: aImpressCfg.SetLoad(bSet);break; - case FILTERCFG_PPOINT_STORAGE: aImpressCfg.SetSave(bSet);break; + case ConfigFlags::WordCode: aWriterCfg.SetLoad(bSet);break; + case ConfigFlags::WordStorage: aWriterCfg.SetSave(bSet);break; + case ConfigFlags::WordWbctbl: aWriterCfg.SetLoadExecutable(bSet);break; + case ConfigFlags::ExcelCode: aCalcCfg.SetLoad(bSet);break; + case ConfigFlags::ExcelStorage: aCalcCfg.SetSave(bSet);break; + case ConfigFlags::ExcelExecTbl: aCalcCfg.SetLoadExecutable(bSet);break; + case ConfigFlags::PowerPointCode: aImpressCfg.SetLoad(bSet);break; + case ConfigFlags::PowerPointStorage: aImpressCfg.SetSave(bSet);break; default: if( bSet ) nFlags |= nFlag; @@ -273,21 +280,21 @@ void SvtFilterOptions_Impl::SetFlag( sal_uLong nFlag, bool bSet ) } } -bool SvtFilterOptions_Impl::IsFlag( sal_uLong nFlag ) const +bool SvtFilterOptions_Impl::IsFlag( ConfigFlags nFlag ) const { bool bRet; switch(nFlag) { - case FILTERCFG_WORD_CODE : bRet = aWriterCfg.IsLoad();break; - case FILTERCFG_WORD_STORAGE : bRet = aWriterCfg.IsSave();break; - case FILTERCFG_WORD_WBCTBL : bRet = aWriterCfg.IsLoadExecutable();break; - case FILTERCFG_EXCEL_CODE : bRet = aCalcCfg.IsLoad();break; - case FILTERCFG_EXCEL_STORAGE : bRet = aCalcCfg.IsSave();break; - case FILTERCFG_EXCEL_EXECTBL : bRet = aCalcCfg.IsLoadExecutable();break; - case FILTERCFG_PPOINT_CODE : bRet = aImpressCfg.IsLoad();break; - case FILTERCFG_PPOINT_STORAGE : bRet = aImpressCfg.IsSave();break; + case ConfigFlags::WordCode : bRet = aWriterCfg.IsLoad();break; + case ConfigFlags::WordStorage : bRet = aWriterCfg.IsSave();break; + case ConfigFlags::WordWbctbl : bRet = aWriterCfg.IsLoadExecutable();break; + case ConfigFlags::ExcelCode : bRet = aCalcCfg.IsLoad();break; + case ConfigFlags::ExcelStorage : bRet = aCalcCfg.IsSave();break; + case ConfigFlags::ExcelExecTbl : bRet = aCalcCfg.IsLoadExecutable();break; + case ConfigFlags::PowerPointCode : bRet = aImpressCfg.IsLoad();break; + case ConfigFlags::PowerPointStorage : bRet = aImpressCfg.IsSave();break; default: - bRet = 0 != (nFlags & nFlag ); + bRet = bool(nFlags & nFlag ); } return bRet; } @@ -339,25 +346,25 @@ SvtFilterOptions::~SvtFilterOptions() { } -static sal_uLong lcl_GetFlag(sal_Int32 nProp) +static ConfigFlags lcl_GetFlag(sal_Int32 nProp) { - sal_uLong nFlag = 0; + ConfigFlags nFlag = ConfigFlags::NONE; switch(nProp) { - case 0: nFlag = FILTERCFG_MATH_LOAD; break; - case 1: nFlag = FILTERCFG_WRITER_LOAD; break; - case 2: nFlag = FILTERCFG_IMPRESS_LOAD; break; - case 3: nFlag = FILTERCFG_CALC_LOAD; break; - case 4: nFlag = FILTERCFG_MATH_SAVE; break; - case 5: nFlag = FILTERCFG_WRITER_SAVE; break; - case 6: nFlag = FILTERCFG_IMPRESS_SAVE; break; - case 7: nFlag = FILTERCFG_CALC_SAVE; break; - case 8: nFlag = FILTERCFG_ENABLE_PPT_PREVIEW; break; - case 9: nFlag = FILTERCFG_ENABLE_EXCEL_PREVIEW; break; - case 10: nFlag = FILTERCFG_ENABLE_WORD_PREVIEW; break; - case 11: nFlag = FILTERCFG_USE_ENHANCED_FIELDS; break; - case 12: nFlag = FILTERCFG_SMARTART_SHAPE_LOAD; break; - case 13: nFlag = FILTERCFG_CHAR_BACKGROUND_TO_HIGHLIGHTING; break; + case 0: nFlag = ConfigFlags::MathLoad; break; + case 1: nFlag = ConfigFlags::WriterLoad; break; + case 2: nFlag = ConfigFlags::ImpressLoad; break; + case 3: nFlag = ConfigFlags::CalcLoad; break; + case 4: nFlag = ConfigFlags::MathSave; break; + case 5: nFlag = ConfigFlags::WriterSave; break; + case 6: nFlag = ConfigFlags::ImpressSave; break; + case 7: nFlag = ConfigFlags::CalcSave; break; + case 8: nFlag = ConfigFlags::EnablePowerPointPreview; break; + case 9: nFlag = ConfigFlags::EnableExcelPreview; break; + case 10: nFlag = ConfigFlags::EnableWordPreview; break; + case 11: nFlag = ConfigFlags::UseEnhancedFields; break; + case 12: nFlag = ConfigFlags::SmartArtShapeLoad; break; + case 13: nFlag = ConfigFlags::CharBackgroundToHighlighting; break; default: OSL_FAIL("illegal value"); } @@ -377,7 +384,7 @@ void SvtFilterOptions::ImplCommit() for(int nProp = 0; nProp < aNames.getLength(); nProp++) { - sal_uLong nFlag = lcl_GetFlag(nProp); + ConfigFlags nFlag = lcl_GetFlag(nProp); pValues[nProp] <<= pImpl->IsFlag(nFlag); } @@ -398,7 +405,7 @@ void SvtFilterOptions::Load() if(pValues[nProp].hasValue()) { bool bVal = *o3tl::doAccess<bool>(pValues[nProp]); - sal_uLong nFlag = lcl_GetFlag(nProp); + ConfigFlags nFlag = lcl_GetFlag(nProp); pImpl->SetFlag( nFlag, bVal); } } @@ -407,193 +414,193 @@ void SvtFilterOptions::Load() void SvtFilterOptions::SetLoadWordBasicCode( bool bFlag ) { - pImpl->SetFlag( FILTERCFG_WORD_CODE, bFlag ); + pImpl->SetFlag( ConfigFlags::WordCode, bFlag ); SetModified(); } bool SvtFilterOptions::IsLoadWordBasicCode() const { - return pImpl->IsFlag( FILTERCFG_WORD_CODE ); + return pImpl->IsFlag( ConfigFlags::WordCode ); } void SvtFilterOptions::SetLoadWordBasicExecutable( bool bFlag ) { - pImpl->SetFlag( FILTERCFG_WORD_WBCTBL, bFlag ); + pImpl->SetFlag( ConfigFlags::WordWbctbl, bFlag ); SetModified(); } bool SvtFilterOptions::IsLoadWordBasicExecutable() const { - return pImpl->IsFlag( FILTERCFG_WORD_WBCTBL ); + return pImpl->IsFlag( ConfigFlags::WordWbctbl ); } void SvtFilterOptions::SetLoadWordBasicStorage( bool bFlag ) { - pImpl->SetFlag( FILTERCFG_WORD_STORAGE, bFlag ); + pImpl->SetFlag( ConfigFlags::WordStorage, bFlag ); SetModified(); } bool SvtFilterOptions::IsLoadWordBasicStorage() const { - return pImpl->IsFlag( FILTERCFG_WORD_STORAGE ); + return pImpl->IsFlag( ConfigFlags::WordStorage ); } void SvtFilterOptions::SetLoadExcelBasicCode( bool bFlag ) { - pImpl->SetFlag( FILTERCFG_EXCEL_CODE, bFlag ); + pImpl->SetFlag( ConfigFlags::ExcelCode, bFlag ); SetModified(); } bool SvtFilterOptions::IsLoadExcelBasicCode() const { - return pImpl->IsFlag( FILTERCFG_EXCEL_CODE ); + return pImpl->IsFlag( ConfigFlags::ExcelCode ); } void SvtFilterOptions::SetLoadExcelBasicExecutable( bool bFlag ) { - pImpl->SetFlag( FILTERCFG_EXCEL_EXECTBL, bFlag ); + pImpl->SetFlag( ConfigFlags::ExcelExecTbl, bFlag ); SetModified(); } bool SvtFilterOptions::IsLoadExcelBasicExecutable() const { - return pImpl->IsFlag( FILTERCFG_EXCEL_EXECTBL ); + return pImpl->IsFlag( ConfigFlags::ExcelExecTbl ); } void SvtFilterOptions::SetLoadExcelBasicStorage( bool bFlag ) { - pImpl->SetFlag( FILTERCFG_EXCEL_STORAGE, bFlag ); + pImpl->SetFlag( ConfigFlags::ExcelStorage, bFlag ); SetModified(); } bool SvtFilterOptions::IsLoadExcelBasicStorage() const { - return pImpl->IsFlag( FILTERCFG_EXCEL_STORAGE ); + return pImpl->IsFlag( ConfigFlags::ExcelStorage ); } void SvtFilterOptions::SetLoadPPointBasicCode( bool bFlag ) { - pImpl->SetFlag( FILTERCFG_PPOINT_CODE, bFlag ); + pImpl->SetFlag( ConfigFlags::PowerPointCode, bFlag ); SetModified(); } bool SvtFilterOptions::IsLoadPPointBasicCode() const { - return pImpl->IsFlag( FILTERCFG_PPOINT_CODE ); + return pImpl->IsFlag( ConfigFlags::PowerPointCode ); } void SvtFilterOptions::SetLoadPPointBasicStorage( bool bFlag ) { - pImpl->SetFlag( FILTERCFG_PPOINT_STORAGE, bFlag ); + pImpl->SetFlag( ConfigFlags::PowerPointStorage, bFlag ); SetModified(); } bool SvtFilterOptions::IsLoadPPointBasicStorage() const { - return pImpl->IsFlag( FILTERCFG_PPOINT_STORAGE ); + return pImpl->IsFlag( ConfigFlags::PowerPointStorage ); } bool SvtFilterOptions::IsMathType2Math() const { - return pImpl->IsFlag( FILTERCFG_MATH_LOAD ); + return pImpl->IsFlag( ConfigFlags::MathLoad ); } void SvtFilterOptions::SetMathType2Math( bool bFlag ) { - pImpl->SetFlag( FILTERCFG_MATH_LOAD, bFlag ); + pImpl->SetFlag( ConfigFlags::MathLoad, bFlag ); SetModified(); } bool SvtFilterOptions::IsMath2MathType() const { - return pImpl->IsFlag( FILTERCFG_MATH_SAVE ); + return pImpl->IsFlag( ConfigFlags::MathSave ); } void SvtFilterOptions::SetMath2MathType( bool bFlag ) { - pImpl->SetFlag( FILTERCFG_MATH_SAVE, bFlag ); + pImpl->SetFlag( ConfigFlags::MathSave, bFlag ); SetModified(); } bool SvtFilterOptions::IsWinWord2Writer() const { - return pImpl->IsFlag( FILTERCFG_WRITER_LOAD ); + return pImpl->IsFlag( ConfigFlags::WriterLoad ); } void SvtFilterOptions::SetWinWord2Writer( bool bFlag ) { - pImpl->SetFlag( FILTERCFG_WRITER_LOAD, bFlag ); + pImpl->SetFlag( ConfigFlags::WriterLoad, bFlag ); SetModified(); } bool SvtFilterOptions::IsWriter2WinWord() const { - return pImpl->IsFlag( FILTERCFG_WRITER_SAVE ); + return pImpl->IsFlag( ConfigFlags::WriterSave ); } void SvtFilterOptions::SetWriter2WinWord( bool bFlag ) { - pImpl->SetFlag( FILTERCFG_WRITER_SAVE, bFlag ); + pImpl->SetFlag( ConfigFlags::WriterSave, bFlag ); SetModified(); } bool SvtFilterOptions::IsUseEnhancedFields() const { - return pImpl->IsFlag( FILTERCFG_USE_ENHANCED_FIELDS ); + return pImpl->IsFlag( ConfigFlags::UseEnhancedFields ); } bool SvtFilterOptions::IsExcel2Calc() const { - return pImpl->IsFlag( FILTERCFG_CALC_LOAD ); + return pImpl->IsFlag( ConfigFlags::CalcLoad ); } void SvtFilterOptions::SetExcel2Calc( bool bFlag ) { - pImpl->SetFlag( FILTERCFG_CALC_LOAD, bFlag ); + pImpl->SetFlag( ConfigFlags::CalcLoad, bFlag ); SetModified(); } bool SvtFilterOptions::IsCalc2Excel() const { - return pImpl->IsFlag( FILTERCFG_CALC_SAVE ); + return pImpl->IsFlag( ConfigFlags::CalcSave ); } void SvtFilterOptions::SetCalc2Excel( bool bFlag ) { - pImpl->SetFlag( FILTERCFG_CALC_SAVE, bFlag ); + pImpl->SetFlag( ConfigFlags::CalcSave, bFlag ); SetModified(); } bool SvtFilterOptions::IsPowerPoint2Impress() const { - return pImpl->IsFlag( FILTERCFG_IMPRESS_LOAD ); + return pImpl->IsFlag( ConfigFlags::ImpressLoad ); } void SvtFilterOptions::SetPowerPoint2Impress( bool bFlag ) { - pImpl->SetFlag( FILTERCFG_IMPRESS_LOAD, bFlag ); + pImpl->SetFlag( ConfigFlags::ImpressLoad, bFlag ); SetModified(); } bool SvtFilterOptions::IsImpress2PowerPoint() const { - return pImpl->IsFlag( FILTERCFG_IMPRESS_SAVE ); + return pImpl->IsFlag( ConfigFlags::ImpressSave ); } void SvtFilterOptions::SetImpress2PowerPoint( bool bFlag ) { - pImpl->SetFlag( FILTERCFG_IMPRESS_SAVE, bFlag ); + pImpl->SetFlag( ConfigFlags::ImpressSave, bFlag ); SetModified(); } bool SvtFilterOptions::IsSmartArt2Shape() const { - return pImpl->IsFlag( FILTERCFG_SMARTART_SHAPE_LOAD ); + return pImpl->IsFlag( ConfigFlags::SmartArtShapeLoad ); } void SvtFilterOptions::SetSmartArt2Shape( bool bFlag ) { - pImpl->SetFlag( FILTERCFG_SMARTART_SHAPE_LOAD, bFlag ); + pImpl->SetFlag( ConfigFlags::SmartArtShapeLoad, bFlag ); SetModified(); } @@ -612,39 +619,39 @@ SvtFilterOptions& SvtFilterOptions::Get() bool SvtFilterOptions::IsEnablePPTPreview() const { - return pImpl->IsFlag( FILTERCFG_ENABLE_PPT_PREVIEW ); + return pImpl->IsFlag( ConfigFlags::EnablePowerPointPreview ); } bool SvtFilterOptions::IsEnableCalcPreview() const { - return pImpl->IsFlag( FILTERCFG_ENABLE_EXCEL_PREVIEW ); + return pImpl->IsFlag( ConfigFlags::EnableExcelPreview ); } bool SvtFilterOptions::IsEnableWordPreview() const { - return pImpl->IsFlag( FILTERCFG_ENABLE_WORD_PREVIEW ); + return pImpl->IsFlag( ConfigFlags::EnableWordPreview ); } bool SvtFilterOptions::IsCharBackground2Highlighting() const { - return pImpl->IsFlag( FILTERCFG_CHAR_BACKGROUND_TO_HIGHLIGHTING ); + return pImpl->IsFlag( ConfigFlags::CharBackgroundToHighlighting ); } bool SvtFilterOptions::IsCharBackground2Shading() const { - return !pImpl->IsFlag( FILTERCFG_CHAR_BACKGROUND_TO_HIGHLIGHTING ); + return !pImpl->IsFlag( ConfigFlags::CharBackgroundToHighlighting ); } void SvtFilterOptions::SetCharBackground2Highlighting() { - pImpl->SetFlag( FILTERCFG_CHAR_BACKGROUND_TO_HIGHLIGHTING, true ); + pImpl->SetFlag( ConfigFlags::CharBackgroundToHighlighting, true ); SetModified(); } void SvtFilterOptions::SetCharBackground2Shading() { - pImpl->SetFlag( FILTERCFG_CHAR_BACKGROUND_TO_HIGHLIGHTING, false ); + pImpl->SetFlag( ConfigFlags::CharBackgroundToHighlighting, false ); SetModified(); } commit d39bb268eaf3c3aeca2492a6ef8c0c9d0163ec3d Author: yossizahn <yossiz...@gmail.com> Date: Fri Nov 25 02:23:40 2016 +0300 Correct spelling of "kislev" for he_IL locale data See e.g. https://he.wikipedia.org/wiki/%D7%9B%D7%A1%D7%9C%D7%95 Change-Id: I3bf935db50037ff418f269d81004bce4e7388097 Reviewed-on: https://gerrit.libreoffice.org/31178 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Eike Rathke <er...@redhat.com> diff --git a/i18npool/source/localedata/data/he_IL.xml b/i18npool/source/localedata/data/he_IL.xml index 541bfe8..8b8f6e3 100644 --- a/i18npool/source/localedata/data/he_IL.xml +++ b/i18npool/source/localedata/data/he_IL.xml @@ -374,8 +374,8 @@ </Month> <Month> <MonthID>Kislev</MonthID> - <DefaultAbbrvName>×ס×××</DefaultAbbrvName> - <DefaultFullName>×ס×××</DefaultFullName> + <DefaultAbbrvName>×ס××</DefaultAbbrvName> + <DefaultFullName>×ס××</DefaultFullName> </Month> <Month> <MonthID>Tevet</MonthID> commit f1eb0bf75296ee9c59241507a1e03f4de770afa1 Author: Stephan Bergmann <sberg...@redhat.com> Date: Fri Nov 25 11:24:12 2016 +0100 Clean up CLANG_VERSION check Change-Id: Idfdffd73e9029216775d2a6ad46293ee1a4f1308 diff --git a/compilerplugins/clang/test/datamembershadow.cxx b/compilerplugins/clang/test/datamembershadow.cxx index 24a0da9..5965421 100644 --- a/compilerplugins/clang/test/datamembershadow.cxx +++ b/compilerplugins/clang/test/datamembershadow.cxx @@ -7,9 +7,12 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include <sal/config.h> + +#include <config_clang.h> // '#if CLANG_VERSION >= 30800' covers large parts of compilerplugins/clang/datamembershadow.cxx -#if (__clang_major__ == 3 && __clang_minor__ >= 8) || __clang_major__ > 3 +#if CLANG_VERSION >= 30800 struct Bar { int x; // expected-note {{superclass member here [loplugin:datamembershadow]}} }; commit bf53daa49aee46c1e0a5c4117841bc5b9b992f6d Author: Stephan Bergmann <sberg...@redhat.com> Date: Fri Nov 25 11:22:14 2016 +0100 Clean up PPCallbacks compatiblity fix Change-Id: I91f1db18b7876c4ecc30f7f97283e0ef0369eba5 diff --git a/compilerplugins/clang/checkconfigmacros.cxx b/compilerplugins/clang/checkconfigmacros.cxx index 1a92765..3d6dc98 100644 --- a/compilerplugins/clang/checkconfigmacros.cxx +++ b/compilerplugins/clang/checkconfigmacros.cxx @@ -35,20 +35,10 @@ class CheckConfigMacros explicit CheckConfigMacros( const InstantiationData& data ); virtual void run() override; virtual void MacroDefined( const Token& macroToken, const MacroDirective* info ) override; -#if CLANG_VERSION < 30700 - virtual void MacroUndefined( const Token& macroToken, const MacroDirective* info ) override; - virtual void Ifdef( SourceLocation location, const Token& macroToken, const MacroDirective* info ) override; - virtual void Ifndef( SourceLocation location, const Token& macroToken, const MacroDirective* info ) override; -#else - virtual void MacroUndefined( const Token& macroToken, const MacroDefinition& info ) override; - virtual void Ifdef( SourceLocation location, const Token& macroToken, const MacroDefinition& info ) override; - virtual void Ifndef( SourceLocation location, const Token& macroToken, const MacroDefinition& info ) override; -#endif -#if CLANG_VERSION < 30700 - virtual void Defined( const Token& macroToken, const MacroDirective* info, SourceRange Range ) override; -#else - virtual void Defined( const Token& macroToken, const MacroDefinition& info, SourceRange Range ) override; -#endif + virtual void MacroUndefined( const Token& macroToken, compat::MacroDefinitionParam ) override; + virtual void Ifdef( SourceLocation location, const Token& macroToken, compat::MacroDefinitionParam ) override; + virtual void Ifndef( SourceLocation location, const Token& macroToken, compat::MacroDefinitionParam ) override; + virtual void Defined( const Token& macroToken, compat::MacroDefinitionParam, SourceRange Range ) override; enum { isPPCallback = true }; private: void checkMacro( const Token& macroToken, SourceLocation location ); @@ -79,38 +69,22 @@ void CheckConfigMacros::MacroDefined( const Token& macroToken, const MacroDirect } } -#if CLANG_VERSION < 30700 -void CheckConfigMacros::MacroUndefined( const Token& macroToken, const MacroDirective* ) -#else -void CheckConfigMacros::MacroUndefined( const Token& macroToken, const MacroDefinition& ) -#endif +void CheckConfigMacros::MacroUndefined( const Token& macroToken, compat::MacroDefinitionParam ) { configMacros.erase( macroToken.getIdentifierInfo()->getName()); } -#if CLANG_VERSION < 30700 -void CheckConfigMacros::Ifdef( SourceLocation location, const Token& macroToken, const MacroDirective* ) -#else -void CheckConfigMacros::Ifdef( SourceLocation location, const Token& macroToken, const MacroDefinition& ) -#endif +void CheckConfigMacros::Ifdef( SourceLocation location, const Token& macroToken, compat::MacroDefinitionParam ) { checkMacro( macroToken, location ); } -#if CLANG_VERSION < 30700 -void CheckConfigMacros::Ifndef( SourceLocation location, const Token& macroToken, const MacroDirective* ) -#else -void CheckConfigMacros::Ifndef( SourceLocation location, const Token& macroToken, const MacroDefinition& ) -#endif +void CheckConfigMacros::Ifndef( SourceLocation location, const Token& macroToken, compat::MacroDefinitionParam ) { checkMacro( macroToken, location ); } -#if CLANG_VERSION < 30700 -void CheckConfigMacros::Defined( const Token& macroToken, const MacroDirective* , SourceRange ) -#else -void CheckConfigMacros::Defined( const Token& macroToken, const MacroDefinition& , SourceRange ) -#endif +void CheckConfigMacros::Defined( const Token& macroToken, compat::MacroDefinitionParam , SourceRange ) { checkMacro( macroToken, macroToken.getLocation()); } diff --git a/compilerplugins/clang/compat.hxx b/compilerplugins/clang/compat.hxx index 063d0ce..28dbeec 100644 --- a/compilerplugins/clang/compat.hxx +++ b/compilerplugins/clang/compat.hxx @@ -179,6 +179,12 @@ inline std::unique_ptr<llvm::raw_fd_ostream> create_raw_fd_ostream( #endif } +#if CLANG_VERSION >= 30700 +using MacroDefinitionParam = clang::MacroDefinition const &; +#else +using MacroDefinitionParam = clang::MacroDirective const *; +#endif + inline void addPPCallbacks( clang::Preprocessor & preprocessor, clang::PPCallbacks * C) { diff --git a/compilerplugins/clang/oslendian.cxx b/compilerplugins/clang/oslendian.cxx index 2bac848..705a7bc 100644 --- a/compilerplugins/clang/oslendian.cxx +++ b/compilerplugins/clang/oslendian.cxx @@ -14,12 +14,6 @@ namespace { -#if CLANG_VERSION < 30700 -using MacroDefinitionParam = MacroDirective const *; -#else -using MacroDefinitionParam = MacroDefinition const &; -#endif - class OslEndian: public loplugin::Plugin, public PPCallbacks { public: explicit OslEndian(InstantiationData const & data): Plugin(data) { @@ -64,8 +58,8 @@ private: } } - void MacroUndefined(Token const & MacroNameTok, MacroDefinitionParam) - override + void MacroUndefined( + Token const & MacroNameTok, compat::MacroDefinitionParam) override { auto id = MacroNameTok.getIdentifierInfo()->getName(); if (id == "OSL_BIGENDIAN" || id == "OSL_LITENDIAN") { @@ -76,21 +70,23 @@ private: } } - void Defined(Token const & MacroNameTok, MacroDefinitionParam, SourceRange) + void Defined( + Token const & MacroNameTok, compat::MacroDefinitionParam, SourceRange) override { check(MacroNameTok); } - void Ifdef(SourceLocation, Token const & MacroNameTok, MacroDefinitionParam) - override + void Ifdef( + SourceLocation, Token const & MacroNameTok, + compat::MacroDefinitionParam) override { check(MacroNameTok); } void Ifndef( - SourceLocation, Token const & MacroNameTok, MacroDefinitionParam) - override + SourceLocation, Token const & MacroNameTok, + compat::MacroDefinitionParam) override { check(MacroNameTok); } commit d63f42bd2a5827a47e7aeae78dfb53da8c718934 Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Fri Nov 25 12:11:24 2016 +0200 declaration of nAllFlags shadows a member of 'this' [-Werror=shadow] Change-Id: Ifb5adba642e777e5d515c6088c128d31778ecaff diff --git a/sw/source/filter/html/htmlfly.cxx b/sw/source/filter/html/htmlfly.cxx index 14cd01e..700c7d7 100644 --- a/sw/source/filter/html/htmlfly.cxx +++ b/sw/source/filter/html/htmlfly.cxx @@ -37,13 +37,13 @@ using namespace css; SwHTMLPosFlyFrame::SwHTMLPosFlyFrame( const SwPosFlyFrame& rPosFly, const SdrObject *pSdrObj, - AllHtmlFlags nAllFlags ) : + AllHtmlFlags nFlags ) : pFrameFormat( &rPosFly.GetFormat() ), pSdrObject( pSdrObj ), pNdIdx( new SwNodeIndex( rPosFly.GetNdIndex() ) ), nOrdNum( rPosFly.GetOrdNum() ), nContentIdx( 0 ), - nAllFlags( nAllFlags ) + nAllFlags( nFlags ) { const SwFormatAnchor& rAnchor = rPosFly.GetFormat().GetAnchor(); if ((FLY_AT_CHAR == rAnchor.GetAnchorId()) && commit b19e71231322a6790759135f3aaab6499d6293dd Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Fri Nov 25 12:02:14 2016 +0200 convert ENABLE flags to o3tl::typed_flags Change-Id: I47cb052c7437e127c237beee0f2d95948b7c3ad1 diff --git a/sw/source/uibase/inc/conttree.hxx b/sw/source/uibase/inc/conttree.hxx index 98aedef..86068a1 100644 --- a/sw/source/uibase/inc/conttree.hxx +++ b/sw/source/uibase/inc/conttree.hxx @@ -28,6 +28,7 @@ #include <memory> #include <o3tl/enumarray.hxx> +#include <o3tl/typed_flags_set.hxx> class SwWrtShell; class SwContentType; @@ -50,6 +51,22 @@ enum class EditEntryMode RENAME = 5, }; +// Flags for PopupMenu-enable/disable +enum class MenuEnableFlags { + NONE = 0x0000, + InsertIdx = 0x0001, + InsertFile = 0x0002, + InsertText = 0x0004, + Edit = 0x0008, + Delete = 0x0010, + Update = 0x0020, + UpdateSel = 0x0040, + EditLink = 0x0080 +}; +namespace o3tl { + template<> struct typed_flags<MenuEnableFlags> : is_typed_flags<MenuEnableFlags, 0x00ff> {}; +} + /** TreeListBox for content indicator */ class SwContentTree : public SvTreeListBox @@ -318,7 +335,7 @@ protected: void OpenDoc(const SwGlblDocContent*); void GotoContent(const SwGlblDocContent*); - sal_uInt16 GetEnableFlags() const; + MenuEnableFlags GetEnableFlags() const; static void SetShowShell(const SfxObjectShell*pSet) {pShowShell = pSet;} DECL_STATIC_LINK(SwGlobalTree, ShowFrameHdl, void*, void); diff --git a/sw/source/uibase/utlui/glbltree.cxx b/sw/source/uibase/utlui/glbltree.cxx index 06f44ef..649517d 100644 --- a/sw/source/uibase/utlui/glbltree.cxx +++ b/sw/source/uibase/utlui/glbltree.cxx @@ -81,16 +81,6 @@ using namespace ::com::sun::star::uno; #define GLOBAL_UPDATE_TIMEOUT 2000 -// Flags for PopupMenu-enable/disable -#define ENABLE_INSERT_IDX 0x0001 -#define ENABLE_INSERT_FILE 0x0002 -#define ENABLE_INSERT_TEXT 0x0004 -#define ENABLE_EDIT 0x0008 -#define ENABLE_DELETE 0x0010 -#define ENABLE_UPDATE 0x0020 -#define ENABLE_UPDATE_SEL 0x0040 -#define ENABLE_EDIT_LINK 0x0080 - // TabPos: push to left #define GLBL_TABPOS_SUB 5 @@ -338,7 +328,7 @@ VclPtr<PopupMenu> SwGlobalTree::CreateContextMenu() if(pActiveShell && !pActiveShell->GetView().GetDocShell()->IsReadOnly()) { - const sal_uInt16 nEnableFlags = GetEnableFlags(); + const MenuEnableFlags nEnableFlags = GetEnableFlags(); pPop = VclPtr<PopupMenu>::Create(); VclPtrInstance<PopupMenu> pSubPop1; VclPtrInstance<PopupMenu> pSubPop2; @@ -348,7 +338,7 @@ VclPtr<PopupMenu> SwGlobalTree::CreateContextMenu() pSubPop2->InsertItem( i, aContextStrings[STR_UPDATE_SEL - STR_GLOBAL_CONTEXT_FIRST - CTX_UPDATE_SEL+ i] ); pSubPop2->SetHelpId(i, aHelpForMenu[i]); } - pSubPop2->EnableItem(CTX_UPDATE_SEL, 0 != (nEnableFlags & ENABLE_UPDATE_SEL)); + pSubPop2->EnableItem(CTX_UPDATE_SEL, bool(nEnableFlags & MenuEnableFlags::UpdateSel)); pSubPop1->InsertItem(CTX_INSERT_ANY_INDEX, aContextStrings[STR_INDEX - STR_GLOBAL_CONTEXT_FIRST]); pSubPop1->SetHelpId(CTX_INSERT_ANY_INDEX, aHelpForMenu[CTX_INSERT_ANY_INDEX]); @@ -363,7 +353,7 @@ VclPtr<PopupMenu> SwGlobalTree::CreateContextMenu() pPop->SetHelpId(CTX_UPDATE, aHelpForMenu[CTX_UPDATE]); pPop->InsertItem(CTX_EDIT, aContextStrings[STR_EDIT_CONTENT - STR_GLOBAL_CONTEXT_FIRST]); pPop->SetHelpId(CTX_EDIT, aHelpForMenu[CTX_EDIT]); - if(nEnableFlags&ENABLE_EDIT_LINK) + if(nEnableFlags&MenuEnableFlags::EditLink) { pPop->InsertItem(CTX_EDIT_LINK, aContextStrings[STR_EDIT_LINK - STR_GLOBAL_CONTEXT_FIRST]); pPop->SetHelpId(CTX_EDIT_LINK, aHelpForMenu[CTX_EDIT_LINK]); @@ -375,15 +365,15 @@ VclPtr<PopupMenu> SwGlobalTree::CreateContextMenu() pPop->SetHelpId(CTX_DELETE, aHelpForMenu[CTX_DELETE]); //disabling if applicable - pSubPop1->EnableItem(CTX_INSERT_ANY_INDEX, 0 != (nEnableFlags & ENABLE_INSERT_IDX )); - pSubPop1->EnableItem(CTX_INSERT_TEXT, 0 != (nEnableFlags & ENABLE_INSERT_TEXT)); - pSubPop1->EnableItem(CTX_INSERT_FILE, 0 != (nEnableFlags & ENABLE_INSERT_FILE)); - pSubPop1->EnableItem(CTX_INSERT_NEW_FILE, 0 != (nEnableFlags & ENABLE_INSERT_FILE)); + pSubPop1->EnableItem(CTX_INSERT_ANY_INDEX, bool(nEnableFlags & MenuEnableFlags::InsertIdx )); + pSubPop1->EnableItem(CTX_INSERT_TEXT, bool(nEnableFlags & MenuEnableFlags::InsertText)); + pSubPop1->EnableItem(CTX_INSERT_FILE, bool(nEnableFlags & MenuEnableFlags::InsertFile)); + pSubPop1->EnableItem(CTX_INSERT_NEW_FILE, bool(nEnableFlags & MenuEnableFlags::InsertFile)); - pPop->EnableItem(CTX_UPDATE, 0 != (nEnableFlags & ENABLE_UPDATE)); - pPop->EnableItem(CTX_INSERT, 0 != (nEnableFlags & ENABLE_INSERT_IDX)); - pPop->EnableItem(CTX_EDIT, 0 != (nEnableFlags & ENABLE_EDIT)); - pPop->EnableItem(CTX_DELETE, 0 != (nEnableFlags & ENABLE_DELETE)); + pPop->EnableItem(CTX_UPDATE, bool(nEnableFlags & MenuEnableFlags::Update)); + pPop->EnableItem(CTX_INSERT, bool(nEnableFlags & MenuEnableFlags::InsertIdx)); + pPop->EnableItem(CTX_EDIT, bool(nEnableFlags & MenuEnableFlags::Edit)); + pPop->EnableItem(CTX_DELETE, bool(nEnableFlags & MenuEnableFlags::Delete)); pPop->SetPopupMenu( CTX_INSERT, pSubPop1 ); pPop->SetPopupMenu( CTX_UPDATE, pSubPop2 ); @@ -393,7 +383,7 @@ VclPtr<PopupMenu> SwGlobalTree::CreateContextMenu() void SwGlobalTree::TbxMenuHdl(sal_uInt16 nTbxId, ToolBox* pBox) { - const sal_uInt16 nEnableFlags = GetEnableFlags(); + const MenuEnableFlags nEnableFlags = GetEnableFlags(); const OUString sCommand(pBox->GetItemCommand(nTbxId)); if (sCommand == "insert") { @@ -403,10 +393,10 @@ void SwGlobalTree::TbxMenuHdl(sal_uInt16 nTbxId, ToolBox* pBox) pMenu->InsertItem( i, aContextStrings[STR_INDEX - STR_GLOBAL_CONTEXT_FIRST - CTX_INSERT_ANY_INDEX + i] ); pMenu->SetHelpId(i, aHelpForMenu[i] ); } - pMenu->EnableItem(CTX_INSERT_ANY_INDEX, 0 != (nEnableFlags & ENABLE_INSERT_IDX )); - pMenu->EnableItem(CTX_INSERT_TEXT, 0 != (nEnableFlags & ENABLE_INSERT_TEXT)); - pMenu->EnableItem(CTX_INSERT_FILE, 0 != (nEnableFlags & ENABLE_INSERT_FILE)); - pMenu->EnableItem(CTX_INSERT_NEW_FILE, 0 != (nEnableFlags & ENABLE_INSERT_FILE)); + pMenu->EnableItem(CTX_INSERT_ANY_INDEX, bool(nEnableFlags & MenuEnableFlags::InsertIdx )); + pMenu->EnableItem(CTX_INSERT_TEXT, bool(nEnableFlags & MenuEnableFlags::InsertText)); + pMenu->EnableItem(CTX_INSERT_FILE, bool(nEnableFlags & MenuEnableFlags::InsertFile)); + pMenu->EnableItem(CTX_INSERT_NEW_FILE, bool(nEnableFlags & MenuEnableFlags::InsertFile)); pMenu->SetSelectHdl(LINK(this, SwGlobalTree, PopupHdl)); pMenu->Execute(pBox, pBox->GetItemRect(nTbxId)); pMenu.disposeAndClear(); @@ -421,7 +411,7 @@ void SwGlobalTree::TbxMenuHdl(sal_uInt16 nTbxId, ToolBox* pBox) pMenu->InsertItem( i, aContextStrings[STR_UPDATE_SEL - STR_GLOBAL_CONTEXT_FIRST - CTX_UPDATE_SEL+ i] ); pMenu->SetHelpId(i, aHelpForMenu[i] ); } - pMenu->EnableItem(CTX_UPDATE_SEL, 0 != (nEnableFlags & ENABLE_UPDATE_SEL)); + pMenu->EnableItem(CTX_UPDATE_SEL, bool(nEnableFlags & MenuEnableFlags::UpdateSel)); pMenu->SetSelectHdl(LINK(this, SwGlobalTree, PopupHdl)); pMenu->Execute(pBox, pBox->GetItemRect(nTbxId)); pMenu.disposeAndClear(); @@ -430,33 +420,33 @@ void SwGlobalTree::TbxMenuHdl(sal_uInt16 nTbxId, ToolBox* pBox) } } -sal_uInt16 SwGlobalTree::GetEnableFlags() const +MenuEnableFlags SwGlobalTree::GetEnableFlags() const { SvTreeListEntry* pEntry = FirstSelected(); sal_uLong nSelCount = GetSelectionCount(); sal_uLong nEntryCount = GetEntryCount(); SvTreeListEntry* pPrevEntry = pEntry ? Prev(pEntry) : nullptr; - sal_uInt16 nRet = 0; + MenuEnableFlags nRet = MenuEnableFlags::NONE; if(nSelCount == 1 || !nEntryCount) - nRet |= ENABLE_INSERT_IDX|ENABLE_INSERT_FILE; + nRet |= MenuEnableFlags::InsertIdx|MenuEnableFlags::InsertFile; if(nSelCount == 1) { - nRet |= ENABLE_EDIT; + nRet |= MenuEnableFlags::Edit; if (pEntry && static_cast<SwGlblDocContent*>(pEntry->GetUserData())->GetType() != GLBLDOC_UNKNOWN && (!pPrevEntry || static_cast<SwGlblDocContent*>(pPrevEntry->GetUserData())->GetType() != GLBLDOC_UNKNOWN)) - nRet |= ENABLE_INSERT_TEXT; + nRet |= MenuEnableFlags::InsertText; if (pEntry && GLBLDOC_SECTION == static_cast<SwGlblDocContent*>(pEntry->GetUserData())->GetType()) - nRet |= ENABLE_EDIT_LINK; + nRet |= MenuEnableFlags::EditLink; } else if(!nEntryCount) { - nRet |= ENABLE_INSERT_TEXT; + nRet |= MenuEnableFlags::InsertText; } if(nEntryCount) - nRet |= ENABLE_UPDATE|ENABLE_DELETE; + nRet |= MenuEnableFlags::Update|MenuEnableFlags::Delete; if(nSelCount) - nRet |= ENABLE_UPDATE_SEL; + nRet |= MenuEnableFlags::UpdateSel; return nRet; } commit 8cd2334da9e8e19ef7e22081e722563612a1f32d Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Fri Nov 25 11:54:02 2016 +0200 convert SW_CREATE to scoped enum Change-Id: I003785715df7e72cbf398902aabb5c3fe900a2d7 diff --git a/sw/inc/unotxdoc.hxx b/sw/inc/unotxdoc.hxx index 47e29ad..36ef233 100644 --- a/sw/inc/unotxdoc.hxx +++ b/sw/inc/unotxdoc.hxx @@ -577,6 +577,10 @@ public: virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw( css::uno::RuntimeException, std::exception ) override; }; +enum class SwCreateDrawTable { + Dash = 1, Gradient, Hatch, Bitmap, TransGradient, Marker, Defaults +}; + class SwXDocumentPropertyHelper : public SvxUnoForbiddenCharsTable { css::uno::Reference < css::uno::XInterface > xDashTable; @@ -591,7 +595,7 @@ class SwXDocumentPropertyHelper : public SvxUnoForbiddenCharsTable public: SwXDocumentPropertyHelper(SwDoc& rDoc); virtual ~SwXDocumentPropertyHelper() override; - css::uno::Reference<css::uno::XInterface> GetDrawTable(short nWhich); + css::uno::Reference<css::uno::XInterface> GetDrawTable(SwCreateDrawTable nWhich); void Invalidate(); virtual void onChange() override; diff --git a/sw/source/uibase/uno/unotxdoc.cxx b/sw/source/uibase/uno/unotxdoc.cxx index 8ea5fdf..3aa6ec2 100644 --- a/sw/source/uibase/uno/unotxdoc.cxx +++ b/sw/source/uibase/uno/unotxdoc.cxx @@ -167,14 +167,6 @@ using namespace ::com::sun::star::container; using namespace ::com::sun::star::document; using ::osl::FileBase; -#define SW_CREATE_DASH_TABLE 0x01 -#define SW_CREATE_GRADIENT_TABLE 0x02 -#define SW_CREATE_HATCH_TABLE 0x03 -#define SW_CREATE_BITMAP_TABLE 0x04 -#define SW_CREATE_TRANSGRADIENT_TABLE 0x05 -#define SW_CREATE_MARKER_TABLE 0x06 -#define SW_CREATE_DRAW_DEFAULTS 0x07 - static SwPrintUIOptions * lcl_GetPrintUIOptions( SwDocShell * pDocShell, const SfxViewShell * pView ) @@ -1629,31 +1621,31 @@ css::uno::Reference<css::uno::XInterface> SwXTextDocument::create( } if (rServiceName == "com.sun.star.drawing.DashTable") { - return GetPropertyHelper()->GetDrawTable(SW_CREATE_DASH_TABLE); + return GetPropertyHelper()->GetDrawTable(SwCreateDrawTable::Dash); } if (rServiceName == "com.sun.star.drawing.GradientTable") { - return GetPropertyHelper()->GetDrawTable(SW_CREATE_GRADIENT_TABLE); + return GetPropertyHelper()->GetDrawTable(SwCreateDrawTable::Gradient); } if (rServiceName == "com.sun.star.drawing.HatchTable") { - return GetPropertyHelper()->GetDrawTable(SW_CREATE_HATCH_TABLE); + return GetPropertyHelper()->GetDrawTable(SwCreateDrawTable::Hatch); } if (rServiceName == "com.sun.star.drawing.BitmapTable") { - return GetPropertyHelper()->GetDrawTable(SW_CREATE_BITMAP_TABLE); + return GetPropertyHelper()->GetDrawTable(SwCreateDrawTable::Bitmap); } if (rServiceName == "com.sun.star.drawing.TransparencyGradientTable") { - return GetPropertyHelper()->GetDrawTable(SW_CREATE_TRANSGRADIENT_TABLE); + return GetPropertyHelper()->GetDrawTable(SwCreateDrawTable::TransGradient); } if (rServiceName == "com.sun.star.drawing.MarkerTable") { - return GetPropertyHelper()->GetDrawTable(SW_CREATE_MARKER_TABLE); + return GetPropertyHelper()->GetDrawTable(SwCreateDrawTable::Marker); } if (rServiceName == "com.sun.star.drawing.Defaults") { - return GetPropertyHelper()->GetDrawTable(SW_CREATE_DRAW_DEFAULTS); + return GetPropertyHelper()->GetDrawTable(SwCreateDrawTable::Defaults); } if (rServiceName == "com.sun.star.document.Settings") { @@ -4217,7 +4209,7 @@ SwXDocumentPropertyHelper::~SwXDocumentPropertyHelper() { } -Reference<XInterface> SwXDocumentPropertyHelper::GetDrawTable(short nWhich) +Reference<XInterface> SwXDocumentPropertyHelper::GetDrawTable(SwCreateDrawTable nWhich) { Reference<XInterface> xRet; if(m_pDoc) @@ -4226,37 +4218,37 @@ Reference<XInterface> SwXDocumentPropertyHelper::GetDrawTable(short nWhich) { // #i52858# // assure that Draw model is created, if it doesn't exist. - case SW_CREATE_DASH_TABLE : + case SwCreateDrawTable::Dash : if(!xDashTable.is()) xDashTable = SvxUnoDashTable_createInstance( m_pDoc->getIDocumentDrawModelAccess().GetOrCreateDrawModel() ); xRet = xDashTable; break; - case SW_CREATE_GRADIENT_TABLE : + case SwCreateDrawTable::Gradient : if(!xGradientTable.is()) xGradientTable = SvxUnoGradientTable_createInstance( m_pDoc->getIDocumentDrawModelAccess().GetOrCreateDrawModel() ); xRet = xGradientTable; break; - case SW_CREATE_HATCH_TABLE : + case SwCreateDrawTable::Hatch : if(!xHatchTable.is()) xHatchTable = SvxUnoHatchTable_createInstance( m_pDoc->getIDocumentDrawModelAccess().GetOrCreateDrawModel() ); xRet = xHatchTable; break; - case SW_CREATE_BITMAP_TABLE : + case SwCreateDrawTable::Bitmap : if(!xBitmapTable.is()) xBitmapTable = SvxUnoBitmapTable_createInstance( m_pDoc->getIDocumentDrawModelAccess().GetOrCreateDrawModel() ); xRet = xBitmapTable; break; - case SW_CREATE_TRANSGRADIENT_TABLE: + case SwCreateDrawTable::TransGradient: if(!xTransGradientTable.is()) xTransGradientTable = SvxUnoTransGradientTable_createInstance( m_pDoc->getIDocumentDrawModelAccess().GetOrCreateDrawModel() ); xRet = xTransGradientTable; break; - case SW_CREATE_MARKER_TABLE : + case SwCreateDrawTable::Marker : if(!xMarkerTable.is()) xMarkerTable = SvxUnoMarkerTable_createInstance( m_pDoc->getIDocumentDrawModelAccess().GetOrCreateDrawModel() ); xRet = xMarkerTable; break; - case SW_CREATE_DRAW_DEFAULTS: + case SwCreateDrawTable::Defaults: if(!xDrawDefaults.is()) xDrawDefaults = static_cast<cppu::OWeakObject*>(new SwSvxUnoDrawPool(m_pDoc)); xRet = xDrawDefaults; commit 678041c48fe3f03fd4f12a92b6a66cff33d6382b Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Fri Nov 25 11:16:25 2016 +0200 convert HTML_FRM_OPTS to o3tl::typed_flags Change-Id: I3d8ac978ff626f792e3cff6e2b12a7680addf303 diff --git a/sw/source/filter/html/css1atr.cxx b/sw/source/filter/html/css1atr.cxx index b3e3711..eb0aaac 100644 --- a/sw/source/filter/html/css1atr.cxx +++ b/sw/source/filter/html/css1atr.cxx @@ -1969,7 +1969,7 @@ Writer& OutCSS1_NumBulListStyleOpt( Writer& rWrt, const SwNumRule& rNumRule, } void SwHTMLWriter::OutCSS1_FrameFormatOptions( const SwFrameFormat& rFrameFormat, - sal_uInt32 nFrameOpts, + HtmlFrmOpts nFrameOpts, const SdrObject *pSdrObj, const SfxItemSet *pItemSet ) { @@ -1980,7 +1980,7 @@ void SwHTMLWriter::OutCSS1_FrameFormatOptions( const SwFrameFormat& rFrameFormat const SwFormatHoriOrient& rHoriOri = rFrameFormat.GetHoriOrient(); SvxLRSpaceItem aLRItem( rFrameFormat.GetLRSpace() ); SvxULSpaceItem aULItem( rFrameFormat.GetULSpace() ); - if( nFrameOpts & HTML_FRMOPT_S_ALIGN ) + if( nFrameOpts & HtmlFrmOpts::SAlign ) { const SwFormatAnchor& rAnchor = rFrameFormat.GetAnchor(); switch( rAnchor.GetAnchorId() ) @@ -1990,7 +1990,7 @@ void SwHTMLWriter::OutCSS1_FrameFormatOptions( const SwFrameFormat& rFrameFormat if( text::RelOrientation::FRAME == rHoriOri.GetRelationOrient() || text::RelOrientation::PRINT_AREA == rHoriOri.GetRelationOrient() ) { - if( !(nFrameOpts & HTML_FRMOPT_ALIGN) ) + if( !(nFrameOpts & HtmlFrmOpts::Align) ) { // float const sal_Char *pStr = text::HoriOrientation::RIGHT==rHoriOri.GetHoriOrient() @@ -2082,7 +2082,7 @@ void SwHTMLWriter::OutCSS1_FrameFormatOptions( const SwFrameFormat& rFrameFormat } // width/height - if( nFrameOpts & HTML_FRMOPT_S_SIZE ) + if( nFrameOpts & HtmlFrmOpts::SSize ) { if( RES_DRAWFRMFMT == rFrameFormat.Which() ) { @@ -2093,17 +2093,17 @@ void SwHTMLWriter::OutCSS1_FrameFormatOptions( const SwFrameFormat& rFrameFormat if( pSdrObj ) { Size aTwipSz( pSdrObj->GetLogicRect().GetSize() ); - if( nFrameOpts & HTML_FRMOPT_S_WIDTH ) + if( nFrameOpts & HtmlFrmOpts::SWidth ) { - if( nFrameOpts & HTML_FRMOPT_S_PIXSIZE ) + if( nFrameOpts & HtmlFrmOpts::SPixSize ) OutCSS1_PixelProperty( sCSS1_P_width, aTwipSz.Width(), false ); else OutCSS1_UnitProperty( sCSS1_P_width, aTwipSz.Width() ); } - if( nFrameOpts & HTML_FRMOPT_S_HEIGHT ) + if( nFrameOpts & HtmlFrmOpts::SHeight ) { - if( nFrameOpts & HTML_FRMOPT_S_PIXSIZE ) + if( nFrameOpts & HtmlFrmOpts::SPixSize ) OutCSS1_PixelProperty( sCSS1_P_height, aTwipSz.Height(), true ); else @@ -2113,16 +2113,16 @@ void SwHTMLWriter::OutCSS1_FrameFormatOptions( const SwFrameFormat& rFrameFormat } else { - OSL_ENSURE( HTML_FRMOPT_ABSSIZE & nFrameOpts, + OSL_ENSURE( HtmlFrmOpts::AbsSize & nFrameOpts, "Export absolute size" ); - OSL_ENSURE( HTML_FRMOPT_ANYSIZE & nFrameOpts, + OSL_ENSURE( HtmlFrmOpts::AnySize & nFrameOpts, "Export every size" ); Css1FrameSize nMode = Css1FrameSize::NONE; - if( nFrameOpts & HTML_FRMOPT_S_WIDTH ) + if( nFrameOpts & HtmlFrmOpts::SWidth ) nMode |= Css1FrameSize::Width; - if( nFrameOpts & HTML_FRMOPT_S_HEIGHT ) + if( nFrameOpts & HtmlFrmOpts::SHeight ) nMode |= (Css1FrameSize::MinHeight|Css1FrameSize::FixHeight); - if( nFrameOpts & HTML_FRMOPT_S_PIXSIZE ) + if( nFrameOpts & HtmlFrmOpts::SPixSize ) nMode |= Css1FrameSize::Pixel; OutCSS1_SwFormatFrameSize( *this, rFrameFormat.GetFrameSize(), nMode ); @@ -2131,7 +2131,7 @@ void SwHTMLWriter::OutCSS1_FrameFormatOptions( const SwFrameFormat& rFrameFormat const SfxItemSet& rItemSet = rFrameFormat.GetAttrSet(); // margin-* - if( (nFrameOpts & HTML_FRMOPT_S_SPACE) && + if( (nFrameOpts & HtmlFrmOpts::SSpace) && IsHTMLMode( HTMLMODE_FLY_MARGINS) ) { const SvxLRSpaceItem *pLRItem = nullptr; @@ -2145,17 +2145,17 @@ void SwHTMLWriter::OutCSS1_FrameFormatOptions( const SwFrameFormat& rFrameFormat } // border - if( nFrameOpts & HTML_FRMOPT_S_BORDER ) + if( nFrameOpts & HtmlFrmOpts::SBorder ) { const SfxPoolItem* pItem; - if( nFrameOpts & HTML_FRMOPT_S_NOBORDER ) + if( nFrameOpts & HtmlFrmOpts::SNoBorder ) OutCSS1_SvxBox( *this, rFrameFormat.GetBox() ); else if( SfxItemState::SET==rItemSet.GetItemState( RES_BOX, true, &pItem ) ) OutCSS1_SvxBox( *this, *pItem ); } // background (if, then the color must be set also) - if( nFrameOpts & HTML_FRMOPT_S_BACKGROUND ) + if( nFrameOpts & HtmlFrmOpts::SBackground ) OutCSS1_FrameFormatBackground( rFrameFormat ); if( pItemSet ) diff --git a/sw/source/filter/html/htmldrawwriter.cxx b/sw/source/filter/html/htmldrawwriter.cxx index 2debe01..083f6a2 100644 --- a/sw/source/filter/html/htmldrawwriter.cxx +++ b/sw/source/filter/html/htmldrawwriter.cxx @@ -55,13 +55,13 @@ using namespace css; -const sal_uInt32 HTML_FRMOPTS_MARQUEE = - HTML_FRMOPT_ALIGN | - HTML_FRMOPT_SPACE; +const HtmlFrmOpts HTML_FRMOPTS_MARQUEE = + HtmlFrmOpts::Align | + HtmlFrmOpts::Space; -const sal_uInt32 HTML_FRMOPTS_MARQUEE_CSS1 = - HTML_FRMOPT_S_ALIGN | - HTML_FRMOPT_S_SPACE; +const HtmlFrmOpts HTML_FRMOPTS_MARQUEE_CSS1 = + HtmlFrmOpts::SAlign | + HtmlFrmOpts::SSpace; const SdrObject *SwHTMLWriter::GetMarqueeTextObj( const SwDrawFrameFormat& rFormat ) { @@ -283,7 +283,7 @@ Writer& OutHTML_DrawFrameFormatAsMarquee( Writer& rWrt, rWrt.Strm().WriteCharPtr( sOut.makeStringAndClear().getStr() ); // und nun noch ALIGN, HSPACE und VSPACE - sal_uInt32 nFrameFlags = HTML_FRMOPTS_MARQUEE; + HtmlFrmOpts nFrameFlags = HTML_FRMOPTS_MARQUEE; if( rHTMLWrt.IsHTMLMode( HTMLMODE_ABS_POS_DRAW ) ) nFrameFlags |= HTML_FRMOPTS_MARQUEE_CSS1; OString aEndTags = rHTMLWrt.OutFrameFormatOptions( rFormat, aEmptyOUStr, nFrameFlags ); diff --git a/sw/source/filter/html/htmlflywriter.cxx b/sw/source/filter/html/htmlflywriter.cxx index 22b900c..a70d868 100644 --- a/sw/source/filter/html/htmlflywriter.cxx +++ b/sw/source/filter/html/htmlflywriter.cxx @@ -65,66 +65,66 @@ using namespace css; -const sal_uLong HTML_FRMOPTS_IMG_ALL = - HTML_FRMOPT_ALT | - HTML_FRMOPT_SIZE | - HTML_FRMOPT_ANYSIZE | - HTML_FRMOPT_BORDER | - HTML_FRMOPT_NAME; -const sal_uLong HTML_FRMOPTS_IMG_CNTNR = +const HtmlFrmOpts HTML_FRMOPTS_IMG_ALL = + HtmlFrmOpts::Alt | + HtmlFrmOpts::Size | + HtmlFrmOpts::AnySize | + HtmlFrmOpts::Border | + HtmlFrmOpts::Name; +const HtmlFrmOpts HTML_FRMOPTS_IMG_CNTNR = HTML_FRMOPTS_IMG_ALL | - HTML_FRMOPT_ABSSIZE; -const sal_uLong HTML_FRMOPTS_IMG = + HtmlFrmOpts::AbsSize; +const HtmlFrmOpts HTML_FRMOPTS_IMG = HTML_FRMOPTS_IMG_ALL | - HTML_FRMOPT_ALIGN | - HTML_FRMOPT_SPACE | - HTML_FRMOPT_BRCLEAR; -const sal_uLong HTML_FRMOPTS_IMG_CSS1 = - HTML_FRMOPT_S_ALIGN | - HTML_FRMOPT_S_SPACE; - -const sal_uLong HTML_FRMOPTS_DIV = - HTML_FRMOPT_ID | - HTML_FRMOPT_S_ALIGN | - HTML_FRMOPT_S_SIZE | - HTML_FRMOPT_ANYSIZE | - HTML_FRMOPT_ABSSIZE | - HTML_FRMOPT_S_SPACE | - HTML_FRMOPT_S_BORDER | - HTML_FRMOPT_S_BACKGROUND | - HTML_FRMOPT_BRCLEAR | - HTML_FRMOPT_DIR; - -const sal_uLong HTML_FRMOPTS_MULTICOL = - HTML_FRMOPT_ID | - HTML_FRMOPT_WIDTH | - HTML_FRMOPT_ANYSIZE | - HTML_FRMOPT_ABSSIZE | - HTML_FRMOPT_DIR; -const sal_uLong HTML_FRMOPTS_MULTICOL_CNTNR = + HtmlFrmOpts::Align | + HtmlFrmOpts::Space | + HtmlFrmOpts::BrClear; +const HtmlFrmOpts HTML_FRMOPTS_IMG_CSS1 = + HtmlFrmOpts::SAlign | + HtmlFrmOpts::SSpace; + +const HtmlFrmOpts HTML_FRMOPTS_DIV = + HtmlFrmOpts::Id | + HtmlFrmOpts::SAlign | + HtmlFrmOpts::SSize | + HtmlFrmOpts::AnySize | + HtmlFrmOpts::AbsSize | + HtmlFrmOpts::SSpace | + HtmlFrmOpts::SBorder | + HtmlFrmOpts::SBackground | + HtmlFrmOpts::BrClear | + HtmlFrmOpts::Dir; + +const HtmlFrmOpts HTML_FRMOPTS_MULTICOL = + HtmlFrmOpts::Id | + HtmlFrmOpts::Width | + HtmlFrmOpts::AnySize | + HtmlFrmOpts::AbsSize | + HtmlFrmOpts::Dir; +const HtmlFrmOpts HTML_FRMOPTS_MULTICOL_CNTNR = HTML_FRMOPTS_MULTICOL; -const sal_uLong HTML_FRMOPTS_MULTICOL_CSS1 = - HTML_FRMOPT_S_ALIGN | - HTML_FRMOPT_S_SIZE | - HTML_FRMOPT_S_SPACE | - HTML_FRMOPT_S_BORDER| - HTML_FRMOPT_S_BACKGROUND; - -const sal_uLong HTML_FRMOPTS_SPACER = - HTML_FRMOPT_ALIGN | - HTML_FRMOPT_SIZE | - HTML_FRMOPT_ANYSIZE | - HTML_FRMOPT_BRCLEAR | - HTML_FRMOPT_MARGINSIZE | - HTML_FRMOPT_ABSSIZE; - -const sal_uLong HTML_FRMOPTS_CNTNR = - HTML_FRMOPT_S_ALIGN | - HTML_FRMOPT_S_SPACE | - HTML_FRMOPT_S_WIDTH | - HTML_FRMOPT_ANYSIZE | - HTML_FRMOPT_ABSSIZE | - HTML_FRMOPT_S_PIXSIZE; +const HtmlFrmOpts HTML_FRMOPTS_MULTICOL_CSS1 = + HtmlFrmOpts::SAlign | + HtmlFrmOpts::SSize | + HtmlFrmOpts::SSpace | + HtmlFrmOpts::SBorder| + HtmlFrmOpts::SBackground; + +const HtmlFrmOpts HTML_FRMOPTS_SPACER = + HtmlFrmOpts::Align | + HtmlFrmOpts::Size | + HtmlFrmOpts::AnySize | + HtmlFrmOpts::BrClear | + HtmlFrmOpts::MarginSize | + HtmlFrmOpts::AbsSize; + +const HtmlFrmOpts HTML_FRMOPTS_CNTNR = + HtmlFrmOpts::SAlign | + HtmlFrmOpts::SSpace | + HtmlFrmOpts::SWidth | + HtmlFrmOpts::AnySize | + HtmlFrmOpts::AbsSize | + HtmlFrmOpts::SPixSize; static Writer& OutHTML_FrameFormatTableNode( Writer& rWrt, const SwFrameFormat& rFrameFormat ); static Writer& OutHTML_FrameFormatAsMulticol( Writer& rWrt, const SwFrameFormat& rFormat, @@ -443,14 +443,14 @@ void SwHTMLWriter::OutFrameFormat( AllHtmlFlags nMode, const SwFrameFormat& rFra Strm().WriteCharPtr( sOut.makeStringAndClear().getStr() ); // Output a width for non-draw objects - sal_uLong nFrameFlags = HTML_FRMOPTS_CNTNR; + HtmlFrmOpts nFrameFlags = HTML_FRMOPTS_CNTNR; // For frames with columns we can also output the background if( HtmlOut::MultiCol == nOutMode ) - nFrameFlags |= HTML_FRMOPT_S_BACKGROUND|HTML_FRMOPT_S_BORDER; + nFrameFlags |= HtmlFrmOpts::SBackground|HtmlFrmOpts::SBorder; if( IsHTMLMode( HTMLMODE_BORDER_NONE ) ) - nFrameFlags |= HTML_FRMOPT_S_NOBORDER; + nFrameFlags |= HtmlFrmOpts::SNoBorder; OutCSS1_FrameFormatOptions( rFrameFormat, nFrameFlags, pSdrObject ); Strm().WriteChar( '>' ); @@ -520,7 +520,7 @@ void SwHTMLWriter::OutFrameFormat( AllHtmlFlags nMode, const SwFrameFormat& rFra OString SwHTMLWriter::OutFrameFormatOptions( const SwFrameFormat &rFrameFormat, const OUString& rAlternateText, - sal_uInt32 nFrameOpts ) + HtmlFrmOpts nFrameOpts ) { OString sRetEndTags; OStringBuffer sOut; @@ -528,11 +528,11 @@ OString SwHTMLWriter::OutFrameFormatOptions( const SwFrameFormat &rFrameFormat, const SfxItemSet& rItemSet = rFrameFormat.GetAttrSet(); // Name - if( (nFrameOpts & (HTML_FRMOPT_ID|HTML_FRMOPT_NAME)) && + if( (nFrameOpts & (HtmlFrmOpts::Id|HtmlFrmOpts::Name)) && !rFrameFormat.GetName().isEmpty() ) { const sal_Char *pStr = - (nFrameOpts & HTML_FRMOPT_ID) ? OOO_STRING_SVTOOLS_HTML_O_id : OOO_STRING_SVTOOLS_HTML_O_name; + (nFrameOpts & HtmlFrmOpts::Id) ? OOO_STRING_SVTOOLS_HTML_O_id : OOO_STRING_SVTOOLS_HTML_O_name; sOut.append(' ').append(pStr). append("=\""); Strm().WriteCharPtr( sOut.makeStringAndClear().getStr() ); @@ -541,7 +541,7 @@ OString SwHTMLWriter::OutFrameFormatOptions( const SwFrameFormat &rFrameFormat, } // Name - if( nFrameOpts & HTML_FRMOPT_DIR ) + if( nFrameOpts & HtmlFrmOpts::Dir ) { sal_uInt16 nDir = GetHTMLDirection( rItemSet ); Strm().WriteCharPtr( sOut.makeStringAndClear().getStr() ); @@ -549,7 +549,7 @@ OString SwHTMLWriter::OutFrameFormatOptions( const SwFrameFormat &rFrameFormat, } // ALT - if( (nFrameOpts & HTML_FRMOPT_ALT) && !rAlternateText.isEmpty() ) + if( (nFrameOpts & HtmlFrmOpts::Alt) && !rAlternateText.isEmpty() ) { sOut.append(' ').append(OOO_STRING_SVTOOLS_HTML_O_alt). append("=\""); @@ -561,14 +561,14 @@ OString SwHTMLWriter::OutFrameFormatOptions( const SwFrameFormat &rFrameFormat, // ALIGN const sal_Char *pStr = nullptr; RndStdIds eAnchorId = rFrameFormat.GetAnchor().GetAnchorId(); - if( (nFrameOpts & HTML_FRMOPT_ALIGN) && + if( (nFrameOpts & HtmlFrmOpts::Align) && ((FLY_AT_PARA == eAnchorId) || (FLY_AT_CHAR == eAnchorId)) ) { // MIB 12.3.98: Wouldn't it be more clever to left-align frames that // are anchored to a paragraph if necessary, instead of inserting them // as being anchored to characters? const SwFormatHoriOrient& rHoriOri = rFrameFormat.GetHoriOrient(); - if( !(nFrameOpts & HTML_FRMOPT_S_ALIGN) || + if( !(nFrameOpts & HtmlFrmOpts::SAlign) || text::RelOrientation::FRAME == rHoriOri.GetRelationOrient() || text::RelOrientation::PRINT_AREA == rHoriOri.GetRelationOrient() ) { @@ -577,8 +577,8 @@ OString SwHTMLWriter::OutFrameFormatOptions( const SwFrameFormat &rFrameFormat, : OOO_STRING_SVTOOLS_HTML_AL_left; } } - if( (nFrameOpts & HTML_FRMOPT_ALIGN) && !pStr && - ( (nFrameOpts & HTML_FRMOPT_S_ALIGN) == 0 || + if( (nFrameOpts & HtmlFrmOpts::Align) && !pStr && + ( !(nFrameOpts & HtmlFrmOpts::SAlign) || (FLY_AS_CHAR == eAnchorId) ) && SfxItemState::SET == rItemSet.GetItemState( RES_VERT_ORIENT, true, &pItem )) { @@ -604,7 +604,7 @@ OString SwHTMLWriter::OutFrameFormatOptions( const SwFrameFormat &rFrameFormat, // HSPACE und VSPACE Size aTwipSpc( 0, 0 ); - if( (nFrameOpts & (HTML_FRMOPT_SPACE|HTML_FRMOPT_MARGINSIZE)) && + if( (nFrameOpts & (HtmlFrmOpts::Space|HtmlFrmOpts::MarginSize)) && SfxItemState::SET == rItemSet.GetItemState( RES_LR_SPACE, true, &pItem )) { aTwipSpc.Width() = @@ -612,7 +612,7 @@ OString SwHTMLWriter::OutFrameFormatOptions( const SwFrameFormat &rFrameFormat, static_cast<const SvxLRSpaceItem*>(pItem)->GetRight() ) / 2; m_nDfltLeftMargin = m_nDfltRightMargin = aTwipSpc.Width(); } - if( (nFrameOpts & (HTML_FRMOPT_SPACE|HTML_FRMOPT_MARGINSIZE)) && + if( (nFrameOpts & (HtmlFrmOpts::Space|HtmlFrmOpts::MarginSize)) && SfxItemState::SET == rItemSet.GetItemState( RES_UL_SPACE, true, &pItem )) { aTwipSpc.Height() = @@ -621,7 +621,7 @@ OString SwHTMLWriter::OutFrameFormatOptions( const SwFrameFormat &rFrameFormat, m_nDfltTopMargin = m_nDfltBottomMargin = (sal_uInt16)aTwipSpc.Height(); } - if( (nFrameOpts & HTML_FRMOPT_SPACE) && + if( (nFrameOpts & HtmlFrmOpts::Space) && (aTwipSpc.Width() || aTwipSpc.Height()) && Application::GetDefaultDevice() ) { @@ -648,7 +648,7 @@ OString SwHTMLWriter::OutFrameFormatOptions( const SwFrameFormat &rFrameFormat, // The spacing must be considered for the size, if the corresponding flag // is set. - if( (nFrameOpts & HTML_FRMOPT_MARGINSIZE) ) + if( (nFrameOpts & HtmlFrmOpts::MarginSize) ) { aTwipSpc.Width() *= -2; aTwipSpc.Height() *= -2; @@ -659,7 +659,7 @@ OString SwHTMLWriter::OutFrameFormatOptions( const SwFrameFormat &rFrameFormat, aTwipSpc.Height() = 0; } - if( !(nFrameOpts & HTML_FRMOPT_ABSSIZE) && + if( !(nFrameOpts & HtmlFrmOpts::AbsSize) && SfxItemState::SET == rItemSet.GetItemState( RES_BOX, true, &pItem )) { const SvxBoxItem* pBoxItem = static_cast<const SvxBoxItem*>(pItem); @@ -672,9 +672,9 @@ OString SwHTMLWriter::OutFrameFormatOptions( const SwFrameFormat &rFrameFormat, // WIDTH and/or HEIGHT // Output ATT_VAR_SIZE/ATT_MIN_SIZE only, if ANYSIZE is set - if( (nFrameOpts & HTML_FRMOPT_SIZE) && + if( (nFrameOpts & HtmlFrmOpts::Size) && SfxItemState::SET == rItemSet.GetItemState( RES_FRM_SIZE, true, &pItem ) && - ( (nFrameOpts & HTML_FRMOPT_ANYSIZE) || + ( (nFrameOpts & HtmlFrmOpts::AnySize) || ATT_FIX_SIZE == static_cast<const SwFormatFrameSize *>(pItem)->GetHeightSizeType()) ) { const SwFormatFrameSize *pFSItem = static_cast<const SwFormatFrameSize *>(pItem); @@ -707,7 +707,7 @@ OString SwHTMLWriter::OutFrameFormatOptions( const SwFrameFormat &rFrameFormat, aPixelSz.Height() = 1; } - if( (nFrameOpts & HTML_FRMOPT_WIDTH) && + if( (nFrameOpts & HtmlFrmOpts::Width) && ((nPrcWidth && nPrcWidth!=255) || aPixelSz.Width()) ) { sOut.append(' ').append(OOO_STRING_SVTOOLS_HTML_O_width). @@ -719,7 +719,7 @@ OString SwHTMLWriter::OutFrameFormatOptions( const SwFrameFormat &rFrameFormat, sOut.append("\""); } - if( (nFrameOpts & HTML_FRMOPT_HEIGHT) && + if( (nFrameOpts & HtmlFrmOpts::Height) && ((nPrcHeight && nPrcHeight!=255) || aPixelSz.Height()) ) { sOut.append(' ').append(OOO_STRING_SVTOOLS_HTML_O_height). @@ -737,7 +737,7 @@ OString SwHTMLWriter::OutFrameFormatOptions( const SwFrameFormat &rFrameFormat, // Insert wrap for graphics that are anchored to a paragraph as // <BR CLEAR=...> in the string - if( (nFrameOpts & HTML_FRMOPT_BRCLEAR) && + if( (nFrameOpts & HtmlFrmOpts::BrClear) && ((FLY_AT_PARA == rFrameFormat.GetAnchor().GetAnchorId()) || (FLY_AT_CHAR == rFrameFormat.GetAnchor().GetAnchorId())) && SfxItemState::SET == rItemSet.GetItemState( RES_SURROUND, true, &pItem )) @@ -802,21 +802,21 @@ OString SwHTMLWriter::OutFrameFormatOptions( const SwFrameFormat &rFrameFormat, return sRetEndTags; } -void SwHTMLWriter::writeFrameFormatOptions(HtmlWriter& aHtml, const SwFrameFormat& rFrameFormat, const OUString& rAlternateText, sal_uInt32 nFrameOptions) +void SwHTMLWriter::writeFrameFormatOptions(HtmlWriter& aHtml, const SwFrameFormat& rFrameFormat, const OUString& rAlternateText, HtmlFrmOpts nFrameOptions) { const SfxPoolItem* pItem; const SfxItemSet& rItemSet = rFrameFormat.GetAttrSet(); // Name - if( (nFrameOptions & (HTML_FRMOPT_ID|HTML_FRMOPT_NAME)) && + if( (nFrameOptions & (HtmlFrmOpts::Id|HtmlFrmOpts::Name)) && !rFrameFormat.GetName().isEmpty() ) { - const sal_Char* pAttributeName = (nFrameOptions & HTML_FRMOPT_ID) ? OOO_STRING_SVTOOLS_HTML_O_id : OOO_STRING_SVTOOLS_HTML_O_name; + const sal_Char* pAttributeName = (nFrameOptions & HtmlFrmOpts::Id) ? OOO_STRING_SVTOOLS_HTML_O_id : OOO_STRING_SVTOOLS_HTML_O_name; aHtml.attribute(pAttributeName, rFrameFormat.GetName()); } // Name - if (nFrameOptions & HTML_FRMOPT_DIR) + if (nFrameOptions & HtmlFrmOpts::Dir) { sal_uInt16 nCurrentDirection = GetHTMLDirection(rItemSet); OString sDirection = convertDirection(nCurrentDirection); @@ -824,7 +824,7 @@ void SwHTMLWriter::writeFrameFormatOptions(HtmlWriter& aHtml, const SwFrameForma } // alt - if( (nFrameOptions & HTML_FRMOPT_ALT) && !rAlternateText.isEmpty() ) + if( (nFrameOptions & HtmlFrmOpts::Alt) && !rAlternateText.isEmpty() ) { aHtml.attribute(OOO_STRING_SVTOOLS_HTML_O_alt, rAlternateText); } @@ -832,11 +832,11 @@ void SwHTMLWriter::writeFrameFormatOptions(HtmlWriter& aHtml, const SwFrameForma // align const sal_Char* pAlignString = nullptr; RndStdIds eAnchorId = rFrameFormat.GetAnchor().GetAnchorId(); - if( (nFrameOptions & HTML_FRMOPT_ALIGN) && + if( (nFrameOptions & HtmlFrmOpts::Align) && ((FLY_AT_PARA == eAnchorId) || (FLY_AT_CHAR == eAnchorId)) ) { const SwFormatHoriOrient& rHoriOri = rFrameFormat.GetHoriOrient(); - if( !(nFrameOptions & HTML_FRMOPT_S_ALIGN) || + if( !(nFrameOptions & HtmlFrmOpts::SAlign) || text::RelOrientation::FRAME == rHoriOri.GetRelationOrient() || text::RelOrientation::PRINT_AREA == rHoriOri.GetRelationOrient() ) { @@ -845,8 +845,8 @@ void SwHTMLWriter::writeFrameFormatOptions(HtmlWriter& aHtml, const SwFrameForma : OOO_STRING_SVTOOLS_HTML_AL_left; } } - if( (nFrameOptions & HTML_FRMOPT_ALIGN) && !pAlignString && - ( (nFrameOptions & HTML_FRMOPT_S_ALIGN) == 0 || + if( (nFrameOptions & HtmlFrmOpts::Align) && !pAlignString && + ( !(nFrameOptions & HtmlFrmOpts::SAlign) || (FLY_AS_CHAR == eAnchorId) ) && SfxItemState::SET == rItemSet.GetItemState( RES_VERT_ORIENT, true, &pItem )) { @@ -871,7 +871,7 @@ void SwHTMLWriter::writeFrameFormatOptions(HtmlWriter& aHtml, const SwFrameForma // hspace and vspace Size aTwipSpc( 0, 0 ); - if( (nFrameOptions & (HTML_FRMOPT_SPACE | HTML_FRMOPT_MARGINSIZE)) && + if( (nFrameOptions & (HtmlFrmOpts::Space | HtmlFrmOpts::MarginSize)) && SfxItemState::SET == rItemSet.GetItemState( RES_LR_SPACE, true, &pItem )) { aTwipSpc.Width() = @@ -879,7 +879,7 @@ void SwHTMLWriter::writeFrameFormatOptions(HtmlWriter& aHtml, const SwFrameForma static_cast<const SvxLRSpaceItem*>(pItem)->GetRight() ) / 2; m_nDfltLeftMargin = m_nDfltRightMargin = aTwipSpc.Width(); } - if( (nFrameOptions & (HTML_FRMOPT_SPACE|HTML_FRMOPT_MARGINSIZE)) && + if( (nFrameOptions & (HtmlFrmOpts::Space|HtmlFrmOpts::MarginSize)) && SfxItemState::SET == rItemSet.GetItemState( RES_UL_SPACE, true, &pItem )) { aTwipSpc.Height() = @@ -888,7 +888,7 @@ void SwHTMLWriter::writeFrameFormatOptions(HtmlWriter& aHtml, const SwFrameForma m_nDfltTopMargin = m_nDfltBottomMargin = (sal_uInt16)aTwipSpc.Height(); } - if( (nFrameOptions & HTML_FRMOPT_SPACE) && + if( (nFrameOptions & HtmlFrmOpts::Space) && (aTwipSpc.Width() || aTwipSpc.Height()) && Application::GetDefaultDevice() ) { @@ -913,7 +913,7 @@ void SwHTMLWriter::writeFrameFormatOptions(HtmlWriter& aHtml, const SwFrameForma // The spacing must be considered for the size, if the corresponding flag // is set. - if( (nFrameOptions & HTML_FRMOPT_MARGINSIZE) ) + if( (nFrameOptions & HtmlFrmOpts::MarginSize) ) { aTwipSpc.Width() *= -2; aTwipSpc.Height() *= -2; @@ -924,7 +924,7 @@ void SwHTMLWriter::writeFrameFormatOptions(HtmlWriter& aHtml, const SwFrameForma aTwipSpc.Height() = 0; } - if( !(nFrameOptions & HTML_FRMOPT_ABSSIZE) && + if( !(nFrameOptions & HtmlFrmOpts::AbsSize) && SfxItemState::SET == rItemSet.GetItemState( RES_BOX, true, &pItem )) { const SvxBoxItem* pBoxItem = static_cast<const SvxBoxItem*>(pItem); @@ -937,9 +937,9 @@ void SwHTMLWriter::writeFrameFormatOptions(HtmlWriter& aHtml, const SwFrameForma // "width" and/or "height" // Only output ATT_VAR_SIZE/ATT_MIN_SIZE if ANYSIZE is set ... etc. - the rest is truncated
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits