/***************************************************************************** * gta5view Grand Theft Auto V Profile Viewer * Copyright (C) 2017 Syping * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . *****************************************************************************/ #include "UiModWidget.h" #include #include #include #include #include #include UiModWidget::UiModWidget(QWidget *parent) : QWidget(parent) { filesDropEnabled = false; imageDropEnabled = false; } UiModWidget::~UiModWidget() { } void UiModWidget::setFilesDropEnabled(bool enabled) { filesDropEnabled = enabled; } void UiModWidget::setImageDropEnabled(bool enabled) { imageDropEnabled = enabled; } void UiModWidget::dragEnterEvent(QDragEnterEvent *dragEnterEvent) { if (filesDropEnabled && dragEnterEvent->mimeData()->hasUrls()) { QVector pathList; const QList urlList = dragEnterEvent->mimeData()->urls(); for (const QUrl ¤tUrl : urlList) { if (currentUrl.isLocalFile()) { pathList.append(currentUrl.toLocalFile()); } } if (!pathList.isEmpty()) { dragEnterEvent->acceptProposedAction(); } } else if (imageDropEnabled && dragEnterEvent->mimeData()->hasImage()) { dragEnterEvent->acceptProposedAction(); } } void UiModWidget::dropEvent(QDropEvent *dropEvent) { dropEvent->acceptProposedAction(); emit dropped(dropEvent->mimeData()); } void UiModWidget::paintEvent(QPaintEvent *paintEvent) { Q_UNUSED(paintEvent) QStyleOption opt; opt.initFrom(this); QPainter p(this); style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); }