OSDN Git Service

ドラッグ検出のピクセル閾値を変更
authorMasayuki Satoh <miyabi.satoh@gmail.com>
Tue, 16 Sep 2014 06:53:52 +0000 (15:53 +0900)
committerMasayuki Satoh <miyabi.satoh@gmail.com>
Tue, 16 Sep 2014 06:53:52 +0000 (15:53 +0900)
12 files changed:
abstractworker.cpp
abstractworker.h
copymoveworker.cpp
deleteworker.cpp
folderview.cpp
global.cpp
global.h
mainwindow.cpp
operationdialog.cpp
operationdialog.h
renameworker.cpp
thumbnailview.cpp

index d76c5d7..f361b1f 100644 (file)
@@ -2,16 +2,11 @@
 \r
 AbstractWorker::AbstractWorker(QObject *parent) :\r
     QObject(parent),\r
-    m_progressText(NULL),\r
     m_Mutex(),\r
     m_stopRequested(false)\r
 {\r
 }\r
 \r
-void AbstractWorker::setProgressText(QLabel *label) {\r
-    m_progressText = label;\r
-}\r
-\r
 void AbstractWorker::requestStop() {\r
     QMutexLocker lock(&m_Mutex);\r
     m_stopRequested = true;\r
index 0e9cfa0..8ae01d3 100644 (file)
@@ -11,20 +11,18 @@ class AbstractWorker : public QObject
 public:\r
     explicit AbstractWorker(QObject *parent = 0);\r
 \r
-    void setProgressText(QLabel *label);\r
     void requestStop();\r
 \r
 protected:\r
-    QLabel *m_progressText;\r
-\r
     bool isStopRequested();\r
 \r
 signals:\r
     void canceled();\r
+    void error(const QString &msg);\r
     void finished();\r
+    void information(const QString &msg);\r
     void operation(const QString &msg);\r
     void success(const QString &msg);\r
-    void error(const QString &msg);\r
 \r
 public slots:\r
     virtual void operate() = 0;\r
index efe891b..3f614b5 100644 (file)
@@ -20,10 +20,10 @@ CopyMoveWorker::CopyMoveWorker(QObject *parent) :
 void CopyMoveWorker::operate()\r
 {\r
     if (m_Move) {\r
-        m_progressText->setText(tr("移動準備中..."));\r
+        emit information(tr("移動準備中..."));\r
     }\r
     else {\r
-        m_progressText->setText(tr("コピー準備中..."));\r
+        emit information(tr("コピー準備中..."));\r
     }\r
 \r
     foreach (const QFileInfo &info, *m_CopyList) {\r
@@ -91,7 +91,7 @@ void CopyMoveWorker::operate()
                     if (errorCount > 0) {\r
                         msg += tr("%1個のファイルをコピーできませんでした。").arg(errorCount);\r
                     }\r
-                    m_progressText->setText(msg);\r
+                    emit information(msg);\r
                     emit canceled();\r
                     return;\r
                 }\r
@@ -172,7 +172,7 @@ void CopyMoveWorker::operate()
         if (errDelCount > 0) {\r
             msg += tr("%1ファイル削除失敗。").arg(errDelCount);\r
         }\r
-        m_progressText->setText(msg);\r
+        emit information(msg);\r
     }\r
 \r
     if (m_Move) {\r
index 65fcac1..df4775b 100644 (file)
@@ -12,7 +12,7 @@ DeleteWorker::DeleteWorker(QObject *parent) :
 \r
 void DeleteWorker::operate()\r
 {\r
-    m_progressText->setText(tr("削除準備中..."));\r
+    emit information(tr("削除準備中..."));\r
 \r
     foreach (const QFileInfo &info, *m_DeleteList) {\r
         if (isStopRequested()) {\r
@@ -56,7 +56,7 @@ void DeleteWorker::operate()
         if (errorCount > 0) {\r
             msg += tr("%1アイテム失敗。").arg(errorCount);\r
         }\r
-        m_progressText->setText(msg);\r
+        emit information(msg);\r
     }\r
 \r
     emit finished();\r
index 73d818e..0119a19 100644 (file)
@@ -1,6 +1,6 @@
+#include "folderpanel.h"
 #include "mainwindow.h"
 #include "preferences.h"
-#include "folderpanel.h"
 #include "folderview.h"
 
 #include <QApplication>
@@ -42,8 +42,6 @@ void FolderView::initialize(MainWindow *w)
     qDebug() << "FolderView::initialize()";
 
     connect(this, SIGNAL(doubleClicked(QModelIndex)), w, SLOT(onOpen(QModelIndex)));
-//    connect(selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)),
-//            w, SLOT(view_currentChanged(QModelIndex,QModelIndex)));
 
     installEventFilter(w);
     viewport()->installEventFilter(w);
@@ -148,7 +146,7 @@ void FolderView::mouseMoveEvent(QMouseEvent *event)
         return;
     }
     if (m_dragStartPos.isNull() ||
-        (event->pos() - m_dragStartPos).manhattanLength() < qApp->startDragDistance())
+        (event->pos() - m_dragStartPos).manhattanLength() < 5)
     {
         QTableView::mouseMoveEvent(event);
         return;
index 789184f..1a4a52d 100644 (file)
@@ -20,3 +20,11 @@ QString FileSizeToString(qint64 size)
     }
     return QString("%1B").arg(size);
 }
+
+
+void reconnectAction(QAction *sender, const char *signal, QObject *reciever, const char *slot)
+{
+    sender->setEnabled(true);
+    sender->disconnect();
+    QObject::connect(sender, signal, reciever, slot);
+}
index 9a72364..6cf176a 100644 (file)
--- a/global.h
+++ b/global.h
@@ -12,5 +12,6 @@ typedef QMap<QString, QString> StringMap;
 
 extern void appendActionShortcut(QAction *action, const QString &ks);
 extern QString FileSizeToString(qint64 size);
+extern void reconnectAction(QAction *sender, const char *signal, QObject *reciever, const char *slot);
 
 #endif // GLOBAL_H
index 1e62e5e..a3fa4c0 100644 (file)
@@ -1,35 +1,35 @@
-#include "global.h"\r
-#include "version.h"\r
-#include "preferencedialog.h"\r
+#include "bookmarkdialog.h"\r
+#include "copymoveworker.h"\r
+#include "deleteworker.h"\r
 #include "foldermodel.h"\r
 #include "folderpanel.h"\r
-#include "copymoveworker.h"\r
+#include "global.h"\r
+#include "historydialog.h"\r
 #include "operationdialog.h"\r
 #include "overwritedialog.h"\r
-#include "deleteworker.h"\r
+#include "preferences.h"\r
+#include "preferencedialog.h"\r
 #include "renameworker.h"\r
 #include "renamesingledialog.h"\r
 #include "renamemultidialog.h"\r
-#include "historydialog.h"\r
-#include "sortdialog.h"\r
 #include "simpletextview.h"\r
 #include "simpleimageview.h"\r
-#include "bookmarkdialog.h"\r
-#include "preferences.h"\r
+#include "sortdialog.h"\r
+#include "version.h"\r
 #include "mainwindow.h"\r
 #include "ui_mainwindow.h"\r
 \r
 #include <QCheckBox>\r
+#include <QClipboard>\r
 #include <QCloseEvent>\r
 #include <QDebug>\r
+#include <QDesktopServices>\r
+#include <QFileDialog>\r
+#include <QInputDialog>\r
 #include <QMessageBox>\r
 #include <QMimeData>\r
 #include <QNetworkAccessManager>\r
-#include <QInputDialog>\r
 #include <QProcess>\r
-#include <QDesktopServices>\r
-#include <QClipboard>\r
-#include <QFileDialog>\r
 \r
 ///////////////////////////////////////////////////////////////////////////////\r
 /// \brief MainWindow::MainWindow\r
@@ -52,7 +52,7 @@ MainWindow::MainWindow(QWidget *parent) :
     QLabel *label = new QLabel(this);\r
     label->setAlignment(Qt::AlignRight);\r
     label->setObjectName("Right");\r
-    ui->statusBar->addPermanentWidget(label, 0);\r
+    statusBar()->addPermanentWidget(label, 0);\r
 \r
     // アプリケーション情報を初期化する\r
     qApp->setApplicationName("Gefu");\r
@@ -145,7 +145,7 @@ void MainWindow::app_focusChange(QWidget *old, QWidget *now)
                 this, SLOT(view_currentChanged(QModelIndex,QModelIndex)));\r
         FolderModel *m = static_cast<FolderModel*>(focusItemView()->model());\r
         setActiveModel(m);\r
