OSDN Git Service

Ver0.11
authorMasayuki Satoh <miyabi.satoh@gmail.com>
Mon, 25 Aug 2014 16:01:42 +0000 (01:01 +0900)
committerMasayuki Satoh <miyabi.satoh@gmail.com>
Mon, 25 Aug 2014 16:01:42 +0000 (01:01 +0900)
filetablemodel.cpp
filetablemodel.h
folderview.cpp
folderview.h
mainwindow.cpp
mainwindow.h
simpletextview.cpp

index df135d2..4b89099 100644 (file)
@@ -107,9 +107,10 @@ bool FileTableModel::setPath(const QString &path)
 \r
     endResetModel();\r
 \r
-    emit rootChanged(m_dir.absolutePath());\r
-    stateChanged();\r
+//    emit rootChanged(m_dir.absolutePath());\r
+//    stateChanged();\r
 \r
+    emit dataChanged(QModelIndex(), QModelIndex());\r
     return !m_fileInfoList.isEmpty();\r
 }\r
 \r
@@ -130,7 +131,7 @@ void FileTableModel::setCheckState(const QModelIndex &index, Qt::CheckState stat
     endResetModel();;\r
     emit dataChanged(index, this->index(index.row(), 3));\r
 \r
-    stateChanged();\r
+//    stateChanged();\r
 }\r
 \r
 void FileTableModel::setCheckStateAll(Qt::CheckState state)\r
@@ -143,8 +144,9 @@ void FileTableModel::setCheckStateAll(Qt::CheckState state)
         m_checkStates[0] = Qt::Unchecked;\r
     }\r
     endResetModel();\r
+    emit dataChanged(QModelIndex(), QModelIndex());\r
 \r
-    stateChanged();\r
+//    stateChanged();\r
 }\r
 \r
 QFileInfo FileTableModel::fileInfo(const QModelIndex &index) const\r
@@ -182,25 +184,25 @@ void FileTableModel::directoryChange(const QString &path)
     setPath(path);\r
 }\r
 \r
