Qt: try to fix drag and drop issues

This commit is contained in:
Megamouse 2026-01-05 19:14:07 +01:00
parent 113679ead8
commit 8f26c01ae5
8 changed files with 25 additions and 36 deletions

View file

@ -146,6 +146,7 @@ void cg_disasm_window::dropEvent(QDropEvent* ev)
{
if (IsValidFile(*ev->mimeData(), true))
{
ev->acceptProposedAction();
ShowDisasm();
}
}
@ -154,7 +155,7 @@ void cg_disasm_window::dragEnterEvent(QDragEnterEvent* ev)
{
if (IsValidFile(*ev->mimeData()))
{
ev->accept();
ev->acceptProposedAction();
}
}
@ -162,11 +163,6 @@ void cg_disasm_window::dragMoveEvent(QDragMoveEvent* ev)
{
if (IsValidFile(*ev->mimeData()))
{
ev->accept();
ev->acceptProposedAction();
}
}
void cg_disasm_window::dragLeaveEvent(QDragLeaveEvent* ev)
{
ev->accept();
}

View file

@ -36,5 +36,4 @@ protected:
void dropEvent(QDropEvent* ev) override;
void dragEnterEvent(QDragEnterEvent* ev) override;
void dragMoveEvent(QDragMoveEvent* ev) override;
void dragLeaveEvent(QDragLeaveEvent* ev) override;
};

View file

@ -446,6 +446,7 @@ void log_viewer::dropEvent(QDropEvent* ev)
{
if (is_valid_file(*ev->mimeData(), true))
{
ev->acceptProposedAction();
show_log();
}
}
@ -454,7 +455,7 @@ void log_viewer::dragEnterEvent(QDragEnterEvent* ev)
{
if (is_valid_file(*ev->mimeData()))
{
ev->accept();
ev->acceptProposedAction();
}
}
@ -462,15 +463,10 @@ void log_viewer::dragMoveEvent(QDragMoveEvent* ev)
{
if (is_valid_file(*ev->mimeData()))
{
ev->accept();
ev->acceptProposedAction();
}
}
void log_viewer::dragLeaveEvent(QDragLeaveEvent* ev)
{
ev->accept();
}
bool log_viewer::eventFilter(QObject* object, QEvent* event)
{
if (object != m_log_text)

View file

@ -43,6 +43,5 @@ protected:
void dropEvent(QDropEvent* ev) override;
void dragEnterEvent(QDragEnterEvent* ev) override;
void dragMoveEvent(QDragMoveEvent* ev) override;
void dragLeaveEvent(QDragLeaveEvent* ev) override;
bool eventFilter(QObject* object, QEvent* event) override;
};

View file

@ -4077,15 +4077,18 @@ main_window::drop_type main_window::IsValidFile(const QMimeData& md, QStringList
void main_window::dropEvent(QDropEvent* event)
{
event->accept();
QStringList drop_paths;
const drop_type type = IsValidFile(*event->mimeData(), &drop_paths);
switch (IsValidFile(*event->mimeData(), &drop_paths)) // get valid file paths and drop type
if (type != drop_type::drop_error)
{
event->acceptProposedAction();
}
switch (type) // get valid file paths and drop type
{
case drop_type::drop_error:
{
event->ignore();
break;
}
case drop_type::drop_rap_edat_pkg: // install the packages
@ -4167,15 +4170,16 @@ void main_window::dropEvent(QDropEvent* event)
void main_window::dragEnterEvent(QDragEnterEvent* event)
{
event->setAccepted(IsValidFile(*event->mimeData()) != drop_type::drop_error);
if (IsValidFile(*event->mimeData()) != drop_type::drop_error)
{
event->acceptProposedAction();
}
}
void main_window::dragMoveEvent(QDragMoveEvent* event)
{
event->setAccepted(IsValidFile(*event->mimeData()) != drop_type::drop_error);
}
void main_window::dragLeaveEvent(QDragLeaveEvent* event)
{
event->accept();
if (IsValidFile(*event->mimeData()) != drop_type::drop_error)
{
event->acceptProposedAction();
}
}

View file

@ -131,7 +131,6 @@ protected:
void dropEvent(QDropEvent* event) override;
void dragEnterEvent(QDragEnterEvent* event) override;
void dragMoveEvent(QDragMoveEvent* event) override;
void dragLeaveEvent(QDragLeaveEvent* event) override;
private:
void ConfigureGuiFromSettings();

View file

@ -1020,6 +1020,8 @@ void patch_manager_dialog::dropEvent(QDropEvent* event)
return;
}
event->acceptProposedAction();
QMessageBox box(QMessageBox::Icon::Question, tr("Patch Manager"), tr("What do you want to do with the patch file?"), QMessageBox::StandardButton::Cancel, this);
QPushButton* button_yes = box.addButton(tr("Import"), QMessageBox::YesRole);
QPushButton* button_no = box.addButton(tr("Validate"), QMessageBox::NoRole);
@ -1123,7 +1125,7 @@ void patch_manager_dialog::dragEnterEvent(QDragEnterEvent* event)
{
if (is_valid_file(*event->mimeData()))
{
event->accept();
event->acceptProposedAction();
}
}
@ -1131,15 +1133,10 @@ void patch_manager_dialog::dragMoveEvent(QDragMoveEvent* event)
{
if (is_valid_file(*event->mimeData()))
{
event->accept();
event->acceptProposedAction();
}
}
void patch_manager_dialog::dragLeaveEvent(QDragLeaveEvent* event)
{
event->accept();
}
void patch_manager_dialog::download_update(bool automatic, bool auto_accept)
{
patch_log.notice("Patch download triggered (automatic=%d, auto_accept=%d)", automatic, auto_accept);

View file

@ -83,6 +83,5 @@ protected:
void dropEvent(QDropEvent* event) override;
void dragEnterEvent(QDragEnterEvent* event) override;
void dragMoveEvent(QDragMoveEvent* event) override;
void dragLeaveEvent(QDragLeaveEvent* event) override;
void closeEvent(QCloseEvent* event) override;
};