diff options
author | Tor Lillqvist <tml@collabora.com> | 2020-03-24 09:12:07 +0200 |
---|---|---|
committer | Tor Lillqvist <tml@collabora.com> | 2020-03-24 12:15:38 +0100 |
commit | f08eeaa79fccbcc816f3ce604bea5375d5dcfc71 (patch) | |
tree | 085977a915bb2c2cd909a8940eaf51b70a6a0950 | |
parent | 77763a9d8181899d30705d99e7ce293d96e77b57 (diff) |
Simplify the LibreOfficeKit mobile phone and tablet API
There is not need to ever change the kind of device a view is for, so
why bother with the bool parameter to setMobilePhone() and
setTablet(). Also, make sure just either of them is called, at most
once, for a view.
Change-Id: I9ac872f0ab4772e4a7c40c49f62b32fa7b1e47f6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90969
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
-rw-r--r-- | comphelper/source/misc/lok.cxx | 12 | ||||
-rw-r--r-- | desktop/source/lib/init.cxx | 15 | ||||
-rw-r--r-- | include/comphelper/lok.hxx | 11 |
3 files changed, 15 insertions, 23 deletions
diff --git a/comphelper/source/misc/lok.cxx b/comphelper/source/misc/lok.cxx index 1f78c29f8b97..ed2b3dac3f03 100644 --- a/comphelper/source/misc/lok.cxx +++ b/comphelper/source/misc/lok.cxx @@ -103,9 +103,11 @@ bool isActive() return g_bActive; } -void setMobilePhone(int nViewId, bool bIsMobilePhone) +void setMobilePhone(int nViewId) { - g_vIsViewMobilePhone[nViewId] = bIsMobilePhone; + assert(!isMobilePhone(nViewId)); + assert(!isTablet(nViewId)); + g_vIsViewMobilePhone[nViewId] = true; } bool isMobilePhone(int nViewId) @@ -116,9 +118,11 @@ bool isMobilePhone(int nViewId) return false; } -void setTablet(int nViewId, bool bIsTablet) +void setTablet(int nViewId) { - g_vIsViewTablet[nViewId] = bIsTablet; + assert(!isMobilePhone(nViewId)); + assert(!isTablet(nViewId)); + g_vIsViewTablet[nViewId] = true; } bool isTablet(int nViewId) diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index 95762d537e1c..4a4a10efaa65 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -3623,25 +3623,14 @@ static void doc_postUnoCommand(LibreOfficeKitDocument* pThis, const char* pComma if (nView < 0) return; - // Set/unset mobile phone view for LOK if (gImpl && (aCommand == ".uno:LOKSetMobile" || aCommand == ".uno:LOKSetMobilePhone")) { - comphelper::LibreOfficeKit::setMobilePhone(nView, true); - return; - } - else if (gImpl && (aCommand == ".uno:LOKUnSetMobile" || aCommand == ".uno:LOKUnSetMobilePhone")) - { - comphelper::LibreOfficeKit::setMobilePhone(nView, false); + comphelper::LibreOfficeKit::setMobilePhone(nView); return; } else if (gImpl && aCommand == ".uno:LOKSetTablet") { - comphelper::LibreOfficeKit::setTablet(nView, true); - return; - } - else if (gImpl && aCommand == ".uno:LOKUnSetTablet") - { - comphelper::LibreOfficeKit::setTablet(nView, false); + comphelper::LibreOfficeKit::setTablet(nView); return; } else if (gImpl && aCommand == ".uno:ToggleOrientation") diff --git a/include/comphelper/lok.hxx b/include/comphelper/lok.hxx index 43191db90ec0..09d4f682341e 100644 --- a/include/comphelper/lok.hxx +++ b/include/comphelper/lok.hxx @@ -29,16 +29,15 @@ namespace LibreOfficeKit COMPHELPER_DLLPUBLIC void setActive(bool bActive = true); -// Note that currently it is undefined behaviour to call both setMobilePhone() and setTablet(). This -// will be remedied in the future. For now, just make sure you call just either for a view, and just -// once, with the bool parameter as true. In the future, this will probably be changed into using an -// enum for the kind of the view, that can be DESKTOP, MOBILEPHONE, or TABLET. +// Call either setMobilePhone() or setTablet() for a view, and at most once. (If neither is called, +// the view is assumed to be on a desktop browser.) In the future, this will possibly be changed +// into using an enum for the kind of the view, that can be DESKTOP, MOBILEPHONE, or TABLET. // Tell that LOK view is on a mobile phone (regardless what its pixel resolution is, whether its form factor is "phablet" or not) -COMPHELPER_DLLPUBLIC void setMobilePhone(int nViewId, bool bIsMobilePhone); +COMPHELPER_DLLPUBLIC void setMobilePhone(int nViewId); // Tell that LOK view is on a tablet -COMPHELPER_DLLPUBLIC void setTablet(int nViewId, bool bIsTablet); +COMPHELPER_DLLPUBLIC void setTablet(int nViewId); enum class statusIndicatorCallbackType { Start, SetValue, Finish }; |