-void FileTableModel::stateChanged()\r
-{\r
-    int numFolder = 0;\r
-    int numFile = 0;\r
-    quint64 totalSize = 0;\r
-    for (int n = 0; n < m_checkStates.size(); n++) {\r
-        if (m_checkStates[n] == Qt::Checked) {\r
-            if (m_fileInfoList[n].isDir()) {\r
-                numFolder++;\r
-            }\r
-            else {\r
-                numFile++;\r
-                totalSize += m_fileInfoList[n].size();\r
-            }\r
-        }\r
-    }\r
-\r
-    emit stateChanged(numFolder, numFile, totalSize);\r
-}\r
+//void FileTableModel::stateChanged()\r
+//{\r
+//    int numFolder = 0;\r
+//    int numFile = 0;\r
+//    quint64 totalSize = 0;\r
+//    for (int n = 0; n < m_checkStates.size(); n++) {\r
+//        if (m_checkStates[n] == Qt::Checked) {\r
+//            if (m_fileInfoList[n].isDir()) {\r
+//                numFolder++;\r
+//            }\r
+//            else {\r
+//                numFile++;\r
+//                totalSize += m_fileInfoList[n].size();\r
+//            }\r
+//        }\r
+//    }\r
+\r
+//    emit selectionChanged(numFolder, numFile, totalSize);\r
+//}\r
 \r
 QFileInfoList FileTableModel::checkedItems() const\r
 {\r
@@ -361,7 +363,7 @@ bool FileTableModel::setData(const QModelIndex &index, const QVariant &value, in
         if (index.column() == 0) {\r
             m_checkStates[index.row()] = static_cast<Qt::CheckState>(value.toInt());\r
             emit dataChanged(index, this->index(index.row(), 3));\r
-            stateChanged();\r
+//            stateChanged();\r
             return true;\r
         }\r
         break;\r
index 321829c..3cbcfc7 100644 (file)
@@ -40,8 +40,8 @@ public:
     QFont font() const { return m_font; }\r
 \r
 signals:\r
-    void rootChanged(const QString &root);\r
-    void stateChanged(int checkedFoldrs, int checkedFiles, quint64 totalSize);\r
+//    void rootChanged(const QString &root);\r
+    void selectionChanged(int checkedFoldrs, int checkedFiles, quint64 totalSize);\r
 \r
 public slots:\r
     void directoryChange(const QString &path);\r
@@ -61,7 +61,7 @@ private:
     QBrush m_HiddenBrush;\r
     QBrush m_ReadonlyBrush;\r
 \r
-    void stateChanged();\r
+//    void stateChanged();\r
 \r
     // QAbstractItemModel interface\r
 public:\r
index 1bcf8c5..c57c57e 100644 (file)
@@ -5,6 +5,9 @@
 #include <QHeaderView>
 #include <QKeyEvent>
 #include <QSettings>
+#include <QMimeData>
+#include <QApplication>
+#include <QDrag>
 
 QString FilesizeToString(quint64 size)
 {
@@ -22,9 +25,16 @@ QString FilesizeToString(quint64 size)
 
 FolderView::FolderView(QWidget *parent) :
     QTableView(parent),
-    m_model()
+    m_model(),
+    m_dragStartPos(),
+    m_dragging(false)
 {
     setModel(&m_model);
+    connect(&m_model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(dataChanged(QModelIndex,QModelIndex)));
+
+    setDragEnabled(true);
+    setAcceptDrops(true);
+    setDropIndicatorShown(true);
 }
 
 QString FolderView::side() const
@@ -48,10 +58,6 @@ void FolderView::initialize()
     header->setSectionResizeMode(QHeaderView::ResizeToContents);
     header->setSectionResizeMode(1, QHeaderView::Stretch);
 
-    // 行の高さを設定する
-    header = verticalHeader();
-    header->setDefaultSectionSize(QFontMetrics(m_model.font()).height() * 1.5);
-
     // 前回終了時のパスを開く
     QSettings settings;
     setPath(settings.value(side() + slash + IniKey_Dir).toString(), true);
@@ -69,6 +75,10 @@ void FolderView::updateAppearance()
     QPalette pal = palette();
     pal.setColor(QPalette::Base, settings.value(IniKey_ViewColorBgNormal).value<QColor>());
     setPalette(pal);
+
+    // 行の高さを設定する
+    QHeaderView *header = verticalHeader();
+    header->setDefaultSectionSize(QFontMetrics(m_model.font()).height() * 1.5);
 }
 
 void FolderView::refresh()
@@ -86,6 +96,7 @@ void FolderView::refresh()
         row = m_model.rowCount() - 1;
     }
     setCurrentIndex(m_model.index(row, 0));
+    selectRow(row);
 }
 
 void FolderView::searchItem(const QString &text)
@@ -97,12 +108,12 @@ void FolderView::searchItem(const QString &text)
         QString name = m_model.fileInfo(index).fileName().toLower();
         if (name.indexOf(text.toLower()) != -1) {
             setCurrentIndex(index);
-            emit itemFound(this);
+            emit itemFound();
             return;
         }
     }
 
-    emit itemNotFound(this);
+    emit itemNotFound();
 }
 
 void FolderView::searchNext(const QString &text)
@@ -114,12 +125,12 @@ void FolderView::searchNext(const QString &text)
         QString name = m_model.fileInfo(index).fileName().toLower();
         if (name.indexOf(text.toLower()) != -1) {
             setCurrentIndex(index);
-            emit itemFound(this);
+            emit itemFound();
             return;
         }
     }
 
-    emit itemNotFound(this);
+    emit itemNotFound();
 }
 
 void FolderView::searchPrev(const QString &text)
@@ -131,12 +142,12 @@ void FolderView::searchPrev(const QString &text)
         QString name = m_model.fileInfo(index).fileName().toLower();
         if (name.indexOf(text.toLower()) != -1) {
             setCurrentIndex(index);
-            emit itemFound(this);
+            emit itemFound();
             return;
         }
     }
 
-    emit itemNotFound(this);
+    emit itemNotFound();
 }
 
 void FolderView::setCheckStateAll(bool checked)
@@ -242,6 +253,13 @@ QFileInfo FolderView::currentItem() const
     return m_model.fileInfo(currentIndex());
 }
 
