OSDN Git Service

スレッド処理を整理
[gefu/Gefu.git] / mainwindow.cpp
index 085a7a7..aeeaebb 100644 (file)
@@ -347,7 +347,10 @@ void MainWindow::onMove()
 {\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
@@ -428,7 +431,6 @@ void MainWindow::onChooseFolder()
                 this, tr("フォルダを選択"), activeModel()->rootPath());\r
     if (!path.isEmpty()) {\r
         activeModel()->setRootPath(path);\r
-//        updateActions();\r
     }\r
 }\r
 \r
@@ -480,7 +482,7 @@ void MainWindow::askOverWrite(QString *copyMethod,
     {\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
@@ -534,7 +536,7 @@ void MainWindow::view_copyAvailable(bool yes)
 ///\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
@@ -553,7 +555,7 @@ void MainWindow::copyItems(const QFileInfoList &list, const QString &tgtDir)
     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
@@ -575,7 +577,7 @@ void MainWindow::copyItems(const QFileInfoList &list, const QString &tgtDir)
 ///\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
@@ -594,7 +596,7 @@ void MainWindow::moveItems(const QFileInfoList &list, const QString &tgtDir)
     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
@@ -669,9 +671,7 @@ bool MainWindow::onContextMenuEvent(QObject *obj, QContextMenuEvent *e)
     }\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
@@ -681,66 +681,6 @@ bool MainWindow::onContextMenuEvent(QObject *obj, QContextMenuEvent *e)
 }\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
@@ -805,7 +745,10 @@ void MainWindow::onCopy()
 {\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
@@ -908,7 +851,7 @@ void MainWindow::onDelete()
     }\r
 \r
     DeleteWorker *worker = new DeleteWorker();\r
-    worker->setDeleteList(&list);\r
+    worker->setDeleteList(list);\r
 \r
     OperationDialog opDlg(this);\r
     opDlg.setWindowTitle(tr("削除"));\r
@@ -2291,11 +2234,6 @@ bool MainWindow::eventFilter(QObject *watched, QEvent *e)
         // コンテキストメニューイベントの処理\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