-        ui->statusBar->showMessage(m->filePath(focusItemView()->currentIndex()));\r
+        statusBar()->showMessage(m->filePath(focusItemView()->currentIndex()));\r
     }\r
 \r
     // 検索ボックスがフォーカスを失った場合\r
@@ -169,7 +169,7 @@ void MainWindow::model_PreReset()
 {\r
     qDebug() << "MainWindow::model_PreReset()";\r
 \r
-    ui->statusBar->showMessage(tr("ファイルリストを取得しています..."));\r
+    statusBar()->showMessage(tr("ファイルリストを取得しています..."));\r
 }\r
 \r
 ///////////////////////////////////////////////////////////////////////////////\r
@@ -183,10 +183,10 @@ void MainWindow::model_PostReset()
 \r
     FolderModel *m = static_cast<FolderModel*>(sender());\r
     if (!m->error().isEmpty()) {\r
-        ui->statusBar->showMessage(m->error());\r
+        statusBar()->showMessage(m->error());\r
     }\r
     else {\r
-        ui->statusBar->showMessage(tr("レディ"));\r
+        statusBar()->showMessage(tr("レディ"));\r
     }\r
 }\r
 \r
@@ -296,7 +296,7 @@ void MainWindow::onToggleMark()
 ///\r
 void MainWindow::view_statusChanged(const QString &text)\r
 {\r
-    ui->statusBar->findChild<QLabel*>("Right")->setText(text);\r
+    statusBar()->findChild<QLabel*>("Right")->setText(text);\r
 }\r
 \r
 ///////////////////////////////////////////////////////////////////////////////\r
