summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel
Commit message (Collapse)AuthorAgeFilesLines
* Fix window transparency on Symbian.Jason Barron2010-04-211-10/+1
| | | | | | | | | | | | | In the create_sys() function where native handles are created, we were only looking at the "isOpaque" flag to determine if a window should be translucent or not. This is not the correct thing to do because transparency should only be granted if the application explicitly sets the Qt::WA_TranslucentBackground flag. The fix is to defer the transparency decision to s60UpdateIsOpaque() which does the right thing. Reviewed-by: Jani Hautakangas
* Tweak the 'normalGeometry' of the widget before setting it.Jason Barron2010-04-211-2/+11
| | | | | | | | | | | If a widget is initially shown as maximized or fullscreen then the normal geometry is calculated before the status pane has been created. When returning to the "Normal" window state the geometry needs to be tweaked to compensate the fact that there is a status present now. This should only happen if the application has not been given an explicit position. Reviewed-by: Janne Anttila
* Use QDesktopWidget as a status pane observer on Symbian.Jason Barron2010-04-213-1/+15
| | | | | | | | | | | | | | | | | Now that the S60 screen furniture construction is delayed, we need to manually set the status pane observer to get notifications about changes in the size of the status pane. Using the AppUi would have been the obvious choice here, but sadly CAknAppUi (base class for QS60MainAppUi) uses private inheritance when implementing the MEikStatusPaneObserver interface. To work around this problem we make QSymbianControl implement the interface and use the instance of this class that is associated with QDesktopWidget to recevive the notifications and then call the function in the AppUi to maintain the same behavior. Reviewed-by: Janne Anttila Reviewed-by: mread
* Delay creation of S60 screen furniture.Jason Barron2010-04-213-0/+39
| | | | | | | | | | | | | | Previously the S60 screen furniture (Status Pane and CBA) was being constructed when QApplication was constructed. This meant that if you never created a widget, you would still get those app panes which is not what we want. This patch avoids constructing these panes in QApplication, and manually creates them later when the first window is shown in a state where they would be needed. Reviewed-by: Janne Anttila Reviewed-by: mread
* Don't use setGeometry() in setWindowState() on Symbian.Jason Barron2010-04-211-5/+7
| | | | | | | | | | setGeometry() has the side effect that it internally sets both the WA_Moved and WA_Resized attributes and these attributes should only be used when the application has explicitly set a size or position. When a widget is resized due to being maximized or fullscreened then we should resize the native window handle instead of calling setGeometry. Reviewed-by: Janne Anttila
* Modify setWindowState() on Symbian to create the native window earlier.Jason Barron2010-04-211-2/+3
| | | | | | | | The native window is used quite early in this function so as soon as we determine that this does in fact require a native window, we should create it immediately. Reviewed-by: Janne Anttila
* Merge branch '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2010-04-191-0/+11
|\ | | | | | | | | | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-2: QMenu: Behavior regression Mac: Graphics View starving user events and sometimes crashes. Fixed a crash on Windows 7 systems with invalid PrinterPorts entries.
| * Mac: Graphics View starving user events and sometimes crashes.Bjørn Erik Nilsen2010-04-161-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem was that we called processEvents() and excluded user input events. The idea was to only process pending update requests, but by doing that there's also a chance that user input events will starve. Also, there's no gurantee that only update requests will be processed by processEvents(), so a safer solution is to call "HIViewRender" on Carbon and "displayIfNeeded" on Cocoa. This will for sure dispatch pending update requests and nothing else (which is exactly what we want). No auto test regressions. Fixes tst_qgraphicsproxywidget::updateAndDelete failure on Carbon. Benchmarks indicate an increase in performance. Task-number: QTBUG-7502 Reviewed-by: richard
* | Merge branch '4.6' of scm.dev.nokia.troll.no:qt/qt-s60-public into ↵Qt Continuous Integration System2010-04-152-2/+2
|\ \ | |/ |/| | | | | | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/qt-s60-public: Symbol visibility fixes for RVCT4 on Symbian Symbol visibility fixes for RVCT4 on Symbian Symbol visibility fixes for RVCT4 on Symbian
| * Symbol visibility fixes for RVCT4 on SymbianIain2010-04-152-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | RVCT 4 is far more strict with regards to symbol visiblity that RVCT 2.2, and will hide symbols unless all references have default visibility in the object files. Update the various places in Qt code where the symbol visibility was set incorrectly for DLL-based platforms (those that use __declspec(dllimport) and (dllexport). Note: QtWebkit and QtScript are fixed in different commits. Task-number: QTBUG-9903 Reviewed-by: Jason Barron
* | Fixes tooltips for QGraphicsProxyWidget.Yoann Lopes2010-04-151-2/+2
|/ | | | | | | | | Help event was not propagated to the widget. Also fixes tooltip value propagation when setting it on the proxy or on the widget. Autotest included. Task-number: QTBUG-5349 Reviewed-by: bnilsen
* Generate triggered signal even the action launches menu in Symbian.Janne Anttila2010-04-091-8/+8
| | | | | | | | | | | Triggered signal is useful for detecting native 'Options' menu launches in Symbian. QMenu::aboutToShow event is currently also not generated, but that is part of another bug report. And QMenu::aboutToShow would not even be generated for 'Options' menu itself but only for its sub/cascade menus. Task-number: QTBUG-9669 Reviewed-by: Sami Merila
* Fixed focus and window activation events on Symbian when opening menu.Janne Anttila2010-04-084-4/+20
| | | | | | | | | | | | | | | | | | As described in QTBUG-8698, Qt for Symbian has been generating incorrect focus and window activation events. This has happened since launching menu from QSoftkeyManager with TryDisplayMenuBarL, invokes eventually QSymbianControl::FocusChanged. But when the FocusChanged is called menu being launched is not yet set to visible, meaning that IsDisplayingMenuOrDialog returns false. Because there is no way in platform to detect that menu is being launhced, the fix is to add a new flag QS60Data, which can be used to detect if FocusChanged event is received due to the fact that menu is being constructed/launched. Task-number: QTBUG-8698 * Fixes issues 2, 3 and 4 Reviewed-by: Sami Merila
* QTBUG-4887 and other exception safety fixesmread2010-04-072-4/+13
| | | | | | | | | | | | | | | | | | | | This change includes a fix for QTBUG-4887 and other exception safety problems found while testing it. The QTBUG-4887 fix is to qimage.cpp. QImage doesn't throw exceptions on failure like a proper class should, instead it tries to fail "nice". What happens here is that setAlphaChannel would crash on OOM as after the convertToFormat call, d could be NULL. This new version checks the result of the conversion before using it. The other fixes are all cases where exceptions were thrown from destructors. I added code to the test app to help debug these cases, and I fixed all the problems I found. With these changes, tst_exceptionsafety_objects runs and passes on the Symbian emulator. Reviewed-by: Shane Kearns
* Fixed modal dialog not to have automatic "Exit" right softkey in S60.Janne Anttila2010-04-063-12/+5
| | | | | | | | | | | During softkey refactoring this piece of code get changes, but the changed code did not work correctly if window had no softkey actions. Switched back to old way where softkey source is stored to variable, and windowType is asked from stored variable. If softkey source is dialog or popup, "Exit" is not added automatically to RSK. Task-number: QT-2203 Reviewed-by: Sami Merila
* Fix doc for deprecated QGridLayout::colSpacing: point to existing methodDavid Faure2010-04-031-1/+1
| | | | | Merge-request: 544 Reviewed-by: Benjamin Poulain <benjamin.poulain@nokia.com>
* Fixed bitfield-related crash on Symbian WINSCWGareth Stockwell2010-03-291-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | When running on WINSCW, the nativePaintMode variable was becoming corrupted. The point at which this corruption occurs is unclear, but it can be reproduced as follows: 1. Launch qmediaplayer 2. In the Phonon::MMF::DsaVideoOutput constructor, the nativePaintMode flag is set to QWExtra::ZeroFill 3. Open a video clip 4. During start of playback, QSymbianControl::Draw is called on the native control corresponding to the DsaVideoOutput object. This checks the value of nativePaintMode; it does not match any of the valid NativePaintMode values, so an assertion fails. This crash does not occur on target, suggesting that the cause may be an error in the WINSCW compiler. Although the C++ standard allows bitfields to have boolean, integral or enumeration type, the latter is not permitted by C99. Neither increasing the number of bits allocated to nativePaintMode, nor changing it position in the list of platform-specific bitfields has any effect. After making nativePaintMode into a normal field rather than a bitfield, the crash no longer happens. Note that, since bitfields must be kept together, nativePaintMode is moved to the end of the structure.
* Hotfix to const usage in 262e98f9a29385f99cd6f768632264e0b621dc01Janne Anttila2010-03-231-3/+3
| | | | Reviewed-By: TrustMe
* Fixed S60 softkey implementation to use popup/modal dialog softkeys.Janne Anttila2010-03-233-13/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously softkey implementation assumed that source for softkey actions is focused widget or activewindow if there is no focused widget. Since for example pop-up menu does not take focus immediately in touch enabled devices, the underlying widget softkeys were visible and usable when menu was open. This lead to problem that underlying widget could be interacted via softkeys when popup menu was open. For example as reported in QTBUG-8688, it was possible to close the underlying filedialog from which the currently active context menu was launched. It was also possible to open "Options" menu of underlying widget when context menu was open, leading to situation where several context menus could be launched via "Actions" item of "Options" menu. This was reported as an issue: QTBUG-6167 In addition when user started navigating in context menu via keypad, the menu got focus and softkeys changed to partially correct. Only partially correct, since context menu "Select" action and "Options" action had same priority and both associated to LSK. In addition the context menu action "Cancel" associated to RSK was set to invisible, meaning that it was also disabled and appeared in sofkeys as dimmed. All of these issues were fixed by making making the popup and modal dialogs highest priority softkey source. In case the focused widget is inside popup or modal dialog it is being used as an initial softkey source. In addition the softkeys created with QSoftKeyManager::createAction or QSoftKeyManager::createKeyedAction are now by default invisible i.e. not visible in context menu and have special property set to make them still normally enabled in softkeys. Task-number: QTBUG-6167 Task-number: QTBUG-8688 Task-number: QTBUG-9144 Reviewed-by: Sami Merila
* Fixed 'fullsreen with softkeys' mode not to expand under softkey area.Janne Anttila2010-03-233-25/+29
| | | | | | | | | | | availableGeometry returns incorrect area after cba is made invisible, it seems that this happens because CAknToolbar is not made invisible. Fixed the problem by reverting back to SetExtentToWholeScreen usage when the widget is really fullscreen, i.e. Qt::WindowSoftkeysVisibleHint is not set. Task-number: QTBUG-9038 Reviewed-by: Miikka Heikkinen
* Fixed table formatting in QSound documentationMiikka Heikkinen2010-03-221-1/+2
| | | | | | Added the missing \row tag Reviewed-by: TrustMe
* Improved qt_x11_wait_for_window_managerDenis Dzyubenko2010-03-191-28/+10
| | | | | | | | | | | | | We shouldn't really care about ReparentNotify when waiting for a window to be "managed" by the window manager. We only need to wait until the window is Mapped and Exposed for the first time, then we (most likely) can safely assume that the window manager has finished managing the window. Task-number: QTBUG-9097 Reviewed-by: Bradley T. Hughes (cherry picked from commit fb6cfbe48bc4f2148062d50d4df95616e06f9324)
* Merge branch '4.6' of scm.dev.nokia.troll.no:qt/qt-s60-public into ↵Qt Continuous Integration System2010-03-181-6/+8
|\ | | | | | | | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/qt-s60-public: Initialize the graphics system before creating the style. Added support for video surfaces to Phonon MMF backend
| * Initialize the graphics system before creating the style.Jason Barron2010-03-181-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | Previously if the style was creating any pixmaps they were going to the createDefaultPixmapData() function which creates a default platform pixmap without considering the graphics system. If these pixmaps are used they may end up going through a suboptimal code path because they are not the same type of pixmap that is expected by the graphics system. The fix here is to intialize the graphics system before the style is created. Reviewed-by: Trond
* | Merge branch '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-03-181-1/+10
|\ \ | |/ |/| | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1: QToolTip may be placed incorrectly when using FullScreen mode - Mac OS X
| * QToolTip may be placed incorrectly when using FullScreen mode - Mac OS XCarlos Manuel Duclos Vergara2010-03-181-1/+10
| | | | | | | | | | | | | | | | | | | | When in full screen mode, there is no Dock nor Menu so we can use the whole screen for displaying the tooltip. However when not in full screen mode we need to save space for the dock, so we use availableGeometry instead. Task-number: QTBUG-8402 Reviewed-by: Prasanth
* | Fixed a bug where a proxy widget received FocusIn over and over.axis2010-03-181-0/+2
|/ | | | | | | | | | | This also fixed the issue where an input panel would not be requested by the widget, because it thought it was being focused over and over, instead of focused, and then clicked (focus followed by click is default input panel popup behavior on Symbian). AutoTest: Included and passed RevBy: yoann RevBy: Jan-Arve
* Change QS60Style to use combobox popup menuSami Merila2010-03-171-1/+7
| | | | | | | | | | | | | | | | | | | | Instead of using traditional dropdown menus, use popup menu, like native side does. Related to https://qtrequirements.europe.nokia.com/browse/QT-2274 Popup is positioned according to S60 popup position rules: - in portrait at the bottom, with square popup (dimension is screen width minus border) - in landscape, centered on Y-axis, on X-axis to the right border (with LeftToRight UI direction) Background behind popup is dimmed. Popup has automatic scrollbar if content does not fit into the popup. Popup background graphic is S60 dialog graphic. Task-number: QT-2274 Reviewed-by: Alessandro Portale
* Fixed filename cases to support building Qt for Symbian in LinuxMiikka Heikkinen2010-03-124-5/+5
| | | | | | | Part of QtP delta reduction effort. Task-number: QT-3055 Reviewed-by: Janne Koskinen
* Merge branch '4.6' of scm.dev.nokia.troll.no:qt/qt-s60-public into ↵Qt Continuous Integration System2010-03-122-2/+20
|\ | | | | | | | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/qt-s60-public: HotFix for fluidlauncher default size caused by 6d44dadd. Removed compiler warning from qdesktopwidget_s60.cpp.
| * HotFix for fluidlauncher default size caused by 6d44dadd.Janne Anttila2010-03-121-2/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | It seems that in Symbian we cannot restore Qt::WA_Moved and Qt::WA_Resized attributes in setWindowState method to the same ones what the attributes were when method was called. Thus we currently make sure that Qt::WA_Moved and Qt::WA_Resized attributes are not touched when normal window state is applied. There is a new task QTBUG-8977 to sort out when those attributes should be set and when not. Reviewed-By: Sami Merila
| * Removed compiler warning from qdesktopwidget_s60.cpp.Janne Anttila2010-03-121-0/+1
| | | | | | | | Reviewed-By: TrustMe
* | Merge branch '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-03-111-2/+4
|\ \ | |/ |/| | | | | | | | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1: Updated WebKit from /home/shausman/src/webkit/trunk to qtwebkit/qtwebkit-4.6 ( 266a6c4f1938dd9edf4a8125faf91c62495e3ce2 ) Doc: Removed lie that access to QBuffer is unbuffered. Minisplitter doesn't paint to the bottom/right Avoid unnecessary memory allocation in the jpeg handler's image detection
| * Minisplitter doesn't paint to the bottom/rightCarlos Manuel Duclos Vergara2010-03-111-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | The problem is not related to the Splitter handle but related to an optimization in the paintengine. We were comparing if the size of the widget had changed before setting the new mask, which might not be correct. We could have changed the mask without changing the widget size. Task-number: QTCREATORBUG-753 Reviewed-by: Morten Reviewed-by: Samuel
* | Fixed dialog resize not to move the dialog for Symbian.Janne Anttila2010-03-102-2/+7
|/ | | | | | | | | | | | | | | | QDialog::resize() also moved the dialog in Symbian. This occured since adjustPosition was called as an result of resize and that method did not check if dialog position was explicitly set. In addition it was found that in Symbian WA_Resized and WA_Moved attributes were basically set for almost all top-level widgets by system. This was also fixed and a new auto test was introduced to verify these attributes in all platforms. Windows platform also suffers from bug in this area, and a separate task QTBUG-5897 for it was created Task-number: QTBUG-5897 Reviewed-by: Sami Merila
* Updated the QCursor docs regarding XOR'ed cursors.Trond Kjernåsen2010-03-081-1/+2
| | | | | | | | XOR'ed cursors under X11 or Mac OS X have never been supported by Qt, and the doc updates done some time ago where not correct. Task-number: related to QTBUG-1838 Reviewed-by: Gunnar
* Merge branch '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-03-051-3/+3
|\ | | | | | | | | | | | | | | | | | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1: Fix build with Mesa 7.8's EGL implementatioon Reset the byte order in the iconv codec after using it. fix "using namespace" recursion crash Fixed key mappings on X11 QDom: prevent infinite loop when cloning a DTD QPrintPreviewDialog number of pages is partially blocked from view in OSX Updated WebKit from /home/shausman/src/webkit/trunk to qtwebkit/qtwebkit-4.6 ( f3110d2f94c825477afac054ed448e45d47f5670 )
| * Fixed key mappings on X11Denis Dzyubenko2010-03-051-3/+3
| | | | | | | | | | | | | | | | | | | | Merge request #1742 (6c8c1c5322a26d789165783d7df3e29c672690cb) changed the behavior of one of the keys on X11, this fixes it back and documents that on X11 the key binding is a bit weird - XF86XK_MyComputer is mapped to Qt::Key_Launch0, XF86XK_Launch0 is mapped to Qt::Key_Launch3 and so on. Task-number: QTBUG-7063 Reviewed-by: Marius Storm-Olsen
* | Fix for QTBUG-6659 Parent window accepts pointer events wronglyJani Hautakangas2010-03-052-2/+7
|/ | | | | | | | | Parent window accepted pointer events even though the child was modal. That was because closing popup didn't restore pointer grab for modal window. Task-number: QTBUG-6659 Reviewed-by: axis
* Merge branch '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-03-045-1/+73
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1: tst_qhostinfo: Compile fix Document some stuff in QHostInfo and QAbstractSocket tst_qhostinfo: Mixed up descriptions for test case data qhostinfo benchmark: Use local _data instead of _global DNS Cache: Also check inside the DNS threads qhostinfo benchmark: Benchmark the with-cache and without-cache tst_qftp: Do not use 1.2.3.4 as IP Dont use gestures if there is no touch screen. showFullscreen() broken if UnifiedTitleAndToolBarOnMac is enabled Fix atk warning on startup in Qt apps wit QGtkStyle Do not use realpath() with uclibc
| * Dont use gestures if there is no touch screen.Denis Dzyubenko2010-03-045-1/+73
| | | | | | | | | | | | | | | | | | If there is no touch input device attached on Windows7, we shouldn't even bother subscribing to native gesture events. Task-number: QTBUG-6007 Reviewed-by: Thierry Reviewed-by: Prasanth
* | Make tablet detection work with new wacom driversThomas Zander2010-03-042-2/+10
|/ | | | | | | | | | | wacom driver fixed a bug in assigning atom names where it messed up the device names. Their solution apparently renamed the atoms The type names used now are "STYLUS", "CURSOR", "ERASER", "PAD" and "TOUCH" for each respective device. This change detects those as our tablet input devices. Reviewed-by: Benjamin Poulain <benjamin.poulain@nokia.com> Task-number: QTBUG-8599
* Merge branch '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-03-033-9/+18
|\ | | | | | | | | | | | | | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1: Removed unused macro. Fix runtime warning on Gtk versions < 2.16 Fix compile Follow-up to c1b067e: fix aliasing in QReadWriteLock too. Bug with toolbar focus on Mac
| * Removed unused macro.Adrian Constantin2010-03-031-4/+0
| | | | | | | | Reviewed-by: Stefano Pironato
| * Fix compileJens Bache-Wiig2010-03-031-1/+0
| | | | | | | | Reviewed-by: cduclos
| * Bug with toolbar focus on MacCarlos Manuel Duclos Vergara2010-03-032-5/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before doing anything we need to make sure that we don't leave anything in a non-consistent state. When hiding a widget we need to make sure that no mouse_down events are active, because the mouse_up event will never be received by a hidden widget or one of its descendants. The solution is simple, before going through with this we check if there are any mouse_down events in progress, if so we check if it is related to this widget or not. If so, we just reset the mouse_down and then we continue. In X11 and Windows we send a mouse_release event, however we don't do that here because we were already ignoring that from before. I.e. Carbon did not send the mouse release event, so we will not send the mouse release event. There are two ways to interpret this: 1. If we don't send the mouse release event, the widget might get into an inconsistent state, i.e. it might be waiting for a release event that will never arrive. 2. If we send the mouse release event, then the widget might decide to trigger an action that is not supposed to trigger because it is not visible. Task-number: QTBUG-8604 Reviewed-by: denis
* | Merge branch '4.6' of scm.dev.nokia.troll.no:qt/qt-s60-public into ↵Qt Continuous Integration System2010-03-032-3/+12
|\ \ | |/ |/| | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/qt-s60-public: Reduced S60 softkey flickering caused by softkey image support.
| * Reduced S60 softkey flickering caused by softkey image support.Janne Anttila2010-03-032-3/+12
| | | | | | | | | | | | | | | | EikSoftkeyImage::SetLabel call seems to clear and redraw the softkeys every time when called. This commit removes the unnecessary calls to the method if given CBA is already in text mode. Reviewed-By: Sami Merila
* | Merge branch '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-03-033-9/+16
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1: Fix build break in qapplication_x11.cpp. update russian translations and phrasebook Allow platform specific values for the double click radius. Fix strict-aliasing breakage with SunCC: the union trick is a GCC extension. QNAM HTTP: Fix invoking a method when being destructed right now QAbstractSocket: Use new faster DNS function Add DNS caching to QHostInfo Make the icon visible when set on an action in a QSystemTrayIcon on Mac Carbon : Setting palette brush to a pixmap does not work.
| * | Fix build break in qapplication_x11.cpp.Adrian Constantin2010-03-031-0/+5
| | | | | | | | | | | | Reviewed-by: TrustMe