release: ef-1.0.5 - stability, memory, and upstream merges
Webserver: JSON batching, removed MD5 blocking, simplified flow control Memory: QR code caching, WiFi scan optimization, cover buffer leak fix EPUB: Fixed errant underlining before styled inline elements Flash screen: Version string overflow fix, half refresh for cleaner display Upstream merges: - PR #522: HAL abstraction layer (HalDisplay, HalGPIO) - PR #603: Sunlight fading fix toggle in Display settings
This commit is contained in:
@@ -380,19 +380,15 @@ void ParsedText::extractLine(const size_t breakIndex, const int pageWidth, const
|
||||
|
||||
// *** CRITICAL STEP: CONSUME DATA USING MOVE + ERASE ***
|
||||
// Move first lineWordCount elements from words into lineWords
|
||||
std::vector<std::string> lineWords(
|
||||
std::make_move_iterator(words.begin()),
|
||||
std::make_move_iterator(words.begin() + lineWordCount));
|
||||
std::vector<std::string> lineWords(std::make_move_iterator(words.begin()),
|
||||
std::make_move_iterator(words.begin() + lineWordCount));
|
||||
words.erase(words.begin(), words.begin() + lineWordCount);
|
||||
|
||||
std::vector<EpdFontFamily::Style> lineWordStyles(
|
||||
std::make_move_iterator(wordStyles.begin()),
|
||||
std::make_move_iterator(wordStyles.begin() + lineWordCount));
|
||||
std::vector<EpdFontFamily::Style> lineWordStyles(std::make_move_iterator(wordStyles.begin()),
|
||||
std::make_move_iterator(wordStyles.begin() + lineWordCount));
|
||||
wordStyles.erase(wordStyles.begin(), wordStyles.begin() + lineWordCount);
|
||||
|
||||
std::vector<bool> lineWordUnderlines(
|
||||
wordUnderlines.begin(),
|
||||
wordUnderlines.begin() + lineWordCount);
|
||||
std::vector<bool> lineWordUnderlines(wordUnderlines.begin(), wordUnderlines.begin() + lineWordCount);
|
||||
wordUnderlines.erase(wordUnderlines.begin(), wordUnderlines.begin() + lineWordCount);
|
||||
|
||||
for (auto& word : lineWords) {
|
||||
|
||||
@@ -9,11 +9,11 @@
|
||||
* Padding is treated similarly to margins for rendering purposes.
|
||||
*/
|
||||
struct BlockStyle {
|
||||
int8_t marginTop = 0; // 0-2 lines
|
||||
int8_t marginBottom = 0; // 0-2 lines
|
||||
int8_t paddingTop = 0; // 0-2 lines (treated same as margin)
|
||||
int8_t paddingBottom = 0; // 0-2 lines (treated same as margin)
|
||||
int16_t textIndent = 0; // pixels (first line indent)
|
||||
int16_t marginLeft = 0; // pixels (horizontal indent for entire block)
|
||||
int8_t marginTop = 0; // 0-2 lines
|
||||
int8_t marginBottom = 0; // 0-2 lines
|
||||
int8_t paddingTop = 0; // 0-2 lines (treated same as margin)
|
||||
int8_t paddingBottom = 0; // 0-2 lines (treated same as margin)
|
||||
int16_t textIndent = 0; // pixels (first line indent)
|
||||
int16_t marginLeft = 0; // pixels (horizontal indent for entire block)
|
||||
bool hasLeftBorder = false; // draw vertical bar in left margin (for blockquotes)
|
||||
};
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
#include <EpdFontFamily.h>
|
||||
#include <SdFat.h>
|
||||
|
||||
#include <vector>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "Block.h"
|
||||
#include "BlockStyle.h"
|
||||
@@ -30,7 +30,8 @@ class TextBlock final : public Block {
|
||||
public:
|
||||
explicit TextBlock(std::vector<std::string> words, std::vector<uint16_t> word_xpos,
|
||||
std::vector<EpdFontFamily::Style> word_styles, const Style style,
|
||||
const BlockStyle& blockStyle = BlockStyle(), std::vector<bool> word_underlines = std::vector<bool>())
|
||||
const BlockStyle& blockStyle = BlockStyle(),
|
||||
std::vector<bool> word_underlines = std::vector<bool>())
|
||||
: words(std::move(words)),
|
||||
wordXpos(std::move(word_xpos)),
|
||||
wordStyles(std::move(word_styles)),
|
||||
|
||||
Reference in New Issue
Block a user