mirror of
https://github.com/daveallie/crosspoint-reader.git
synced 2026-02-04 14:47:37 +03:00
Compare commits
6 Commits
cd1d498cd2
...
97a5332713
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
97a5332713 | ||
|
|
d403044f76 | ||
|
|
f67c544e16 | ||
|
|
4462bfd5ef | ||
|
|
1a34af2c87 | ||
|
|
3937e949bf |
@ -153,7 +153,7 @@ Click **File Manager** to access file management features.
|
|||||||
|
|
||||||
1. Click the **+ Add** button in the top-right corner
|
1. Click the **+ Add** button in the top-right corner
|
||||||
2. Select **New Folder** from the dropdown menu
|
2. Select **New Folder** from the dropdown menu
|
||||||
3. Enter a folder name (letters, numbers, underscores, and hyphens only)
|
3. Enter a folder name (must not contain characters \" * : < > ? / \\ | and must not be . or ..)
|
||||||
4. Click **Create Folder**
|
4. Click **Create Folder**
|
||||||
|
|
||||||
This is useful for organizing your ebooks by genre, author, or series.
|
This is useful for organizing your ebooks by genre, author, or series.
|
||||||
|
|||||||
@ -546,8 +546,8 @@ void WifiSelectionActivity::renderNetworkList() const {
|
|||||||
|
|
||||||
// Draw network name (truncate if too long)
|
// Draw network name (truncate if too long)
|
||||||
std::string displayName = network.ssid;
|
std::string displayName = network.ssid;
|
||||||
if (displayName.length() > 16) {
|
if (displayName.length() > 33) {
|
||||||
displayName.replace(13, displayName.length() - 13, "...");
|
displayName.replace(30, displayName.length() - 30, "...");
|
||||||
}
|
}
|
||||||
renderer.drawText(UI_10_FONT_ID, 20, networkY, displayName.c_str());
|
renderer.drawText(UI_10_FONT_ID, 20, networkY, displayName.c_str());
|
||||||
|
|
||||||
|
|||||||
@ -13,6 +13,10 @@ const char* const KeyboardEntryActivity::keyboard[NUM_ROWS] = {
|
|||||||
const char* const KeyboardEntryActivity::keyboardShift[NUM_ROWS] = {"~!@#$%^&*()_+", "QWERTYUIOP{}|", "ASDFGHJKL:\"",
|
const char* const KeyboardEntryActivity::keyboardShift[NUM_ROWS] = {"~!@#$%^&*()_+", "QWERTYUIOP{}|", "ASDFGHJKL:\"",
|
||||||
"ZXCVBNM<>?", "SPECIAL ROW"};
|
"ZXCVBNM<>?", "SPECIAL ROW"};
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
constexpr unsigned long capsMs = 1000;
|
||||||
|
}
|
||||||
|
|
||||||
void KeyboardEntryActivity::taskTrampoline(void* param) {
|
void KeyboardEntryActivity::taskTrampoline(void* param) {
|
||||||
auto* self = static_cast<KeyboardEntryActivity*>(param);
|
auto* self = static_cast<KeyboardEntryActivity*>(param);
|
||||||
self->displayTaskLoop();
|
self->displayTaskLoop();
|
||||||
@ -94,6 +98,7 @@ void KeyboardEntryActivity::handleKeyPress() {
|
|||||||
if (selectedCol >= SHIFT_COL && selectedCol < SPACE_COL) {
|
if (selectedCol >= SHIFT_COL && selectedCol < SPACE_COL) {
|
||||||
// Shift toggle
|
// Shift toggle
|
||||||
shiftActive = !shiftActive;
|
shiftActive = !shiftActive;
|
||||||
|
updateRequired = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -234,7 +239,11 @@ void KeyboardEntryActivity::loop() {
|
|||||||
|
|
||||||
// Selection
|
// Selection
|
||||||
if (mappedInput.wasPressed(MappedInputManager::Button::Confirm)) {
|
if (mappedInput.wasPressed(MappedInputManager::Button::Confirm)) {
|
||||||
handleKeyPress();
|
if (mappedInput.getHeldTime() >= capsMs) {
|
||||||
|
shiftActive = !shiftActive;
|
||||||
|
} else {
|
||||||
|
handleKeyPress();
|
||||||
|
}
|
||||||
updateRequired = true;
|
updateRequired = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1146,10 +1146,10 @@ function retryAllFailedUploads() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validate folder name (no special characters except underscore and hyphen)
|
// Validate folder name
|
||||||
const validName = /^[a-zA-Z0-9_\-]+$/.test(folderName);
|
const validName = /^(?!\.{1,2}$)[^"*:<>?\/\\|]+$/.test(folderName);
|
||||||
if (!validName) {
|
if (!validName) {
|
||||||
alert('Folder name can only contain letters, numbers, underscores, and hyphens.');
|
alert('Folder name cannot contain \" * : < > ? / \\ | and must not be . or ..');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user