diff --git a/doc/Changes.md b/doc/Changes.md index e2829dd..01b9794 100644 --- a/doc/Changes.md +++ b/doc/Changes.md @@ -25,6 +25,8 @@ Fuel V2.0.0 (2015-XX-XX) - Feature: OSX: UI improvements - Feature: OSX: Improved external application selection for application bundles - Feature: Long operations can now be aborted via a button on the status bar +- Feature: Windows: Shift-Right-Click invokes the Explorer folder context menu on + Workspace folders - Misc: Reorganised menu structure. - Misc: Separated Fuel and Fossil settings - Bug Fix: Retain the folder tree state when refreshing the workspace diff --git a/manifest b/manifest index d519345..21dff08 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Also\sInclude\s"Latest\sRevision"\sto\sthe\sversion\slist\sof\supdateRevision\n -D 2015-08-27T14:43:06.142 +C Windows:\sShift-Right-Click\sinvokes\sthe\sExplorer\sfolder\scontext\smenu\son\sWorkspace\sfolders +D 2015-08-28T09:28:04.945 F .fossil-settings/manifest a09a968bf05a50058f3ad50132730b719bc39e76 F .travis.yml 77966888a81c4ceee1fcc79bce842c9667ad8a35 F debian/changelog eb4304dfcb6bb66850ec740838090eb50ce1249b @@ -14,7 +14,7 @@ F debian/watch 34f0921ff100a3e16a7ad84dcc303731de830a60 F dist/arch/PKGBUILD 26623327e467028a883cd13963daa36baf10dfa3 F dist/win/fuel.iss ef3558dbba409eb194938b930377fc9ee27d319e F doc/Building.md 149d959751ae488829e084a9f88449a08220c1d1 -F doc/Changes.md d45c0401b93dbeeb2dad9c5f9ef36c27d15a10c5 +F doc/Changes.md aaf193efa8bea8e3a268c0d2a61869cc5864b76f F doc/License.txt 4cc77b90af91e615a64ae04893fdffa7939db84c F ext/qtkeychain/CMakeLists.txt fc1afa05034f2765ba243ce758a7e9d6b6efe2d6 F ext/qtkeychain/COPYING d0f83c8198fdd5464d2373015b7b64ce7cae607e @@ -232,7 +232,7 @@ F src/FslSettingsDialog.cpp e00907d493fba469e48a008aecda88426350b5ac F src/FslSettingsDialog.h dfe2a61884a55a74cbb9206b6f6b482b979725e7 F src/LoggedProcess.cpp 2a1e5c94bc1e57c8984563e66c210e43a14dc60c F src/LoggedProcess.h 85df7c635c807a5a0e8c4763f17a0752aaff7261 -F src/MainWindow.cpp 461a0ef941ae50c567c039ad1d60c69321c7e3df +F src/MainWindow.cpp d5adcea39c5cdad6acbf9557a6f6ef7e6bf19901 F src/MainWindow.h fd8bb12f0bf49a6cb5ce9b875ad5277426380e3f F src/RemoteDialog.cpp d5d39871f319bb760405736ba0caa9e83ec51ea3 F src/RemoteDialog.h 5e0438c2bd7c79b1bb44bfbd58c2181b544a9e5d @@ -261,7 +261,7 @@ F ui/MainWindow.ui ad04643d071fe513b46ef413749a493909a90ad1 F ui/RemoteDialog.ui 424b2d4a3d0162f84fdccf6af02c1cfce07a06f5 F ui/RevisionDialog.ui 27c3b98c665fec014a50cbf3352c0627f75e68cd F ui/SettingsDialog.ui 2e1b6ce7a49100088c5649292c1319e62e0302e1 -P ea4b656b8237af73b81e6b22fd4c451a51450d2d -R aad03cdd877a499269b73777cb90716a +P e4ee91a2c5ca3e29c020cc31e2e018e69ff76b16 +R 7c567f82d6542c04f20db79a62467088 U Kostas -Z 5479aafd66cafb08fd77bc06441f49bf +Z 67b0068a13b61bb84a597c24af896151 diff --git a/manifest.uuid b/manifest.uuid index f37153c..7d337d5 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -e4ee91a2c5ca3e29c020cc31e2e018e69ff76b16 \ No newline at end of file +ca5602f8b3e7a0eba8e0a8afc1e60f3b4e2d8646 \ No newline at end of file diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 5dadf48..9a65515 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -2365,13 +2365,15 @@ void MainWindow::on_fileTableView_customContextMenuRequested(const QPoint &pos) } //------------------------------------------------------------------------------ -void MainWindow::on_workspaceTreeView_customContextMenuRequested(const QPoint &) +void MainWindow::on_workspaceTreeView_customContextMenuRequested(const QPoint &pos) { + ui->workspaceTreeView->selectionModel()->select(ui->workspaceTreeView->indexAt(pos), QItemSelectionModel::ClearAndSelect|QItemSelectionModel::Rows); QModelIndexList indices = ui->workspaceTreeView->selectionModel()->selectedIndexes(); if(indices.empty()) return; + QPoint gpos = QCursor::pos() + QPoint(1, 1); QMenu *menu = 0; // Get first selected item @@ -2381,7 +2383,20 @@ void MainWindow::on_workspaceTreeView_customContextMenuRequested(const QPoint &) WorkspaceItem tv = data.value(); if(tv.Type == WorkspaceItem::TYPE_FOLDER || tv.Type == WorkspaceItem::TYPE_WORKSPACE) - menu = menuWorkspace; + { + #ifdef Q_OS_WIN + if(qApp->keyboardModifiers() & Qt::SHIFT) + { + QString fname = getWorkspace().getPath() + PATH_SEPARATOR + tv.Value; + fname = QDir::toNativeSeparators(fname); + ShowExplorerMenu((HWND)winId(), fname, gpos); + } + else + #endif + { + menu = menuWorkspace; + } + } else if (tv.Type == WorkspaceItem::TYPE_STASH || tv.Type == WorkspaceItem::TYPE_STASHES) menu = menuStashes; else if (tv.Type == WorkspaceItem::TYPE_TAG || tv.Type == WorkspaceItem::TYPE_TAGS) @@ -2392,10 +2407,7 @@ void MainWindow::on_workspaceTreeView_customContextMenuRequested(const QPoint &) menu = menuRemotes; if(menu) - { - QPoint pos = QCursor::pos() + QPoint(1, 1); - menu->popup(pos); - } + menu->popup(gpos); } //------------------------------------------------------------------------------