+QFileInfoList FolderView::checkedItems() const
+{
+    qDebug() << side() << "checkedItems()";
+
+    return m_model.checkedItems();
+}
+
 QFileInfoList FolderView::selectedItems() const
 {
     qDebug() << side() << "selectedItems";
@@ -311,7 +329,7 @@ void FolderView::keyPressEvent(QKeyEvent *event)
 {
     qDebug() << side() << "keyPressEvent";
 
-    emit keyPressed(this, event);
+    emit keyPressed(event);
 
     if (!event->isAccepted()) {
         QTableView::keyPressEvent(event);
@@ -320,3 +338,110 @@ void FolderView::keyPressEvent(QKeyEvent *event)
         qDebug() << "KeyEvent accepted.";
     }
 }
+
+void FolderView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles)
+{
+    Q_UNUSED(topLeft);
+    Q_UNUSED(bottomRight);
+    Q_UNUSED(roles);
+
+    emit dataChanged();
+}
+
+void FolderView::currentChanged(const QModelIndex &current, const QModelIndex &previous)
+{
+    Q_UNUSED(previous);
+
+    emit currentChanged(m_model.fileInfo(current).absoluteFilePath());
+}
+
+void FolderView::mousePressEvent(QMouseEvent *event)
+{
+    if ((event->buttons() & Qt::LeftButton) || (event->buttons() & Qt::RightButton))
+    {
+        m_dragStartPos = event->pos();
+    }
+
+    QTableView::mousePressEvent(event);
+}
+
+void FolderView::mouseMoveEvent(QMouseEvent *event)
+{
+    if (!(event->buttons() & Qt::LeftButton) &&
+            !(event->buttons() & Qt::RightButton))
+    {
+        QTableView::mouseMoveEvent(event);
+        return;
+    }
+    if ((event->pos() - m_dragStartPos).manhattanLength()
+            < QApplication::startDragDistance())
+    {
+        QTableView::mouseMoveEvent(event);
+        return;
+    }
+
+    QFileInfoList list = selectedItems();
+    if (list.isEmpty()) {
+        QTableView::mousePressEvent(event);
+        return;
+    }
+
+    QList<QUrl> urls;
+    foreach (const QFileInfo &info, list) {
+        urls << QUrl::fromLocalFile(info.absoluteFilePath());
+    }
+
+    QDrag *drag = new QDrag(this);
+    QMimeData *mimeData = new QMimeData;
+    mimeData->setUrls(urls);
+    drag->setMimeData(mimeData);
+
+    m_dragging = true;
+    if (event->buttons() & Qt::RightButton) {
+        drag->exec(Qt::CopyAction | Qt::MoveAction);
+    }
+    else {
+        drag->exec(Qt::CopyAction);
+    }
+    m_dragging = false;
+}
+
+void FolderView::dragEnterEvent(QDragEnterEvent *event)
+{
+    if (event->mimeData()->hasUrls()) {
+        event->acceptProposedAction();
+        return;
+    }
+
+    QTableView::dragEnterEvent(event);
+}
+
+void FolderView::dropEvent(QDropEvent *event)
+{
+    qDebug() << side() << "dropEvent();";
+
+    if (m_dragging) {
+        event->ignore();
+        return;
+    }
+
+    QFileInfoList list;
+    foreach (const QUrl &url, event->mimeData()->urls()) {
+        QString path = QFileInfo(url.toLocalFile()).canonicalFilePath();
+        if (!path.isEmpty()) {
+            list << path;
+        }
+        else {
+            qDebug() << "path is empty." << url;
+        }
+    }
+
+    if (list.isEmpty()) {
+        event->ignore();
+        return;
+    }
+
+    event->acceptProposedAction();
+
+    emit dropAccepted(list);
+}
index 3b23544..61f2b0c 100644 (file)
@@ -35,6 +35,7 @@ public:
     // getter
     QFileInfo currentItem() const;
     QString dir() const { return m_model.absolutePath(); }
+    QFileInfoList checkedItems() const;
     QFileInfoList selectedItems() const;
     const History* history() const { return &m_history; }
     QStringList nameFilters() const { return m_model.nameFilters(); }
@@ -49,22 +50,33 @@ public:
 private:
     FileTableModel m_model;
     History m_history;
-
+    QPoint m_dragStartPos;
+    bool m_dragging;
 
 signals:
-    void itemFound(FolderView *view);
-    void itemNotFound(FolderView *view);
+    void currentChanged(const QString &path);
+    void dataChanged();
+    void dropAccepted(const QFileInfoList &list);
+    void itemFound();
+    void itemNotFound();
     void retrieveStarted(const QString &path);
     void retrieveFinished();
-    void keyPressed(FolderView *view, QKeyEvent *event);
+    void keyPressed(QKeyEvent *event);
 
 public slots:
 
