mirror of https://github.com/procxx/kepka.git
Fix applying background after theme edit.
This commit is contained in:
parent
dfd63e66ff
commit
ca45fb617e
|
@ -1202,7 +1202,8 @@ void KeepFromEditor(
|
||||||
const ParsedTheme &originalParsed,
|
const ParsedTheme &originalParsed,
|
||||||
const Data::CloudTheme &cloud,
|
const Data::CloudTheme &cloud,
|
||||||
const QByteArray &themeContent,
|
const QByteArray &themeContent,
|
||||||
const ParsedTheme &themeParsed) {
|
const ParsedTheme &themeParsed,
|
||||||
|
const QImage &background) {
|
||||||
ClearApplying();
|
ClearApplying();
|
||||||
const auto content = themeContent.isEmpty()
|
const auto content = themeContent.isEmpty()
|
||||||
? originalContent
|
? originalContent
|
||||||
|
@ -1223,6 +1224,11 @@ void KeepFromEditor(
|
||||||
cloud.documentId);
|
cloud.documentId);
|
||||||
Local::writeTheme(saved);
|
Local::writeTheme(saved);
|
||||||
Background()->keepApplied(saved.object, true);
|
Background()->keepApplied(saved.object, true);
|
||||||
|
Background()->setThemeData(
|
||||||
|
base::duplicate(background),
|
||||||
|
themeParsed.tiled);
|
||||||
|
Background()->set(Data::ThemeWallPaper());
|
||||||
|
Background()->writeNewBackgroundSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Revert() {
|
void Revert() {
|
||||||
|
|
|
@ -69,7 +69,8 @@ void KeepFromEditor(
|
||||||
const ParsedTheme &originalParsed,
|
const ParsedTheme &originalParsed,
|
||||||
const Data::CloudTheme &cloud,
|
const Data::CloudTheme &cloud,
|
||||||
const QByteArray &themeContent,
|
const QByteArray &themeContent,
|
||||||
const ParsedTheme &themeParsed);
|
const ParsedTheme &themeParsed,
|
||||||
|
const QImage &background);
|
||||||
QString NightThemePath();
|
QString NightThemePath();
|
||||||
[[nodiscard]] bool IsNightMode();
|
[[nodiscard]] bool IsNightMode();
|
||||||
void SetNightModeValue(bool nightMode);
|
void SetNightModeValue(bool nightMode);
|
||||||
|
@ -210,7 +211,8 @@ private:
|
||||||
const ParsedTheme &originalParsed,
|
const ParsedTheme &originalParsed,
|
||||||
const Data::CloudTheme &cloud,
|
const Data::CloudTheme &cloud,
|
||||||
const QByteArray &themeContent,
|
const QByteArray &themeContent,
|
||||||
const ParsedTheme &themeParsed);
|
const ParsedTheme &themeParsed,
|
||||||
|
const QImage &background);
|
||||||
friend bool IsNonDefaultBackground();
|
friend bool IsNonDefaultBackground();
|
||||||
|
|
||||||
Main::Session *_session = nullptr;
|
Main::Session *_session = nullptr;
|
||||||
|
|
|
@ -330,7 +330,9 @@ QByteArray ReplaceValueInPaletteContent(
|
||||||
if (end - lastValidValueEnd > 0) result.append(lastValidValueEnd, end - lastValidValueEnd);
|
if (end - lastValidValueEnd > 0) result.append(lastValidValueEnd, end - lastValidValueEnd);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
return QByteArray();
|
auto newline = (content.indexOf("\r\n") >= 0 ? "\r\n" : "\n");
|
||||||
|
auto addedline = (content.endsWith('\n') ? "" : newline);
|
||||||
|
return content + addedline + name + ": " + value + ";" + newline;
|
||||||
}
|
}
|
||||||
|
|
||||||
[[nodiscard]] QByteArray WriteCloudToText(const Data::CloudTheme &cloud) {
|
[[nodiscard]] QByteArray WriteCloudToText(const Data::CloudTheme &cloud) {
|
||||||
|
@ -608,11 +610,6 @@ void Editor::Inner::applyEditing(const QString &name, const QString ©Of, QCo
|
||||||
error();
|
error();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (newContent.isEmpty()) {
|
|
||||||
auto newline = (_paletteContent.indexOf("\r\n") >= 0 ? "\r\n" : "\n");
|
|
||||||
auto addedline = (_paletteContent.endsWith('\n') ? "" : newline);
|
|
||||||
newContent = _paletteContent + addedline + plainName + ": " + plainValue + ";" + newline;
|
|
||||||
}
|
|
||||||
applyNewPalette(newContent);
|
applyNewPalette(newContent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -65,6 +65,7 @@ public:
|
||||||
const ParsedTheme &parsed);
|
const ParsedTheme &parsed);
|
||||||
|
|
||||||
[[nodiscard]] ParsedTheme result() const;
|
[[nodiscard]] ParsedTheme result() const;
|
||||||
|
[[nodiscard]] QImage image() const;
|
||||||
|
|
||||||
int resizeGetHeight(int newWidth) override;
|
int resizeGetHeight(int newWidth) override;
|
||||||
|
|
||||||
|
@ -213,6 +214,10 @@ ParsedTheme BackgroundSelector::result() const {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QImage BackgroundSelector::image() const {
|
||||||
|
return _background;
|
||||||
|
}
|
||||||
|
|
||||||
bool PaletteChanged(
|
bool PaletteChanged(
|
||||||
const QByteArray &editorPalette,
|
const QByteArray &editorPalette,
|
||||||
const QByteArray &originalPalette,
|
const QByteArray &originalPalette,
|
||||||
|
@ -273,6 +278,12 @@ void ImportFromFile(
|
||||||
data,
|
data,
|
||||||
name,
|
name,
|
||||||
ColorHexString(color->c));
|
ColorHexString(color->c));
|
||||||
|
if (data == "error") {
|
||||||
|
LOG(("Theme Error: could not adjust '%1: %2' in content"
|
||||||
|
).arg(QString::fromLatin1(name)
|
||||||
|
).arg(QString::fromLatin1(ColorHexString(color->c))));
|
||||||
|
return QByteArray();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
@ -459,6 +470,7 @@ SendMediaReady PrepareThemeMedia(
|
||||||
Fn<void()> SavePreparedTheme(
|
Fn<void()> SavePreparedTheme(
|
||||||
not_null<Window::Controller*> window,
|
not_null<Window::Controller*> window,
|
||||||
const ParsedTheme &parsed,
|
const ParsedTheme &parsed,
|
||||||
|
const QImage &background,
|
||||||
const QByteArray &originalContent,
|
const QByteArray &originalContent,
|
||||||
const ParsedTheme &originalParsed,
|
const ParsedTheme &originalParsed,
|
||||||
const Data::CloudTheme &fields,
|
const Data::CloudTheme &fields,
|
||||||
|
@ -510,7 +522,8 @@ Fn<void()> SavePreparedTheme(
|
||||||
originalParsed,
|
originalParsed,
|
||||||
cloud,
|
cloud,
|
||||||
state->themeContent,
|
state->themeContent,
|
||||||
parsed);
|
parsed,
|
||||||
|
background);
|
||||||
};
|
};
|
||||||
|
|
||||||
const auto createTheme = [=](const MTPDocument &data) {
|
const auto createTheme = [=](const MTPDocument &data) {
|
||||||
|
@ -918,6 +931,7 @@ void SaveThemeBox(
|
||||||
*cancel = SavePreparedTheme(
|
*cancel = SavePreparedTheme(
|
||||||
window,
|
window,
|
||||||
back->result(),
|
back->result(),
|
||||||
|
back->image(),
|
||||||
collected.originalContent,
|
collected.originalContent,
|
||||||
collected.originalParsed,
|
collected.originalParsed,
|
||||||
fields,
|
fields,
|
||||||
|
|
Loading…
Reference in New Issue