tdf#153683: Show the used module in --convert-to

Implements getName that returns the module name.
When outputs the convert-to message, module name is included.

Change-Id: Ic18d8899d160e9c1afa8801dc07120f5ef822d07
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148905
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
diff --git a/desktop/source/app/dispatchwatcher.cxx b/desktop/source/app/dispatchwatcher.cxx
index 5b7fd94..f314fcd 100644
--- a/desktop/source/app/dispatchwatcher.cxx
+++ b/desktop/source/app/dispatchwatcher.cxx
@@ -284,6 +284,47 @@ void batchPrint( std::u16string_view rPrinterName, const Reference< XPrintable >
    xDoc->print( aPrinterArgs );
}

// Get xDoc module name
OUString getName(const Reference< XPrintable > & xDoc)
{
    OUString aDocService;
    Reference< XModel > xModel( xDoc, UNO_QUERY );
    const Reference<XServiceInfo> xServiceInfo(xModel, UNO_QUERY_THROW);
    if ( xModel.is() )
    {
        utl::MediaDescriptor aMediaDesc( xModel->getArgs() );
        aDocService = aMediaDesc.getUnpackedValueOrDefault(utl::MediaDescriptor::PROP_DOCUMENTSERVICE, OUString() );
    }
    OString aModuleId = OUStringToOString(aDocService, osl_getThreadTextEncoding());
    if (aModuleId == "com.sun.star.text.TextDocument"
        || aModuleId == "com.sun.star.text.GlobalDocument")
        return "Writer";
    else if (aModuleId == "com.sun.star.text.WebDocument")
        return "Writer/Web";
    else if (aModuleId == "com.sun.star.drawing.DrawingDocument")
        return "Draw";
    else if (aModuleId == "com.sun.star.presentation.PresentationDocument")
        return "Impress";
    else if (aModuleId == "com.sun.star.sheet.SpreadsheetDocument")
        return "Calc";
    else if (aModuleId == "com.sun.star.script.BasicIDE")
        return "Basic";
    else if (aModuleId == "com.sun.star.formula.FormulaProperties")
        return "Math";
    else if (aModuleId == "com.sun.star.sdb.RelationDesign")
        return "Relation Design";
    else if (aModuleId == "com.sun.star.sdb.QueryDesign")
        return "Query Design";
    else if (aModuleId == "com.sun.star.sdb.TableDesign")
        return "Table Design";
    else if (aModuleId == "com.sun.star.sdb.DataSourceBrowser")
        return "Data Source Browser";
    else if (aModuleId == "com.sun.star.sdb.DatabaseDocument")
        return "Database";

    return OUString();
}

} // anonymous namespace

DispatchWatcher::DispatchWatcher()
@@ -661,9 +702,10 @@ bool DispatchWatcher::executeDispatchRequests( const std::vector<DispatchRequest
                                OString aTargetURL8 = OUStringToOString(aTempName, osl_getThreadTextEncoding());
                                if (aDispatchRequest.aRequestType != REQUEST_CAT)
                                {
                                    OUString name=getName(xDoc);
                                    std::cout << "convert " << aSource8;
                                    if (!bMultiFileTarget)
                                        std::cout << " -> " << aTargetURL8;
                                        std::cout << " -> " << aTargetURL8 << " as a " << name <<" document";
                                    std::cout << " using filter : " << OUStringToOString(aFilter, osl_getThreadTextEncoding()) << std::endl;
                                    if (!bMultiFileTarget && FStatHelper::IsDocument(aOutFile))
                                        std::cout << "Overwriting: " << OUStringToOString(aTempName, osl_getThreadTextEncoding()) << std::endl ;