Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Shortcut improvements #3584

Closed
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 13 additions & 8 deletions PowerEditor/src/WinControls/Grid/ShortcutMapper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -108,11 +108,13 @@ void ShortcutMapper::initBabyGrid() {

_babygrid.reSizeToWH(rect);
_babygrid.hideCursor();
_babygrid.makeColAutoWidth();
_babygrid.makeColAutoWidth(false);
_babygrid.setAutoRow(false);
_babygrid.setColsNumbered(false);
_babygrid.setColWidth(0, NppParameters::getInstance()->_dpiManager.scaleX(30));
_babygrid.setColWidth(1, NppParameters::getInstance()->_dpiManager.scaleX(250));
_babygrid.setColWidth(1, NppParameters::getInstance()->_dpiManager.scaleX(290));
_babygrid.setColWidth(2, NppParameters::getInstance()->_dpiManager.scaleX(140));
_babygrid.setColWidth(3, NppParameters::getInstance()->_dpiManager.scaleX(40));
_babygrid.setHeaderHeight(NppParameters::getInstance()->_dpiManager.scaleY(21));
_babygrid.setRowHeight(NppParameters::getInstance()->_dpiManager.scaleY(21));

Expand All @@ -130,10 +132,14 @@ void ShortcutMapper::fillOutBabyGrid()

size_t nbItems = 0;

_babygrid.setText(0, 1, TEXT("Name"));
_babygrid.setText(0, 2, TEXT("Shortcut"));

switch(_currentState) {
case STATE_MENU: {
nbItems = nppParam->getUserShortcuts().size();
_babygrid.setLineColNumber(nbItems, 2);
_babygrid.setLineColNumber(nbItems, 3);
_babygrid.setText(0, 3, TEXT("Category"));
break; }
case STATE_MACRO: {
nbItems = nppParam->getMacroList().size();
Expand All @@ -145,17 +151,15 @@ void ShortcutMapper::fillOutBabyGrid()
break; }
case STATE_PLUGIN: {
nbItems = nppParam->getPluginCommandList().size();
_babygrid.setLineColNumber(nbItems, 2);
_babygrid.setLineColNumber(nbItems, 3);
_babygrid.setText(0, 3, TEXT("Plugin"));
break; }
case STATE_SCINTILLA: {
nbItems = nppParam->getScintillaKeyList().size();
_babygrid.setLineColNumber(nbItems, 2);
break; }
}

_babygrid.setText(0, 1, TEXT("Name"));
_babygrid.setText(0, 2, TEXT("Shortcut"));

bool isMarker = false;

switch(_currentState) {
Expand All @@ -169,7 +173,7 @@ void ShortcutMapper::fillOutBabyGrid()
_babygrid.setText(i+1, 1, cshortcuts[i].getName());
if (cshortcuts[i].isEnabled()) //avoid empty strings for better performance
_babygrid.setText(i+1, 2, cshortcuts[i].toString().c_str());

_babygrid.setText(i+1, 3, cshortcuts[i].getCategory());
if (isMarker)
isMarker = _babygrid.setMarker(false);
}
Expand Down Expand Up @@ -225,6 +229,7 @@ void ShortcutMapper::fillOutBabyGrid()
_babygrid.setText(i+1, 1, cshortcuts[i].getName());
if (cshortcuts[i].isEnabled()) //avoid empty strings for better performance
_babygrid.setText(i+1, 2, cshortcuts[i].toString().c_str());
_babygrid.setText(i+1, 3, cshortcuts[i].getModuleName());

if (isMarker)
isMarker = _babygrid.setMarker(false);
Expand Down
9 changes: 8 additions & 1 deletion PowerEditor/src/WinControls/shortcut/shortcut.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,14 @@ void Shortcut::setName(const TCHAR * name) {
}

generic_string ScintillaKeyMap::toString() const {
return toString(0);
generic_string sc = TEXT("");
size_t nbCombos = getSize();
for (size_t combo = 0; combo < nbCombos; ++combo){
sc += toString(combo);
if (combo < nbCombos - 1)
sc += TEXT(" or ");
}
return sc;
}

generic_string ScintillaKeyMap::toString(size_t index) const {
Expand Down
33 changes: 32 additions & 1 deletion PowerEditor/src/WinControls/shortcut/shortcut.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
#include "Scintilla.h"
#include "StaticDialog.h"
#include "Common.h"
#include "menuCmdID.h"

const size_t nameLenMax = 64;

Expand Down Expand Up @@ -193,12 +194,42 @@ protected :

class CommandShortcut : public Shortcut {
public:
CommandShortcut(Shortcut sc, long id) : Shortcut(sc), _id(id) {};
CommandShortcut(Shortcut sc, long id) : Shortcut(sc), _id(id) {
long category_id = _id - _id % 500;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why 500? Magic number should be avoided.

switch (category_id){
case IDM_FILE :
_category = TEXT("File"); break;
case IDM_EDIT :
_category = TEXT("Edit"); break;
case IDM_EDIT_AUTOCOMPLETE :
_category = TEXT("Edit"); break;
case IDM_SEARCH:
_category = TEXT("Search"); break;
case IDM_VIEW :
_category = TEXT("View"); break;
case IDM_FORMAT :
_category = TEXT("Format"); break;
case IDM_LANG :
_category = TEXT("Lang"); break;
case IDM_ABOUT :
_category = TEXT("About"); break;
case IDM_SETTING :
_category = TEXT("Setting"); break;
case IDM_TOOL :
_category = TEXT("Tool"); break;
case IDM_EXECUTE :
_category = TEXT("Execute"); break;
default :
_category = TEXT(""); break;
}
};
unsigned long getID() const {return _id;};
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function long definition should be in cpp file.

void setID(unsigned long id) { _id = id;};
const TCHAR * getCategory() const { return _category.c_str(); };

private :
unsigned long _id;
generic_string _category;
};


Expand Down