File indexing completed on 2024-04-28 15:39:41
0001 /* SPDX-FileCopyrightText: 2014 Jesper K. Pedersen <blackie@kde.org> 0002 0003 SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 #include "PositionObserver.h" 0007 #include <QQmlContext> 0008 #include <QQmlEngine> 0009 #include <QQuickItem> 0010 #include <QQuickView> 0011 0012 namespace RemoteControl 0013 { 0014 0015 static QQuickView *m_view = nullptr; 0016 0017 QQuickItem *findItem(const QString &name) 0018 { 0019 return m_view->rootObject()->findChild<QQuickItem *>(name); 0020 } 0021 0022 void PositionObserver::setView(QQuickView *view) 0023 { 0024 Q_ASSERT(m_view == nullptr); 0025 m_view = view; 0026 } 0027 0028 void setOffset(const QString &view, int index) 0029 { 0030 QQuickItem *item = findItem(view); 0031 Q_ASSERT(item); 0032 item->setProperty("index", index); 0033 } 0034 0035 int getOffset(const QString &view) 0036 { 0037 QQuickItem *item = findItem(view); 0038 Q_ASSERT(item); 0039 0040 QVariant value; 0041 QMetaObject::invokeMethod(item, "getIndex", Qt::DirectConnection, Q_RETURN_ARG(QVariant, value)); 0042 0043 return value.value<int>(); 0044 } 0045 0046 void PositionObserver::setCategoryIconViewOffset(int index) 0047 { 0048 setOffset("categoryPage", index); 0049 } 0050 0051 int PositionObserver::categoryIconViewOffset() 0052 { 0053 return getOffset("categoryPage"); 0054 } 0055 0056 int PositionObserver::thumbnailOffset() 0057 { 0058 return getOffset("thumbnailsPage"); 0059 } 0060 0061 void PositionObserver::setCategoryListViewOffset(int index) 0062 { 0063 setOffset("listViewPageObserver", index); 0064 } 0065 0066 int PositionObserver::categoryListViewOffset() 0067 { 0068 return getOffset("listViewPageObserver"); 0069 } 0070 0071 void RemoteControl::PositionObserver::setThumbnailOffset(int index) 0072 { 0073 setOffset("thumbnailsPage", index); 0074 } 0075 0076 } // namespace RemoteControl