@@ -315,7 +315,7 @@ void MainWindow::view_currentChanged(const QModelIndex &current, const QModelInd
         return;\r
     }\r
 \r
-    ui->statusBar->showMessage(activeModel()->filePath(current));\r
+    statusBar()->showMessage(activeModel()->filePath(current));\r
 \r
     if (m_viewMode == ModePreview) {\r
         inactivePanel()->setViewItem(current);\r
@@ -333,7 +333,7 @@ void MainWindow::view_finished()
 {\r
     qDebug() << "MainWindow::view_finished()";\r
 \r
-    ui->statusBar->findChild<QLabel*>("Right")->setText("");\r
+    statusBar()->findChild<QLabel*>("Right")->setText("");\r
 \r
     setViewMode(m_prevMode);\r
 }\r
@@ -513,7 +513,7 @@ void MainWindow::onAddBookmark()
     initBookmarkMenu();\r
 \r
     activePanel()->folderPanel()->itemView()->setFocus();\r
-    ui->statusBar->showMessage(tr("%1をブックマークに追加しました").arg(fi.absoluteFilePath()));\r
+    statusBar()->showMessage(tr("%1をブックマークに追加しました").arg(fi.absoluteFilePath()));\r
 }\r
 \r
 ///////////////////////////////////////////////////////////////////////////////\r
@@ -809,9 +809,6 @@ bool MainWindow::onKeyPressEvent(QObject *obj, QKeyEvent *e)
         return true;\r
     }\r
 \r
-\r
-\r
-\r
     return false;\r
 }\r
 \r
@@ -920,7 +917,7 @@ void MainWindow::onDelete()
         }\r
         int ret = QMessageBox::question(\r
                     this, tr("確認"),\r
-                    msg + tr("を削除しますか?"));\r
+                    tr("%1を削除しますか?").arg(msg));\r
         if (ret != QMessageBox::Yes) {\r
             return;\r
         }\r
@@ -934,14 +931,14 @@ void MainWindow::onDelete()
     opDlg.setWorker(worker);\r
     opDlg.setAutoClose(prefs.isAutoCloseDelete());\r
 \r
