{\r
qDebug() << "MainWindow::onMove";\r
\r
- QFileInfoList list = selectedItems();\r
+ QStringList list;\r
+ foreach (const QFileInfo &fi, selectedItems()) {\r
+ list << fi.absoluteFilePath();\r
+ }\r
if (list.isEmpty()) {\r
return;\r
}\r
this, tr("フォルダを選択"), activeModel()->rootPath());\r
if (!path.isEmpty()) {\r
activeModel()->setRootPath(path);\r
-// updateActions();\r
}\r
}\r
\r
{\r
m_overwriteDialog.setFileInfo(srcPath, tgtPath);\r
if (m_overwriteDialog.exec() == QDialog::Rejected) {\r
- worker->requestStop();\r
+ worker->abort();\r
}\r
}\r
*copyMethod = m_overwriteDialog.copyMethod();\r
///\r
/// アイテムをコピーします。\r
///\r
-void MainWindow::copyItems(const QFileInfoList &list, const QString &tgtDir)\r
+void MainWindow::copyItems(const QStringList &list, const QString &tgtDir)\r
{\r
qDebug() << "MainWindow::copyItems()" << tgtDir;\r
\r
CopyMoveWorker *worker = new CopyMoveWorker();\r
connect(worker, SIGNAL(askOverWrite(QString*,QString*,QString,QString)),\r
this, SLOT(askOverWrite(QString*,QString*,QString,QString)));\r
- worker->setCopyList(&list);\r
+ worker->setCopyList(list);\r
worker->setTargetDir(tgtDir);\r
worker->setMoveMode(false);\r
\r
///\r
/// アイテムを移動します。\r
///\r
-void MainWindow::moveItems(const QFileInfoList &list, const QString &tgtDir)\r
+void MainWindow::moveItems(const QStringList &list, const QString &tgtDir)\r
{\r
qDebug() << "MainWindow::moveItems()" << tgtDir;\r
\r
CopyMoveWorker *worker = new CopyMoveWorker();\r
connect(worker, SIGNAL(askOverWrite(QString*,QString*,QString,QString)),\r
this, SLOT(askOverWrite(QString*,QString*,QString,QString)));\r
- worker->setCopyList(&list);\r
+ worker->setCopyList(list);\r
worker->setTargetDir(tgtDir);\r
worker->setMoveMode(true);\r
\r
}\r
\r
QAction *selected = menu.exec(e->globalPos());\r
- if (selected == ui->action_ScaleDown ||\r
- selected == ui->action_ScaleUp)\r
- {\r
+ if (selected == ui->action_ScaleDown || selected == ui->action_ScaleUp) {\r
ui->image_FitToWindow->blockSignals(true);\r
ui->image_FitToWindow->setChecked(false);\r
ui->image_FitToWindow->blockSignals(false);\r
}\r
\r
///////////////////////////////////////////////////////////////////////////////\r
-/// \brief MainWindow::onDropEvent\r
-/// \param obj イベントが発生したオブジェクト\r
-/// \param e ドロップイベントオブジェクト\r
-/// \return 処理した場合はtrue, 処理しなかった場合はfalseを返します。\r
-///\r
-bool MainWindow::onDropEvent(QObject *obj, QDropEvent *e)\r
-{\r
- qDebug() << "MainWindow::onDropEvent()";\r
-\r
- if (obj->parent()->objectName() == "folderView" ||\r
- obj->parent()->objectName() == "thumbnailView")\r
- {\r
- QAbstractItemView *v = static_cast<QAbstractItemView*>(obj->parent());\r
- if (v->property("dragging").toBool()) {\r
- // 自分自身へのドロップなら何もしない\r
- return true;\r
- }\r
-\r
- QFileInfoList list;\r
- foreach (const QUrl &url, e->mimeData()->urls()) {\r
- QString path = QFileInfo(url.toLocalFile()).canonicalFilePath();\r
- if (!path.isEmpty()) {\r
- list << path;\r
- }\r
- else {\r
- qDebug() << "drop path is empty." << url;\r
- }\r
- }\r
-\r
- if (list.isEmpty()) {\r
- // ローカルファイルのドロップでなければ何もしない\r
- return true;\r
- }\r
-\r
- e->acceptProposedAction();\r
-\r
- QMenu menu(this);\r
- QAction *actCopy = menu.addAction(tr("コピー"));\r
- QAction *actMove = menu.addAction(tr("移動"));\r
- menu.addSeparator();\r
- menu.addAction(tr("キャンセル"));\r
-\r
- QAction *selected = menu.exec(v->mapToGlobal(e->pos()));\r
- FolderModel *m = static_cast<FolderModel*>(v->model());\r
- if (selected == actMove) {\r
- moveItems(list, m->rootPath());\r
- }\r
- else if (selected == actCopy) {\r
- copyItems(list, m->rootPath());\r
- }\r
- return true;\r
- }\r
- else {\r
- qDebug() << obj->parent()->objectName();\r
- }\r
-\r
- return true;\r
-}\r
-\r
-///////////////////////////////////////////////////////////////////////////////\r
/// \brief MainWindow::onKeyPressEvent\r
/// \param obj イベントが発生したオブジェクト\r
/// \param e キーイベントオブジェクト\r
{\r
qDebug() << "MainWindow::onCopy";\r
\r
- QFileInfoList list = selectedItems();\r
+ QStringList list;\r
+ foreach (const QFileInfo &fi, selectedItems()) {\r
+ list << fi.absoluteFilePath();\r
+ }\r
if (list.isEmpty()) {\r
return;\r
}\r
}\r
\r
DeleteWorker *worker = new DeleteWorker();\r
- worker->setDeleteList(&list);\r
+ worker->setDeleteList(list);\r
\r
OperationDialog opDlg(this);\r
opDlg.setWindowTitle(tr("削除"));\r
// コンテキストメニューイベントの処理\r
return onContextMenuEvent(watched, static_cast<QContextMenuEvent*>(e));\r
\r
- case QEvent::Drop:\r
- qDebug() << "QEvent::Drop";\r
- // ドロップイベントの処理\r
- return onDropEvent(watched, static_cast<QDropEvent*>(e));\r
-\r
default:\r
break;\r
}\r