aboutsummaryrefslogtreecommitdiff
path: root/launcher
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2021-10-25 23:51:42 +0200
committerPetr Mrázek <peterix@gmail.com>2021-10-25 23:51:42 +0200
commitae4939e0d2e8774b823865cce0a8e822d04673a5 (patch)
tree921873298ec1d39cedb68e1d64c3340122620a93 /launcher
parent85ecbad46755d42e3e0682dfe24e587ee3157565 (diff)
downloadPrismLauncher-ae4939e0d2e8774b823865cce0a8e822d04673a5.tar.gz
PrismLauncher-ae4939e0d2e8774b823865cce0a8e822d04673a5.tar.bz2
PrismLauncher-ae4939e0d2e8774b823865cce0a8e822d04673a5.zip
GH-4164 Assign instances to groups using drag & drop
Diffstat (limited to 'launcher')
-rw-r--r--launcher/CMakeLists.txt24
-rw-r--r--launcher/InstanceList.cpp47
-rw-r--r--launcher/InstanceList.h12
-rw-r--r--launcher/InstanceProxyModel.cpp38
-rw-r--r--launcher/InstanceProxyModel.h19
-rw-r--r--launcher/Launcher.cpp2
-rw-r--r--launcher/MainWindow.cpp16
-rw-r--r--launcher/MainWindow.h4
-rw-r--r--launcher/dialogs/IconPickerDialog.cpp8
-rw-r--r--launcher/groupview/GroupedProxyModel.cpp48
-rw-r--r--launcher/instanceview/AccessibleInstanceView.cpp (renamed from launcher/groupview/AccessibleGroupView.cpp)140
-rw-r--r--launcher/instanceview/AccessibleInstanceView.h (renamed from launcher/groupview/AccessibleGroupView.h)0
-rw-r--r--launcher/instanceview/AccessibleInstanceView_p.h (renamed from launcher/groupview/AccessibleGroupView_p.h)14
-rw-r--r--launcher/instanceview/InstanceDelegate.cpp (renamed from launcher/groupview/InstanceDelegate.cpp)6
-rw-r--r--launcher/instanceview/InstanceDelegate.h (renamed from launcher/groupview/InstanceDelegate.h)0
-rw-r--r--launcher/instanceview/InstanceProxyModel.cpp71
-rw-r--r--launcher/instanceview/InstanceProxyModel.h (renamed from launcher/groupview/GroupedProxyModel.h)13
-rw-r--r--launcher/instanceview/InstanceView.cpp (renamed from launcher/groupview/GroupView.cpp)181
-rw-r--r--launcher/instanceview/InstanceView.h (renamed from launcher/groupview/GroupView.h)24
-rw-r--r--launcher/instanceview/VisualGroup.cpp (renamed from launcher/groupview/VisualGroup.cpp)6
-rw-r--r--launcher/instanceview/VisualGroup.h (renamed from launcher/groupview/VisualGroup.h)6
21 files changed, 345 insertions, 334 deletions
diff --git a/launcher/CMakeLists.txt b/launcher/CMakeLists.txt
index d67dcdbf..691ff004 100644
--- a/launcher/CMakeLists.txt
+++ b/launcher/CMakeLists.txt
@@ -573,8 +573,6 @@ SET(LAUNCHER_SOURCES
GuiUtil.cpp
ColumnResizer.h
ColumnResizer.cpp
- InstanceProxyModel.h
- InstanceProxyModel.cpp
VersionProxyModel.h
VersionProxyModel.cpp
ColorCache.h
@@ -802,17 +800,17 @@ SET(LAUNCHER_SOURCES
widgets/WideBar.cpp
# GUI - instance group view
- groupview/GroupedProxyModel.cpp
- groupview/GroupedProxyModel.h
- groupview/AccessibleGroupView.cpp
- groupview/AccessibleGroupView.h
- groupview/AccessibleGroupView_p.h
- groupview/GroupView.cpp
- groupview/GroupView.h
- groupview/InstanceDelegate.cpp
- groupview/InstanceDelegate.h
- groupview/VisualGroup.cpp
- groupview/VisualGroup.h
+ instanceview/InstanceProxyModel.cpp
+ instanceview/InstanceProxyModel.h
+ instanceview/AccessibleInstanceView.cpp
+ instanceview/AccessibleInstanceView.h
+ instanceview/AccessibleInstanceView_p.h
+ instanceview/InstanceView.cpp
+ instanceview/InstanceView.h
+ instanceview/InstanceDelegate.cpp
+ instanceview/InstanceDelegate.h
+ instanceview/VisualGroup.cpp
+ instanceview/VisualGroup.h
)
######## UIs ########
diff --git a/launcher/InstanceList.cpp b/launcher/InstanceList.cpp
index ae905414..ad18740b 100644
--- a/launcher/InstanceList.cpp
+++ b/launcher/InstanceList.cpp
@@ -26,6 +26,7 @@
#include <QUuid>
#include <QJsonArray>
#include <QJsonDocument>
+#include <QMimeData>
#include "InstanceList.h"
#include "BaseInstance.h"
@@ -63,6 +64,50 @@ InstanceList::~InstanceList()
{
}
+Qt::DropActions InstanceList::supportedDragActions() const
+{
+ return Qt::MoveAction;
+}
+
+Qt::DropActions InstanceList::supportedDropActions() const
+{
+ return Qt::MoveAction;
+}
+
+bool InstanceList::canDropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent) const
+{
+ if(data && data->hasFormat("application/x-instanceid")) {
+ return true;
+ }
+ return false;
+}
+
+bool InstanceList::dropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent)
+{
+ if(data && data->hasFormat("application/x-instanceid")) {
+ return true;
+ }
+ return false;
+}
+
+QStringList InstanceList::mimeTypes() const
+{
+ auto types = QAbstractListModel::mimeTypes();
+ types.push_back("application/x-instanceid");
+ return types;
+}
+
+QMimeData * InstanceList::mimeData(const QModelIndexList& indexes) const
+{
+ auto mimeData = QAbstractListModel::mimeData(indexes);
+ if(indexes.size() == 1) {
+ auto instanceId = data(indexes[0], InstanceIDRole).toString();
+ mimeData->setData("application/x-instanceid", instanceId.toUtf8());
+ }
+ return mimeData;
+}
+
+
int InstanceList::rowCount(const QModelIndex &parent) const
{
Q_UNUSED(parent);
@@ -112,7 +157,7 @@ QVariant InstanceList::data(const QModelIndex &index, int role) const
{
return pdata->iconKey();
}
- // HACK: see GroupView.h in gui!
+ // HACK: see InstanceView.h in gui!
case GroupRole:
{
return getInstanceGroup(pdata->id());
diff --git a/launcher/InstanceList.h b/launcher/InstanceList.h
index 4d2dc1f6..bc6c3af0 100644
--- a/launcher/InstanceList.h
+++ b/launcher/InstanceList.h
@@ -93,7 +93,6 @@ public:
InstListError loadList();
void saveNow();
-
InstancePtr getInstanceById(QString id) const;
QModelIndex getInstanceIndexById(const QString &id) const;
QStringList getGroups();
@@ -128,6 +127,17 @@ public:
int getTotalPlayTime();
+ Qt::DropActions supportedDragActions() const override;
+
+ Qt::DropActions supportedDropActions() const override;
+
+ bool canDropMimeData(const QMimeData * data, Qt::DropAction action, int row, int column, const QModelIndex & parent) const override;
+
+ bool dropMimeData(const QMimeData * data, Qt::DropAction action, int row, int column, const QModelIndex & parent) override;
+
+ QStringList mimeTypes() const override;
+ QMimeData *mimeData(const QModelIndexList &indexes) const override;
+
signals:
void dataIsInvalid();
void instancesChanged();
diff --git a/launcher/InstanceProxyModel.cpp b/launcher/InstanceProxyModel.cpp
deleted file mode 100644
index 9ee38a65..00000000
--- a/launcher/InstanceProxyModel.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
-#include "InstanceProxyModel.h"
-#include "Launcher.h"
-#include <BaseInstance.h>
-#include <icons/IconList.h>
-
-InstanceProxyModel::InstanceProxyModel(QObject *parent) : GroupedProxyModel(parent)
-{
- m_naturalSort.setNumericMode(true);
- m_naturalSort.setCaseSensitivity(Qt::CaseSensitivity::CaseInsensitive);
- // FIXME: use loaded translation as source of locale instead, hook this up to translation changes
- m_naturalSort.setLocale(QLocale::system());
-}
-
-QVariant InstanceProxyModel::data(const QModelIndex & index, int role) const
-{
- QVariant data = QSortFilterProxyModel::data(index, role);
- if(role == Qt::DecorationRole)
- {
- return QVariant(LAUNCHER->icons()->getIcon(data.toString()));
- }
- return data;
-}
-
-bool InstanceProxyModel::subSortLessThan(const QModelIndex &left,
- const QModelIndex &right) const
-{
- BaseInstance *pdataLeft = static_cast<BaseInstance *>(left.internalPointer());
- BaseInstance *pdataRight = static_cast<BaseInstance *>(right.internalPointer());
- QString sortMode = LAUNCHER->settings()->get("InstSortMode").toString();
- if (sortMode == "LastLaunch")
- {
- return pdataLeft->lastLaunch() > pdataRight->lastLaunch();
- }
- else
- {
- return m_naturalSort.compare(pdataLeft->name(), pdataRight->name()) < 0;
- }
-}
diff --git a/launcher/InstanceProxyModel.h b/launcher/InstanceProxyModel.h
deleted file mode 100644
index baf2794b..00000000
--- a/launcher/InstanceProxyModel.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#pragma once
-
-#include "groupview/GroupedProxyModel.h"
-#include <QCollator>
-
-/**
- * A proxy model that is responsible for sorting instances into groups
- */
-class InstanceProxyModel : public GroupedProxyModel
-{
-public:
- explicit InstanceProxyModel(QObject *parent = 0);
- QVariant data(const QModelIndex & index, int role) const override;
-
-protected:
- virtual bool subSortLessThan(const QModelIndex &left, const QModelIndex &right) const override;
-private:
- QCollator m_naturalSort;
-};
diff --git a/launcher/Launcher.cpp b/launcher/Launcher.cpp
index e5deb791..5036b7ff 100644
--- a/launcher/Launcher.cpp
+++ b/launcher/Launcher.cpp
@@ -3,7 +3,7 @@
#include "MainWindow.h"
#include "InstanceWindow.h"
-#include "groupview/AccessibleGroupView.h"
+#include "instanceview/AccessibleInstanceView.h"
#include <QAccessible>
#include "pages/BasePageProvider.h"
diff --git a/launcher/MainWindow.cpp b/launcher/MainWindow.cpp
index 0c414285..21502894 100644
--- a/launcher/MainWindow.cpp
+++ b/launcher/MainWindow.cpp
@@ -67,11 +67,11 @@
#include <DesktopServices.h>
#include "InstanceWindow.h"
#include "InstancePageProvider.h"
-#include "InstanceProxyModel.h"
+#include "instanceview/InstanceProxyModel.h"
#include "JavaCommon.h"
#include "LaunchController.h"
-#include "groupview/GroupView.h"
-#include "groupview/InstanceDelegate.h"
+#include "instanceview/InstanceView.h"
+#include "instanceview/InstanceDelegate.h"
#include "widgets/LabeledToolButton.h"
#include "dialogs/NewInstanceDialog.h"
#include "dialogs/ProgressDialog.h"
@@ -695,7 +695,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
// Create the instance list widget
{
- view = new GroupView(ui->centralWidget);
+ view = new InstanceView(ui->centralWidget);
view->setSelectionMode(QAbstractItemView::SingleSelection);
// FIXME: leaks ListViewDelegate
@@ -707,7 +707,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
view->installEventFilter(this);
view->setContextMenuPolicy(Qt::CustomContextMenu);
connect(view, &QWidget::customContextMenuRequested, this, &MainWindow::showInstanceContextMenu);
- connect(view, &GroupView::droppedURLs, this, &MainWindow::droppedURLs, Qt::QueuedConnection);
+ connect(view, &InstanceView::droppedURLs, this, &MainWindow::droppedURLs, Qt::QueuedConnection);
proxymodel = new InstanceProxyModel(this);
proxymodel->setSourceModel(LAUNCHER->instances().get());
@@ -718,7 +718,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
view->setSourceOfGroupCollapseStatus([](const QString & groupName)->bool {
return LAUNCHER->instances()->isGroupCollapsed(groupName);
});
- connect(view, &GroupView::groupStateChanged, LAUNCHER->instances().get(), &InstanceList::on_GroupStateChanged);
+ connect(view, &InstanceView::groupStateChanged, LAUNCHER->instances().get(), &InstanceList::on_GroupStateChanged);
ui->horizontalLayout->addWidget(view);
}
// The cat background
@@ -730,7 +730,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
setCatBackground(cat_enable);
}
// start instance when double-clicked
- connect(view, &GroupView::activated, this, &MainWindow::instanceActivated);
+ connect(view, &InstanceView::activated, this, &MainWindow::instanceActivated);
// track the selection -- update the instance toolbar
connect(view->selectionModel(), &QItemSelectionModel::currentChanged, this, &MainWindow::instanceChanged);
@@ -1313,7 +1313,7 @@ void MainWindow::setCatBackground(bool enabled)
QDateTime xmas(QDate(now.date().year(), 12, 25), QTime(0, 0));
QString cat = (non_stupid_abs(now.daysTo(xmas)) <= 4) ? "catmas" : "kitteh";
view->setStyleSheet(QString(R"(
-GroupView
+InstanceView
{
background-image: url(:/backgrounds/%1);
background-attachment: fixed;
diff --git a/launcher/MainWindow.h b/launcher/MainWindow.h
index 38e5b4b5..c2ad46ea 100644
--- a/launcher/MainWindow.h
+++ b/launcher/MainWindow.h
@@ -35,7 +35,7 @@ class LabeledToolButton;
class QLabel;
class MinecraftLauncher;
class BaseProfilerFactory;
-class GroupView;
+class InstanceView;
class KonamiCode;
class InstanceTask;
@@ -201,7 +201,7 @@ private:
std::unique_ptr<Ui> ui;
// these are managed by Qt's memory management model!
- GroupView *view = nullptr;
+ InstanceView *view = nullptr;
InstanceProxyModel *proxymodel = nullptr;
QToolButton *newsLabel = nullptr;
QLabel *m_statusLeft = nullptr;
diff --git a/launcher/dialogs/IconPickerDialog.cpp b/launcher/dialogs/IconPickerDialog.cpp
index 3878d8e3..a1c432a8 100644
--- a/launcher/dialogs/IconPickerDialog.cpp
+++ b/launcher/dialogs/IconPickerDialog.cpp
@@ -22,7 +22,7 @@
#include "IconPickerDialog.h"
#include "ui_IconPickerDialog.h"
-#include "groupview/InstanceDelegate.h"
+#include "instanceview/InstanceDelegate.h"
#include "icons/IconList.h"
#include "icons/IconUtils.h"
@@ -126,8 +126,9 @@ void IconPickerDialog::selectionChanged(QItemSelection selected, QItemSelection
return;
QString key = selected.first().indexes().first().data(Qt::UserRole).toString();
- if (!key.isEmpty())
+ if (!key.isEmpty()) {
selectedIconKey = key;
+ }
}
int IconPickerDialog::execWithSelection(QString selection)
@@ -141,8 +142,7 @@ int IconPickerDialog::execWithSelection(QString selection)
contentsWidget->selectionModel()->select(
model_index, QItemSelectionModel::Current | QItemSelectionModel::Select);
- QMetaObject::invokeMethod(this, "delayed_scroll", Qt::QueuedConnection,
- Q_ARG(QModelIndex, model_index));
+ QMetaObject::invokeMethod(this, "delayed_scroll", Qt::QueuedConnection, Q_ARG(QModelIndex, model_index));
return QDialog::exec();
}
diff --git a/launcher/groupview/GroupedProxyModel.cpp b/launcher/groupview/GroupedProxyModel.cpp
deleted file mode 100644
index dc4212d5..00000000
--- a/launcher/groupview/GroupedProxyModel.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright 2013-2021 MultiMC Contributors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "GroupedProxyModel.h"
-
-#include "GroupView.h"
-#include <QDebug>
-
-GroupedProxyModel::GroupedProxyModel(QObject *parent) : QSortFilterProxyModel(parent)
-{
-}
-
-bool GroupedProxyModel::lessThan(const QModelIndex &left, const QModelIndex &right) const
-{
- const QString leftCategory = left.data(GroupViewRoles::GroupRole).toString();
- const QString rightCategory = right.data(GroupViewRoles::GroupRole).toString();
- if (leftCategory == rightCategory)
- {
- return subSortLessThan(left, right);
- }
- else
- {
- // FIXME: real group sorting happens in GroupView::updateGeometries(), see LocaleString
- auto result = leftCategory.localeAwareCompare(rightCategory);
- if(result == 0)
- {
- return subSortLessThan(left, right);
- }
- return result < 0;
- }
-}
-
-bool GroupedProxyModel::subSortLessThan(const QModelIndex &left, const QModelIndex &right) const
-{
- return left.row() < right.row();
-}
diff --git a/launcher/groupview/AccessibleGroupView.cpp b/launcher/instanceview/AccessibleInstanceView.cpp
index c6541f18..7de3ac72 100644
--- a/launcher/groupview/AccessibleGroupView.cpp
+++ b/launcher/instanceview/AccessibleInstanceView.cpp
@@ -1,6 +1,6 @@
-#include "GroupView.h"
-#include "AccessibleGroupView.h"
-#include "AccessibleGroupView_p.h"
+#include "InstanceView.h"
+#include "AccessibleInstanceView.h"
+#include "AccessibleInstanceView_p.h"
#include <qvariant.h>
#include <qaccessible.h>
@@ -16,44 +16,44 @@ QAccessibleInterface *groupViewAccessibleFactory(const QString &classname, QObje
QWidget *widget = static_cast<QWidget*>(object);
- if (classname == QLatin1String("GroupView")) {
- iface = new AccessibleGroupView((GroupView *)widget);
+ if (classname == QLatin1String("InstanceView")) {
+ iface = new AccessibleInstanceView((InstanceView *)widget);
}
return iface;
}
-QAbstractItemView *AccessibleGroupView::view() const
+QAbstractItemView *AccessibleInstanceView::view() const
{
return qobject_cast<QAbstractItemView*>(object());
}
-int AccessibleGroupView::logicalIndex(const QModelIndex &index) const
+int AccessibleInstanceView::logicalIndex(const QModelIndex &index) const
{
if (!view()->model() || !index.isValid())
return -1;
return index.row() * (index.model()->columnCount()) + index.column();
}
-AccessibleGroupView::AccessibleGroupView(QWidget *w)
+AccessibleInstanceView::AccessibleInstanceView(QWidget *w)
: QAccessibleObject(w)
{
Q_ASSERT(view());
}
-bool AccessibleGroupView::isValid() const
+bool AccessibleInstanceView::isValid() const
{
return view();
}
-AccessibleGroupView::~AccessibleGroupView()
+AccessibleInstanceView::~AccessibleInstanceView()
{
for (QAccessible::Id id : childToId) {
QAccessible::deleteAccessibleInterface(id);
}
}
-QAccessibleInterface *AccessibleGroupView::cellAt(int row, int column) const
+QAccessibleInterface *AccessibleInstanceView::cellAt(int row, int column) const
{
if (!view()->model()) {
return 0;
@@ -61,19 +61,19 @@ QAccessibleInterface *AccessibleGroupView::cellAt(int row, int column) const
QModelIndex index = view()->model()->index(row, column, view()->rootIndex());
if (Q_UNLIKELY(!index.isValid())) {
- qWarning() << "AccessibleGroupView::cellAt: invalid index: " << index << " for " << view();
+ qWarning() << "AccessibleInstanceView::cellAt: invalid index: " << index << " for " << view();
return 0;
}
return child(logicalIndex(index));
}
-QAccessibleInterface *AccessibleGroupView::caption() const
+QAccessibleInterface *AccessibleInstanceView::caption() const
{
return 0;
}
-QString AccessibleGroupView::columnDescription(int column) const
+QString AccessibleInstanceView::columnDescription(int column) const
{
if (!view()->model())
return QString();
@@ -81,49 +81,49 @@ QString AccessibleGroupView::columnDescription(int column) const
return view()->model()->headerData(column, Qt::Horizontal).toString();
}
-int AccessibleGroupView::columnCount() const
+int AccessibleInstanceView::columnCount() const
{
if (!view()->model())
return 0;
return 1;
}
-int AccessibleGroupView::rowCount() const
+int AccessibleInstanceView::rowCount() const
{
if (!view()->model())
return 0;
return view()->model()->rowCount();
}
-int AccessibleGroupView::selectedCellCount() const
+int AccessibleInstanceView::selectedCellCount() const
{
if (!view()->selectionModel())
return 0;
return view()->selectionModel()->selectedIndexes().count();
}
-int AccessibleGroupView::selectedColumnCount() const
+int AccessibleInstanceView::selectedColumnCount() const
{
if (!view()->selectionModel())
return 0;
return view()->selectionModel()->selectedColumns().count();
}
-int AccessibleGroupView::selectedRowCount() const
+int AccessibleInstanceView::selectedRowCount() const
{
if (!view()->selectionModel())
return 0;
return view()->selectionModel()->selectedRows().count();
}
-QString AccessibleGroupView::rowDescription(int row) const
+QString AccessibleInstanceView::rowDescription(int row) const
{
if (!view()->model())
return QString();
return view()->model()->headerData(row, Qt::Vertical).toString();
}
-QList<QAccessibleInterface *> AccessibleGroupView::selectedCells() const
+QList<QAccessibleInterface *> AccessibleInstanceView::selectedCells() const
{
QList<QAccessibleInterface*> cells;
if (!view()->selectionModel())
@@ -135,7 +135,7 @@ QList<QAccessibleInterface *> AccessibleGroupView::selectedCells() const
return cells;
}
-QList<int> AccessibleGroupView::selectedColumns() const
+QList<int> AccessibleInstanceView::selectedColumns() const
{
if (!view()->selectionModel()) {
return QList<int>();
@@ -152,7 +152,7 @@ QList<int> AccessibleGroupView::selectedColumns() const
return columns;
}
-QList<int> AccessibleGroupView::selectedRows() const
+QList<int> AccessibleInstanceView::selectedRows() const
{
if (!view()->selectionModel()) {
return QList<int>();
@@ -170,12 +170,12 @@ QList<int> AccessibleGroupView::selectedRows() const
return rows;
}
-QAccessibleInterface *AccessibleGroupView::summary() const
+QAccessibleInterface *AccessibleInstanceView::summary() const
{
return 0;
}
-bool AccessibleGroupView::isColumnSelected(int column) const
+bool AccessibleInstanceView::isColumnSelected(int column) const
{
if (!view()->selectionModel()) {
return false;
@@ -184,7 +184,7 @@ bool AccessibleGroupView::isColumnSelected(int column) const
return view()->selectionModel()->isColumnSelected(column, QModelIndex());
}
-bool AccessibleGroupView::isRowSelected(int row) const
+bool AccessibleInstanceView::isRowSelected(int row) const
{
if (!view()->selectionModel()) {
return false;
@@ -193,7 +193,7 @@ bool AccessibleGroupView::isRowSelected(int row) const
return view()->selectionModel()->isRowSelected(row, QModelIndex());
}
-bool AccessibleGroupView::selectRow(int row)
+bool AccessibleInstanceView::selectRow(int row)
{
if (!view()->model() || !view()->selectionModel()) {
return false;
@@ -229,7 +229,7 @@ bool AccessibleGroupView::selectRow(int row)
return true;
}
-bool AccessibleGroupView::selectColumn(int column)
+bool AccessibleInstanceView::selectColumn(int column)
{
if (!view()->model() || !view()->selectionModel()) {
return false;
@@ -265,7 +265,7 @@ bool AccessibleGroupView::selectColumn(int column)
return true;
}
-bool AccessibleGroupView::unselectRow(int row)
+bool AccessibleInstanceView::unselectRow(int row)
{
if (!view()->model() || !view()->selectionModel()) {
return false;
@@ -308,7 +308,7 @@ bool AccessibleGroupView::unselectRow(int row)
return true;
}
-bool AccessibleGroupView::unselectColumn(int column)
+bool AccessibleInstanceView::unselectColumn(int column)
{
auto model = view()->model();
if (!model || !view()->selectionModel()) {
@@ -350,17 +350,17 @@ bool AccessibleGroupView::unselectColumn(int column)
return true;
}
-QAccessible::Role AccessibleGroupView::role() const
+QAccessible::Role AccessibleInstanceView::role() const
{
return QAccessible::List;
}
-QAccessible::State AccessibleGroupView::state() const
+QAccessible::State AccessibleInstanceView::state() const
{
return QAccessible::State();
}
-QAccessibleInterface *AccessibleGroupView::childAt(int x, int y) const
+QAccessibleInterface *AccessibleInstanceView::childAt(int x, int y) const
{
QPoint viewportOffset = view()->viewport()->mapTo(view(), QPoint(0,0));
QPoint indexPosition = view()->mapFromGlobal(QPoint(x, y) - viewportOffset);
@@ -373,7 +373,7 @@ QAccessibleInterface *AccessibleGroupView::childAt(int x, int y) const
return 0;
}
-int AccessibleGroupView::childCount() const
+int AccessibleInstanceView::childCount() const
{
if (!view()->model()) {
return 0;
@@ -381,7 +381,7 @@ int AccessibleGroupView::childCount() const
return (view()->model()->rowCount()) * (view()->model()->columnCount());
}
-int AccessibleGroupView::indexOfChild(const QAccessibleInterface *iface) const
+int AccessibleInstanceView::indexOfChild(const QAccessibleInterface *iface) const
{
if (!view()->model())
return -1;
@@ -391,25 +391,25 @@ int AccessibleGroupView::indexOfChild(const QAccessibleInterface *iface) const
Q_ASSERT(iface->role() != QAccessible::TreeItem); // should be handled by tree class
if (iface->role() == QAccessible::Cell || iface->role() == QAccessible::ListItem) {
- const AccessibleGroupViewItem* cell = static_cast<const AccessibleGroupViewItem*>(iface);
+ const AccessibleInstanceViewItem* cell = static_cast<const AccessibleInstanceViewItem*>(iface);
return logicalIndex(cell->m_index);
} else if (iface->role() == QAccessible::Pane) {
return 0; // corner button
} else {
- qWarning() << "AccessibleGroupView::indexOfChild has a child with unknown role..." << iface->role() << iface->text(QAccessible::Name);
+ qWarning() << "AccessibleInstanceView::indexOfChild has a child with unknown role..." << iface->role() << iface->text(QAccessible::Name);
}
// FIXME: we are in denial of our children. this should stop.
return -1;
}
-QString AccessibleGroupView::text(QAccessible::Text t) const
+QString AccessibleInstanceView::text(QAccessible::Text t) const
{
if (t == QAccessible::Description)
return view()->accessibleDescription();
return view()->accessibleName();
}
-QRect AccessibleGroupView::rect() const
+QRect AccessibleInstanceView::rect() const
{
if (!view()->isVisible())
return QRect();
@@ -417,7 +417,7 @@ QRect AccessibleGroupView::rect() const
return QRect(pos.x(), pos.y(), view()->width(), view()->height());
}
-QAccessibleInterface *AccessibleGroupView::parent() const
+QAccessibleInterface *AccessibleInstanceView::parent() const
{
if (view() && view()->parent()) {
if (qstrcmp("QComboBoxPrivateContainer", view()->parent()->metaObject()->className()) == 0) {
@@ -428,7 +428,7 @@ QAccessibleInterface *AccessibleGroupView::parent() const
return 0;
}
-QAccessibleInterface *AccessibleGroupView::child(int logicalIndex) const
+QAccessibleInterface *AccessibleInstanceView::child(int logicalIndex) const
{
if (!view()->model())
return 0;
@@ -446,24 +446,24 @@ QAccessibleInterface *AccessibleGroupView::child(int logicalIndex) const
QModelIndex index = view()->model()->index(row, column, view()->rootIndex());
if (Q_UNLIKELY(!index.isValid())) {
- qWarning("AccessibleGroupView::child: Invalid index at: %d %d", row, column);
+ qWarning("AccessibleInstanceView::child: Invalid index at: %d %d", row, column);
return 0;
}
- iface = new AccessibleGroupViewItem(view(), index);
+ iface = new AccessibleInstanceViewItem(view(), index);
QAccessible::registerAccessibleInterface(iface);
childToId.insert(logicalIndex, QAccessible::uniqueId(iface));
return iface;
}
-void *AccessibleGroupView::interface_cast(QAccessible::InterfaceType t)
+void *AccessibleInstanceView::interface_cast(QAccessible::InterfaceType t)
{
if (t == QAccessible::TableInterface)
return static_cast<QAccessibleTableInterface*>(this);
return 0;
}
-void AccessibleGroupView::modelChange(QAccessibleTableModelChangeEvent *event)
+void AccessibleInstanceView::modelChange(QAccessibleTableModelChangeEvent *event)
{
// if there is no cache yet, we don't update anything
if (childToId.isEmpty())
@@ -511,7 +511,7 @@ void AccessibleGroupView::modelChange(QAccessibleTableModelChangeEvent *event)
Q_ASSERT(iface);
if (iface->role() == QAccessible::Cell || iface->role() == QAccessible::ListItem) {
Q_ASSERT(iface->tableCellInterface());
- AccessibleGroupViewItem *cell = static_cast<AccessibleGroupViewItem*>(iface->tableCellInterface());
+ AccessibleInstanceViewItem *cell = static_cast<AccessibleInstanceViewItem*>(iface->tableCellInterface());
// Since it is a QPersistentModelIndex, we only need to check if it is valid
if (cell->m_index.isValid())
newCache.insert(indexOfChild(cell), id);
@@ -532,14 +532,14 @@ void AccessibleGroupView::modelChange(QAccessibleTableModelChangeEvent *event)
// TABLE CELL
-AccessibleGroupViewItem::AccessibleGroupViewItem(QAbstractItemView *view_, const QModelIndex &index_)
+AccessibleInstanceViewItem::AccessibleInstanceViewItem(QAbstractItemView *view_, const QModelIndex &index_)
: view(view_), m_index(index_)
{
if (Q_UNLIKELY(!index_.isValid()))
- qWarning() << "AccessibleGroupViewItem::AccessibleGroupViewItem with invalid index: " << index_;
+ qWarning() << "AccessibleInstanceViewItem::AccessibleInstanceViewItem with invalid index: " << index_;
}
-void *AccessibleGroupViewItem::interface_cast(QAccessible::InterfaceType t)
+void *AccessibleInstanceViewItem::interface_cast(QAccessible::InterfaceType t)
{
if (t == QAccessible::TableCellInterface)
return static_cast<QAccessibleTableCellInterface*>(this);
@@ -548,20 +548,20 @@ void *AccessibleGroupViewItem::interface_cast(QAccessible::InterfaceType t)
return 0;
}
-int AccessibleGroupViewItem::columnExtent() const { return 1; }
-int AccessibleGroupViewItem::rowExtent() const { return 1; }
+int AccessibleInstanceViewItem::columnExtent() const { return 1; }
+int AccessibleInstanceViewItem::rowExtent() const { return 1; }
-QList<QAccessibleInterface*> AccessibleGroupViewItem::rowHeaderCells() const
+QList<QAccessibleInterface*> AccessibleInstanceViewItem::rowHeaderCells() const
{
return {};
}
-QList<QAccessibleInterface*> AccessibleGroupViewItem::columnHeaderCells() const
+QList<QAccessibleInterface*> AccessibleInstanceViewItem::columnHeaderCells() const
{
return {};
}
-int AccessibleGroupViewItem::columnIndex() const
+int AccessibleInstanceViewItem::columnIndex() const
{
if (!isValid()) {
return -1;
@@ -570,7 +570,7 @@ int AccessibleGroupViewItem::columnIndex() const
return m_index.column();
}
-int AccessibleGroupViewItem::rowIndex() const
+int AccessibleInstanceViewItem::rowIndex() const
{
if (!isValid()) {
return -1;
@@ -579,7 +579,7 @@ int AccessibleGroupViewItem::rowIndex() const
return m_index.row();
}
-bool AccessibleGroupViewItem::isSelected() const
+bool AccessibleInstanceViewItem