-    int row = focusItemView()->currentIndex().row();\r
+//    int row = focusItemView()->currentIndex().row();\r
 \r
     opDlg.exec();\r
 \r
-    if (row >= activeModel()->rowCount()) {\r
-        row = activeModel()->rowCount() - 1;\r
-    }\r
-    focusItemView()->setCurrentIndex(activeModel()->index(row, 1));\r
+//    if (row >= activeModel()->rowCount()) {\r
+//        row = activeModel()->rowCount() - 1;\r
+//    }\r
+//    focusItemView()->setCurrentIndex(activeModel()->index(row, 1));\r
 \r
     prefs.setAutoCloseDelete(opDlg.autoClose());\r
 }\r
@@ -2089,10 +2086,24 @@ void MainWindow::updateActions()
     bool isImageView = false;\r
     bool toggleSearch = true;\r
 \r
-\r
     QWidget *w = qApp->focusWidget();\r
     if (w->objectName() == "folderView" || w->objectName() == "thumbnailView") {\r
         setEnabledAllActions(true);\r
+        // 履歴\r
+        ui->action_historyBack->setEnabled(!activeModel()->isHistoryBegin());\r
+        ui->action_HistoryForward->setEnabled(!activeModel()->isHistoryEnd());\r
+        // チェック状態\r
+        ui->toggle_Hidden->blockSignals(true);\r
+        ui->toggle_Hidden->setChecked(activeModel()->filter() & QDir::Hidden);\r
+        ui->toggle_Hidden->blockSignals(false);\r
+\r
+        ui->toggle_System->blockSignals(true);\r
+        ui->toggle_System->setChecked(activeModel()->filter() & QDir::System);\r
+        ui->toggle_System->blockSignals(false);\r
+\r
+        ui->toggle_ThumbnailMode->blockSignals(true);\r
+        ui->toggle_ThumbnailMode->setChecked(w->objectName() == "thumbnailView");\r
+        ui->toggle_ThumbnailMode->blockSignals(false);\r
 \r
         // 現在の選択アイテムが".."の場合、ファイル操作系アクションは無効にする\r
         QFileInfoList list = selectedItems();\r
@@ -2118,20 +2129,6 @@ void MainWindow::updateActions()
         if (m_viewMode == ModeFull) {\r
             ui->toggle_PreviewMode->setEnabled(false);\r
         }\r
-\r
-        // サムネイル表示の場合、左右キーはカーソル移動\r
-        if (w->objectName() == "thumbnailView") {\r
-            ui->action_KeyLeft->setEnabled(false);\r
-            ui->action_KeyRight->setEnabled(false);\r
-            ui->toggle_ThumbnailMode->blockSignals(true);\r
-            ui->toggle_ThumbnailMode->setChecked(true);\r
-            ui->toggle_ThumbnailMode->blockSignals(false);\r
-        }\r
-        else {\r
-            ui->toggle_ThumbnailMode->blockSignals(true);\r
-            ui->toggle_ThumbnailMode->setChecked(false);\r
-            ui->toggle_ThumbnailMode->blockSignals(false);\r
-        }\r
     }\r
     else if (w->objectName() == "searchBox"){\r
         setEnabledAllActions(false);\r
@@ -2147,37 +2144,14 @@ void MainWindow::updateActions()
         setEnabledAllActions(false);\r
         toggleSearch = false;\r
 \r
-        ui->text_ConvertFromEUC->setEnabled(true);\r
-        ui->text_ConvertFromEUC->disconnect();\r
-        connect(ui->text_ConvertFromEUC, SIGNAL(triggered()), v, SLOT(convertFromEUC()));\r
-\r
-        ui->text_ConvertFromJIS->setEnabled(true);\r
-        ui->text_ConvertFromJIS->disconnect();\r
-        connect(ui->text_ConvertFromJIS, SIGNAL(triggered()), v, SLOT(convertFromJIS()));\r
-\r
-        ui->text_ConvertFromSJIS->setEnabled(true);\r
-        ui->text_ConvertFromSJIS->disconnect();\r
-        connect(ui->text_ConvertFromSJIS, SIGNAL(triggered()), v, SLOT(convertFromSJIS()));\r
-\r
-        ui->text_ConvertFromUTF8->setEnabled(true);\r
-        ui->text_ConvertFromUTF8->disconnect();\r
-        connect(ui->text_ConvertFromUTF8, SIGNAL(triggered()), v, SLOT(convertFromUTF8()));\r
-\r
-        ui->text_ConvertFromUTF16->setEnabled(true);\r
-        ui->text_ConvertFromUTF16->disconnect();\r
-        connect(ui->text_ConvertFromUTF16, SIGNAL(triggered()), v, SLOT(convertFromUTF16()));\r
-\r
-        ui->text_ConvertFromUTF16BE->setEnabled(true);\r
-        ui->text_ConvertFromUTF16BE->disconnect();\r
-        connect(ui->text_ConvertFromUTF16BE, SIGNAL(triggered()), v, SLOT(convertFromUTF16BE()));\r
-\r
-        ui->text_ConvertFromUTF16LE->setEnabled(true);\r
-        ui->text_ConvertFromUTF16LE->disconnect();\r
-        connect(ui->text_ConvertFromUTF16LE, SIGNAL(triggered()), v, SLOT(convertFromUTF16LE()));\r
-\r
-        ui->text_Copy->disconnect();\r
-        connect(ui->text_Copy, SIGNAL(triggered()), v, SLOT(copy()));\r
-\r
+        reconnectAction(ui->text_ConvertFromEUC, SIGNAL(triggered()), v, SLOT(convertFromEUC()));\r
+        reconnectAction(ui->text_ConvertFromJIS, SIGNAL(triggered()), v, SLOT(convertFromJIS()));\r
+        reconnectAction(ui->text_ConvertFromSJIS, SIGNAL(triggered()), v, SLOT(convertFromSJIS()));\r
+        reconnectAction(ui->text_ConvertFromUTF8, SIGNAL(triggered()), v, SLOT(convertFromUTF8()));\r
+        reconnectAction(ui->text_ConvertFromUTF16, SIGNAL(triggered()), v, SLOT(convertFromUTF16()));\r
+        reconnectAction(ui->text_ConvertFromUTF16BE, SIGNAL(triggered()), v, SLOT(convertFromUTF16BE()));\r
+        reconnectAction(ui->text_ConvertFromUTF16LE, SIGNAL(triggered()), v, SLOT(convertFromUTF16LE()));\r
+        reconnectAction(ui->text_Copy, SIGNAL(triggered()), v, SLOT(copy()));\r
     }\r
     else if (w->objectName() == "imageView") {\r
         SimpleImageView *v = static_cast<SimpleImageView*>(w);\r
@@ -2185,21 +2159,10 @@ void MainWindow::updateActions()
         toggleSearch = false;\r
         isImageView = true;\r
 \r
-        ui->image_FitToWindow->setEnabled(true);\r
-        ui->image_FitToWindow->disconnect();\r
-        connect(ui->image_FitToWindow, SIGNAL(toggled(bool)), v, SLOT(fitToWindow(bool)));\r
-\r
-        ui->image_ScaleNormal->setEnabled(true);\r
-        ui->image_ScaleNormal->disconnect();\r
-        connect(ui->image_ScaleNormal, SIGNAL(triggered()), v, SLOT(scaleNormal()));\r
-\r
-        ui->image_Rotate90->setEnabled(true);\r
-        ui->image_Rotate90->disconnect();\r
-        connect(ui->image_Rotate90, SIGNAL(triggered()), v, SLOT(rotate90()));\r
-\r
-        ui->image_Rotate180->setEnabled(true);\r
-        ui->image_Rotate180->disconnect();\r
-        connect(ui->image_Rotate180, SIGNAL(triggered()), v, SLOT(rotate180()));\r
+        reconnectAction(ui->image_FitToWindow, SIGNAL(toggled(bool)), v, SLOT(fitToWindow(bool)));\r
+        reconnectAction(ui->image_ScaleNormal, SIGNAL(toggled(bool)), v, SLOT(scaleNormal()));\r
+        reconnectAction(ui->image_Rotate90, SIGNAL(triggered()), v, SLOT(rotate90()));\r
+        reconnectAction(ui->image_Rotate180, SIGNAL(triggered()), v, SLOT(rotate180()));\r
     }\r
 \r
     ui->action_About->setEnabled(true);\r