+    // QAbstractItemView interface
+protected slots:
+    void currentChanged(const QModelIndex &current, const QModelIndex &previous);
+    void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles = QVector<int>());
 
     // QWidget interface
 protected:
     void keyPressEvent(QKeyEvent *event);
-
+    void mousePressEvent(QMouseEvent *event);
+    void mouseMoveEvent(QMouseEvent *event);
+    void dragEnterEvent(QDragEnterEvent *event);
+    void dropEvent(QDropEvent *event);
 };
 
 #endif // FOLDERVIEW_H
index 3e9c359..d742ac8 100644 (file)
@@ -69,9 +69,12 @@ MainWindow::MainWindow(QWidget *parent) :
 \r
         // シグナル&スロット\r
         connect(folderView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(open(QModelIndex)));\r
-        connect(folderView, SIGNAL(itemFound(FolderView*)), this, SLOT(itemFound(FolderView*)));\r
-        connect(folderView, SIGNAL(itemNotFound(FolderView*)), this, SLOT(itemNotFound(FolderView*)));\r
-        connect(folderView, SIGNAL(keyPressed(FolderView*,QKeyEvent*)), this, SLOT(keyPress(FolderView*,QKeyEvent*)));\r
+        connect(folderView, SIGNAL(dataChanged()), this, SLOT(dataChange()));\r
+        connect(folderView, SIGNAL(dropAccepted(QFileInfoList)), this, SLOT(dropAccept(QFileInfoList)));\r
+        connect(folderView, SIGNAL(currentChanged(QString)), ui->statusBar, SLOT(showMessage(QString)));\r
+        connect(folderView, SIGNAL(itemFound()), this, SLOT(itemFound()));\r
+        connect(folderView, SIGNAL(itemNotFound()), this, SLOT(itemNotFound()));\r
+        connect(folderView, SIGNAL(keyPressed(QKeyEvent*)), this, SLOT(keyPress(QKeyEvent*)));\r
         connect(folderView, SIGNAL(retrieveFinished()), this, SLOT(retrieveFinish()));\r
         connect(folderView, SIGNAL(retrieveStarted(QString)), this, SLOT(retrieveStart(QString)));\r
         connect(searchBox, SIGNAL(textEdited(QString)), this, SLOT(searchItem(QString)));\r
@@ -180,8 +183,8 @@ MainWindow::MainWindow(QWidget *parent) :
         checkUpdate(true);\r
     }\r
 \r
-    ui->folderView1->repaint();\r
-    ui->folderView2->repaint();\r
+    ui->folderView1->refresh();\r
+    ui->folderView2->refresh();\r
 }\r
 \r
 MainWindow::~MainWindow()\r
@@ -204,9 +207,12 @@ FolderView* MainWindow::otherSideView(const FolderView *view) const
 void MainWindow::focusChange(QWidget *old, QWidget *now)\r
 {\r
     Q_UNUSED(old);\r
-    Q_UNUSED(now);\r
     qDebug() << "MainWindow::focusChange";\r
 \r
+    if (now == ui->folderView1 || now == ui->folderView2) {\r
+        ui->statusBar->showMessage(folderView()->currentItem().absoluteFilePath());\r
+    }\r
+\r
     updateActions();\r
 }\r
 \r
@@ -265,21 +271,21 @@ void MainWindow::historyForward()
     }\r
 }\r
 \r
-void MainWindow::itemFound(FolderView *view)\r
+void MainWindow::itemFound()\r
 {\r
     qDebug() << "MainWindow::itemFound";\r
 \r
-    SearchBox *box = searchBox(view);\r
+    SearchBox *box = searchBox(static_cast<FolderView*>(sender()));\r
     QPalette pal = box->palette();\r
     pal.setColor(QPalette::Text, QPalette().text().color());\r
     box->setPalette(pal);\r
 }\r
 \r
-void MainWindow::itemNotFound(FolderView *view)\r
+void MainWindow::itemNotFound()\r
 {\r
     qDebug() << "MainWindow::itemNotFound";\r
 \r
-    SearchBox *box = searchBox(view);\r
+    SearchBox *box = searchBox(static_cast<FolderView*>(sender()));\r
     QPalette pal = box->palette();\r
     pal.setColor(QPalette::Text, Qt::red);\r
     box->setPalette(pal);\r
@@ -366,7 +372,7 @@ void MainWindow::moveItems()
     ui->folderView2->refresh();\r
 }\r
 \r
