Windows: Shift-Right-Click invokes the Explorer folder context menu on Workspace folders

FossilOrigin-Name: ca5602f8b3e7a0eba8e0a8afc1e60f3b4e2d8646
This commit is contained in:
Kostas 2015-08-28 09:28:04 +00:00
parent be1381e9c7
commit 1960def1dc
4 changed files with 28 additions and 14 deletions

View File

@ -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

View File

@ -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

View File

@ -1 +1 @@
e4ee91a2c5ca3e29c020cc31e2e018e69ff76b16
ca5602f8b3e7a0eba8e0a8afc1e60f3b4e2d8646

View File

@ -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<WorkspaceItem>();
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);
}
//------------------------------------------------------------------------------