@@ -2226,15 +2189,16 @@ void MainWindow::updateActions()
         ui->action_ScaleUp->setText(tr("文字を大きく"));\r
     }\r
 \r
-    if (m_viewMode == ModeBasic || m_viewMode == ModeFull) {\r
-        ui->toggle_FullMode->setEnabled(true);\r
+    ui->toggle_FullMode->setEnabled(m_viewMode == ModeBasic || m_viewMode == ModeFull);\r
+\r
+    if (w->objectName() == "thumbnailView") {\r
+        ui->action_KeyLeft->setEnabled(false);\r
+        ui->action_KeyRight->setEnabled(false);\r
     }\r
     else {\r
-        ui->toggle_FullMode->setEnabled(false);\r
+        ui->action_KeyLeft->setEnabled(isView);\r
+        ui->action_KeyRight->setEnabled(isView);\r
     }\r
-\r
-    ui->action_historyBack->setEnabled(!activeModel()->isHistoryBegin());\r
-    ui->action_HistoryForward->setEnabled(!activeModel()->isHistoryEnd());\r
 }\r
 \r
 ///////////////////////////////////////////////////////////////////////////////\r
index 13a29d4..db2477b 100644 (file)
@@ -1,4 +1,3 @@
-#include "mainwindow.h"\r
 #include "operationdialog.h"\r
 #include "ui_operationdialog.h"\r
 \r