-void MainWindow::keyPress(FolderView *view, QKeyEvent *event)\r
+void MainWindow::keyPress(QKeyEvent *event)\r
 {\r
     QString ksq = KeyEventToSequence(event);\r
     if (ksq == "") {\r
@@ -400,6 +406,7 @@ void MainWindow::keyPress(FolderView *view, QKeyEvent *event)
     }\r
 \r
     if (ksq == "Left" || ksq == "Right") {\r
+        FolderView *view = static_cast<FolderView*>(sender());\r
         if (view->side() == ksq) {\r
             setPathToParent();\r
         }\r
@@ -475,6 +482,85 @@ void MainWindow::askOverWrite(QString *copyMethod,
     worker->endAsking();\r
 }\r
 \r
+void MainWindow::dataChange()\r
+{\r
+    FolderView *view = static_cast<FolderView*>(sender());\r
+    QFileInfoList list = view->checkedItems();\r
+    if (list.isEmpty()) {\r
+        showNameFilters(view);\r
+    }\r
+    else {\r
+        int numFolders = 0;\r
+        int numFiles = 0;\r
+        quint64 size = 0;\r
+        foreach (const QFileInfo &info, list) {\r
+            if (info.isDir()) {\r
+                numFolders++;\r
+            }\r
+            else {\r
+                numFiles++;\r
+                size += info.size();\r
+            }\r
+        }\r
+\r
+        QString msg = QString::null;\r
+        if (numFolders > 0) {\r
+            msg += tr("%1個のフォルダ ").arg(numFolders);\r
+        }\r
+        if (numFiles > 0) {\r
+            msg += tr("%1個のファイル ").arg(numFiles);\r
+        }\r
+\r
+        if (!msg.isEmpty()) {\r
+            msg += tr("を選択 合計%1").arg(FilesizeToString(size));\r
+        }\r
+\r
+        filterLabel(view)->setText(msg);\r
+    }\r
+}\r
+\r
+void MainWindow::dropAccept(const QFileInfoList &list)\r
+{\r
+    copyItems(list, static_cast<FolderView*>(sender())->dir());\r
+}\r
+\r
+void MainWindow::copyItems(const QFileInfoList &list, const QString &tgtDir)\r
+{\r
+    QSettings settings;\r
+    if (settings.value(IniKey_ConfirmCopy).toBool()) {\r
+        if (QMessageBox::question(this, tr("確認"), tr("コピーを実行しますか?"))\r
+            != QMessageBox::Yes)\r
+        {\r
+            return;\r
+        }\r
+    }\r
+\r
+    // 上書き確認ダイアログを初期化する\r
+    m_overwriteDialog->reset();\r
+\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->setTargetDir(tgtDir);\r
+    worker->setMoveMode(false);\r
+\r
+    // 進捗ダイアログを表示して、処理を開始する\r
+    OperationDialog opDlg(this);\r
+    opDlg.setWindowTitle(tr("コピー"));\r
+    opDlg.setWorker(worker);\r
+    opDlg.setAutoClose(settings.value(IniKey_AutoCloseCopy).toBool());\r
+\r
+    opDlg.exec();\r
+\r
+    settings.setValue(IniKey_AutoCloseCopy, opDlg.autoClose());\r
+\r
+    // 念のため、リフレッシュ\r
+    ui->folderView1->refresh();\r
+    ui->folderView2->refresh();\r
+}\r
+\r
 void MainWindow::copyItems()\r
 {\r
     qDebug() << "MainWindow::copyItems";\r
@@ -485,6 +571,9 @@ void MainWindow::copyItems()
         return;\r
     }\r
 \r
+    FolderView *other = otherSideView(v);\r
+    copyItems(list, other->dir());\r
+#if 0\r
     QSettings settings;\r
     if (settings.value(IniKey_ConfirmCopy).toBool()) {\r
         if (QMessageBox::question(this, tr("確認"), tr("コピーを実行しますか?"))\r
@@ -519,6 +608,7 @@ void MainWindow::copyItems()
     // 念のため、リフレッシュ\r
     ui->folderView1->refresh();\r
     ui->folderView2->refresh();\r
+#endif\r
 }\r
 \r
 void MainWindow::createFile()\r
@@ -946,6 +1036,11 @@ void MainWindow::setSorting(FolderView *view)
     view->setSorting(flags);\r
 }\r
 \r
+void MainWindow::showNameFilters(FolderView *view)\r
+{\r
+    filterLabel(view)->setText(tr("フィルタ:") + view->nameFilters().join(" "));\r
+}\r
+\r
 void MainWindow::searchItem(const QString &text)\r
 {\r
     qDebug() << "MainWindow::searchItem" << text;\r
@@ -1405,7 +1500,7 @@ void MainWindow::setNameFilters(FolderView *view, const QString &filters)
         list << "*";\r
     }\r
     view->setNameFilters(list);\r
-    filterLabel(view)->setText(tr("フィルタ:") + list.join(" "));\r
+    showNameFilters(view);\r
 }\r
 \r
 QLabel *MainWindow::filterLabel(const FolderView *view) const\r
index a2b21ee..dcb3bb3 100644 (file)
@@ -35,10 +35,16 @@ public slots:
     void askOverWrite(QString *copyMethod, QString *alias,\r
                       const QString &srcPath, const QString &tgtPath);\r
 \r
+    void dataChange();\r
+    void dropAccept(const QFileInfoList &list);\r
     void focusChange(QWidget * old, QWidget * now);\r
-    void keyPress(FolderView *view, QKeyEvent *event);\r
+    void keyPress(QKeyEvent *event);\r
     void returnPressInSearchBox();\r
 \r
+    void about();\r
+    void checkUpdate(bool silent = false);\r
+    void checkUpdateFinished(QNetworkReply *reply, bool silent = false);\r
+    void checkUpdateFinishedSilent(QNetworkReply *reply);\r
     void chooseFolder();\r
     void copyFilenameToClipboard();\r
     void copyFullpathTpClipboard();\r
@@ -51,8 +57,8 @@ public slots:
     void executeCommand();\r
     void historyBack();\r
     void historyForward();\r
-    void itemFound(FolderView *view);\r
-    void itemNotFound(FolderView *view);\r
+    void itemFound();\r
+    void itemNotFound();\r
     void markAll();\r
     void markAllFiles();\r
     void markAllOff();\r
@@ -79,21 +85,14 @@ public slots:
     void shellExecute();\r
     void showFilterDialog();\r
     void showHistoryDialog();\r
+    void showPreferenceDialog();\r
     void showSortDialog();\r
     void swapView();\r
     void toggleSearchBox(bool checked);\r
-\r
-\r
-\r
-\r
-    void openRequest(const QFileInfo &info);\r
-    void showPreferenceDialog();\r
-    void about();\r
     void toggleShowHiddenFiles(bool checked);\r
     void toggleShowSystemFiles(bool checked);\r
-    void checkUpdate(bool silent = false);\r
-    void checkUpdateFinished(QNetworkReply *reply, bool silent = false);\r
-    void checkUpdateFinishedSilent(QNetworkReply *reply);\r
+\r
+    void openRequest(const QFileInfo &info);\r
     void viewFinish(QWidget *sender);\r
 \r
 private:\r
@@ -109,13 +108,14 @@ private:
     void setEnabledAllActions(bool enable);\r
     void setNameFilters(FolderView *view, const QString& filters = QString());\r
     void setSorting(FolderView *view);\r
+    void showNameFilters(FolderView *view);\r
+    void copyItems(const QFileInfoList &list, const QString &tgtDir);\r
 \r
     // getter\r
     QLabel* filterLabel(const FolderView *view) const;\r
     FolderView* folderView() const;\r
     SearchBox* searchBox(FolderView *view) const;\r
 \r
-\r
     // QWidget interface\r
 protected:\r
     void closeEvent(QCloseEvent *event);\r
index bd105d7..3a3d8f5 100644 (file)
@@ -63,7 +63,7 @@ SimpleTextView::SimpleTextView(QWidget *parent) :
     m_convJIS->setShortcut(QKeySequence("J"));
     m_convSJIS->setShortcut(QKeySequence("S"));
     m_convUTF8->setShortcut(QKeySequence("U"));
-    m_convUTF8->setShortcut(QKeySequence("I"));
+    m_convUTF16->setShortcut(QKeySequence("I"));
     m_convUTF16BE->setShortcut(QKeySequence("J"));
     m_convUTF16LE->setShortcut(QKeySequence("N"));
     m_back->setShortcut(QKeySequence("Return"));