// メニュー項目の状態を初期化する\r
ui->view_Hidden->setChecked(settings.value(IniKey_ShowHidden).toBool());\r
ui->view_System->setChecked(settings.value(IniKey_ShowSystem).toBool());\r
- ui->action_OpenEditor->setEnabled(!settings.value(IniKey_EditorPath).toString().isEmpty());\r
- ui->action_OpenTerminal->setEnabled(!settings.value(IniKey_TerminalPath).toString().isEmpty());\r
+// ui->action_OpenEditor->setEnabled(!settings.value(IniKey_PathEditor).toString().isEmpty());\r
+// ui->action_OpenTerminal->setEnabled(!settings.value(IniKey_PathTerminal).toString().isEmpty());\r
\r
// 追加のショートカットキーを設定する\r
QList<QKeySequence> shortcuts;\r
}\r
}\r
\r
+void MainWindow::expandLeft()\r
+{\r
+ qDebug() << "MainWindow::expandLeft();";\r
+\r
+ QList<int> sizes = ui->splitter->sizes();\r
+ QList<int> newSizes;\r
+\r
+ newSizes << sizes[0] + 30;\r
+ newSizes << sizes[1] - 30;\r
+\r
+ ui->splitter->setSizes(newSizes);\r
+\r
+}\r
+\r
+void MainWindow::expandRight()\r
+{\r
+ qDebug() << "MainWindow::expandLeft();";\r
+\r
+ QList<int> sizes = ui->splitter->sizes();\r
+ QList<int> newSizes;\r
+\r
+ newSizes << sizes[0] - 30;\r
+ newSizes << sizes[1] + 30;\r
+\r
+ ui->splitter->setSizes(newSizes);\r
+\r
+}\r
+\r
void MainWindow::historyBack()\r
{\r
qDebug() << "MainWindow::historyBack();";\r
Q_CHECK_PTR(view);\r
\r
QSettings settings;\r
- QString exe = settings.value(IniKey_EditorPath).toString();\r
+ QString exe = settings.value(IniKey_PathEditor).toString();\r
if (exe.isEmpty()) {\r
QMessageBox::critical(\r
this, tr("エラー"),\r
list << path;\r
}\r
\r
+ QString files;\r
foreach (const QFileInfo &info, list) {\r
- QString opt = settings.value(IniKey_EditorOption).toString();\r
- replaceVars(opt, info);\r
-\r
+ files += " " + QQ(info.absoluteFilePath());\r
+ }\r
#ifdef Q_OS_MAC\r
- QString command = "open -a " + exe + " " + opt;\r
+ QString command = "open -a " + exe + files;\r
#else\r
- QString command = QQ(exe) + " " + opt;\r
+ QString command = exe + files;\r
#endif\r
- if (!startProcess(command, info.absolutePath(), tr("外部エディタの起動に失敗しました。"))) {\r
- break;\r
- }\r
+ if (!startProcess(command, view->dir(), tr("外部エディタの起動に失敗しました。"))) {\r
+ qDebug() << command;\r
}\r
}\r
\r
Q_CHECK_PTR(view);\r
\r
QSettings settings;\r
- QString exe = settings.value(IniKey_TerminalPath).toString();\r
+ QString exe = settings.value(IniKey_PathTerminal).toString();\r
if (exe.isEmpty()) {\r
QMessageBox::critical(\r
this, tr("エラー"),\r
return;\r
}\r
\r
+ QSet<QString> dirs;\r
foreach (const QFileInfo &info, view->selectedItems()) {\r
- QString opt = settings.value(IniKey_TerminalOption).toString();\r
- replaceVars(opt, info);\r
+ if (info.isDir()) {\r
+ dirs.insert(info.absoluteFilePath());\r
+ }\r
+ else {\r
+ dirs.insert(info.absolutePath());\r
+ }\r
+ }\r
\r
+ foreach (const QString &dir, dirs) {\r
#ifdef Q_OS_MAC\r
- QString command = "open -a " + QQ(exe) + " --args " + opt;\r
+ QString command = "open -n -a " + exe + " " + QQ(dir);\r
#else\r
- QString command = QQ(exe) + " " + opt;\r
+ QString command = exe + " " + QQ(dir);\r
#endif\r
- if (!startProcess(command, info.absolutePath(), tr("ターミナルの起動に失敗しました。"))) {\r
+ if (!startProcess(command, view->dir(), tr("ターミナルの起動に失敗しました。"))) {\r
+ qDebug() << command;\r
break;\r
}\r
- Sleep(1000);\r
+ }\r
+}\r
+\r
+void MainWindow::openArchiver()\r
+{\r
+ qDebug() << "MainWindow::openArchiver";\r
+\r
+ FolderView *view = static_cast<FolderView*>(qApp->focusWidget());\r
+ Q_CHECK_PTR(view);\r
+\r
+ QSettings settings;\r
+ QString exe = settings.value(IniKey_PathArchiver).toString();\r
+ if (exe.isEmpty()) {\r
+ QMessageBox::critical(\r
+ this, tr("エラー"),\r
+ tr("アーカイバのパスが未定義です。"));\r
+ return;\r
+ }\r
+\r
+ QString files;\r
+ foreach (const QFileInfo &info, view->selectedItems()) {\r
+ files += " " + QQ(info.absoluteFilePath());\r
+ }\r
+#ifdef Q_OS_MAC\r
+ QString command = "open -a " + exe + files;\r
+#else\r
+ QString command = exe + files;\r
+#endif\r
+ if (!startProcess(command, view->dir(), tr("アーカイバの起動に失敗しました。"))) {\r
+ qDebug() << command;\r
}\r
}\r
\r
}\r
}\r
\r
+void MainWindow::splitCenter()\r
+{\r
+ qDebug() << "MainWindow::splitCenter();";\r
+\r
+ QList<int> sizes = ui->splitter->sizes();\r
+ int sizeTotal = sizes[0] + sizes[1];\r
+ sizes[0] = sizeTotal / 2;\r
+ sizes[1] = sizeTotal - sizes[0];\r
+ ui->splitter->setSizes(sizes);\r
+}\r
+\r
void MainWindow::swapView()\r
{\r
qDebug() << "MainWindow::swapView();";\r
menu.addAction(ui->action_Exec);\r
menu.addAction(ui->action_OpenEditor);\r
menu.addAction(ui->action_OpenTerminal);\r
+ menu.addAction(ui->action_OpenArchiver);\r
menu.addSeparator();\r
menu.addAction(ui->cmd_Copy);\r
menu.addAction(ui->cmd_Move);\r
connect(ui->action_Open, SIGNAL(triggered()), this, SLOT(open()));\r
connect(ui->action_OpenEditor, SIGNAL(triggered()), this, SLOT(openEditor()));\r
connect(ui->action_OpenTerminal, SIGNAL(triggered()), this, SLOT(openTerminal()));\r
+ connect(ui->action_OpenArchiver, SIGNAL(triggered()), this, SLOT(openArchiver()));\r
connect(ui->action_Quit, SIGNAL(triggered()), this, SLOT(close()));\r
connect(ui->action_Search, SIGNAL(toggled(bool)), this, SLOT(toggleSearchBox(bool)));\r
connect(ui->action_SearchNext, SIGNAL(triggered()), this, SLOT(searchNext()));\r
connect(ui->view_ToOther, SIGNAL(triggered()), this, SLOT(setPathToOther()));\r
connect(ui->bookmark_Edit, SIGNAL(triggered()), this, SLOT(editBookmark()));\r
connect(ui->bookmark_Show, SIGNAL(triggered()), this, SLOT(showBookmarkDialog()));\r
+ connect(ui->split_Center, SIGNAL(triggered()), this, SLOT(splitCenter()));\r
+ connect(ui->expand_Left, SIGNAL(triggered()), this, SLOT(expandLeft()));\r
+ connect(ui->expand_Right, SIGNAL(triggered()), this, SLOT(expandRight()));\r
}\r
\r
void MainWindow::replaceVars(QString &str, const QFileInfo info)\r
ui->move_Forward->setEnabled(!view->history()->isEnd());\r
\r
QSettings settings;\r
- ui->action_OpenEditor->setEnabled(!settings.value(IniKey_EditorPath).toString().isEmpty());\r
- ui->action_OpenTerminal->setEnabled(!settings.value(IniKey_TerminalPath).toString().isEmpty());\r
+ ui->action_OpenEditor->setEnabled(!settings.value(IniKey_PathEditor).toString().isEmpty());\r
+ ui->action_OpenTerminal->setEnabled(!settings.value(IniKey_PathTerminal).toString().isEmpty());\r
\r
}\r
else if (!otherSideFolderView(view)->isVisible()) {\r