@@ -35,7 +34,7 @@ void OperationDialog::showEvent(QShowEvent *)
 \r
     QThread *thread = new QThread();\r
     m_worker->moveToThread(thread);\r
-    m_worker->setProgressText(ui->label);\r
+    connect(m_worker, SIGNAL(information(QString)), ui->label, SLOT(setText(QString)));\r
     connect(thread, SIGNAL(started()), m_worker, SLOT(operate()));\r
     connect(m_worker, SIGNAL(finished()), thread, SLOT(quit()));\r
 \r
index 8c2f2ae..450f5fa 100644 (file)
@@ -2,6 +2,7 @@
 #define OPERATIONDIALOG_H\r
 \r
 #include "abstractworker.h"\r
+\r
 #include <QDialog>\r
 \r
 namespace Ui {\r
@@ -27,8 +28,9 @@ protected:
 \r
 private:\r
     Ui::OperationDialog *ui;\r
-    AbstractWorker *m_worker;\r
-    bool m_Error;\r
+\r
+    AbstractWorker* m_worker;\r
+    bool            m_Error;\r
 \r
 private slots:\r
     void onOperation(const QString &msg);\r
index f998b3c..ec17c9a 100644 (file)
@@ -10,7 +10,7 @@ RenameWorker::RenameWorker(QObject *parent) :
 \r
 void RenameWorker::operate()\r
 {\r
-    m_progressText->setText(tr("名前を変更しています..."));\r
+    emit information(tr("名前を変更しています..."));\r
     StringMap::const_iterator it;\r
     bool ret;\r
     int successCount = 0;\r
@@ -39,7 +39,7 @@ void RenameWorker::operate()
         if (errorCount > 0) {\r
             msg += tr("%1アイテム失敗。").arg(errorCount);\r
         }\r
-        m_progressText->setText(msg);\r
+        emit information(msg);\r
     }\r
 \r
     emit finished();\r
index f4b6c67..172ab10 100644 (file)
@@ -36,8 +36,6 @@ void ThumbnailView::initialize(MainWindow *w)
     qDebug() << "ThumbnailView::initialize()";
 
     connect(this, SIGNAL(doubleClicked(QModelIndex)), w, SLOT(onOpen(QModelIndex)));
-//    connect(selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)),
-//            w, SLOT(view_currentChanged(QModelIndex,QModelIndex)));
 
     installEventFilter(w);
     viewport()->installEventFilter(w);