openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
July 2023
- 1 participants
- 1988 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package foot for openSUSE:Factory checked in at 2023-07-30 20:58:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/foot (Old)
and /work/SRC/openSUSE:Factory/.foot.new.32662 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "foot"
Sun Jul 30 20:58:26 2023 rev:25 rq:1101397 version:1.15.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/foot/foot.changes 2023-07-24 18:26:05.482194155 +0200
+++ /work/SRC/openSUSE:Factory/.foot.new.32662/foot.changes 2023-07-30 20:58:34.087503316 +0200
@@ -1,0 +2,10 @@
+Sun Jul 30 17:16:33 UTC 2023 - Arnav Singh <opensuse(a)arnavion.dev>
+
+- Update to v1.15.2:
+ * foot.ini options:
+ * Added tweak.bold-text-in-bright-amount option.
+ * Fixed various crashes related to copy-paste, font sizes, wayland support
+ of compositor, and more.
+ * See https://codeberg.org/dnkl/foot/releases/tag/1.15.2 for more details.
+
+-------------------------------------------------------------------
Old:
----
foot-1.15.1.tar.gz
New:
----
foot-1.15.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ foot.spec ++++++
--- /var/tmp/diff_new_pack.IRQENx/_old 2023-07-30 20:58:34.699506950 +0200
+++ /var/tmp/diff_new_pack.IRQENx/_new 2023-07-30 20:58:34.703506974 +0200
@@ -17,7 +17,7 @@
Name: foot
-Version: 1.15.1
+Version: 1.15.2
Release: 0
Summary: A Wayland terminal emulator
License: MIT
@@ -78,6 +78,7 @@
-Dgrapheme-clustering=enabled \
-Dime=true \
-Dterminfo=enabled \
+ -Dterminfo-base-name=foot-extra \
-Dtests=false \
-Dthemes=true \
-Dutmp-backend=libutempter \
@@ -87,8 +88,6 @@
%install
%meson_install
rm -r %{buildroot}/%{_datadir}/doc/%{name}/
-mv %{buildroot}/%{_datadir}/terminfo/f/foot %{buildroot}/%{_datadir}/terminfo/f/foot-extra
-mv %{buildroot}/%{_datadir}/terminfo/f/foot-direct %{buildroot}/%{_datadir}/terminfo/f/foot-extra-direct
%files
%license LICENSE
++++++ foot-1.15.1.tar.gz -> foot-1.15.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/foot/.builds/alpine-x64.yml new/foot/.builds/alpine-x64.yml
--- old/foot/.builds/alpine-x64.yml 2023-07-21 08:57:03.000000000 +0200
+++ new/foot/.builds/alpine-x64.yml 2023-07-30 13:18:55.000000000 +0200
@@ -47,6 +47,9 @@
ninja -C bld/release -k0
meson test -C bld/release --print-errorlogs
- codespell: |
+ python3 -m venv codespell-venv
+ source codespell-venv/bin/activate
pip install codespell
cd foot
~/.local/bin/codespell -Lser,doas,zar README.md INSTALL.md CHANGELOG.md *.c *.h doc/*.scd
+ deactivate
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/foot/.woodpecker.yml new/foot/.woodpecker.yml
--- old/foot/.woodpecker.yml 2023-07-21 08:57:03.000000000 +0200
+++ new/foot/.woodpecker.yml 2023-07-30 13:18:55.000000000 +0200
@@ -8,8 +8,11 @@
commands:
- apk add python3
- apk add py3-pip
+ - python3 -m venv codespell-venv
+ - source codespell-venv/bin/activate
- pip install codespell
- codespell -Lser,doas,zar README.md INSTALL.md CHANGELOG.md *.c *.h doc/*.scd
+ - deactivate
subprojects:
when:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/foot/CHANGELOG.md new/foot/CHANGELOG.md
--- old/foot/CHANGELOG.md 2023-07-21 08:57:03.000000000 +0200
+++ new/foot/CHANGELOG.md 2023-07-30 13:18:55.000000000 +0200
@@ -1,5 +1,6 @@
# Changelog
+* [1.15.2](#1-15-2)
* [1.15.1](#1-15-1)
* [1.15.0](#1-15-0)
* [1.14.0](#1-14-0)
@@ -43,6 +44,44 @@
* [1.2.0](#1-2-0)
+## 1.15.2
+
+### Added
+
+* `[tweak].bold-text-in-bright-amount` option ([#1434][1434]).
+* `-Dterminfo-base-name` meson option, allowing you to name the
+ terminfo files to something other than `-Ddefault-terminfo`. Use
+ case: have foot default to using the terminfo from ncurses (`foot`,
+ `foot-direct`), while still packaging foot's terminfo files, but
+ under a different name (e.g. `foot-extra`, `foot-extra-direct`).
+
+[1434]: https://codeberg.org/dnkl/foot/issues/1434
+
+
+### Fixed
+
+* Crash when copying text that contains invalid UTF-8 ([#1423][1423]).
+* Wrong font size after suspending the monitor ([#1431][1431]).
+* Vertical alignment in URL jump labels, and the scrollback position
+ indicator ([#1430][1430]).
+* Regression: line- and box drawing characters not covering the full
+ height of the line, when a custom `line-height` is being used
+ ([#1430][1430]).
+* Crash when compositor does not implement the _viewporter_ interface
+ ([#1444][1444]).
+* CSD rendering with fractional scaling ([#1441][1441]).
+* Regression: crash with certain combinations of
+ `--window-size-chars=NxM` and desktop scaling factors
+ ([#1446][1446]).
+
+[1423]: https://codeberg.org/dnkl/foot/issues/1423
+[1431]: https://codeberg.org/dnkl/foot/issues/1431
+[1430]: https://codeberg.org/dnkl/foot/issues/1430
+[1444]: https://codeberg.org/dnkl/foot/issues/1444
+[1441]: https://codeberg.org/dnkl/foot/issues/1441
+[1446]: https://codeberg.org/dnkl/foot/issues/1446
+
+
## 1.15.1
### Changed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/foot/INSTALL.md new/foot/INSTALL.md
--- old/foot/INSTALL.md 2023-07-21 08:57:03.000000000 +0200
+++ new/foot/INSTALL.md 2023-07-30 13:18:55.000000000 +0200
@@ -151,6 +151,7 @@
| `-Dgrapheme-clustering` | feature | `auto` | Enables grapheme clustering | libutf8proc |
| `-Dterminfo` | feature | `enabled` | Build and install terminfo files | tic (ncurses) |
| `-Ddefault-terminfo` | string | `foot` | Default value of `TERM` | None |
+| `-Dterminfo-base-name` | string | `-Ddefault-terminfo` | Base name of the generated terminfo files | None |
| `-Dcustom-terminfo-install-location` | string | `${datadir}/terminfo` | Value to set `TERMINFO` to | None |
| `-Dsystemd-units-dir` | string | `${systemduserunitdir}` | Where to install the systemd service files (absolute) | None |
| `-Dutmp-backend` | combo | `auto` | Which utmp backend to use (`none`, `libutempter`, `ulog` or `auto`) | libutempter or ulog |
@@ -165,8 +166,18 @@
`$TERM`, and the names of the terminfo files (if
`-Dterminfo=enabled`).
-`-Dcustom-terminfo-install-location` enables foot’s terminfo to
-co-exist with ncurses’ version, without changing the terminfo
+If you want foot to use the terminfo files from ncurses, but still
+package foot's own terminfo files under a different name, you can use
+the `-Dterminfo-base-name` option. Many distributions use the name
+`foot-extra`, and thus it might be a good idea to re-use that:
+
+```sh
+meson ... -Ddefault-terminfo=foot -Dterminfo-base-name=foot-extra
+```
+(or just leave out `-Ddefault-terminfo`, since it defaults to `foot` anyway).
+
+Finally, `-Dcustom-terminfo-install-location` enables foot’s terminfo
+to co-exist with ncurses’ version, without changing the terminfo
names. The idea is that you install foot’s terminfo to a non-standard
location, for example `/usr/share/foot/terminfo`. Use
`-Dcustom-terminfo-install-location` to tell foot where the terminfo
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/foot/box-drawing.c new/foot/box-drawing.c
--- old/foot/box-drawing.c 2023-07-21 08:57:03.000000000 +0200
+++ new/foot/box-drawing.c 2023-07-30 13:18:55.000000000 +0200
@@ -3011,7 +3011,7 @@
.cols = 1,
.pix = buf.pix,
.x = -term->font_x_ofs,
- .y = term->font_y_ofs + term->fonts[0]->ascent,
+ .y = term_font_baseline(term),
.width = width,
.height = height,
.advance = {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/foot/config.c new/foot/config.c
--- old/foot/config.c 2023-07-21 08:57:03.000000000 +0200
+++ new/foot/config.c 2023-07-30 13:18:55.000000000 +0200
@@ -480,7 +480,7 @@
}
static bool NOINLINE
-value_to_double(struct context *ctx, float *res)
+value_to_float(struct context *ctx, float *res)
{
const char *s = ctx->value;
@@ -659,7 +659,7 @@
res->px = value;
} else {
float value;
- if (!value_to_double(ctx, &value))
+ if (!value_to_float(ctx, &value))
return false;
res->pt = value;
res->px = 0;
@@ -1089,7 +1089,7 @@
}
else if (strcmp(key, "multiplier") == 0)
- return value_to_double(ctx, &conf->scrollback.multiplier);
+ return value_to_float(ctx, &conf->scrollback.multiplier);
else {
LOG_CONTEXTUAL_ERR("not a valid option: %s", key);
@@ -1298,7 +1298,7 @@
else if (strcmp(key, "alpha") == 0) {
float alpha;
- if (!value_to_double(ctx, &alpha))
+ if (!value_to_float(ctx, &alpha))
return false;
if (alpha < 0. || alpha > 1.) {
@@ -2461,7 +2461,7 @@
}
else if (strcmp(key, "box-drawing-base-thickness") == 0)
- return value_to_double(ctx, &conf->tweak.box_drawing_base_thickness);
+ return value_to_float(ctx, &conf->tweak.box_drawing_base_thickness);
else if (strcmp(key, "box-drawing-solid-shades") == 0)
return value_to_bool(ctx, &conf->tweak.box_drawing_solid_shades);
@@ -2472,6 +2472,9 @@
else if (strcmp(key, "sixel") == 0)
return value_to_bool(ctx, &conf->tweak.sixel);
+ else if (strcmp(key, "bold-text-in-bright-amount") == 0)
+ return value_to_float(ctx, &conf->bold_in_bright.amount);
+
else {
LOG_CONTEXTUAL_ERR("not a valid option: %s", key);
return false;
@@ -2939,6 +2942,7 @@
.bold_in_bright = {
.enabled = false,
.palette_based = false,
+ .amount = 1.3,
},
.startup_mode = STARTUP_WINDOWED,
.fonts = {{0}},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/foot/config.h new/foot/config.h
--- old/foot/config.h 2023-07-21 08:57:03.000000000 +0200
+++ new/foot/config.h 2023-07-30 13:18:55.000000000 +0200
@@ -133,6 +133,7 @@
struct {
bool enabled;
bool palette_based;
+ float amount;
} bold_in_bright;
enum { STARTUP_WINDOWED, STARTUP_MAXIMIZED, STARTUP_FULLSCREEN } startup_mode;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/foot/csi.c new/foot/csi.c
--- old/foot/csi.c 2023-07-21 08:57:03.000000000 +0200
+++ new/foot/csi.c 2023-07-30 13:18:55.000000000 +0200
@@ -1208,8 +1208,8 @@
char reply[64];
size_t n = xsnprintf(
reply, sizeof(reply), "\033[4;%d;%dt",
- (int)round(height / term->scale),
- (int)(width / term->scale));
+ (int)roundf(height / term->scale),
+ (int)roundf((width / term->scale)));
term_to_slave(term, reply, n);
}
break;
@@ -1233,8 +1233,8 @@
char reply[64];
size_t n = xsnprintf(
reply, sizeof(reply), "\033[6;%d;%dt",
- (int)round(term->cell_height / term->scale),
- (int)round(term->cell_width / term->scale));
+ (int)roundf(term->cell_height / term->scale),
+ (int)roundf(term->cell_width / term->scale));
term_to_slave(term, reply, n);
break;
}
@@ -1252,8 +1252,8 @@
char reply[64];
size_t n = xsnprintf(
reply, sizeof(reply), "\033[9;%d;%dt",
- (int)round(it->item->dim.px_real.height / term->cell_height / term->scale),
- (int)round(it->item->dim.px_real.width / term->cell_width / term->scale));
+ (int)roundf(it->item->dim.px_real.height / term->cell_height / term->scale),
+ (int)roundf(it->item->dim.px_real.width / term->cell_width / term->scale));
term_to_slave(term, reply, n);
break;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/foot/doc/foot.ini.5.scd new/foot/doc/foot.ini.5.scd
--- old/foot/doc/foot.ini.5.scd 2023-07-21 08:57:03.000000000 +0200
+++ new/foot/doc/foot.ini.5.scd 2023-07-30 13:18:55.000000000 +0200
@@ -1337,7 +1337,13 @@
Default: _512_. Maximum allowed: _2048_ (2GB).
*sixel*
- Boolean. When enabled, foot will process sixel images. Default: _yes_
+ Boolean. When enabled, foot will process sixel images. Default:
+ _yes_
+
+*bold-text-in-bright-amount*
+ Amount by which bold fonts are brightened when
+ *bold-text-in-bright* is set to *yes* (the *palette-based* variant
+ is not affected by this option). Default: _1.3_.
# SEE ALSO
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/foot/hsl.c new/foot/hsl.c
--- old/foot/hsl.c 2023-07-21 08:57:03.000000000 +0200
+++ new/foot/hsl.c 2023-07-30 13:18:55.000000000 +0200
@@ -83,7 +83,7 @@
b += m;
return (
- (int)round(r * 255.) << 16 |
- (int)round(g * 255.) << 8 |
- (int)round(b * 255.) << 0);
+ (uint8_t)round(r * 255.) << 16 |
+ (uint8_t)round(g * 255.) << 8 |
+ (uint8_t)round(b * 255.) << 0);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/foot/meson.build new/foot/meson.build
--- old/foot/meson.build 2023-07-21 08:57:03.000000000 +0200
+++ new/foot/meson.build 2023-07-30 13:18:55.000000000 +0200
@@ -1,5 +1,5 @@
project('foot', 'c',
- version: '1.15.1',
+ version: '1.15.2',
license: 'MIT',
meson_version: '>=0.59.0',
default_options: [
@@ -352,11 +352,16 @@
install_subdir('themes', install_dir: join_paths(get_option('datadir'), 'foot'))
endif
+terminfo_base_name = get_option('terminfo-base-name')
+if terminfo_base_name == ''
+ terminfo_base_name = get_option('default-terminfo')
+endif
+
tic = find_program('tic', native: true, required: get_option('terminfo'))
if tic.found()
conf_data = configuration_data(
{
- 'default_terminfo': get_option('default-terminfo'),
+ 'default_terminfo': terminfo_base_name
}
)
@@ -367,9 +372,9 @@
)
custom_target(
'terminfo',
- output: get_option('default-terminfo')[0],
+ output: terminfo_base_name[0],
input: preprocessed,
- command: [tic, '-x', '-o', '@OUTDIR@', '-e', '@0@,@0@-direct'.format(get_option('default-terminfo')), '@INPUT@'],
+ command: [tic, '-x', '-o', '@OUTDIR@', '-e', '@0@,@0@-direct'.format(terminfo_base_name), '@INPUT@'],
install: true,
install_dir: terminfo_install_location
)
@@ -395,6 +400,7 @@
'utmp backend': utmp_backend,
'utmp helper default path': utmp_default_helper_path,
'Build terminfo': tic.found(),
+ 'Terminfo base name': terminfo_base_name,
'Terminfo install location': terminfo_install_location,
'Default TERM': get_option('default-terminfo'),
'Set TERMINFO': get_option('custom-terminfo-install-location') != '',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/foot/meson_options.txt new/foot/meson_options.txt
--- old/foot/meson_options.txt 2023-07-21 08:57:03.000000000 +0200
+++ new/foot/meson_options.txt 2023-07-30 13:18:55.000000000 +0200
@@ -15,7 +15,8 @@
option('terminfo', type: 'feature', value: 'enabled', description: 'Build and install foot\'s terminfo files.')
option('default-terminfo', type: 'string', value: 'foot',
description: 'Default value of the "term" option in foot.ini.')
-
+option('terminfo-base-name', type: 'string',
+ description: 'Base name of the generated terminfo files. Defaults to the value of the \'default-terminfo\' meson option')
option('custom-terminfo-install-location', type: 'string', value: '',
description: 'Path to foot\'s terminfo, relative to ${prefix}. If set, foot will set $TERMINFO to this value in the client process.')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/foot/render.c new/foot/render.c
--- old/foot/render.c 2023-07-21 08:57:03.000000000 +0200
+++ new/foot/render.c 2023-07-30 13:18:55.000000000 +0200
@@ -299,25 +299,16 @@
int hue, sat, lum;
rgb_to_hsl(color, &hue, &sat, &lum);
- return hsl_to_rgb(hue, sat, min(100, lum * 1.3));
-}
-
-static inline int
-font_baseline(const struct terminal *term)
-{
- const struct fcft_font *font = term->fonts[0];
- const int line_height = term->cell_height;
- const int font_height = font->ascent + font->descent;
- const int glyph_top_y = round((line_height - font_height) / 2.);
- return term->font_y_ofs + glyph_top_y + font->ascent;
+ lum = (int)roundf(lum * term->conf->bold_in_bright.amount);
+ return hsl_to_rgb(hue, sat, min(lum, 100));
}
static void
draw_unfocused_block(const struct terminal *term, pixman_image_t *pix,
const pixman_color_t *color, int x, int y, int cell_cols)
{
- const int scale = round(term->scale);
+ const int scale = (int)roundf(term->scale);
const int width = min(min(scale, term->cell_width), term->cell_height);
pixman_image_fill_rectangles(
@@ -335,7 +326,7 @@
const struct fcft_font *font,
const pixman_color_t *color, int x, int y)
{
- int baseline = y + font_baseline(term) - term->fonts[0]->ascent;
+ int baseline = y + term_font_baseline(term) - term->fonts[0]->ascent;
pixman_image_fill_rectangles(
PIXMAN_OP_SRC, pix, color,
1, &(pixman_rectangle16_t){
@@ -347,7 +338,7 @@
static int
underline_offset(const struct terminal *term, const struct fcft_font *font)
{
- return font_baseline(term) -
+ return term_font_baseline(term) -
(term->conf->use_custom_underline_offset
? -term_pt_or_px_as_pixels(term, &term->conf->underline_offset)
: font->underline.position);
@@ -401,7 +392,7 @@
pixman_image_fill_rectangles(
PIXMAN_OP_SRC, pix, color,
1, &(pixman_rectangle16_t){
- x, y + font_baseline(term) - font->strikeout.position,
+ x, y + term_font_baseline(term) - font->strikeout.position,
cols * term->cell_width, font->strikeout.thickness});
}
@@ -767,13 +758,13 @@
if (!(cell->attrs.blink && term->blink.state == BLINK_OFF)) {
pixman_image_composite32(
PIXMAN_OP_OVER, glyph->pix, NULL, pix, 0, 0, 0, 0,
- pen_x + letter_x_ofs + g_x, y + font_baseline(term) - g_y,
+ pen_x + letter_x_ofs + g_x, y + term_font_baseline(term) - g_y,
glyph->width, glyph->height);
}
} else {
pixman_image_composite32(
PIXMAN_OP_OVER, clr_pix, glyph->pix, pix, 0, 0, 0, 0,
- pen_x + letter_x_ofs + g_x, y + font_baseline(term) - g_y,
+ pen_x + letter_x_ofs + g_x, y + term_font_baseline(term) - g_y,
glyph->width, glyph->height);
/* Combining characters */
@@ -813,7 +804,7 @@
/* Some fonts use a negative offset, while others use a
* "normal" offset */
pen_x + x_ofs + g->x,
- y + font_baseline(term) - g->y,
+ y + term_font_baseline(term) - g->y,
g->width, g->height);
}
}
@@ -1817,33 +1808,49 @@
const bool borders_visible = wayl_win_csd_borders_visible(term->window);
const bool title_visible = wayl_win_csd_titlebar_visible(term->window);
- /* Only title bar is rendered in maximized mode */
+ const float scale = term->scale;
+
const int border_width = borders_visible
- ? term->conf->csd.border_width * term->scale : 0;
+ ? roundf(term->conf->csd.border_width * scale) : 0;
const int title_height = title_visible
- ? term->conf->csd.title_height * term->scale : 0;
+ ? roundf(term->conf->csd.title_height * scale) : 0;
const int button_width = title_visible
- ? term->conf->csd.button_width * term->scale : 0;
+ ? roundf(term->conf->csd.button_width * scale) : 0;
const int button_close_width = term->width >= 1 * button_width
? button_width : 0;
const int button_maximize_width =
term->width >= 2 * button_width && term->window->wm_capabilities.maximize
- ? button_width : 0;
+ ? button_width : 0;
const int button_minimize_width =
term->width >= 3 * button_width && term->window->wm_capabilities.minimize
- ? button_width : 0;
+ ? button_width : 0;
+
+ /*
+ * With fractional scaling, we must ensure the offset, when
+ * divided by the scale (in set_position()), and the scaled back
+ * (by the compositor), matches the actual pixel count made up by
+ * the titlebar and the border.
+ */
+ const int top_offset = roundf(
+ scale * (roundf(-title_height / scale) - roundf(border_width / scale)));
+
+ const int top_bottom_width = roundf(
+ scale * (roundf(term->width / scale) + 2 * roundf(border_width / scale)));
+
+ const int left_right_height = roundf(
+ scale * (roundf(title_height / scale) + roundf(term->height / scale)));
switch (surf_idx) {
- case CSD_SURF_TITLE: return (struct csd_data){ 0, -title_height, term->width, title_height};
- case CSD_SURF_LEFT: return (struct csd_data){-border_width, -title_height, border_width, title_height + term->height};
- case CSD_SURF_RIGHT: return (struct csd_data){ term->width, -title_height, border_width, title_height + term->height};
- case CSD_SURF_TOP: return (struct csd_data){-border_width, -title_height - border_width, term->width + 2 * border_width, border_width};
- case CSD_SURF_BOTTOM: return (struct csd_data){-border_width, term->height, term->width + 2 * border_width, border_width};
+ case CSD_SURF_TITLE: return (struct csd_data){ 0, -title_height, term->width, title_height};
+ case CSD_SURF_LEFT: return (struct csd_data){-border_width, -title_height, border_width, left_right_height};
+ case CSD_SURF_RIGHT: return (struct csd_data){ term->width, -title_height, border_width, left_right_height};
+ case CSD_SURF_TOP: return (struct csd_data){-border_width, top_offset, top_bottom_width, border_width};
+ case CSD_SURF_BOTTOM: return (struct csd_data){-border_width, term->height, top_bottom_width, border_width};
/* Positioned relative to CSD_SURF_TITLE */
case CSD_SURF_MINIMIZE: return (struct csd_data){term->width - 3 * button_width, 0, button_minimize_width, title_height};
@@ -1937,12 +1944,12 @@
if (pixman_image_get_format(glyph->pix) == PIXMAN_a8r8g8b8) {
pixman_image_composite32(
PIXMAN_OP_OVER, glyph->pix, NULL, buf->pix[0], 0, 0, 0, 0,
- x + x_ofs + glyph->x, y + term->font_y_ofs + font->ascent - glyph->y,
+ x + x_ofs + glyph->x, y + term->font_y_ofs + font->ascent /*term_font_baseline(term)*/ - glyph->y,
glyph->width, glyph->height);
} else {
pixman_image_composite32(
PIXMAN_OP_OVER, src, glyph->pix, buf->pix[0], 0, 0, 0, 0,
- x + x_ofs + glyph->x, y + term->font_y_ofs + font->ascent - glyph->y,
+ x + x_ofs + glyph->x, y + term->font_y_ofs + font->ascent /* term_font_baseline(term)*/ - glyph->y,
glyph->width, glyph->height);
}
@@ -2033,8 +2040,8 @@
*/
float scale = term->scale;
- int bwidth = round(term->conf->csd.border_width * scale);
- int vwidth = round(term->conf->csd.border_width_visible * scale); /* Visible size */
+ int bwidth = (int)roundf(term->conf->csd.border_width * scale);
+ int vwidth = (int)roundf(term->conf->csd.border_width_visible * scale); /* Visible size */
xassert(bwidth >= vwidth);
@@ -2379,6 +2386,7 @@
if (term->window->is_fullscreen)
return;
+ const float scale = term->scale;
struct csd_data infos[CSD_SURF_COUNT];
int widths[CSD_SURF_COUNT];
int heights[CSD_SURF_COUNT];
@@ -2406,8 +2414,7 @@
widths[i] = width;
heights[i] = height;
-
- wl_subsurface_set_position(sub, x / term->scale, y / term->scale);
+ wl_subsurface_set_position(sub, roundf(x / scale), roundf(y / scale));
}
struct buffer *bufs[CSD_SURF_COUNT];
@@ -2498,7 +2505,7 @@
char lineno_str[64];
snprintf(lineno_str, sizeof(lineno_str), "%d", rebased_view + 1);
mbstoc32(_text, lineno_str, ALEN(_text));
- cell_count = ceil(log10(term->grid->num_rows));
+ cell_count = (int)ceilf(log10f(term->grid->num_rows));
break;
}
@@ -2508,13 +2515,14 @@
break;
}
- const int scale = term->scale;
- const int margin = 3 * scale;
+ const float scale = term->scale;
+ const int margin = (int)roundf(3. * scale);
+
+ int width = margin + cell_count * term->cell_width + margin;
+ int height = margin + term->cell_height + margin;
- const int width =
- (2 * margin + cell_count * term->cell_width + scale - 1) / scale * scale;
- const int height =
- (2 * margin + term->cell_height + scale - 1) / scale * scale;
+ width = roundf(scale * ceilf(width / scale));
+ height = roundf(scale * ceilf(height / scale));
/* *Where* to render - parent relative coordinates */
int surf_top = 0;
@@ -2542,8 +2550,11 @@
}
}
- const int x = (term->width - margin - width) / scale * scale;
- const int y = (term->margins.top + surf_top) / scale * scale;
+ int x = term->width - margin - width;
+ int y = term->margins.top + surf_top;
+
+ x = roundf(scale * ceilf(x / scale));
+ y = roundf(scale * ceilf(y / scale));
if (y + height > term->height) {
wl_surface_attach(win->scrollback_indicator.surface.surf, NULL, 0, 0);
@@ -2555,7 +2566,7 @@
struct buffer *buf = shm_get_buffer(chain, width, height);
wl_subsurface_set_position(
- win->scrollback_indicator.sub, x / scale, y / scale);
+ win->scrollback_indicator.sub, roundf(x / scale), roundf(y / scale));
uint32_t fg = term->colors.table[0];
uint32_t bg = term->colors.table[8 + 4];
@@ -2584,21 +2595,23 @@
char32_t text[256];
mbstoc32(text, usecs_str, ALEN(text));
- const int scale = round(term->scale);
+ const float scale = term->scale;
const int cell_count = c32len(text);
- const int margin = 3 * scale;
- const int width =
- (2 * margin + cell_count * term->cell_width + scale - 1) / scale * scale;
- const int height =
- (2 * margin + term->cell_height + scale - 1) / scale * scale;
+ const int margin = (int)roundf(3. * scale);
+
+ int width = margin + cell_count * term->cell_width + margin;
+ int height = margin + term->cell_height + margin;
+
+ width = roundf(scale * ceilf(width / scale));
+ height = roundf(scale * ceilf(height / scale));
struct buffer_chain *chain = term->render.chains.render_timer;
struct buffer *buf = shm_get_buffer(chain, width, height);
wl_subsurface_set_position(
win->render_timer.sub,
- margin / term->scale,
- (term->margins.top + term->cell_height - margin) / term->scale);
+ roundf(margin / scale),
+ roundf((term->margins.top + term->cell_height - margin) / scale));
render_osd(
term,
@@ -3143,18 +3156,21 @@
const size_t total_cells = c32swidth(text, text_len);
const size_t wanted_visible_cells = max(20, total_cells);
- xassert(term->scale >= 1);
- const int rounded_scale = round(term->scale);
+ const float scale = term->scale;
+ xassert(scale >= 1.);
+ const size_t margin = (size_t)roundf(3 * scale);
+
+ size_t width = term->width - 2 * margin;
+ size_t height = min(
+ term->height - 2 * margin,
+ margin + 1 * term->cell_height + margin);
- const size_t margin = 3 * rounded_scale;
+ width = roundf(scale * ceilf((term->width - 2 * margin) / scale));
+ height = roundf(scale * ceilf(height / scale));
- const size_t width = term->width - 2 * margin;
- const size_t visible_width = min(
+ size_t visible_width = min(
term->width - 2 * margin,
- (2 * margin + wanted_visible_cells * term->cell_width + rounded_scale - 1) / rounded_scale * rounded_scale);
- const size_t height = min(
- term->height - 2 * margin,
- (2 * margin + 1 * term->cell_height + rounded_scale - 1) / rounded_scale * rounded_scale);
+ margin + wanted_visible_cells * term->cell_width + margin);
const size_t visible_cells = (visible_width - 2 * margin) / term->cell_width;
size_t glyph_offset = term->render.search_glyph_offset;
@@ -3364,7 +3380,7 @@
/* Glyph surface is a pre-rendered image (typically a color emoji...) */
pixman_image_composite32(
PIXMAN_OP_OVER, glyph->pix, NULL, buf->pix[0], 0, 0, 0, 0,
- x + x_ofs + glyph->x, y + font_baseline(term) - glyph->y,
+ x + x_ofs + glyph->x, y + term_font_baseline(term) - glyph->y,
glyph->width, glyph->height);
} else {
int combining_ofs = width == 0
@@ -3376,7 +3392,7 @@
pixman_image_composite32(
PIXMAN_OP_OVER, src, glyph->pix, buf->pix[0], 0, 0, 0, 0,
x + x_ofs + combining_ofs + glyph->x,
- y + font_baseline(term) - glyph->y,
+ y + term_font_baseline(term) - glyph->y,
glyph->width, glyph->height);
pixman_image_unref(src);
}
@@ -3401,10 +3417,10 @@
/* TODO: this is only necessary on a window resize */
wl_subsurface_set_position(
term->window->search.sub,
- margin / term->scale,
- max(0, (int32_t)term->height - height - margin) / term->scale);
+ roundf(margin / scale),
+ roundf(max(0, (int32_t)term->height - height - margin) / scale));
- wayl_surface_scale(term->window, &term->window->search.surface, buf, term->scale);
+ wayl_surface_scale(term->window, &term->window->search.surface, buf, scale);
wl_surface_attach(term->window->search.surface.surf, buf->wl_buf, 0, 0);
wl_surface_damage_buffer(term->window->search.surface.surf, 0, 0, width, height);
@@ -3431,9 +3447,9 @@
struct wl_window *win = term->window;
xassert(tll_length(win->urls) > 0);
- const int scale = round(term->scale);
- const int x_margin = 2 * scale;
- const int y_margin = 1 * scale;
+ const float scale = term->scale;
+ const int x_margin = (int)roundf(2 * scale);
+ const int y_margin = (int)roundf(1 * scale);
/* Calculate view start, counted from the *current* scrollback start */
const int scrollback_end
@@ -3603,10 +3619,11 @@
if (cols == 0)
continue;
- const int width =
- (2 * x_margin + cols * term->cell_width + scale - 1) / scale * scale;
- const int height =
- (2 * y_margin + term->cell_height + scale - 1) / scale * scale;
+ int width = x_margin + cols * term->cell_width + x_margin;
+ int height = y_margin + term->cell_height + y_margin;
+
+ width = roundf(scale * ceilf(width / scale));
+ height = roundf(scale * ceilf(height / scale));
info[render_count].url = &it->item;
info[render_count].text = xc32dup(label);
@@ -3642,8 +3659,8 @@
wl_subsurface_set_position(
sub_surf->sub,
- (term->margins.left + x) / term->scale,
- (term->margins.top + y) / term->scale);
+ roundf((term->margins.left + x) / scale),
+ roundf((term->margins.top + y) / scale));
render_osd(
term, sub_surf, term->fonts[0], bufs[i], label,
@@ -3916,22 +3933,9 @@
width += 2 * term->conf->pad_x * scale;
height += 2 * term->conf->pad_y * scale;
- /*
- * Ensure we can scale to logical size, and back to
- * pixels without truncating.
- */
- if (wayl_fractional_scaling(term->wl)) {
- xassert((int)round(scale) == (int)scale);
-
- int iscale = scale;
- if (width % iscale)
- width += iscale - width % iscale;
- if (height % iscale)
- height += iscale - height % iscale;
-
- xassert(width % iscale == 0);
- xassert(height % iscale == 0);
- }
+ /* Ensure width/height is a valid multiple of scale */
+ width = roundf(scale * roundf(width / scale));
+ height = roundf(scale * roundf(height / scale));
break;
}
}
@@ -3942,8 +3946,8 @@
const int min_rows = 1;
/* Minimum window size (must be divisible by the scaling factor)*/
- const int min_width = (min_cols * term->cell_width + scale - 1) / scale * scale;
- const int min_height = (min_rows * term->cell_height + scale - 1) / scale * scale;
+ const int min_width = roundf(scale * ceilf((min_cols * term->cell_width) / scale));
+ const int min_height = roundf(scale * ceilf((min_rows * term->cell_height) / scale));
width = max(width, min_width);
height = max(height, min_height);
@@ -4203,22 +4207,43 @@
const bool title_shown = wayl_win_csd_titlebar_visible(term->window);
const bool border_shown = wayl_win_csd_borders_visible(term->window);
- const int title_height =
- title_shown ? term->conf->csd.title_height : 0;
- const int border_width =
- border_shown ? term->conf->csd.border_width_visible : 0;
+ const int title = title_shown
+ ? roundf(term->conf->csd.title_height * scale)
+ : 0;
+ const int border = border_shown
+ ? roundf(term->conf->csd.border_width_visible * scale)
+ : 0;
+
+ /* Must use surface logical coordinates (same calculations as
+ in get_csd_data(), but with different inputs) */
+ const int toplevel_min_width = roundf(border / scale) +
+ roundf(min_width / scale) +
+ roundf(border / scale);
+
+ const int toplevel_min_height = roundf(border / scale) +
+ roundf(title / scale) +
+ roundf(min_height / scale) +
+ roundf(border / scale);
+
+ const int toplevel_width = roundf(border / scale) +
+ roundf(term->width / scale) +
+ roundf(border / scale);
+
+ const int toplevel_height = roundf(border / scale) +
+ roundf(title / scale) +
+ roundf(term->height / scale) +
+ roundf(border / scale);
+
+ const int x = roundf(-border / scale);
+ const int y = roundf(-title / scale) - roundf(border / scale);
xdg_toplevel_set_min_size(
term->window->xdg_toplevel,
- min_width / scale + 2 * border_width,
- min_height / scale + title_height + 2 * border_width);
+ toplevel_min_width, toplevel_min_height);
xdg_surface_set_window_geometry(
term->window->xdg_surface,
- -border_width,
- -title_height - border_width,
- term->width / term->scale + 2 * border_width,
- term->height / term->scale + title_height + 2 * border_width);
+ x, y, toplevel_width, toplevel_height);
}
tll_free(term->normal.scroll_damage);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/foot/selection.c new/foot/selection.c
--- old/foot/selection.c 2023-07-21 08:57:03.000000000 +0200
+++ new/foot/selection.c 2023-07-30 13:18:55.000000000 +0200
@@ -1662,7 +1662,7 @@
return;
}
- size_t len = strlen(selection);
+ size_t len = selection != NULL ? strlen(selection) : 0;
size_t async_idx = 0;
switch (async_write(fd, selection, len, &async_idx)) {
@@ -1701,7 +1701,6 @@
struct seat *seat = data;
const struct wl_clipboard *clipboard = &seat->clipboard;
- xassert(clipboard->text != NULL);
send_clipboard_or_primary(seat, fd, clipboard->text, "clipboard");
}
@@ -1756,7 +1755,6 @@
struct seat *seat = data;
const struct wl_primary *primary = &seat->primary;
- xassert(primary->text != NULL);
send_clipboard_or_primary(seat, fd, primary->text, "primary");
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/foot/terminal.c new/foot/terminal.c
--- old/foot/terminal.c 2023-07-21 08:57:03.000000000 +0200
+++ new/foot/terminal.c 2023-07-30 13:18:55.000000000 +0200
@@ -784,8 +784,8 @@
/* Use force, since cell-width/height may have changed */
render_resize_force(
term,
- round(term->width / term->scale),
- round(term->height / term->scale));
+ (int)roundf(term->width / term->scale),
+ (int)roundf(term->height / term->scale));
}
return true;
}
@@ -825,7 +825,7 @@
? tll_back(win->on_outputs)
: &tll_front(term->wl->monitors);
- if (wayl_fractional_scaling(term->wl))
+ if (term_fractional_scaling(term))
return mon->dpi.physical;
else
return mon->dpi.scaled;
@@ -880,12 +880,12 @@
term_pt_or_px_as_pixels(const struct terminal *term,
const struct pt_or_px *pt_or_px)
{
- double scale = !term->font_is_sized_by_dpi ? term->scale : 1.;
- double dpi = term->font_is_sized_by_dpi ? term->font_dpi : 96.;
+ float scale = !term->font_is_sized_by_dpi ? term->scale : 1.;
+ float dpi = term->font_is_sized_by_dpi ? term->font_dpi : 96.;
return pt_or_px->px == 0
- ? round(pt_or_px->pt * scale * dpi / 72)
- : pt_or_px->px * scale;
+ ? (int)roundf(pt_or_px->pt * scale * dpi / 72)
+ : (int)roundf(pt_or_px->px * scale);
}
struct font_load_data {
@@ -932,7 +932,7 @@
if (use_px_size)
snprintf(size, sizeof(size), ":pixelsize=%d",
- (int)round(term->font_sizes[i][j].px_size * scale));
+ (int)roundf(term->font_sizes[i][j].px_size * scale));
else
snprintf(size, sizeof(size), ":size=%.2f",
term->font_sizes[i][j].pt_size * scale);
@@ -2078,6 +2078,16 @@
}
bool
+term_fractional_scaling(const struct terminal *term)
+{
+#if defined(HAVE_FRACTIONAL_SCALE)
+ return term->wl->fractional_scale_manager != NULL && term->window->scale > 0.;
+#else
+ return false;
+#endif
+}
+
+bool
term_update_scale(struct terminal *term)
{
const struct wl_window *win = term->window;
@@ -2093,7 +2103,7 @@
* - if there aren’t any outputs available, use 1.0
*/
const float new_scale =
- (wayl_fractional_scaling(term->wl) && win->scale > 0.
+ (term_fractional_scaling(term)
? win->scale
: (tll_length(win->on_outputs) > 0
? tll_back(win->on_outputs)->scale
@@ -2166,6 +2176,17 @@
render_refresh(term);
}
+int
+term_font_baseline(const struct terminal *term)
+{
+ const struct fcft_font *font = term->fonts[0];
+ const int line_height = term->cell_height;
+ const int font_height = max(font->height, font->ascent + font->descent);
+ const int glyph_top_y = round((line_height - font_height) / 2.);
+
+ return term->font_y_ofs + glyph_top_y + font->ascent;
+}
+
void
term_damage_rows(struct terminal *term, int start, int end)
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/foot/terminal.h new/foot/terminal.h
--- old/foot/terminal.h 2023-07-21 08:57:03.000000000 +0200
+++ new/foot/terminal.h 2023-07-30 13:18:55.000000000 +0200
@@ -736,12 +736,14 @@
bool term_paste_data_to_slave(
struct terminal *term, const void *data, size_t len);
+bool term_fractional_scaling(const struct terminal *term);
bool term_update_scale(struct terminal *term);
bool term_font_size_increase(struct terminal *term);
bool term_font_size_decrease(struct terminal *term);
bool term_font_size_reset(struct terminal *term);
bool term_font_dpi_changed(struct terminal *term, float old_scale);
void term_font_subpixel_changed(struct terminal *term);
+int term_font_baseline(const struct terminal *term);
int term_pt_or_px_as_pixels(
const struct terminal *term, const struct pt_or_px *pt_or_px);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/foot/tests/test-config.c new/foot/tests/test-config.c
--- old/foot/tests/test-config.c 2023-07-21 08:57:03.000000000 +0200
+++ new/foot/tests/test-config.c 2023-07-30 13:18:55.000000000 +0200
@@ -265,7 +265,7 @@
}
static void
-test_double(struct context *ctx, bool (*parse_fun)(struct context *ctx),
+test_float(struct context *ctx, bool (*parse_fun)(struct context *ctx),
const char *key, const float *ptr)
{
ctx->key = key;
@@ -580,7 +580,7 @@
test_uint32(&ctx, &parse_section_scrollback, "lines",
&conf.scrollback.lines);
- test_double(&ctx, parse_section_scrollback, "multiplier", &conf.scrollback.multiplier);
+ test_float(&ctx, parse_section_scrollback, "multiplier", &conf.scrollback.multiplier);
test_enum(
&ctx, &parse_section_scrollback, "indicator-position",
@@ -1312,7 +1312,7 @@
RENDER_TIMER_BOTH},
(int *)&conf.tweak.render_timer);
- test_double(&ctx, &parse_section_tweak, "box-drawing-base-thickness",
+ test_float(&ctx, &parse_section_tweak, "box-drawing-base-thickness",
&conf.tweak.box_drawing_base_thickness);
test_boolean(&ctx, &parse_section_tweak, "box-drawing-solid-shades",
&conf.tweak.box_drawing_solid_shades);
@@ -1345,6 +1345,9 @@
test_boolean(&ctx, &parse_section_tweak, "font-monospace-warn",
&conf.tweak.font_monospace_warn);
+ test_float(&ctx, &parse_section_tweak, "bold-text-in-bright-amount",
+ &conf.bold_in_bright.amount);
+
#if 0 /* Must be equal to, or less than INT32_MAX */
test_uint32(&ctx, &parse_section_tweak, "max-shm-pool-size-mb",
&conf.tweak.max_shm_pool_size);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/foot/vt.c new/foot/vt.c
--- old/foot/vt.c 2023-07-21 08:57:03.000000000 +0200
+++ new/foot/vt.c 2023-07-30 13:18:55.000000000 +0200
@@ -913,6 +913,16 @@
{
// wc = ((utf8[0] & 0xf) << 12) | ((utf8[1] & 0x3f) << 6) | (utf8[2] & 0x3f)
term->vt.utf8 |= c & 0x3f;
+
+ const char32_t utf32 = term->vt.utf8;
+ if (unlikely(utf32 >= 0xd800 && utf32 <= 0xdfff)) {
+ /* Invalid sequence - invalid UTF-16 surrogate halves */
+ return;
+ }
+
+ /* Note: the E0 range contains overlong encodings. We don’t try to
+ detect, as they’ll still decode to valid UTF-32. */
+
action_utf8_print(term, term->vt.utf8);
}
@@ -942,6 +952,17 @@
{
// wc = ((utf8[0] & 7) << 18) | ((utf8[1] & 0x3f) << 12) | ((utf8[2] & 0x3f) << 6) | (utf8[3] & 0x3f);
term->vt.utf8 |= c & 0x3f;
+
+ const char32_t utf32 = term->vt.utf8;
+
+ if (unlikely(utf32 > 0x10FFFF)) {
+ /* Invalid UTF-8 */
+ return;
+ }
+
+ /* Note: the F0 range contains overlong encodings. We don’t try to
+ detect, as they’ll still decode to valid UTF-32. */
+
action_utf8_print(term, term->vt.utf8);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/foot/wayland.c new/foot/wayland.c
--- old/foot/wayland.c 2023-07-21 08:57:03.000000000 +0200
+++ new/foot/wayland.c 2023-07-30 13:18:55.000000000 +0200
@@ -57,7 +57,7 @@
char pixelsize[32];
snprintf(pixelsize, sizeof(pixelsize), "pixelsize=%u",
- (int)round(conf->csd.title_height * scale * 1 / 2));
+ (int)roundf(conf->csd.title_height * scale * 1 / 2));
LOG_DBG("loading CSD font \"%s:%s\" (old-scale=%.2f, scale=%.2f)",
patterns[0], pixelsize, old_scale, scale);
@@ -315,15 +315,17 @@
}
#if defined(HAVE_FRACTIONAL_SCALE)
- xassert(seat->pointer.surface.viewport == NULL);
- seat->pointer.surface.viewport = wp_viewporter_get_viewport(
- seat->wayl->viewporter, seat->pointer.surface.surf);
-
- if (seat->pointer.surface.viewport == NULL) {
- LOG_ERR("%s: failed to create pointer viewport", seat->name);
- wl_surface_destroy(seat->pointer.surface.surf);
- seat->pointer.surface.surf = NULL;
- return;
+ if (seat->wayl->viewporter != NULL) {
+ xassert(seat->pointer.surface.viewport == NULL);
+ seat->pointer.surface.viewport = wp_viewporter_get_viewport(
+ seat->wayl->viewporter, seat->pointer.surface.surf);
+
+ if (seat->pointer.surface.viewport == NULL) {
+ LOG_ERR("%s: failed to create pointer viewport", seat->name);
+ wl_surface_destroy(seat->pointer.surface.surf);
+ seat->pointer.surface.surf = NULL;
+ return;
+ }
}
#endif
@@ -351,8 +353,10 @@
wl_surface_destroy(seat->pointer.surface.surf);
#if defined(HAVE_FRACTIONAL_SCALE)
- wp_viewport_destroy(seat->pointer.surface.viewport);
- seat->pointer.surface.viewport = NULL;
+ if (seat->pointer.surface.viewport != NULL) {
+ wp_viewport_destroy(seat->pointer.surface.viewport);
+ seat->pointer.surface.viewport = NULL;
+ }
#endif
if (seat->pointer.theme != NULL)
@@ -416,7 +420,7 @@
* buffer dimensions may not have been updated (in which case
* render_size() normally shortcuts and returns early).
*/
- render_resize_force(term, round(logical_width), round(logical_height));
+ render_resize_force(term, (int)roundf(logical_width), (int)roundf(logical_height));
}
else if (scale_updated) {
@@ -425,7 +429,7 @@
* been updated, even though the window logical dimensions
* haven’t changed.
*/
- render_resize(term, round(logical_width), round(logical_height));
+ render_resize(term, (int)roundf(logical_width), (int)roundf(logical_height));
}
}
@@ -620,6 +624,8 @@
static void
xdg_output_handle_done(void *data, struct zxdg_output_v1 *xdg_output)
{
+ struct monitor *mon = data;
+ update_terms_on_monitor(mon);
}
static void
@@ -1526,7 +1532,7 @@
LOG_INFO(
"%s: %dx%d+%dx%d@%dHz %s %.2f\" scale=%d, DPI=%.2f/%.2f (physical/scaled)",
it->item.name, it->item.dim.px_real.width, it->item.dim.px_real.height,
- it->item.x, it->item.y, (int)round(it->item.refresh),
+ it->item.x, it->item.y, (int)roundf(it->item.refresh),
it->item.model != NULL ? it->item.model : it->item.description,
it->item.inch, it->item.scale,
it->item.dpi.physical, it->item.dpi.scaled);
@@ -1994,33 +2000,35 @@
wayl_flush(wayl);
}
-
-bool
-wayl_fractional_scaling(const struct wayland *wayl)
-{
-#if defined(HAVE_FRACTIONAL_SCALE)
- return wayl->fractional_scale_manager != NULL;
-#else
- return false;
-#endif
-}
-
-void
-wayl_surface_scale_explicit_width_height(
+static void
+surface_scale_explicit_width_height(
const struct wl_window *win, const struct wayl_surface *surf,
- int width, int height, float scale)
+ int width, int height, float scale, bool verify)
{
-
- if (wayl_fractional_scaling(win->term->wl) && win->scale > 0.) {
+ if (term_fractional_scaling(win->term)) {
#if defined(HAVE_FRACTIONAL_SCALE)
LOG_DBG("scaling by a factor of %.2f using fractional scaling "
"(width=%d, height=%d) ", scale, width, height);
+ if (verify) {
+ if ((int)roundf(scale * (int)roundf(width / scale)) != width) {
+ BUG("width=%d is not valid with scaling factor %.2f (%d != %d)",
+ width, scale,
+ (int)roundf(scale * (int)roundf(width / scale)),
+ width);
+ }
+
+ if ((int)roundf(scale * (int)roundf(height / scale)) != height) {
+ BUG("height=%d is not valid with scaling factor %.2f (%d != %d)",
+ height, scale,
+ (int)roundf(scale * (int)roundf(height / scale)),
+ height);
+ }
+ }
+
wl_surface_set_buffer_scale(surf->surf, 1);
wp_viewport_set_destination(
- surf->viewport,
- round((float)width / scale),
- round((float)height / scale));
+ surf->viewport, roundf(width / scale), roundf(height / scale));
#else
BUG("wayl_fraction_scaling() returned true, "
"but fractional scaling was not available at compile time");
@@ -2029,9 +2037,9 @@
LOG_DBG("scaling by a factor of %.2f using legacy mode "
"(width=%d, height=%d)", scale, width, height);
- xassert(scale == floor(scale));
+ xassert(scale == floorf(scale));
- const int iscale = (int)scale;
+ const int iscale = (int)floorf(scale);
xassert(width % iscale == 0);
xassert(height % iscale == 0);
@@ -2040,11 +2048,19 @@
}
void
+wayl_surface_scale_explicit_width_height(
+ const struct wl_window *win, const struct wayl_surface *surf,
+ int width, int height, float scale)
+{
+ surface_scale_explicit_width_height(win, surf, width, height, scale, false);
+}
+
+void
wayl_surface_scale(const struct wl_window *win, const struct wayl_surface *surf,
const struct buffer *buf, float scale)
{
- wayl_surface_scale_explicit_width_height(
- win, surf, buf->width, buf->height, scale);
+ surface_scale_explicit_width_height(
+ win, surf, buf->width, buf->height, scale, true);
}
void
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package iosevka-fonts for openSUSE:Factory checked in at 2023-07-30 20:58:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/iosevka-fonts (Old)
and /work/SRC/openSUSE:Factory/.iosevka-fonts.new.32662 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "iosevka-fonts"
Sun Jul 30 20:58:06 2023 rev:68 rq:1101396 version:25.1.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/iosevka-fonts/iosevka-fonts.changes 2023-07-18 21:54:43.954497016 +0200
+++ /work/SRC/openSUSE:Factory/.iosevka-fonts.new.32662/iosevka-fonts.changes 2023-07-30 20:58:11.863371366 +0200
@@ -1,0 +2,61 @@
+Sun Jul 23 15:48:28 UTC 2023 - Anton Shvetz <shvetz.anton(a)gmail.com>
+
+- Update to v25.1.1
+ * Changes of version 25.1.1
+ = Fix U+1D786 variant selection (#1861).
+ = Fix serifs in U+0257 and U+026F (#1862).
+
+-------------------------------------------------------------------
+Sat Jul 22 14:58:13 UTC 2023 - Anton Shvetz <shvetz.anton(a)gmail.com>
+
+- Update to v25.1.0
+ * Changes of version 25.1.0
+ = Add Characters:
+ ~ CYRILLIC CAPITAL LETTER ALEUT KA (U+051E) (#1839).
+ ~ CYRILLIC SMALL LETTER ALEUT KA (U+051F) (#1839).
+ ~ COMBINING DOUBLE PARENTHESES ABOVE (U+1ABC) (#1855).
+ ~ COMBINING LATIN SMALL LETTER INSULAR T (U+1ACE) (#1811).
+ ~ ORTHODOX CROSS (U+2626).
+ ~ CROSS OF LORRAINE (U+2628).
+ ~ LATIN CROSS (U+271D) (#1841).
+ ~ LONG LEFT RIGHT ARROW (U+27F7) .. LONG LEFT RIGHT DOUBLE
+ ARROW (U+27FA).
+ ~ LONG LEFTWARDS DOUBLE ARROW FROM BAR (U+27FD).
+ ~ LONG RIGHTWARDS DOUBLE ARROW FROM BAR (U+27FE).
+ ~ LEFTWARDS DOUBLE ARROW FROM BAR (U+2906).
+ ~ RIGHTWARDS DOUBLE ARROW FROM BAR (U+2907).
+ ~ LATIN SMALL LETTER V WITH CURL (U+2C74) (#1857).
+ ~ LATIN SMALL LETTER E WITH NOTCH (U+2C78) (#1857).
+ ~ LEFT DOUBLE PARENTHESIS (U+2E28) (#1855).
+ ~ RIGHT DOUBLE PARENTHESIS (U+2E29) (#1855).
+ ~ LATIN CAPITAL LETTER INSULAR T (U+A786) (#1811).
+ ~ LATIN SMALL LETTER INSULAR T (U+A787) (#1811).
+ ~ LATIN SMALL LETTER L WITH INVERTED LAZY S (U+AB37) (#1673).
+ ~ MODIFIER LETTER SMALL L WITH INVERTED LAZY S (U+AB5D)
+ (#1673).
+ ~ HEAVY LATIN CROSS (U+1F547).
+ ~ CELTIC CROSS (U+1F548).
+ = Refine shape of U+A666 and U+A667 (#1838).
+ = Make cv28 affect U+0297.
+ = Make cv33 affect U+0270, U+02AE, and U+02AF.
+ = Make cv42 affect serifs of U+027F.
+ = Make cv45 affect Turned M (U+019C, U+026F).
+ = Make cv46 affect serifs of V with Hook (U+01B2, U+028B).
+ = Make Cyrillic small ze have an inward serif under Italic Slab
+ by default to match c and s.
+ = Fix variant assignment of cv29 for ss05..ss07.
+ = Fix variant assignment of cv45 for ss01..ss10, ss13, ss15,
+ and ss18.
+ = Fix variant assignment of cv61 and cv62 for ss01..ss04, ss08,
+ and ss12.
+ = Improve variant assignment of cv46..cv50, cv66, and cv84 for
+ ss01..ss10, ss12..ss16, and ss18 under Italic Slab.
+ = Fix math sans-serif variant assignment for Greek Iota and Chi
+ (#1847).
+ = Fix Greek dialytika display in Specimen (#1849).
+ = Unify tail length of Eszet and long-s (#1856).
+ = Make Latin (Small Capital | Modifier Letter) Reversed N
+ (U+1D0E, U+1D3B) respond to cv14 (#1852).
+ = Fix detached shape of U+FB05 (#1858).
+
+-------------------------------------------------------------------
Old:
----
super-ttc-iosevka-25.0.1.zip
super-ttc-iosevka-aile-25.0.1.zip
super-ttc-iosevka-curly-25.0.1.zip
super-ttc-iosevka-curly-slab-25.0.1.zip
super-ttc-iosevka-etoile-25.0.1.zip
super-ttc-iosevka-slab-25.0.1.zip
super-ttc-iosevka-ss01-25.0.1.zip
super-ttc-iosevka-ss02-25.0.1.zip
super-ttc-iosevka-ss03-25.0.1.zip
super-ttc-iosevka-ss04-25.0.1.zip
super-ttc-iosevka-ss05-25.0.1.zip
super-ttc-iosevka-ss06-25.0.1.zip
super-ttc-iosevka-ss07-25.0.1.zip
super-ttc-iosevka-ss08-25.0.1.zip
super-ttc-iosevka-ss09-25.0.1.zip
super-ttc-iosevka-ss10-25.0.1.zip
super-ttc-iosevka-ss11-25.0.1.zip
super-ttc-iosevka-ss12-25.0.1.zip
super-ttc-iosevka-ss13-25.0.1.zip
super-ttc-iosevka-ss14-25.0.1.zip
super-ttc-iosevka-ss15-25.0.1.zip
super-ttc-iosevka-ss16-25.0.1.zip
super-ttc-iosevka-ss17-25.0.1.zip
super-ttc-iosevka-ss18-25.0.1.zip
New:
----
super-ttc-iosevka-25.1.1.zip
super-ttc-iosevka-aile-25.1.1.zip
super-ttc-iosevka-curly-25.1.1.zip
super-ttc-iosevka-curly-slab-25.1.1.zip
super-ttc-iosevka-etoile-25.1.1.zip
super-ttc-iosevka-slab-25.1.1.zip
super-ttc-iosevka-ss01-25.1.1.zip
super-ttc-iosevka-ss02-25.1.1.zip
super-ttc-iosevka-ss03-25.1.1.zip
super-ttc-iosevka-ss04-25.1.1.zip
super-ttc-iosevka-ss05-25.1.1.zip
super-ttc-iosevka-ss06-25.1.1.zip
super-ttc-iosevka-ss07-25.1.1.zip
super-ttc-iosevka-ss08-25.1.1.zip
super-ttc-iosevka-ss09-25.1.1.zip
super-ttc-iosevka-ss10-25.1.1.zip
super-ttc-iosevka-ss11-25.1.1.zip
super-ttc-iosevka-ss12-25.1.1.zip
super-ttc-iosevka-ss13-25.1.1.zip
super-ttc-iosevka-ss14-25.1.1.zip
super-ttc-iosevka-ss15-25.1.1.zip
super-ttc-iosevka-ss16-25.1.1.zip
super-ttc-iosevka-ss17-25.1.1.zip
super-ttc-iosevka-ss18-25.1.1.zip
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ iosevka-fonts.spec ++++++
--- /var/tmp/diff_new_pack.LclmDV/_old 2023-07-30 20:58:32.767495480 +0200
+++ /var/tmp/diff_new_pack.LclmDV/_new 2023-07-30 20:58:32.771495503 +0200
@@ -20,7 +20,7 @@
typeface family, designed for writing code, using in terminals, and\
preparing technical documents.
Name: iosevka-fonts
-Version: 25.0.1
+Version: 25.1.1
Release: 0
Summary: Slender typeface for source code
License: OFL-1.1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-jupyter-events for openSUSE:Factory checked in at 2023-07-30 20:58:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-jupyter-events (Old)
and /work/SRC/openSUSE:Factory/.python-jupyter-events.new.32662 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-jupyter-events"
Sun Jul 30 20:58:25 2023 rev:5 rq:1101394 version:0.6.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-jupyter-events/python-jupyter-events.changes 2023-07-13 17:19:23.305414667 +0200
+++ /work/SRC/openSUSE:Factory/.python-jupyter-events.new.32662/python-jupyter-events.changes 2023-07-30 20:58:33.255498377 +0200
@@ -1,0 +2,16 @@
+Sun Jul 30 15:30:25 UTC 2023 - Ben Greiner <code(a)bnavigator.de>
+
+- Add jupyter_events-pr80-jsonschema-referencing.patch
+ * gh#jupyter/jupyter_events#80
+ * Avoid test suite errors in consuming packages because of
+ jsonschema DeprecationWarning
+- Remove workaround for rpmlint parser crash
+
+-------------------------------------------------------------------
+Wed Jul 19 20:47:32 UTC 2023 - Ben Greiner <code(a)bnavigator.de>
+
+- Unpin jsonschema: nbformat has been fixed, the jupyter ecosystem
+ can work with jsonschema 4.18 now (asdf-format is still blocked
+ but not on the dependency chain for jupyter packages).
+
+-------------------------------------------------------------------
New:
----
jupyter_events-pr80-jsonschema-referencing.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-jupyter-events.spec ++++++
--- /var/tmp/diff_new_pack.RwXRIz/_old 2023-07-30 20:58:33.935502414 +0200
+++ /var/tmp/diff_new_pack.RwXRIz/_new 2023-07-30 20:58:33.939502438 +0200
@@ -28,7 +28,9 @@
License: BSD-3-Clause
URL: https://github.com/jupyter/jupyter_events
Source: https://files.pythonhosted.org/packages/source/j/jupyter_events/jupyter_eve…
-BuildRequires: %{python_module base >= 3.7}
+# PATCH-FIX-UPSTREAM jupyter_events-pr80-jsonschema-referencing.patch gh#jupyter/jupyter_events#80
+Patch0: jupyter_events-pr80-jsonschema-referencing.patch
+BuildRequires: %{python_module base >= 3.8}
BuildRequires: %{python_module hatchling >= 1.5}
BuildRequires: %{python_module pip}
BuildRequires: alts
@@ -36,22 +38,24 @@
BuildRequires: python-rpm-macros
Requires: alts
Requires: python-PyYAML >= 5.3
+Requires: python-jsonschema-format-nongpl >= 4.18
Requires: python-python-json-logger >= 2.0.4
+Requires: python-referencing
Requires: python-rfc3339-validator
Requires: python-rfc3986-validator >= 0.1.1
Requires: python-traitlets >= 5.3
-Requires: (python-jsonschema-format-nongpl >= 3.2.0 with python-jsonschema-format-nongpl < 4.18)
Provides: python-jupyter_events = %{version}-%{release}
BuildArch: noarch
# SECTION test requirements
BuildRequires: %{python_module rfc3339-validator}
BuildRequires: %{python_module PyYAML >= 5.3}
BuildRequires: %{python_module click}
-BuildRequires: %{python_module jsonschema-format-nongpl >= 3.2.0 with %python-jsonschema-format-nongpl < 4.18}
+BuildRequires: %{python_module jsonschema-format-nongpl >= 4.18}
BuildRequires: %{python_module pytest >= 7}
BuildRequires: %{python_module pytest-asyncio >= 0.19.0}
BuildRequires: %{python_module pytest-console-scripts}
BuildRequires: %{python_module python-json-logger >= 2.0.4}
+BuildRequires: %{python_module referencing}
BuildRequires: %{python_module rfc3986-validator >= 0.1.1}
BuildRequires: %{python_module rich}
BuildRequires: %{python_module traitlets >= 5.3}
@@ -67,8 +71,7 @@
%prep
%autosetup -p1 -n jupyter_events-%{version}
-# gh#pypa/hatch#801, gh#rpm-software-management/rpmlint#1043, gh#jupyter/jupyter_events#70
-sed -i -e 's/--color=yes//' -e '/jsonschema/ s/\[.*\]//' pyproject.toml
+sed -i -e 's/--color=yes//' pyproject.toml
%build
%pyproject_wheel
++++++ jupyter_events-pr80-jsonschema-referencing.patch ++++++
From d7c265b3362d68a4796f08f852745a3fd300d9ca Mon Sep 17 00:00:00 2001
From: Carlos Herrero <26092748+hbcarlos(a)users.noreply.github.com>
Date: Wed, 12 Jul 2023 17:58:15 +0200
Subject: [PATCH 01/15] Migrate RefResolver to referencing.Registry
---
jupyter_events/schema.py | 11 ++++++-----
jupyter_events/validators.py | 16 +++++++++++-----
pyproject.toml | 1 +
3 files changed, 18 insertions(+), 10 deletions(-)
Index: jupyter_events-0.6.3/jupyter_events/schema.py
===================================================================
--- jupyter_events-0.6.3.orig/jupyter_events/schema.py
+++ jupyter_events-0.6.3/jupyter_events/schema.py
@@ -3,7 +3,9 @@ import json
from pathlib import Path, PurePath
from typing import Optional, Type, Union
-from jsonschema import FormatChecker, RefResolver, validators
+from jsonschema import FormatChecker, validators
+from referencing import Registry
+from referencing.jsonschema import DRAFT7
try:
from jsonschema.protocols import Validator
@@ -55,8 +57,8 @@ class EventSchema:
any schema registered here follows the expected form
of Jupyter Events.
- resolver:
- RefResolver for nested JSON schema references.
+ registry:
+ Registry for nested JSON schema references.
"""
def __init__(
@@ -64,14 +66,18 @@ class EventSchema:
schema: SchemaType,
validator_class: Type[Validator] = validators.Draft7Validator, # type:ignore[assignment]
format_checker: FormatChecker = draft7_format_checker,
- resolver: Optional[RefResolver] = None,
+ registry: Optional[Registry] = None,
):
"""Initialize an event schema."""
_schema = self._load_schema(schema)
# Validate the schema against Jupyter Events metaschema.
validate_schema(_schema)
+
+ if registry is None:
+ registry = DRAFT7.create_resource(_schema) @ Registry()
+
# Create a validator for this schema
- self._validator = validator_class(_schema, resolver=resolver, format_checker=format_checker)
+ self._validator = validator_class(_schema, registry=registry, format_checker=format_checker) # type: ignore
self._schema = _schema
def __repr__(self):
Index: jupyter_events-0.6.3/jupyter_events/validators.py
===================================================================
--- jupyter_events-0.6.3.orig/jupyter_events/validators.py
+++ jupyter_events-0.6.3/jupyter_events/validators.py
@@ -2,7 +2,9 @@
import pathlib
import jsonschema
-from jsonschema import Draft7Validator, RefResolver, ValidationError
+from jsonschema import Draft7Validator, ValidationError
+from referencing import Registry
+from referencing.jsonschema import DRAFT7
draft7_format_checker = (
Draft7Validator.FORMAT_CHECKER
@@ -29,19 +31,21 @@ SCHEMA_STORE = {
EVENT_CORE_SCHEMA["$id"]: EVENT_CORE_SCHEMA,
}
-METASCHEMA_RESOLVER = RefResolver(
- base_uri=EVENT_METASCHEMA["$id"], referrer=EVENT_METASCHEMA, store=SCHEMA_STORE
-)
+resources = [
+ DRAFT7.create_resource(each)
+ for each in (EVENT_METASCHEMA, PROPERTY_METASCHEMA, EVENT_CORE_SCHEMA)
+]
+METASCHEMA_REGISTRY: Registry = resources @ Registry()
-JUPYTER_EVENTS_SCHEMA_VALIDATOR = Draft7Validator(
+JUPYTER_EVENTS_SCHEMA_VALIDATOR = Draft7Validator( # type: ignore
schema=EVENT_METASCHEMA,
- resolver=METASCHEMA_RESOLVER,
+ registry=METASCHEMA_REGISTRY,
format_checker=draft7_format_checker,
)
-JUPYTER_EVENTS_CORE_VALIDATOR = Draft7Validator(
+JUPYTER_EVENTS_CORE_VALIDATOR = Draft7Validator( # type: ignore
schema=EVENT_CORE_SCHEMA,
- resolver=METASCHEMA_RESOLVER,
+ registry=METASCHEMA_REGISTRY,
format_checker=draft7_format_checker,
)
Index: jupyter_events-0.6.3/pyproject.toml
===================================================================
--- jupyter_events-0.6.3.orig/pyproject.toml
+++ jupyter_events-0.6.3/pyproject.toml
@@ -6,7 +6,7 @@ build-backend = "hatchling.build"
name = "jupyter-events"
description = "Jupyter Event System library"
readme = "README.md"
-requires-python = ">=3.7"
+requires-python = ">=3.8"
authors = [
{ name = "Jupyter Development Team", email = "jupyter(a)googlegroups.com" },
]
@@ -23,7 +23,8 @@ classifiers = [
"Programming Language :: Python :: 3",
]
dependencies = [
- "jsonschema[format-nongpl,format_nongpl]>=3.2.0",
+ "referencing",
+ "jsonschema[format-nongpl,format_nongpl]>=4.18.0",
"python-json-logger>=2.0.4",
"pyyaml>=5.3",
"traitlets>=5.3",
Index: jupyter_events-0.6.3/.github/workflows/python-tests.yml
===================================================================
--- jupyter_events-0.6.3.orig/.github/workflows/python-tests.yml
+++ jupyter_events-0.6.3/.github/workflows/python-tests.yml
@@ -18,7 +18,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
- python-version: ["3.7", "3.11"]
+ python-version: ["3.8", "3.12"]
include:
- os: windows-latest
python-version: "3.9"
@@ -27,7 +27,7 @@ jobs:
- os: ubuntu-latest
python-version: "3.10"
- os: macos-latest
- python-version: "3.8"
+ python-version: "3.11"
steps:
- uses: actions/checkout@v3
- uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
Index: jupyter_events-0.6.3/tests/test_logger.py
===================================================================
--- jupyter_events-0.6.3.orig/tests/test_logger.py
+++ jupyter_events-0.6.3/tests/test_logger.py
@@ -1,6 +1,7 @@
import io
import json
import logging
+import sys
from datetime import datetime, timedelta
from unittest.mock import MagicMock
@@ -158,12 +159,15 @@ def test_emit():
assert "__timestamp__" in event_capsule
# Remove timestamp from capsule when checking equality, since it is gonna vary
del event_capsule["__timestamp__"]
- assert event_capsule == {
+ expected = {
"__schema__": "http://test/test",
"__schema_version__": 1,
"__metadata_version__": 1,
"something": "blah",
}
+ if sys.version_info >= (3, 12):
+ expected["taskName"] = None
+ assert event_capsule == expected
def test_register_event_schema(tmp_path):
@@ -320,24 +324,30 @@ def test_unique_logger_instances():
assert "__timestamp__" in event_capsule0
# Remove timestamp from capsule when checking equality, since it is gonna vary
del event_capsule0["__timestamp__"]
- assert event_capsule0 == {
+ expected = {
"__schema__": "http://test/test0",
"__schema_version__": 1,
"__metadata_version__": 1,
"something": "blah",
}
+ if sys.version_info >= (3, 12):
+ expected["taskName"] = None
+ assert event_capsule0 == expected
event_capsule1 = json.loads(output1.getvalue())
assert "__timestamp__" in event_capsule1
# Remove timestamp from capsule when checking equality, since it is gonna vary
del event_capsule1["__timestamp__"]
- assert event_capsule1 == {
+ expected = {
"__schema__": "http://test/test1",
"__schema_version__": 1,
"__metadata_version__": 1,
"something": "blah",
}
+ if sys.version_info >= (3, 12):
+ expected["taskName"] = None
+ assert event_capsule1 == expected
def test_register_duplicate_schemas():
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package gpxsee for openSUSE:Factory checked in at 2023-07-30 20:58:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gpxsee (Old)
and /work/SRC/openSUSE:Factory/.gpxsee.new.32662 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gpxsee"
Sun Jul 30 20:58:05 2023 rev:109 rq:1101387 version:13.5
Changes:
--------
--- /work/SRC/openSUSE:Factory/gpxsee/gpxsee.changes 2023-06-11 19:57:49.972083299 +0200
+++ /work/SRC/openSUSE:Factory/.gpxsee.new.32662/gpxsee.changes 2023-07-30 20:58:10.259361842 +0200
@@ -1,0 +2,8 @@
+Sun Jul 30 11:40:20 CEST 2023 - tumic(a)cbox.cz
+
+- Update to version 13.5
+ * Added graph pinch zooming.
+ * Display one-way street info in IMG maps.
+ * Use 512px tiles in Mapsforge maps rendering.
+
+-------------------------------------------------------------------
Old:
----
GPXSee-13.4.tar.gz
New:
----
GPXSee-13.5.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gpxsee.spec ++++++
--- /var/tmp/diff_new_pack.ShbpZk/_old 2023-07-30 20:58:11.183367328 +0200
+++ /var/tmp/diff_new_pack.ShbpZk/_new 2023-07-30 20:58:11.191367376 +0200
@@ -19,13 +19,13 @@
# See also http://en.opensuse.org/openSUSE:Specfile_guidelines
Name: gpxsee
-Version: 13.4
-Release: 1
+Version: 13.5
+Release: 2
Summary: GPS log file visualization and analysis tool
License: GPL-3.0-only
Group: Productivity/Graphics/Viewers
Url: http://www.gpxsee.org
-Source0: GPXSee-%{version}.tar.gz
+Source0: https://github.com/tumic0/GPXSee/archive/%{version}/GPXSee-%{version}.tar.gz
BuildRequires: gcc-c++
BuildRequires: make
++++++ GPXSee-13.4.tar.gz -> GPXSee-13.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-13.4/.appveyor.yml new/GPXSee-13.5/.appveyor.yml
--- old/GPXSee-13.4/.appveyor.yml 2023-06-10 08:11:18.000000000 +0200
+++ new/GPXSee-13.5/.appveyor.yml 2023-07-24 19:04:19.000000000 +0200
@@ -1,23 +1,23 @@
-version: 13.4.{build}
+version: 13.5.{build}
configuration:
- Release
image:
- - Visual Studio 2019
+ - Visual Studio 2022
environment:
NSISDIR: C:\Program Files (x86)\NSIS
OPENSSLDIR: C:\OpenSSL-v111-Win64\bin
matrix:
- QTDIR: C:\Qt\5.15\msvc2019_64
- - QTDIR: C:\Qt\6.4\msvc2019_64
+ - QTDIR: C:\Qt\6.5\msvc2019_64
NSISDEF: /DQT6
install:
- cmd: |-
set PATH=%QTDIR%\bin;%NSISDIR%;%PATH%
- call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat
+ call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat
build_script:
- cmd: |-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-13.4/.github/workflows/osx.yml new/GPXSee-13.5/.github/workflows/osx.yml
--- old/GPXSee-13.4/.github/workflows/osx.yml 2023-06-10 08:11:18.000000000 +0200
+++ new/GPXSee-13.5/.github/workflows/osx.yml 2023-07-24 19:04:19.000000000 +0200
@@ -39,12 +39,12 @@
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
- version: '6.4.3'
+ version: '6.5.1'
modules: qtpositioning qt5compat qtserialport
- name: Create localization
run: lrelease gpxsee.pro
- name: Configure build
- run: qmake gpxsee.pro
+ run: qmake gpxsee.pro QMAKE_APPLE_DEVICE_ARCHS="x86_64h arm64"
- name: Build project
run: make -j3
- name: Create DMG
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-13.4/gpxsee.pro new/GPXSee-13.5/gpxsee.pro
--- old/GPXSee-13.4/gpxsee.pro 2023-06-10 08:11:18.000000000 +0200
+++ new/GPXSee-13.5/gpxsee.pro 2023-07-24 19:04:19.000000000 +0200
@@ -3,7 +3,8 @@
} else {
TARGET = GPXSee
}
-VERSION = 13.4
+VERSION = 13.5
+
QT += core \
gui \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-13.4/gpxsee.qrc new/GPXSee-13.5/gpxsee.qrc
--- old/GPXSee-13.4/gpxsee.qrc 2023-06-10 08:11:18.000000000 +0200
+++ new/GPXSee-13.5/gpxsee.qrc 2023-07-24 19:04:19.000000000 +0200
@@ -55,6 +55,11 @@
<file alias="transform-move_32(a)2x.png">icons/GUI/transform-move_32(a)2x.png</file>
</qresource>
+ <!-- Common map stuff -->
+ <qresource prefix="/map">
+ <file alias="arrow.png">icons/map/arrow.png</file>
+ </qresource>
+
<!-- POIs (IMG & ENC style) -->
<qresource prefix="/POI">
<file alias="airfield-11.png">icons/map/POI/airfield-11.png</file>
Binary files old/GPXSee-13.4/icons/map/arrow.png and new/GPXSee-13.5/icons/map/arrow.png differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-13.4/pkg/windows/gpxsee64.nsi new/GPXSee-13.5/pkg/windows/gpxsee64.nsi
--- old/GPXSee-13.4/pkg/windows/gpxsee64.nsi 2023-06-10 08:11:18.000000000 +0200
+++ new/GPXSee-13.5/pkg/windows/gpxsee64.nsi 2023-07-24 19:04:19.000000000 +0200
@@ -37,7 +37,7 @@
; The name of the installer
Name "GPXSee"
; Program version
-!define VERSION "13.4"
+!define VERSION "13.5"
; The file to write
OutFile "GPXSee-${VERSION}_x64.exe"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-13.4/src/GUI/graphview.cpp new/GPXSee-13.5/src/GUI/graphview.cpp
--- old/GPXSee-13.4/src/GUI/graphview.cpp 2023-06-10 08:11:18.000000000 +0200
+++ new/GPXSee-13.5/src/GUI/graphview.cpp 2023-07-24 19:04:19.000000000 +0200
@@ -2,6 +2,7 @@
#include <QGraphicsScene>
#include <QEvent>
#include <QMouseEvent>
+#include <QGestureEvent>
#include <QScrollBar>
#include <QGraphicsSimpleTextItem>
#include <QPalette>
@@ -37,6 +38,8 @@
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
setBackgroundBrush(QBrush(palette().brush(QPalette::Base)));
+ viewport()->setAttribute(Qt::WA_AcceptTouchEvents);
+ grabGesture(Qt::PinchGesture);
_xAxis = new AxisItem(AxisItem::X);
_xAxis->setZValue(1.0);
@@ -381,6 +384,27 @@
QGraphicsView::wheelEvent(e);
}
+void GraphView::pinchGesture(QPinchGesture *gesture)
+{
+ QPinchGesture::ChangeFlags changeFlags = gesture->changeFlags();
+
+ if (changeFlags & QPinchGesture::ScaleFactorChanged) {
+ QPointF pos = mapToScene(gesture->centerPoint().toPoint());
+ QRectF gr(_grid->boundingRect());
+ QPointF r(pos.x() / gr.width(), pos.y() / gr.height());
+
+ _zoom = qMax(_zoom * gesture->scaleFactor(), 1.0);
+ redraw();
+
+ QRectF ngr(_grid->boundingRect());
+ QPointF npos(mapFromScene(QPointF(r.x() * ngr.width(),
+ r.y() * ngr.height())));
+ QScrollBar *sb = horizontalScrollBar();
+ sb->setSliderPosition(sb->sliderPosition() + npos.x()
+ - gesture->centerPoint().x());
+ }
+}
+
void GraphView::paintEvent(QPaintEvent *e)
{
QRectF viewRect(mapToScene(rect()).boundingRect());
@@ -577,3 +601,19 @@
QGraphicsView::changeEvent(e);
}
+
+bool GraphView::event(QEvent *event)
+{
+ if (event->type() == QEvent::Gesture)
+ return gestureEvent(static_cast<QGestureEvent*>(event));
+
+ return QGraphicsView::event(event);
+}
+
+bool GraphView::gestureEvent(QGestureEvent *event)
+{
+ if (QGesture *pinch = event->gesture(Qt::PinchGesture))
+ pinchGesture(static_cast<QPinchGesture *>(pinch));
+
+ return true;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-13.4/src/GUI/graphview.h new/GPXSee-13.5/src/GUI/graphview.h
--- old/GPXSee-13.4/src/GUI/graphview.h 2023-06-10 08:11:18.000000000 +0200
+++ new/GPXSee-13.5/src/GUI/graphview.h 2023-07-24 19:04:19.000000000 +0200
@@ -18,6 +18,8 @@
class GridItem;
class QGraphicsSimpleTextItem;
class GraphicsScene;
+class QGestureEvent;
+class QPinchGesture;
class GraphView : public QGraphicsView
{
@@ -59,6 +61,7 @@
void wheelEvent(QWheelEvent *e);
void changeEvent(QEvent *e);
void paintEvent(QPaintEvent *e);
+ bool event(QEvent *event);
const QString &yLabel() const {return _yLabel;}
const QString &yUnits() const {return _yUnits;}
@@ -94,6 +97,8 @@
void removeItem(QGraphicsItem *item);
void addItem(QGraphicsItem *item);
bool singleGraph() const;
+ bool gestureEvent(QGestureEvent *event);
+ void pinchGesture(QPinchGesture *gesture);
GraphicsScene *_scene;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-13.4/src/map/IMG/mapdata.h new/GPXSee-13.5/src/map/IMG/mapdata.h
--- old/GPXSee-13.4/src/map/IMG/mapdata.h 2023-06-10 08:11:18.000000000 +0200
+++ new/GPXSee-13.5/src/map/IMG/mapdata.h 2023-07-24 19:04:19.000000000 +0200
@@ -25,6 +25,8 @@
{
public:
struct Poly {
+ Poly() : oneway(false) {}
+
/* QPointF insted of Coordinates for performance reasons (no need to
duplicate all the vectors for drawing). Note, that we do not want to
ll2xy() the points in the MapData class as this can not be done in
@@ -34,6 +36,7 @@
Raster raster;
quint32 type;
RectC boundingRect;
+ bool oneway;
bool operator<(const Poly &other) const
{return type > other.type;}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-13.4/src/map/IMG/netfile.cpp new/GPXSee-13.5/src/map/IMG/netfile.cpp
--- old/GPXSee-13.4/src/map/IMG/netfile.cpp 2023-06-10 08:11:18.000000000 +0200
+++ new/GPXSee-13.5/src/map/IMG/netfile.cpp 2023-07-24 19:04:19.000000000 +0200
@@ -479,6 +479,8 @@
if (lbl)
linkLabel(hdl, linkOffset, lbl, lblHdl, poly.label);
+ if ((linkInfo.flags >> 3) & 1)
+ poly.oneway = true;
lines->append(poly);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-13.4/src/map/IMG/rastertile.cpp new/GPXSee-13.5/src/map/IMG/rastertile.cpp
--- old/GPXSee-13.4/src/map/IMG/rastertile.cpp 2023-06-10 08:11:18.000000000 +0200
+++ new/GPXSee-13.5/src/map/IMG/rastertile.cpp 2023-07-24 19:04:19.000000000 +0200
@@ -25,6 +25,12 @@
static const QColor shieldBgColor2("#379947");
static const QColor shieldBgColor3("#4a7fc1");
+static const QImage *arrow()
+{
+ static QImage img(":/map/arrow.png");
+ return &img;
+}
+
static QFont pixelSizeFont(int pixelSize)
{
QFont f;
@@ -327,14 +333,25 @@
const QFont *fnt = font(style.textFontSize(), Style::Small);
const QColor *color = style.textColor().isValid()
? &style.textColor() : 0;
+ const QColor *hColor = Style::isContourLine(poly.type) ? 0 : &haloColor;
+ const QImage *img = poly.oneway ? arrow() : 0;
TextPathItem *item = new TextPathItem(poly.points,
- &poly.label.text(), _rect, fnt, color, Style::isContourLine(poly.type)
- ? 0 : &haloColor);
+ &poly.label.text(), _rect, fnt, color, hColor, img);
if (item->isValid() && !item->collides(textItems))
textItems.append(item);
- else
+ else {
delete item;
+
+ if (img) {
+ TextPathItem *item = new TextPathItem(poly.points, 0, _rect, 0,
+ 0, 0, img);
+ if (item->isValid() && !item->collides(textItems))
+ textItems.append(item);
+ else
+ delete item;
+ }
+ }
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-13.4/src/map/IMG/rgnfile.cpp new/GPXSee-13.5/src/map/IMG/rgnfile.cpp
--- old/GPXSee-13.4/src/map/IMG/rgnfile.cpp 2023-06-10 08:11:18.000000000 +0200
+++ new/GPXSee-13.5/src/map/IMG/rgnfile.cpp 2023-07-24 19:04:19.000000000 +0200
@@ -292,6 +292,8 @@
poly.type = (segmentType == Polygon)
? ((quint32)(type & 0x7F)) << 8 : ((quint32)(type & 0x3F)) << 8;
+ if (segmentType == Line && type & 0x40)
+ poly.oneway = true;
QPoint pos(subdiv->lon() + LS(lon, 24-subdiv->bits()),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-13.4/src/map/mapsforge/rastertile.cpp new/GPXSee-13.5/src/map/mapsforge/rastertile.cpp
--- old/GPXSee-13.4/src/map/mapsforge/rastertile.cpp 2023-06-10 08:11:18.000000000 +0200
+++ new/GPXSee-13.5/src/map/mapsforge/rastertile.cpp 2023-07-24 19:04:19.000000000 +0200
@@ -1,7 +1,6 @@
#include <cmath>
#include <QPainter>
#include <QCache>
-#include "common/programpaths.h"
#include "map/rectd.h"
#include "rastertile.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-13.4/src/map/mapsforgemap.cpp new/GPXSee-13.5/src/map/mapsforgemap.cpp
--- old/GPXSee-13.4/src/map/mapsforgemap.cpp 2023-06-10 08:11:18.000000000 +0200
+++ new/GPXSee-13.5/src/map/mapsforgemap.cpp 2023-07-24 19:04:19.000000000 +0200
@@ -167,18 +167,19 @@
void MapsforgeMap::draw(QPainter *painter, const QRectF &rect, Flags flags)
{
- QPointF tl(floor(rect.left() / _data.tileSize()) * _data.tileSize(),
- floor(rect.top() / _data.tileSize()) * _data.tileSize());
+ int tileSize = (_data.tileSize() < 384)
+ ? _data.tileSize() << 1 : _data.tileSize();
+ QPointF tl(floor(rect.left() / tileSize) * tileSize,
+ floor(rect.top() / tileSize) * tileSize);
QSizeF s(rect.right() - tl.x(), rect.bottom() - tl.y());
- int width = ceil(s.width() / _data.tileSize());
- int height = ceil(s.height() / _data.tileSize());
+ int width = ceil(s.width() / tileSize);
+ int height = ceil(s.height() / tileSize);
QList<RasterTile> tiles;
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++) {
- QPoint ttl(tl.x() + i * _data.tileSize(), tl.y() + j
- * _data.tileSize());
+ QPoint ttl(tl.x() + i * tileSize, tl.y() + j * tileSize);
if (isRunning(_zoom, ttl))
continue;
@@ -187,8 +188,7 @@
painter->drawPixmap(ttl, pm);
else {
tiles.append(RasterTile(_projection, _transform, &_style, &_data,
- _zoom, QRect(ttl, QSize(_data.tileSize(), _data.tileSize())),
- _tileRatio));
+ _zoom, QRect(ttl, QSize(tileSize, tileSize)), _tileRatio));
}
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-13.4/src/map/onlinemap.cpp new/GPXSee-13.5/src/map/onlinemap.cpp
--- old/GPXSee-13.4/src/map/onlinemap.cpp 2023-06-10 08:11:18.000000000 +0200
+++ new/GPXSee-13.5/src/map/onlinemap.cpp 2023-07-24 19:04:19.000000000 +0200
@@ -18,9 +18,8 @@
{
_tileLoader = new TileLoader(QDir(ProgramPaths::tilesDir()).filePath(_name),
this);
- _tileLoader->setUrl(url);
+ _tileLoader->setUrl(url, quadTiles ? TileLoader::QuadTiles : TileLoader::XYZ);
_tileLoader->setHeaders(headers);
- _tileLoader->setQuadTiles(quadTiles);
connect(_tileLoader, &TileLoader::finished, this, &OnlineMap::tilesLoaded);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-13.4/src/map/tileloader.cpp new/GPXSee-13.5/src/map/tileloader.cpp
--- old/GPXSee-13.4/src/map/tileloader.cpp 2023-06-10 08:11:18.000000000 +0200
+++ new/GPXSee-13.5/src/map/tileloader.cpp 2023-07-24 19:04:19.000000000 +0200
@@ -52,7 +52,7 @@
}
TileLoader::TileLoader(const QString &dir, QObject *parent)
- : QObject(parent), _dir(dir), _scaledSize(0), _quadTiles(false)
+ : QObject(parent), _urlType(XYZ), _dir(dir), _scaledSize(0)
{
if (!QDir().mkpath(_dir))
qWarning("%s: %s", qPrintable(_dir), "Error creating tiles directory");
@@ -176,19 +176,21 @@
{
QString url(_url);
- if (!tile.bbox().isNull()) {
- QString bbox = QString("%1,%2,%3,%4").arg(
- QString::number(tile.bbox().left(), 'f', 6),
- QString::number(tile.bbox().bottom(), 'f', 6),
- QString::number(tile.bbox().right(), 'f', 6),
- QString::number(tile.bbox().top(), 'f', 6));
- url.replace("$bbox", bbox);
- } else if (_quadTiles) {
- url.replace("$quadkey", quadKey(tile.xy(), tile.zoom().toInt()));
- } else {
- url.replace("$z", tile.zoom().toString());
- url.replace("$x", QString::number(tile.xy().x()));
- url.replace("$y", QString::number(tile.xy().y()));
+ switch (_urlType) {
+ case BoundingBox:
+ url.replace("$bbox", QString("%1,%2,%3,%4").arg(
+ QString::number(tile.bbox().left(), 'f', 6),
+ QString::number(tile.bbox().bottom(), 'f', 6),
+ QString::number(tile.bbox().right(), 'f', 6),
+ QString::number(tile.bbox().top(), 'f', 6)));
+ break;
+ case QuadTiles:
+ url.replace("$quadkey", quadKey(tile.xy(), tile.zoom().toInt()));
+ break;
+ default:
+ url.replace("$z", tile.zoom().toString());
+ url.replace("$x", QString::number(tile.xy().x()));
+ url.replace("$y", QString::number(tile.xy().y()));
}
return QUrl(url);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-13.4/src/map/tileloader.h new/GPXSee-13.5/src/map/tileloader.h
--- old/GPXSee-13.4/src/map/tileloader.h 2023-06-10 08:11:18.000000000 +0200
+++ new/GPXSee-13.5/src/map/tileloader.h 2023-07-24 19:04:19.000000000 +0200
@@ -11,12 +11,17 @@
Q_OBJECT
public:
+ enum UrlType {
+ XYZ,
+ QuadTiles,
+ BoundingBox
+ };
+
TileLoader(const QString &dir, QObject *parent = 0);
- void setUrl(const QString &url) {_url = url;}
+ void setUrl(const QString &url, UrlType type) {_url = url; _urlType = type;}
void setHeaders(const QList<HTTPHeader> &headers) {_headers = headers;}
void setScaledSize(int size);
- void setQuadTiles(bool quadTiles) {_quadTiles = quadTiles;}
void loadTilesAsync(QVector<FetchTile> &list);
void loadTilesSync(QVector<FetchTile> &list);
@@ -31,10 +36,10 @@
Downloader *_downloader;
QString _url;
+ UrlType _urlType;
QString _dir;
QList<HTTPHeader> _headers;
int _scaledSize;
- bool _quadTiles;
};
#endif // TILELOADER_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-13.4/src/map/wmsmap.cpp new/GPXSee-13.5/src/map/wmsmap.cpp
--- old/GPXSee-13.4/src/map/wmsmap.cpp 2023-06-10 08:11:18.000000000 +0200
+++ new/GPXSee-13.5/src/map/wmsmap.cpp 2023-07-24 19:04:19.000000000 +0200
@@ -85,7 +85,7 @@
void WMSMap::init()
{
- _tileLoader->setUrl(tileUrl());
+ _tileLoader->setUrl(tileUrl(), TileLoader::BoundingBox);
_bounds = RectD(_wms->bbox(), _wms->projection());
computeZooms();
updateTransform();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GPXSee-13.4/src/map/wmtsmap.cpp new/GPXSee-13.5/src/map/wmtsmap.cpp
--- old/GPXSee-13.4/src/map/wmtsmap.cpp 2023-06-10 08:11:18.000000000 +0200
+++ new/GPXSee-13.5/src/map/wmtsmap.cpp 2023-07-24 19:04:19.000000000 +0200
@@ -31,7 +31,7 @@
void WMTSMap::init()
{
- _tileLoader->setUrl(_wmts->tileUrl());
+ _tileLoader->setUrl(_wmts->tileUrl(), TileLoader::XYZ);
_bounds = RectD(_wmts->bbox(), _wmts->projection());
updateTransform();
}
++++++ PKGBUILD ++++++
--- /var/tmp/diff_new_pack.ShbpZk/_old 2023-07-30 20:58:11.635370012 +0200
+++ /var/tmp/diff_new_pack.ShbpZk/_new 2023-07-30 20:58:11.639370036 +0200
@@ -1,5 +1,5 @@
pkgname=gpxsee
-pkgver=13.4
+pkgver=13.5
pkgrel=1
pkgdesc='GPS log files visualizing and analyzing tool'
arch=('i686' 'x86_64')
++++++ debian.changelog ++++++
--- /var/tmp/diff_new_pack.ShbpZk/_old 2023-07-30 20:58:11.659370154 +0200
+++ /var/tmp/diff_new_pack.ShbpZk/_new 2023-07-30 20:58:11.663370178 +0200
@@ -1,3 +1,11 @@
+gpxsee (13.5) stable; urgency=low
+
+ * Added graph pinch zooming.
+ * Display one-way street info in IMG maps.
+ * Use 512px tiles in Mapsforge maps rendering.
+
+ -- Martin Tuma <tumic(a)cbox.cz> Sun, 30 Jul 2023 11:45:38 +0200
+
gpxsee (13.4) stable; urgency=low
* Extended Mapsforge render themes support.
++++++ gpxsee.dsc ++++++
--- /var/tmp/diff_new_pack.ShbpZk/_old 2023-07-30 20:58:11.711370463 +0200
+++ /var/tmp/diff_new_pack.ShbpZk/_new 2023-07-30 20:58:11.715370487 +0200
@@ -1,10 +1,10 @@
Format: 1.0
Source: gpxsee
-Version: 13.4-1
+Version: 13.5-2
Binary: gpxsee
Maintainer: Martin Tuma <tumic(a)cbox.cz>
Architecture: any
Build-Depends: debhelper (>= 9), qtbase5-dev, qtbase5-private-dev, qtbase5-dev-tools, qt5-qmake, qttools5-dev-tools, libqt5opengl5-dev, qtpositioning5-dev, libqt5svg5-dev, libqt5serialport5-dev
Files:
- 00000000000000000000000000000000 0 GPXSee-13.4.tar.gz
+ 00000000000000000000000000000000 0 GPXSee-13.5.tar.gz
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package openttd for openSUSE:Factory checked in at 2023-07-30 20:58:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openttd (Old)
and /work/SRC/openSUSE:Factory/.openttd.new.32662 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openttd"
Sun Jul 30 20:58:03 2023 rev:54 rq:1101379 version:13.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/openttd/openttd.changes 2023-06-12 15:28:16.407698762 +0200
+++ /work/SRC/openSUSE:Factory/.openttd.new.32662/openttd.changes 2023-07-30 20:58:09.159355311 +0200
@@ -1,0 +2,10 @@
+Sun Jul 30 09:50:06 UTC 2023 - Jan Baier <jbaier(a)suse.com>
+
+- update to 13.4
+ - Fix: Setting tree lines drawn incorrectly for RTL languages (#11070)
+ - Fix #11043: Don't choose toolbar dropdown option if focus is lost (#11044)
+ - Fix #10917: Pay loan interest before generating statistics (#11040)
+ - Fix #11016: Use after free in network invalid packet error path (#11022)
+ - Fix #10987: Double-close of dropdown stopped land-info tool working as default (#11000)
+
+-------------------------------------------------------------------
Old:
----
openttd-13.3-source.tar.xz
New:
----
openttd-13.4-source.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openttd.spec ++++++
--- /var/tmp/diff_new_pack.13PM2Q/_old 2023-07-30 20:58:09.939359942 +0200
+++ /var/tmp/diff_new_pack.13PM2Q/_new 2023-07-30 20:58:09.947359990 +0200
@@ -19,7 +19,7 @@
%define about OpenTTD is a reimplementation of the Microprose game "Transport Tycoon Deluxe" with lots of new features and enhancements. To play the game, you need either the original proprietary data set from the game, or install the recommend subpackages OpenGFX, OpenSFX and OpenMSX for an alternate, free set of graphics, sounds and music, respectively.
Name: openttd
-Version: 13.3
+Version: 13.4
Release: 0
Summary: A clone of Chris Sawyer's Transport Tycoon Deluxe
License: GPL-2.0-only
++++++ openttd-13.3-source.tar.xz -> openttd-13.4-source.tar.xz ++++++
/work/SRC/openSUSE:Factory/openttd/openttd-13.3-source.tar.xz /work/SRC/openSUSE:Factory/.openttd.new.32662/openttd-13.4-source.tar.xz differ: char 25, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-openapi-spec-validator for openSUSE:Factory checked in at 2023-07-30 20:58:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-openapi-spec-validator (Old)
and /work/SRC/openSUSE:Factory/.python-openapi-spec-validator.new.32662 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-openapi-spec-validator"
Sun Jul 30 20:58:02 2023 rev:14 rq:1101375 version:0.6.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-openapi-spec-validator/python-openapi-spec-validator.changes 2023-07-25 11:53:29.350290673 +0200
+++ /work/SRC/openSUSE:Factory/.python-openapi-spec-validator.new.32662/python-openapi-spec-validator.changes 2023-07-30 20:58:08.259349967 +0200
@@ -1,0 +2,5 @@
+Sat Jul 29 21:54:21 UTC 2023 - Ben Greiner <code(a)bnavigator.de>
+
+- Update requirements
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-openapi-spec-validator.spec ++++++
--- /var/tmp/diff_new_pack.kuW03c/_old 2023-07-30 20:58:08.875353625 +0200
+++ /var/tmp/diff_new_pack.kuW03c/_new 2023-07-30 20:58:08.879353649 +0200
@@ -30,11 +30,10 @@
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Provides: python-openapi_spec_validator
-Requires: python-importlib-resources
-Requires: python-jsonschema >= 4.18
-Requires: python-jsonschema-spec >= 0.2.3
-Requires: python-lazy-object-proxy >= 1.7.1
-Requires: python-openapi-schema-validator >= 0.6.0
+Requires: (python-jsonschema >= 4.18 with python-jsonschema < 5)
+Requires: (python-jsonschema-spec >= 0.2.3 with python-jsonschema-spec < 0.3)
+Requires: (python-lazy-object-proxy >= 1.7.1 with python-lazy-object-proxy < 2)
+Requires: (python-openapi-schema-validator >= 0.6.0 with python-openapi-schema-validator < 0.7)
%if %{python_version_nodots} < 39
Requires: python-importlib-resources >= 5.8.0
%endif
@@ -43,10 +42,10 @@
BuildArch: noarch
# SECTION test requirements
BuildRequires: %{python_module importlib-resources >= 5.8.0 if %python-base < 3.9}
-BuildRequires: %{python_module jsonschema >= 4.18}
-BuildRequires: %{python_module jsonschema-spec >= 0.2.3}
-BuildRequires: %{python_module lazy-object-proxy >= 1.7.1}
-BuildRequires: %{python_module openapi-schema-validator >= 0.4.2}
+BuildRequires: %{python_module jsonschema >= 4.18 with %python-jsonschema < 5}
+BuildRequires: %{python_module jsonschema-spec >= 0.2.3 with %python-jsonschema-spec < 0.3}
+BuildRequires: %{python_module lazy-object-proxy >= 1.7.1 with %python-lazy-object-proxy < 2}
+BuildRequires: %{python_module openapi-schema-validator >= 0.6.0 with %python-openapi-schema-validator < 0.7}
BuildRequires: %{python_module pytest}
# /SECTION
%python_subpackages
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-openapi-schema-validator for openSUSE:Factory checked in at 2023-07-30 20:58:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-openapi-schema-validator (Old)
and /work/SRC/openSUSE:Factory/.python-openapi-schema-validator.new.32662 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-openapi-schema-validator"
Sun Jul 30 20:58:01 2023 rev:9 rq:1101374 version:0.6.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-openapi-schema-validator/python-openapi-schema-validator.changes 2023-07-25 11:53:28.566286083 +0200
+++ /work/SRC/openSUSE:Factory/.python-openapi-schema-validator.new.32662/python-openapi-schema-validator.changes 2023-07-30 20:58:07.451345170 +0200
@@ -1,0 +2,5 @@
+Sat Jul 29 21:58:36 UTC 2023 - Ben Greiner <code(a)bnavigator.de>
+
+- Fix requirements
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-openapi-schema-validator.spec ++++++
--- /var/tmp/diff_new_pack.op8PEV/_old 2023-07-30 20:58:08.131349207 +0200
+++ /var/tmp/diff_new_pack.op8PEV/_new 2023-07-30 20:58:08.135349231 +0200
@@ -30,13 +30,13 @@
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Provides: python-openapi_schema_validator = %{version}-%{release}
-Requires: python-jsonschema >= 4.18
-Requires: python-jsonschema-specifications >= 2023.5
+Requires: python-jsonschema-specifications >= 2023.5.2
Requires: python-rfc3339-validator
+Requires: (python-jsonschema >= 4.18 with python-jsonschema < 5)
BuildArch: noarch
# SECTION test requirements
-BuildRequires: %{python_module jsonschema >= 4.18}
-BuildRequires: %{python_module jsonschema-specifications >= 2023.5}
+BuildRequires: %{python_module jsonschema >= 4.18 with %python-jsonschema < 5}
+BuildRequires: %{python_module jsonschema-specifications >= 2023.5.2}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module rfc3339-validator}
# /SECTION
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-openapi-core for openSUSE:Factory checked in at 2023-07-30 20:58:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-openapi-core (Old)
and /work/SRC/openSUSE:Factory/.python-openapi-core.new.32662 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-openapi-core"
Sun Jul 30 20:58:01 2023 rev:17 rq:1101373 version:0.18.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-openapi-core/python-openapi-core.changes 2023-07-25 11:53:30.194295615 +0200
+++ /work/SRC/openSUSE:Factory/.python-openapi-core.new.32662/python-openapi-core.changes 2023-07-30 20:58:05.891335908 +0200
@@ -1,0 +2,5 @@
+Sat Jul 29 22:02:15 UTC 2023 - Ben Greiner <code(a)bnavigator.de>
+
+- Fix requirements
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-openapi-core.spec ++++++
--- /var/tmp/diff_new_pack.nWGLwt/_old 2023-07-30 20:58:07.047342772 +0200
+++ /var/tmp/diff_new_pack.nWGLwt/_new 2023-07-30 20:58:07.099343080 +0200
@@ -33,28 +33,31 @@
BuildRequires: %{python_module Flask}
BuildRequires: %{python_module WebOb}
BuildRequires: %{python_module Werkzeug}
-BuildRequires: %{python_module aiohttp}
-BuildRequires: %{python_module asgiref >= 2.6}
+BuildRequires: %{python_module aiohttp >= 3}
+BuildRequires: %{python_module asgiref >= 3.6.0}
BuildRequires: %{python_module falcon >= 3.0}
BuildRequires: %{python_module isodate}
-BuildRequires: %{python_module jsonschema >= 4.18}
-BuildRequires: %{python_module jsonschema-spec >= 0.2.3}
+BuildRequires: %{python_module jsonschema >= 4.18.0 with %python-jsonschema < 5}
+BuildRequires: %{python_module jsonschema-spec >= 0.2.3 with %python-jsonschema-spec < 0.3}
BuildRequires: %{python_module more-itertools}
-BuildRequires: %{python_module openapi-schema-validator >= 0.6.0}
-BuildRequires: %{python_module openapi-spec-validator >= 0.6.0}
+BuildRequires: %{python_module multidict >= 6.0.4}
+BuildRequires: %{python_module openapi-schema-validator >= 0.6 with %python-openapi-schema-validator < 0.7}
+BuildRequires: %{python_module openapi-spec-validator >= 0.6 with %python-openapi-spec-validator < 0.7}
BuildRequires: %{python_module parse}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module responses}
# /SECTION
Requires: python-Werkzeug
-Requires: python-asgiref >= 3.6
+Requires: python-asgiref >= 3.6.0
Requires: python-isodate
-Requires: python-jsonschema >= 4.18
-Requires: python-jsonschema-spec >= 0.2.3
Requires: python-more-itertools
Requires: python-openapi-schema-validator >= 0.6.0
Requires: python-openapi-spec-validator >= 0.6.0
Requires: python-parse
+Requires: (python-jsonschema >= 4.18.0 with python-jsonschema < 5)
+Requires: (python-jsonschema-spec >= 0.2.3 with python-jsonschema-spec < 0.3)
+Requires: (python-openapi-schema-validator >= 0.6 with python-openapi-schema-validator < 0.7)
+Requires: (python-openapi-spec-validator >= 0.6 with python-openapi-spec-validator < 0.7)
BuildArch: noarch
%python_subpackages
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package UltimateDailyWallpaper for openSUSE:Factory checked in at 2023-07-30 20:57:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/UltimateDailyWallpaper (Old)
and /work/SRC/openSUSE:Factory/.UltimateDailyWallpaper.new.32662 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "UltimateDailyWallpaper"
Sun Jul 30 20:57:59 2023 rev:7 rq:1101372 version:3.3.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/UltimateDailyWallpaper/UltimateDailyWallpaper.changes 2023-07-25 11:52:20.253886105 +0200
+++ /work/SRC/openSUSE:Factory/.UltimateDailyWallpaper.new.32662/UltimateDailyWallpaper.changes 2023-07-30 20:58:03.251320233 +0200
@@ -1,0 +2,7 @@
+Sun Jul 30 08:43:38 UTC 2023 - Patrice Coni <patrice.coni-dev(a)yandex.com>
+
+- Update to version 3.3.2
+ * Improvements in mainwindow.cpp
+ * Language files updated
+
+-------------------------------------------------------------------
Old:
----
ultimatedailywallpaper-3.3.1.tar.gz
New:
----
ultimatedailywallpaper-3.3.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ UltimateDailyWallpaper.spec ++++++
--- /var/tmp/diff_new_pack.2LvhAl/_old 2023-07-30 20:58:04.807329472 +0200
+++ /var/tmp/diff_new_pack.2LvhAl/_new 2023-07-30 20:58:04.863329804 +0200
@@ -16,7 +16,7 @@
#
Name: UltimateDailyWallpaper
-Version: 3.3.1
+Version: 3.3.2
Release: 0
Summary: A wallpaper changer and downloader
License: GPL-3.0+
++++++ ultimatedailywallpaper-3.3.1.tar.gz -> ultimatedailywallpaper-3.3.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ultimatedailywallpaper-3.3.1/SlackBuild/UltimateDailyWallpaper/UltimateDailyWallpaper.SlackBuild new/ultimatedailywallpaper-3.3.2/SlackBuild/UltimateDailyWallpaper/UltimateDailyWallpaper.SlackBuild
--- old/ultimatedailywallpaper-3.3.1/SlackBuild/UltimateDailyWallpaper/UltimateDailyWallpaper.SlackBuild 2023-07-24 17:32:42.000000000 +0200
+++ new/ultimatedailywallpaper-3.3.2/SlackBuild/UltimateDailyWallpaper/UltimateDailyWallpaper.SlackBuild 2023-07-30 10:44:12.000000000 +0200
@@ -25,7 +25,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=UltimateDailyWallpaper
-VERSION=${VERSION:-3.3.1}
+VERSION=${VERSION:-3.3.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ultimatedailywallpaper-3.3.1/SlackBuild/UltimateDailyWallpaper/UltimateDailyWallpaper.info new/ultimatedailywallpaper-3.3.2/SlackBuild/UltimateDailyWallpaper/UltimateDailyWallpaper.info
--- old/ultimatedailywallpaper-3.3.1/SlackBuild/UltimateDailyWallpaper/UltimateDailyWallpaper.info 2023-07-24 17:32:42.000000000 +0200
+++ new/ultimatedailywallpaper-3.3.2/SlackBuild/UltimateDailyWallpaper/UltimateDailyWallpaper.info 2023-07-30 10:44:12.000000000 +0200
@@ -1,8 +1,8 @@
PRGNAM="UltimateDailyWallpaper"
-VERSION="3.3.1"
+VERSION="3.3.2"
HOMEPAGE="https://github.com/pagaco-swita/ultimatedailywallpaper"
-DOWNLOAD="https://github.com/pagaco-swita/ultimatedailywallpaper/archive/refs/tags/v3…"
-MD5SUM="8432bf6ca707bb12eba4dc948804d054"
+DOWNLOAD="https://github.com/pagaco-swita/ultimatedailywallpaper/archive/refs/tags/v3…"
+MD5SUM="c84bc028dc3810364ade3a6efad7fa64"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ultimatedailywallpaper-3.3.1/language/UltimateDailyWallpaper.pot new/ultimatedailywallpaper-3.3.2/language/UltimateDailyWallpaper.pot
--- old/ultimatedailywallpaper-3.3.1/language/UltimateDailyWallpaper.pot 2023-07-24 17:32:42.000000000 +0200
+++ new/ultimatedailywallpaper-3.3.2/language/UltimateDailyWallpaper.pot 2023-07-30 10:44:12.000000000 +0200
@@ -233,7 +233,7 @@
#: ../src/mainwindow.cpp:306
#: ../src/mainwindow.cpp:317
-#: ../src/mainwindow.cpp:755
+#: ../src/mainwindow.cpp:753
msgctxt "MainWindow|"
msgid "Error"
msgstr ""
@@ -244,19 +244,19 @@
msgstr ""
#: ../src/mainwindow.cpp:312
-#: ../src/mainwindow.cpp:750
+#: ../src/mainwindow.cpp:748
msgctxt "MainWindow|"
msgid "done."
msgstr ""
#: ../src/mainwindow.cpp:313
-#: ../src/mainwindow.cpp:751
+#: ../src/mainwindow.cpp:749
msgctxt "MainWindow|"
msgid "Used plugin: "
msgstr ""
#: ../src/mainwindow.cpp:317
-#: ../src/mainwindow.cpp:755
+#: ../src/mainwindow.cpp:753
msgctxt "MainWindow|"
msgid "Error while loading plugin."
msgstr ""
@@ -268,63 +268,63 @@
"The application will be closed."
msgstr ""
-#: ../src/mainwindow.cpp:461
-#: ../src/mainwindow.cpp:817
+#: ../src/mainwindow.cpp:460
+#: ../src/mainwindow.cpp:815
msgctxt "MainWindow|"
msgid "No connection to the internet."
msgstr ""
-#: ../src/mainwindow.cpp:461
+#: ../src/mainwindow.cpp:460
msgctxt "MainWindow|"
msgid "Please check your internet connection."
msgstr ""
-#: ../src/mainwindow.cpp:740
+#: ../src/mainwindow.cpp:738
msgctxt "MainWindow|"
msgid "&Provider"
msgstr ""
-#: ../src/mainwindow.cpp:778
+#: ../src/mainwindow.cpp:776
msgctxt "MainWindow|"
msgid "&About this picture and license"
msgstr ""
-#: ../src/mainwindow.cpp:782
+#: ../src/mainwindow.cpp:780
msgctxt "MainWindow|"
msgid "&About this picture and copyright"
msgstr ""
-#: ../src/mainwindow.cpp:789
+#: ../src/mainwindow.cpp:787
msgctxt "MainWindow|"
msgid "&Download past pictures"
msgstr ""
-#: ../src/mainwindow.cpp:793
+#: ../src/mainwindow.cpp:791
msgctxt "MainWindow|"
msgid "&Load stored picture"
msgstr ""
-#: ../src/mainwindow.cpp:796
+#: ../src/mainwindow.cpp:794
msgctxt "MainWindow|"
msgid "&Settings"
msgstr ""
-#: ../src/mainwindow.cpp:799
+#: ../src/mainwindow.cpp:797
msgctxt "MainWindow|"
msgid "&About"
msgstr ""
-#: ../src/mainwindow.cpp:802
+#: ../src/mainwindow.cpp:800
msgctxt "MainWindow|"
msgid "&Quit"
msgstr ""
-#: ../src/mainwindow.cpp:876
+#: ../src/mainwindow.cpp:874
msgctxt "MainWindow|"
msgid "Description: \n"
msgstr ""
-#: ../src/mainwindow.cpp:1431
+#: ../src/mainwindow.cpp:1375
msgctxt "MainWindow|"
msgid "Load plugin..."
msgstr ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ultimatedailywallpaper-3.3.1/language/UltimateDailyWallpaper_ca.po new/ultimatedailywallpaper-3.3.2/language/UltimateDailyWallpaper_ca.po
--- old/ultimatedailywallpaper-3.3.1/language/UltimateDailyWallpaper_ca.po 2023-07-24 17:32:42.000000000 +0200
+++ new/ultimatedailywallpaper-3.3.2/language/UltimateDailyWallpaper_ca.po 2023-07-30 10:44:12.000000000 +0200
@@ -242,7 +242,7 @@
#: ../src/mainwindow.cpp:306
#: ../src/mainwindow.cpp:317
-#: ../src/mainwindow.cpp:755
+#: ../src/mainwindow.cpp:753
msgctxt "MainWindow|"
msgid "Error"
msgstr "Error"
@@ -253,19 +253,19 @@
msgstr "No s'han trobat connectors."
#: ../src/mainwindow.cpp:312
-#: ../src/mainwindow.cpp:750
+#: ../src/mainwindow.cpp:748
msgctxt "MainWindow|"
msgid "done."
msgstr "fet."
#: ../src/mainwindow.cpp:313
-#: ../src/mainwindow.cpp:751
+#: ../src/mainwindow.cpp:749
msgctxt "MainWindow|"
msgid "Used plugin: "
msgstr "Plugin utilitzat: "
#: ../src/mainwindow.cpp:317
-#: ../src/mainwindow.cpp:755
+#: ../src/mainwindow.cpp:753
msgctxt "MainWindow|"
msgid "Error while loading plugin."
msgstr "Error en carregar el plugin."
@@ -279,63 +279,63 @@
"S'ha detectat un error en iniciar l'aplicació.\n"
"La aplicació licitud estarà tancada."
-#: ../src/mainwindow.cpp:461
-#: ../src/mainwindow.cpp:817
+#: ../src/mainwindow.cpp:460
+#: ../src/mainwindow.cpp:815
msgctxt "MainWindow|"
msgid "No connection to the internet."
msgstr "Sense connexió a internet."
-#: ../src/mainwindow.cpp:461
+#: ../src/mainwindow.cpp:460
msgctxt "MainWindow|"
msgid "Please check your internet connection."
msgstr "Comproveu la vostra connexió a Internet."
-#: ../src/mainwindow.cpp:740
+#: ../src/mainwindow.cpp:738
msgctxt "MainWindow|"
msgid "&Provider"
msgstr "&Proveïdor"
-#: ../src/mainwindow.cpp:778
+#: ../src/mainwindow.cpp:776
msgctxt "MainWindow|"
msgid "&About this picture and license"
msgstr "&Sobre aquesta imatge i llicència"
-#: ../src/mainwindow.cpp:782
+#: ../src/mainwindow.cpp:780
msgctxt "MainWindow|"
msgid "&About this picture and copyright"
msgstr "&Sobre aquesta imatge i els drets d'autor"
-#: ../src/mainwindow.cpp:789
+#: ../src/mainwindow.cpp:787
msgctxt "MainWindow|"
msgid "&Download past pictures"
msgstr "&Descarregar imatges anteriors"
-#: ../src/mainwindow.cpp:793
+#: ../src/mainwindow.cpp:791
msgctxt "MainWindow|"
msgid "&Load stored picture"
msgstr "&Carrega la imatge emmagatzemada"
-#: ../src/mainwindow.cpp:796
+#: ../src/mainwindow.cpp:794
msgctxt "MainWindow|"
msgid "&Settings"
msgstr "&Configuració"
-#: ../src/mainwindow.cpp:799
+#: ../src/mainwindow.cpp:797
msgctxt "MainWindow|"
msgid "&About"
msgstr "&Sobre"
-#: ../src/mainwindow.cpp:802
+#: ../src/mainwindow.cpp:800
msgctxt "MainWindow|"
msgid "&Quit"
msgstr "&Sortir"
-#: ../src/mainwindow.cpp:876
+#: ../src/mainwindow.cpp:874
msgctxt "MainWindow|"
msgid "Description: \n"
msgstr "Descripció: \n"
-#: ../src/mainwindow.cpp:1431
+#: ../src/mainwindow.cpp:1375
msgctxt "MainWindow|"
msgid "Load plugin..."
msgstr "Carrega el plugin..."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ultimatedailywallpaper-3.3.1/language/UltimateDailyWallpaper_de.po new/ultimatedailywallpaper-3.3.2/language/UltimateDailyWallpaper_de.po
--- old/ultimatedailywallpaper-3.3.1/language/UltimateDailyWallpaper_de.po 2023-07-24 17:32:42.000000000 +0200
+++ new/ultimatedailywallpaper-3.3.2/language/UltimateDailyWallpaper_de.po 2023-07-30 10:44:12.000000000 +0200
@@ -241,7 +241,7 @@
#: ../src/mainwindow.cpp:306
#: ../src/mainwindow.cpp:317
-#: ../src/mainwindow.cpp:755
+#: ../src/mainwindow.cpp:753
msgctxt "MainWindow|"
msgid "Error"
msgstr "Fehler"
@@ -252,19 +252,19 @@
msgstr "Keine Plugins gefunden."
#: ../src/mainwindow.cpp:312
-#: ../src/mainwindow.cpp:750
+#: ../src/mainwindow.cpp:748
msgctxt "MainWindow|"
msgid "done."
msgstr "erledigt."
#: ../src/mainwindow.cpp:313
-#: ../src/mainwindow.cpp:751
+#: ../src/mainwindow.cpp:749
msgctxt "MainWindow|"
msgid "Used plugin: "
msgstr "Verwendetes Plugin: "
#: ../src/mainwindow.cpp:317
-#: ../src/mainwindow.cpp:755
+#: ../src/mainwindow.cpp:753
msgctxt "MainWindow|"
msgid "Error while loading plugin."
msgstr "Fehler beim Laden des Plugins."
@@ -278,65 +278,65 @@
"Beim Start der Anwendung wurde ein Fehler festgestelt.\n"
"Die Anwendung wird nun beendet."
-#: ../src/mainwindow.cpp:461
-#: ../src/mainwindow.cpp:817
+#: ../src/mainwindow.cpp:460
+#: ../src/mainwindow.cpp:815
msgctxt "MainWindow|"
msgid "No connection to the internet."
msgstr ""
"Keine Internetverbindung.\n"
"Die Anwendung wird geschlossen."
-#: ../src/mainwindow.cpp:461
+#: ../src/mainwindow.cpp:460
msgctxt "MainWindow|"
msgid "Please check your internet connection."
msgstr "Bitte überprüfen Sie Ihre Internetverbindung."
-#: ../src/mainwindow.cpp:740
+#: ../src/mainwindow.cpp:738
msgctxt "MainWindow|"
msgid "&Provider"
msgstr "&Anbieter"
-#: ../src/mainwindow.cpp:778
+#: ../src/mainwindow.cpp:776
msgctxt "MainWindow|"
msgid "&About this picture and license"
msgstr "&Über dieses Bild und Lizenz"
-#: ../src/mainwindow.cpp:782
+#: ../src/mainwindow.cpp:780
msgctxt "MainWindow|"
msgid "&About this picture and copyright"
msgstr "&Über dieses Bild und Copyright"
-#: ../src/mainwindow.cpp:789
+#: ../src/mainwindow.cpp:787
msgctxt "MainWindow|"
msgid "&Download past pictures"
msgstr "&Ältere Bilder herunterladen"
-#: ../src/mainwindow.cpp:793
+#: ../src/mainwindow.cpp:791
msgctxt "MainWindow|"
msgid "&Load stored picture"
msgstr "&Gespeichertes Hintergrundbild laden"
-#: ../src/mainwindow.cpp:796
+#: ../src/mainwindow.cpp:794
msgctxt "MainWindow|"
msgid "&Settings"
msgstr "&Einstellungen"
-#: ../src/mainwindow.cpp:799
+#: ../src/mainwindow.cpp:797
msgctxt "MainWindow|"
msgid "&About"
msgstr "&Über"
-#: ../src/mainwindow.cpp:802
+#: ../src/mainwindow.cpp:800
msgctxt "MainWindow|"
msgid "&Quit"
msgstr "&Beenden"
-#: ../src/mainwindow.cpp:876
+#: ../src/mainwindow.cpp:874
msgctxt "MainWindow|"
msgid "Description: \n"
msgstr "Beschreibung: \n"
-#: ../src/mainwindow.cpp:1431
+#: ../src/mainwindow.cpp:1375
msgctxt "MainWindow|"
msgid "Load plugin..."
msgstr "Plugin wird geladen..."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ultimatedailywallpaper-3.3.1/language/UltimateDailyWallpaper_es.po new/ultimatedailywallpaper-3.3.2/language/UltimateDailyWallpaper_es.po
--- old/ultimatedailywallpaper-3.3.1/language/UltimateDailyWallpaper_es.po 2023-07-24 17:32:42.000000000 +0200
+++ new/ultimatedailywallpaper-3.3.2/language/UltimateDailyWallpaper_es.po 2023-07-30 10:44:12.000000000 +0200
@@ -244,7 +244,7 @@
#: ../src/mainwindow.cpp:306
#: ../src/mainwindow.cpp:317
-#: ../src/mainwindow.cpp:755
+#: ../src/mainwindow.cpp:753
msgctxt "MainWindow|"
msgid "Error"
msgstr "Error"
@@ -255,19 +255,19 @@
msgstr "No se han encontrado plugins."
#: ../src/mainwindow.cpp:312
-#: ../src/mainwindow.cpp:750
+#: ../src/mainwindow.cpp:748
msgctxt "MainWindow|"
msgid "done."
msgstr "hecho."
#: ../src/mainwindow.cpp:313
-#: ../src/mainwindow.cpp:751
+#: ../src/mainwindow.cpp:749
msgctxt "MainWindow|"
msgid "Used plugin: "
msgstr "Plugin utilizado: "
#: ../src/mainwindow.cpp:317
-#: ../src/mainwindow.cpp:755
+#: ../src/mainwindow.cpp:753
msgctxt "MainWindow|"
msgid "Error while loading plugin."
msgstr "Error al cargar el plugin."
@@ -281,63 +281,63 @@
"Se detectó un error al iniciar la aplicación.\n"
"La aplicación se cerrará."
-#: ../src/mainwindow.cpp:461
-#: ../src/mainwindow.cpp:817
+#: ../src/mainwindow.cpp:460
+#: ../src/mainwindow.cpp:815
msgctxt "MainWindow|"
msgid "No connection to the internet."
msgstr "No hay conexión a Internet."
-#: ../src/mainwindow.cpp:461
+#: ../src/mainwindow.cpp:460
msgctxt "MainWindow|"
msgid "Please check your internet connection."
msgstr "Por favor, compruebe su conexión a Internet."
-#: ../src/mainwindow.cpp:740
+#: ../src/mainwindow.cpp:738
msgctxt "MainWindow|"
msgid "&Provider"
msgstr "&Proveedor"
-#: ../src/mainwindow.cpp:778
+#: ../src/mainwindow.cpp:776
msgctxt "MainWindow|"
msgid "&About this picture and license"
msgstr "&Acerca de esta imagen y licencia"
-#: ../src/mainwindow.cpp:782
+#: ../src/mainwindow.cpp:780
msgctxt "MainWindow|"
msgid "&About this picture and copyright"
msgstr "&Acerca de esta imagen y derechos de autor"
-#: ../src/mainwindow.cpp:789
+#: ../src/mainwindow.cpp:787
msgctxt "MainWindow|"
msgid "&Download past pictures"
msgstr "&Descargar fotos pasadas"
-#: ../src/mainwindow.cpp:793
+#: ../src/mainwindow.cpp:791
msgctxt "MainWindow|"
msgid "&Load stored picture"
msgstr "&Cargar imagen almacenada"
-#: ../src/mainwindow.cpp:796
+#: ../src/mainwindow.cpp:794
msgctxt "MainWindow|"
msgid "&Settings"
msgstr "&Configuración"
-#: ../src/mainwindow.cpp:799
+#: ../src/mainwindow.cpp:797
msgctxt "MainWindow|"
msgid "&About"
msgstr "&Acerca de"
-#: ../src/mainwindow.cpp:802
+#: ../src/mainwindow.cpp:800
msgctxt "MainWindow|"
msgid "&Quit"
msgstr "&Salir"
-#: ../src/mainwindow.cpp:876
+#: ../src/mainwindow.cpp:874
msgctxt "MainWindow|"
msgid "Description: \n"
msgstr "Descripción: \n"
-#: ../src/mainwindow.cpp:1431
+#: ../src/mainwindow.cpp:1375
msgctxt "MainWindow|"
msgid "Load plugin..."
msgstr "Cargar plugin..."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ultimatedailywallpaper-3.3.1/language/UltimateDailyWallpaper_fi.po new/ultimatedailywallpaper-3.3.2/language/UltimateDailyWallpaper_fi.po
--- old/ultimatedailywallpaper-3.3.1/language/UltimateDailyWallpaper_fi.po 2023-07-24 17:32:42.000000000 +0200
+++ new/ultimatedailywallpaper-3.3.2/language/UltimateDailyWallpaper_fi.po 2023-07-30 10:44:12.000000000 +0200
@@ -242,7 +242,7 @@
#: ../src/mainwindow.cpp:306
#: ../src/mainwindow.cpp:317
-#: ../src/mainwindow.cpp:755
+#: ../src/mainwindow.cpp:753
msgctxt "MainWindow|"
msgid "Error"
msgstr "Virhe"
@@ -253,19 +253,19 @@
msgstr "Laajennuksia ei löytynyt."
#: ../src/mainwindow.cpp:312
-#: ../src/mainwindow.cpp:750
+#: ../src/mainwindow.cpp:748
msgctxt "MainWindow|"
msgid "done."
msgstr "valmis."
#: ../src/mainwindow.cpp:313
-#: ../src/mainwindow.cpp:751
+#: ../src/mainwindow.cpp:749
msgctxt "MainWindow|"
msgid "Used plugin: "
msgstr "Käytetty laajennus: "
#: ../src/mainwindow.cpp:317
-#: ../src/mainwindow.cpp:755
+#: ../src/mainwindow.cpp:753
msgctxt "MainWindow|"
msgid "Error while loading plugin."
msgstr "Virhe ladattaessa laajennusta."
@@ -279,63 +279,63 @@
"Sovellusta käynnistettäessä havaittiin virhe.\n"
"Hakemus suljetaan."
-#: ../src/mainwindow.cpp:461
-#: ../src/mainwindow.cpp:817
+#: ../src/mainwindow.cpp:460
+#: ../src/mainwindow.cpp:815
msgctxt "MainWindow|"
msgid "No connection to the internet."
msgstr "Ei yhteyttä Internetiin."
-#: ../src/mainwindow.cpp:461
+#: ../src/mainwindow.cpp:460
msgctxt "MainWindow|"
msgid "Please check your internet connection."
msgstr "Tarkista Internet-yhteytesi."
-#: ../src/mainwindow.cpp:740
+#: ../src/mainwindow.cpp:738
msgctxt "MainWindow|"
msgid "&Provider"
msgstr "&Toimittaja"
-#: ../src/mainwindow.cpp:778
+#: ../src/mainwindow.cpp:776
msgctxt "MainWindow|"
msgid "&About this picture and license"
msgstr "&Tietoja tästä kuvasta ja Lisenssi"
-#: ../src/mainwindow.cpp:782
+#: ../src/mainwindow.cpp:780
msgctxt "MainWindow|"
msgid "&About this picture and copyright"
msgstr "&Tietoja tästä kuvasta ja tekijänoikeuksista"
-#: ../src/mainwindow.cpp:789
+#: ../src/mainwindow.cpp:787
msgctxt "MainWindow|"
msgid "&Download past pictures"
msgstr "&Lataa aiempia kuvia"
-#: ../src/mainwindow.cpp:793
+#: ../src/mainwindow.cpp:791
msgctxt "MainWindow|"
msgid "&Load stored picture"
msgstr "&Lataa tallennettu kuva"
-#: ../src/mainwindow.cpp:796
+#: ../src/mainwindow.cpp:794
msgctxt "MainWindow|"
msgid "&Settings"
msgstr "&Asetukset"
-#: ../src/mainwindow.cpp:799
+#: ../src/mainwindow.cpp:797
msgctxt "MainWindow|"
msgid "&About"
msgstr "&Noin"
-#: ../src/mainwindow.cpp:802
+#: ../src/mainwindow.cpp:800
msgctxt "MainWindow|"
msgid "&Quit"
msgstr "&Lopettaa"
-#: ../src/mainwindow.cpp:876
+#: ../src/mainwindow.cpp:874
msgctxt "MainWindow|"
msgid "Description: \n"
msgstr "Kuvaus: \n"
-#: ../src/mainwindow.cpp:1431
+#: ../src/mainwindow.cpp:1375
msgctxt "MainWindow|"
msgid "Load plugin..."
msgstr "Suorita laajennus..."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ultimatedailywallpaper-3.3.1/language/UltimateDailyWallpaper_fr.po new/ultimatedailywallpaper-3.3.2/language/UltimateDailyWallpaper_fr.po
--- old/ultimatedailywallpaper-3.3.1/language/UltimateDailyWallpaper_fr.po 2023-07-24 17:32:42.000000000 +0200
+++ new/ultimatedailywallpaper-3.3.2/language/UltimateDailyWallpaper_fr.po 2023-07-30 10:44:12.000000000 +0200
@@ -245,7 +245,7 @@
#: ../src/mainwindow.cpp:306
#: ../src/mainwindow.cpp:317
-#: ../src/mainwindow.cpp:755
+#: ../src/mainwindow.cpp:753
msgctxt "MainWindow|"
msgid "Error"
msgstr "Erreur"
@@ -256,19 +256,19 @@
msgstr "Aucun plugin trouvé."
#: ../src/mainwindow.cpp:312
-#: ../src/mainwindow.cpp:750
+#: ../src/mainwindow.cpp:748
msgctxt "MainWindow|"
msgid "done."
msgstr "fait."
#: ../src/mainwindow.cpp:313
-#: ../src/mainwindow.cpp:751
+#: ../src/mainwindow.cpp:749
msgctxt "MainWindow|"
msgid "Used plugin: "
msgstr "Plugin utilisé: "
#: ../src/mainwindow.cpp:317
-#: ../src/mainwindow.cpp:755
+#: ../src/mainwindow.cpp:753
msgctxt "MainWindow|"
msgid "Error while loading plugin."
msgstr "Erreur lors du chargement du plugin."
@@ -282,63 +282,63 @@
"Une erreur a été détectée lors du démarrage de l’application.\n"
"La demande sera fermée."
-#: ../src/mainwindow.cpp:461
-#: ../src/mainwindow.cpp:817
+#: ../src/mainwindow.cpp:460
+#: ../src/mainwindow.cpp:815
msgctxt "MainWindow|"
msgid "No connection to the internet."
msgstr "Pas de connexion à Internet."
-#: ../src/mainwindow.cpp:461
+#: ../src/mainwindow.cpp:460
msgctxt "MainWindow|"
msgid "Please check your internet connection."
msgstr "Veuillez vérifier votre connexion Internet."
-#: ../src/mainwindow.cpp:740
+#: ../src/mainwindow.cpp:738
msgctxt "MainWindow|"
msgid "&Provider"
msgstr "&Fournisseur"
-#: ../src/mainwindow.cpp:778
+#: ../src/mainwindow.cpp:776
msgctxt "MainWindow|"
msgid "&About this picture and license"
msgstr "&À propos de cette image et licence"
-#: ../src/mainwindow.cpp:782
+#: ../src/mainwindow.cpp:780
msgctxt "MainWindow|"
msgid "&About this picture and copyright"
msgstr "&À propos de cette image et copyright"
-#: ../src/mainwindow.cpp:789
+#: ../src/mainwindow.cpp:787
msgctxt "MainWindow|"
msgid "&Download past pictures"
msgstr "&Télécharger les photos passées"
-#: ../src/mainwindow.cpp:793
+#: ../src/mainwindow.cpp:791
msgctxt "MainWindow|"
msgid "&Load stored picture"
msgstr "&Charger l’image stockée"
-#: ../src/mainwindow.cpp:796
+#: ../src/mainwindow.cpp:794
msgctxt "MainWindow|"
msgid "&Settings"
msgstr "&Paramètres"
-#: ../src/mainwindow.cpp:799
+#: ../src/mainwindow.cpp:797
msgctxt "MainWindow|"
msgid "&About"
msgstr "&Environ"
-#: ../src/mainwindow.cpp:802
+#: ../src/mainwindow.cpp:800
msgctxt "MainWindow|"
msgid "&Quit"
msgstr "&Finir"
-#: ../src/mainwindow.cpp:876
+#: ../src/mainwindow.cpp:874
msgctxt "MainWindow|"
msgid "Description: \n"
msgstr "Description: \n"
-#: ../src/mainwindow.cpp:1431
+#: ../src/mainwindow.cpp:1375
msgctxt "MainWindow|"
msgid "Load plugin..."
msgstr "Charger le plugin..."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ultimatedailywallpaper-3.3.1/language/UltimateDailyWallpaper_it.po new/ultimatedailywallpaper-3.3.2/language/UltimateDailyWallpaper_it.po
--- old/ultimatedailywallpaper-3.3.1/language/UltimateDailyWallpaper_it.po 2023-07-24 17:32:42.000000000 +0200
+++ new/ultimatedailywallpaper-3.3.2/language/UltimateDailyWallpaper_it.po 2023-07-30 10:44:12.000000000 +0200
@@ -244,7 +244,7 @@
#: ../src/mainwindow.cpp:306
#: ../src/mainwindow.cpp:317
-#: ../src/mainwindow.cpp:755
+#: ../src/mainwindow.cpp:753
msgctxt "MainWindow|"
msgid "Error"
msgstr "Errore"
@@ -255,19 +255,19 @@
msgstr "Nessun plugin trovato."
#: ../src/mainwindow.cpp:312
-#: ../src/mainwindow.cpp:750
+#: ../src/mainwindow.cpp:748
msgctxt "MainWindow|"
msgid "done."
msgstr "fatto."
#: ../src/mainwindow.cpp:313
-#: ../src/mainwindow.cpp:751
+#: ../src/mainwindow.cpp:749
msgctxt "MainWindow|"
msgid "Used plugin: "
msgstr "Plugin usato: "
#: ../src/mainwindow.cpp:317
-#: ../src/mainwindow.cpp:755
+#: ../src/mainwindow.cpp:753
msgctxt "MainWindow|"
msgid "Error while loading plugin."
msgstr "Errore durante il caricamento del plugin."
@@ -281,63 +281,63 @@
"È stato rilevato un errore all'avvio dell'applicazione.\n"
"L'applicazione verrà chiusa."
-#: ../src/mainwindow.cpp:461
-#: ../src/mainwindow.cpp:817
+#: ../src/mainwindow.cpp:460
+#: ../src/mainwindow.cpp:815
msgctxt "MainWindow|"
msgid "No connection to the internet."
msgstr "Nessuna connessione a Internet."
-#: ../src/mainwindow.cpp:461
+#: ../src/mainwindow.cpp:460
msgctxt "MainWindow|"
msgid "Please check your internet connection."
msgstr "Si prega di controllare la connessione internet."
-#: ../src/mainwindow.cpp:740
+#: ../src/mainwindow.cpp:738
msgctxt "MainWindow|"
msgid "&Provider"
msgstr "&Provider"
-#: ../src/mainwindow.cpp:778
+#: ../src/mainwindow.cpp:776
msgctxt "MainWindow|"
msgid "&About this picture and license"
msgstr "&Informazioni su questa immagine e licenza"
-#: ../src/mainwindow.cpp:782
+#: ../src/mainwindow.cpp:780
msgctxt "MainWindow|"
msgid "&About this picture and copyright"
msgstr "&Informazioni su questa immagine e copyright"
-#: ../src/mainwindow.cpp:789
+#: ../src/mainwindow.cpp:787
msgctxt "MainWindow|"
msgid "&Download past pictures"
msgstr "&Scarica le immagini del passato"
-#: ../src/mainwindow.cpp:793
+#: ../src/mainwindow.cpp:791
msgctxt "MainWindow|"
msgid "&Load stored picture"
msgstr "&Carica immagine memorizzata"
-#: ../src/mainwindow.cpp:796
+#: ../src/mainwindow.cpp:794
msgctxt "MainWindow|"
msgid "&Settings"
msgstr "&Impostazioni"
-#: ../src/mainwindow.cpp:799
+#: ../src/mainwindow.cpp:797
msgctxt "MainWindow|"
msgid "&About"
msgstr "&Circa"
-#: ../src/mainwindow.cpp:802
+#: ../src/mainwindow.cpp:800
msgctxt "MainWindow|"
msgid "&Quit"
msgstr "&Dimettersi"
-#: ../src/mainwindow.cpp:876
+#: ../src/mainwindow.cpp:874
msgctxt "MainWindow|"
msgid "Description: \n"
msgstr "Descrizione: \n"
-#: ../src/mainwindow.cpp:1431
+#: ../src/mainwindow.cpp:1375
msgctxt "MainWindow|"
msgid "Load plugin..."
msgstr "Carica plugin..."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ultimatedailywallpaper-3.3.1/language/UltimateDailyWallpaper_ko.po new/ultimatedailywallpaper-3.3.2/language/UltimateDailyWallpaper_ko.po
--- old/ultimatedailywallpaper-3.3.1/language/UltimateDailyWallpaper_ko.po 2023-07-24 17:32:42.000000000 +0200
+++ new/ultimatedailywallpaper-3.3.2/language/UltimateDailyWallpaper_ko.po 2023-07-30 10:44:12.000000000 +0200
@@ -239,7 +239,7 @@
#: ../src/mainwindow.cpp:306
#: ../src/mainwindow.cpp:317
-#: ../src/mainwindow.cpp:755
+#: ../src/mainwindow.cpp:753
msgctxt "MainWindow|"
msgid "Error"
msgstr "오류"
@@ -250,19 +250,19 @@
msgstr "플러그인을 찾을 수 없습니다."
#: ../src/mainwindow.cpp:312
-#: ../src/mainwindow.cpp:750
+#: ../src/mainwindow.cpp:748
msgctxt "MainWindow|"
msgid "done."
msgstr "완전한"
#: ../src/mainwindow.cpp:313
-#: ../src/mainwindow.cpp:751
+#: ../src/mainwindow.cpp:749
msgctxt "MainWindow|"
msgid "Used plugin: "
msgstr "플러그인: "
#: ../src/mainwindow.cpp:317
-#: ../src/mainwindow.cpp:755
+#: ../src/mainwindow.cpp:753
msgctxt "MainWindow|"
msgid "Error while loading plugin."
msgstr "플러그인을로드하는 동안 오류가 발생했습니다."
@@ -276,65 +276,65 @@
"응용 프로그램을 시작할 때 오류가 감지되었습니다.\n"
"신청이 마감됩니다."
-#: ../src/mainwindow.cpp:461
-#: ../src/mainwindow.cpp:817
+#: ../src/mainwindow.cpp:460
+#: ../src/mainwindow.cpp:815
msgctxt "MainWindow|"
msgid "No connection to the internet."
msgstr ""
"응용 프로그램을 시작할 때 오류가 감지되었습니다.\n"
"응용 프로그램 중단."
-#: ../src/mainwindow.cpp:461
+#: ../src/mainwindow.cpp:460
msgctxt "MainWindow|"
msgid "Please check your internet connection."
msgstr "인터넷 연결을 확인하십시오."
-#: ../src/mainwindow.cpp:740
+#: ../src/mainwindow.cpp:738
msgctxt "MainWindow|"
msgid "&Provider"
msgstr "&공급자"
-#: ../src/mainwindow.cpp:778
+#: ../src/mainwindow.cpp:776
msgctxt "MainWindow|"
msgid "&About this picture and license"
msgstr "&이 사진 및 라이센스에 대해"
-#: ../src/mainwindow.cpp:782
+#: ../src/mainwindow.cpp:780
msgctxt "MainWindow|"
msgid "&About this picture and copyright"
msgstr "&이 사진과 저작권에 대해"
-#: ../src/mainwindow.cpp:789
+#: ../src/mainwindow.cpp:787
msgctxt "MainWindow|"
msgid "&Download past pictures"
msgstr "&지난 사진 다운로드"
-#: ../src/mainwindow.cpp:793
+#: ../src/mainwindow.cpp:791
msgctxt "MainWindow|"
msgid "&Load stored picture"
msgstr "&저장된 사진 로드"
-#: ../src/mainwindow.cpp:796
+#: ../src/mainwindow.cpp:794
msgctxt "MainWindow|"
msgid "&Settings"
msgstr "&옵션"
-#: ../src/mainwindow.cpp:799
+#: ../src/mainwindow.cpp:797
msgctxt "MainWindow|"
msgid "&About"
msgstr "&정보"
-#: ../src/mainwindow.cpp:802
+#: ../src/mainwindow.cpp:800
msgctxt "MainWindow|"
msgid "&Quit"
msgstr "&출구"
-#: ../src/mainwindow.cpp:876
+#: ../src/mainwindow.cpp:874
msgctxt "MainWindow|"
msgid "Description: \n"
msgstr "이미지 설명: \n"
-#: ../src/mainwindow.cpp:1431
+#: ../src/mainwindow.cpp:1375
msgctxt "MainWindow|"
msgid "Load plugin..."
msgstr "플러그인 로드..."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ultimatedailywallpaper-3.3.1/language/UltimateDailyWallpaper_pt.po new/ultimatedailywallpaper-3.3.2/language/UltimateDailyWallpaper_pt.po
--- old/ultimatedailywallpaper-3.3.1/language/UltimateDailyWallpaper_pt.po 2023-07-24 17:32:42.000000000 +0200
+++ new/ultimatedailywallpaper-3.3.2/language/UltimateDailyWallpaper_pt.po 2023-07-30 10:44:12.000000000 +0200
@@ -246,7 +246,7 @@
#: ../src/mainwindow.cpp:306
#: ../src/mainwindow.cpp:317
-#: ../src/mainwindow.cpp:755
+#: ../src/mainwindow.cpp:753
msgctxt "MainWindow|"
msgid "Error"
msgstr "Erro"
@@ -257,19 +257,19 @@
msgstr "Nenhum plug-in encontrado."
#: ../src/mainwindow.cpp:312
-#: ../src/mainwindow.cpp:750
+#: ../src/mainwindow.cpp:748
msgctxt "MainWindow|"
msgid "done."
msgstr "concluído."
#: ../src/mainwindow.cpp:313
-#: ../src/mainwindow.cpp:751
+#: ../src/mainwindow.cpp:749
msgctxt "MainWindow|"
msgid "Used plugin: "
msgstr "Plugin usado: "
#: ../src/mainwindow.cpp:317
-#: ../src/mainwindow.cpp:755
+#: ../src/mainwindow.cpp:753
msgctxt "MainWindow|"
msgid "Error while loading plugin."
msgstr "Erro ao carregar o plugin."
@@ -283,63 +283,63 @@
"Foi detectado um erro ao iniciar o aplicativo.\n"
"O aplicativo será encerrado."
-#: ../src/mainwindow.cpp:461
-#: ../src/mainwindow.cpp:817
+#: ../src/mainwindow.cpp:460
+#: ../src/mainwindow.cpp:815
msgctxt "MainWindow|"
msgid "No connection to the internet."
msgstr "Sem conexão com a internet."
-#: ../src/mainwindow.cpp:461
+#: ../src/mainwindow.cpp:460
msgctxt "MainWindow|"
msgid "Please check your internet connection."
msgstr "Por favor, verifique a sua ligação à Internet."
-#: ../src/mainwindow.cpp:740
+#: ../src/mainwindow.cpp:738
msgctxt "MainWindow|"
msgid "&Provider"
msgstr "&Provedor"
-#: ../src/mainwindow.cpp:778
+#: ../src/mainwindow.cpp:776
msgctxt "MainWindow|"
msgid "&About this picture and license"
msgstr "&Sobre esta imagem e licença"
-#: ../src/mainwindow.cpp:782
+#: ../src/mainwindow.cpp:780
msgctxt "MainWindow|"
msgid "&About this picture and copyright"
msgstr "&Sobre esta imagem e copirraite"
-#: ../src/mainwindow.cpp:789
+#: ../src/mainwindow.cpp:787
msgctxt "MainWindow|"
msgid "&Download past pictures"
msgstr "&Baixar fotos passadas"
-#: ../src/mainwindow.cpp:793
+#: ../src/mainwindow.cpp:791
msgctxt "MainWindow|"
msgid "&Load stored picture"
msgstr "&Carregar imagem armazenada"
-#: ../src/mainwindow.cpp:796
+#: ../src/mainwindow.cpp:794
msgctxt "MainWindow|"
msgid "&Settings"
msgstr "&Configurações"
-#: ../src/mainwindow.cpp:799
+#: ../src/mainwindow.cpp:797
msgctxt "MainWindow|"
msgid "&About"
msgstr "&Sobre"
-#: ../src/mainwindow.cpp:802
+#: ../src/mainwindow.cpp:800
msgctxt "MainWindow|"
msgid "&Quit"
msgstr "&Renunciar"
-#: ../src/mainwindow.cpp:876
+#: ../src/mainwindow.cpp:874
msgctxt "MainWindow|"
msgid "Description: \n"
msgstr "Descrição: \n"
-#: ../src/mainwindow.cpp:1431
+#: ../src/mainwindow.cpp:1375
msgctxt "MainWindow|"
msgid "Load plugin..."
msgstr "Carregar plugin..."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ultimatedailywallpaper-3.3.1/language/UltimateDailyWallpaper_ru.po new/ultimatedailywallpaper-3.3.2/language/UltimateDailyWallpaper_ru.po
--- old/ultimatedailywallpaper-3.3.1/language/UltimateDailyWallpaper_ru.po 2023-07-24 17:32:42.000000000 +0200
+++ new/ultimatedailywallpaper-3.3.2/language/UltimateDailyWallpaper_ru.po 2023-07-30 10:44:12.000000000 +0200
@@ -243,7 +243,7 @@
#: ../src/mainwindow.cpp:306
#: ../src/mainwindow.cpp:317
-#: ../src/mainwindow.cpp:755
+#: ../src/mainwindow.cpp:753
msgctxt "MainWindow|"
msgid "Error"
msgstr "Ошибка"
@@ -254,19 +254,19 @@
msgstr "Расширения не найдены."
#: ../src/mainwindow.cpp:312
-#: ../src/mainwindow.cpp:750
+#: ../src/mainwindow.cpp:748
msgctxt "MainWindow|"
msgid "done."
msgstr "завершенный."
#: ../src/mainwindow.cpp:313
-#: ../src/mainwindow.cpp:751
+#: ../src/mainwindow.cpp:749
msgctxt "MainWindow|"
msgid "Used plugin: "
msgstr "Используемый плагин: "
#: ../src/mainwindow.cpp:317
-#: ../src/mainwindow.cpp:755
+#: ../src/mainwindow.cpp:753
msgctxt "MainWindow|"
msgid "Error while loading plugin."
msgstr "Ошибка при загрузке плагина."
@@ -280,63 +280,63 @@
"При запуске приложения обнаружена ошибка.\n"
"Заявка будет закрыта."
-#: ../src/mainwindow.cpp:461
-#: ../src/mainwindow.cpp:817
+#: ../src/mainwindow.cpp:460
+#: ../src/mainwindow.cpp:815
msgctxt "MainWindow|"
msgid "No connection to the internet."
msgstr "Нет подключения к Интернету."
-#: ../src/mainwindow.cpp:461
+#: ../src/mainwindow.cpp:460
msgctxt "MainWindow|"
msgid "Please check your internet connection."
msgstr "Пожалуйста, проверьте подключение к Интернету."
-#: ../src/mainwindow.cpp:740
+#: ../src/mainwindow.cpp:738
msgctxt "MainWindow|"
msgid "&Provider"
msgstr "&Поставщик"
-#: ../src/mainwindow.cpp:778
+#: ../src/mainwindow.cpp:776
msgctxt "MainWindow|"
msgid "&About this picture and license"
msgstr "&Об этой картинке и лицензии"
-#: ../src/mainwindow.cpp:782
+#: ../src/mainwindow.cpp:780
msgctxt "MainWindow|"
msgid "&About this picture and copyright"
msgstr "&Об этой фотографии и авторских правах"
-#: ../src/mainwindow.cpp:789
+#: ../src/mainwindow.cpp:787
msgctxt "MainWindow|"
msgid "&Download past pictures"
msgstr "&Скачать прошлые фотографии"
-#: ../src/mainwindow.cpp:793
+#: ../src/mainwindow.cpp:791
msgctxt "MainWindow|"
msgid "&Load stored picture"
msgstr "&Загрузить сохраненное изображение"
-#: ../src/mainwindow.cpp:796
+#: ../src/mainwindow.cpp:794
msgctxt "MainWindow|"
msgid "&Settings"
msgstr "&Параметры"
-#: ../src/mainwindow.cpp:799
+#: ../src/mainwindow.cpp:797
msgctxt "MainWindow|"
msgid "&About"
msgstr "&Около"
-#: ../src/mainwindow.cpp:802
+#: ../src/mainwindow.cpp:800
msgctxt "MainWindow|"
msgid "&Quit"
msgstr "&Покидать"
-#: ../src/mainwindow.cpp:876
+#: ../src/mainwindow.cpp:874
msgctxt "MainWindow|"
msgid "Description: \n"
msgstr "Описание картины: \n"
-#: ../src/mainwindow.cpp:1431
+#: ../src/mainwindow.cpp:1375
msgctxt "MainWindow|"
msgid "Load plugin..."
msgstr "Загрузить плагин..."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ultimatedailywallpaper-3.3.1/language/UltimateDailyWallpaper_uk.po new/ultimatedailywallpaper-3.3.2/language/UltimateDailyWallpaper_uk.po
--- old/ultimatedailywallpaper-3.3.1/language/UltimateDailyWallpaper_uk.po 2023-07-24 17:32:42.000000000 +0200
+++ new/ultimatedailywallpaper-3.3.2/language/UltimateDailyWallpaper_uk.po 2023-07-30 10:44:12.000000000 +0200
@@ -243,7 +243,7 @@
#: ../src/mainwindow.cpp:306
#: ../src/mainwindow.cpp:317
-#: ../src/mainwindow.cpp:755
+#: ../src/mainwindow.cpp:753
msgctxt "MainWindow|"
msgid "Error"
msgstr "Помилка"
@@ -254,19 +254,19 @@
msgstr "Плагінів не знайдено."
#: ../src/mainwindow.cpp:312
-#: ../src/mainwindow.cpp:750
+#: ../src/mainwindow.cpp:748
msgctxt "MainWindow|"
msgid "done."
msgstr "зроблено."
#: ../src/mainwindow.cpp:313
-#: ../src/mainwindow.cpp:751
+#: ../src/mainwindow.cpp:749
msgctxt "MainWindow|"
msgid "Used plugin: "
msgstr "Використовуваний плагін: "
#: ../src/mainwindow.cpp:317
-#: ../src/mainwindow.cpp:755
+#: ../src/mainwindow.cpp:753
msgctxt "MainWindow|"
msgid "Error while loading plugin."
msgstr "Помилка під час завантаження плагіна."
@@ -280,63 +280,63 @@
"An error was detected when starting the program.\n"
"The application will be closed."
-#: ../src/mainwindow.cpp:461
-#: ../src/mainwindow.cpp:817
+#: ../src/mainwindow.cpp:460
+#: ../src/mainwindow.cpp:815
msgctxt "MainWindow|"
msgid "No connection to the internet."
msgstr "Немає підключення до інтернету."
-#: ../src/mainwindow.cpp:461
+#: ../src/mainwindow.cpp:460
msgctxt "MainWindow|"
msgid "Please check your internet connection."
msgstr "Будь ласка, перевірте підключення до Інтернету."
-#: ../src/mainwindow.cpp:740
+#: ../src/mainwindow.cpp:738
msgctxt "MainWindow|"
msgid "&Provider"
msgstr "&Постачальника"
-#: ../src/mainwindow.cpp:778
+#: ../src/mainwindow.cpp:776
msgctxt "MainWindow|"
msgid "&About this picture and license"
msgstr "&Про цю картинку і ліцензію"
-#: ../src/mainwindow.cpp:782
+#: ../src/mainwindow.cpp:780
msgctxt "MainWindow|"
msgid "&About this picture and copyright"
msgstr "&Про цю картину і авторські права"
-#: ../src/mainwindow.cpp:789
+#: ../src/mainwindow.cpp:787
msgctxt "MainWindow|"
msgid "&Download past pictures"
msgstr "&Завантаження минулих зображень"
-#: ../src/mainwindow.cpp:793
+#: ../src/mainwindow.cpp:791
msgctxt "MainWindow|"
msgid "&Load stored picture"
msgstr "&Відкриття збереженого зображення"
-#: ../src/mainwindow.cpp:796
+#: ../src/mainwindow.cpp:794
msgctxt "MainWindow|"
msgid "&Settings"
msgstr "&Параметри"
-#: ../src/mainwindow.cpp:799
+#: ../src/mainwindow.cpp:797
msgctxt "MainWindow|"
msgid "&About"
msgstr "&Про"
-#: ../src/mainwindow.cpp:802
+#: ../src/mainwindow.cpp:800
msgctxt "MainWindow|"
msgid "&Quit"
msgstr "&Кинути"
-#: ../src/mainwindow.cpp:876
+#: ../src/mainwindow.cpp:874
msgctxt "MainWindow|"
msgid "Description: \n"
msgstr "Опис: \n"
-#: ../src/mainwindow.cpp:1431
+#: ../src/mainwindow.cpp:1375
msgctxt "MainWindow|"
msgid "Load plugin..."
msgstr "Запуск плагіна..."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ultimatedailywallpaper-3.3.1/rpmbuild/OBS_OpenSUSE/UltimateDailyWallpaper.changes new/ultimatedailywallpaper-3.3.2/rpmbuild/OBS_OpenSUSE/UltimateDailyWallpaper.changes
--- old/ultimatedailywallpaper-3.3.1/rpmbuild/OBS_OpenSUSE/UltimateDailyWallpaper.changes 2023-07-24 17:32:42.000000000 +0200
+++ new/ultimatedailywallpaper-3.3.2/rpmbuild/OBS_OpenSUSE/UltimateDailyWallpaper.changes 2023-07-30 10:44:12.000000000 +0200
@@ -1,4 +1,11 @@
-------------------------------------------------------------------
+Sun Jul 30 08:43:38 UTC 2023 - Patrice Coni <patrice.coni-dev(a)yandex.com>
+
+- Update to version 3.3.2
+ * Improvements in mainwindow.cpp
+ * Language files updated
+
+-------------------------------------------------------------------
Mon Jul 24 15:29:16 UTC 2023 - Patrice Coni <patrice.coni-dev(a)yandex.com>
- Update to version 3.3.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ultimatedailywallpaper-3.3.1/rpmbuild/OBS_OpenSUSE/UltimateDailyWallpaper.spec new/ultimatedailywallpaper-3.3.2/rpmbuild/OBS_OpenSUSE/UltimateDailyWallpaper.spec
--- old/ultimatedailywallpaper-3.3.1/rpmbuild/OBS_OpenSUSE/UltimateDailyWallpaper.spec 2023-07-24 17:32:42.000000000 +0200
+++ new/ultimatedailywallpaper-3.3.2/rpmbuild/OBS_OpenSUSE/UltimateDailyWallpaper.spec 2023-07-30 10:44:12.000000000 +0200
@@ -16,7 +16,7 @@
#
Name: UltimateDailyWallpaper
-Version: 3.3.1
+Version: 3.3.2
Release: 0
Summary: A wallpaper changer and downloader
License: GPL-3.0+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ultimatedailywallpaper-3.3.1/src/mainwindow.cpp new/ultimatedailywallpaper-3.3.2/src/mainwindow.cpp
--- old/ultimatedailywallpaper-3.3.1/src/mainwindow.cpp 2023-07-24 17:32:42.000000000 +0200
+++ new/ultimatedailywallpaper-3.3.2/src/mainwindow.cpp 2023-07-30 10:44:12.000000000 +0200
@@ -56,7 +56,7 @@
if (pMainWin->_needsRefreshAfterUnlock)
{
pMainWin->_needsRefreshAfterUnlock = false;
- pMainWin->update_all(false);
+ pMainWin->update_all();
}
}
#endif
@@ -442,13 +442,12 @@
no_autochange();
set_autochange();
- QString current_date=QDate::currentDate().toString("yyyyMMdd");
- if(_last_change==current_date)
+ if(same_date()==true)
{
- load_wallpaper(true, false);
+ load_wallpaper();
} else
{
- update_all(true);
+ update_all();
}
}
else
@@ -513,7 +512,7 @@
conn = QObject::connect(_autoChangeTimer, &QTimer::timeout, [this]()
{
- update_all(true);
+ update_all();
check_content();
// reset timer to avoid firing more than once.
@@ -621,10 +620,9 @@
basicinterface->get_picture(false, _picturedir, _applang, 0, 0, 0);
if(regular_request==false)
{
- QString current_date=QDate::currentDate().toString("yyyyMMdd");
- if(!(_last_change==current_date))
+ if(same_date()==false)
{
- update_all(true);
+ update_all();
}
}
}
@@ -727,7 +725,7 @@
{
submenuinterface->SubMenuFunction(submenuinterface->SubMenuEmitStrings().at(i));
load_settings();
- update_all(true);
+ update_all();
});
menu->addAction(action);
}
@@ -754,7 +752,7 @@
{
QMessageBox::critical(this, tr("Error"), tr("Error while loading plugin."));
}
- update_all(true);
+ update_all();
});
provider->addAction(action);
@@ -945,37 +943,32 @@
udw_db.setDatabaseName(_databaseFilePath);
udw_db.open();
- QStringList _commands;
-
- if(_get_last_record==false)
- {
- _commands << "SELECT description FROM udw_history WHERE "+where+"=\x27"+content+"\x27" <<
- "SELECT title FROM udw_history WHERE "+where+"=\x27"+content+"\x27" <<
- "SELECT provider FROM udw_history WHERE "+where+"=\x27"+content+"\x27" <<
- "SELECT filename FROM udw_history WHERE "+where+"=\x27"+content+"\x27" <<
- "SELECT thumb_filename FROM udw_history WHERE "+where+"=\x27"+content+"\x27" <<
- "SELECT size_width FROM udw_history WHERE "+where+"=\x27"+content+"\x27" <<
- "SELECT size_height FROM udw_history WHERE "+where+"=\x27"+content+"\x27" <<
- "SELECT browser_url FROM udw_history WHERE "+where+"=\x27"+content+"\x27" <<
- "SELECT copyright FROM udw_history WHERE "+where+"=\x27"+content+"\x27";
- } else
- {
- _commands << "SELECT description FROM udw_history WHERE provider=\x27"+provider+"\x27" <<
- "SELECT title FROM udw_history WHERE provider=\x27"+provider+"\x27" <<
- "SELECT provider FROM udw_history WHERE provider=\x27"+provider+"\x27" <<
- "SELECT filename FROM udw_history WHERE provider=\x27"+provider+"\x27" <<
- "SELECT thumb_filename FROM udw_history WHERE provider=\x27"+provider+"\x27" <<
- "SELECT size_width FROM udw_history WHERE provider=\x27"+provider+"\x27" <<
- "SELECT size_height FROM udw_history WHERE provider=\x27"+provider+"\x27" <<
- "SELECT browser_url FROM udw_history WHERE provider=\x27"+provider+"\x27" <<
- "SELECT copyright FROM udw_history WHERE provider=\x27"+provider+"\x27";
- }
+ QStringList _basiccommandlist={"SELECT description FROM udw_history WHERE",
+ "SELECT title FROM udw_history WHERE",
+ "SELECT provider FROM udw_history WHERE",
+ "SELECT filename FROM udw_history WHERE",
+ "SELECT thumb_filename FROM udw_history WHERE",
+ "SELECT size_width FROM udw_history WHERE",
+ "SELECT size_height FROM udw_history WHERE",
+ "SELECT browser_url FROM udw_history WHERE",
+ "SELECT copyright FROM udw_history WHERE"
+ };
_record_out.clear();
- for(int i=0; i<_commands.size();i++)
+ for(int i=0; i<_basiccommandlist.size();i++)
{
- if(udw_query.exec(_commands.at(i)))
+ QString sqlcommand;
+
+ if(_get_last_record==false)
+ {
+ sqlcommand.append(_basiccommandlist.at(i)+" "+where+"=\x27"+content+"\x27");
+ } else
+ {
+ sqlcommand.append(_basiccommandlist.at(i)+" "+"provider=\x27"+provider+"\x27");
+ }
+
+ if(udw_query.exec(sqlcommand))
{
while(udw_query.next())
{
@@ -990,68 +983,25 @@
return false;
}
- }
+ }
- if(_record_out.isEmpty())
- {
- return false;
- }
+ if(_record_out.isEmpty())
+ {
+ return false;
+ }
return true;
}
-void MainWindow::load_wallpaper(bool firstrun, bool needchange)
+void MainWindow::load_wallpaper()
{
if(_autochange==2)
{
- bool _newdate=false;
-
- QString current_date=QDate::currentDate().toString("yyyyMMdd");
- if(!(_last_change==current_date) || (firstrun==true))
- {
- _newdate=true;
- }
-
- if((needchange==true) || (_newdate==true))
+ emit _setWallpaper(_picturedir+"/"+_record_out.at(3), _used_desktop, _change_lockscreen_wallpaper);
+ change_filename(_record_out.at(3));
+ if(same_date()==false)
{
- /* Check if the current time is the same with
- * the configured time (hours and minutes) to
- * avoid changing the wallpaper in case of un-
- * expected firing of the timer.
- */
-
- if(needchange==true)
- {
- QString configured_hours=QString::number(_time_hours);
- if(configured_hours=="0")
- {
- configured_hours.clear();
- configured_hours.append("00");
- }
-
- QString configured_minutes=QString::number(_time_minutes);
- if(configured_minutes=="0")
- {
- configured_minutes.clear();
- configured_minutes.append("00");
- }
-
- QString current_time=QDateTime::currentDateTime().toString("yyyyMMddHHmm");
- QString configured_time=QDate::currentDate().toString("yyyyMMdd")+configured_hours+configured_minutes;
-
- if(current_time==configured_time)
- {
- emit _setWallpaper(_picturedir+"/"+_record_out.at(3), _used_desktop, _change_lockscreen_wallpaper);
- change_filename(_record_out.at(3));
- }
- }
-
- if(_newdate==true)
- {
- emit _setWallpaper(_picturedir+"/"+_record_out.at(3), _used_desktop, _change_lockscreen_wallpaper);
- change_date();
- change_filename(_record_out.at(3));
- }
+ change_date();
}
}
}
@@ -1238,7 +1188,7 @@
create_Menu();
}
-void MainWindow::update_all(bool forcechange)
+void MainWindow::update_all()
{
regular_request=true;
request_dl_wallpaper();
@@ -1246,13 +1196,7 @@
update_menu();
if(_autochange==2)
{
- if(forcechange==true)
- {
- load_wallpaper(true, false);
- } else
- {
- load_wallpaper(false, false);
- }
+ load_wallpaper();
}
_display_tooltip(_record_out.at(1), _record_out.at(0));
}
@@ -1506,3 +1450,18 @@
return false;
}
#endif
+
+bool MainWindow::same_date()
+{
+ _last_change.clear();
+ load_settings();
+ QString current_date=QDate::currentDate().toString("yyyyMMdd");
+ if(_last_change==current_date)
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ultimatedailywallpaper-3.3.1/src/mainwindow.h new/ultimatedailywallpaper-3.3.2/src/mainwindow.h
--- old/ultimatedailywallpaper-3.3.1/src/mainwindow.h 2023-07-24 17:32:42.000000000 +0200
+++ new/ultimatedailywallpaper-3.3.2/src/mainwindow.h 2023-07-30 10:44:12.000000000 +0200
@@ -171,15 +171,14 @@
QString thumbfile);
void create_Menu();
void create_Actions();
- void load_wallpaper(bool firstrun,
- bool needchange);
+ void load_wallpaper();
void change_provider(QString _selected_provider,
QString _plugin);
void change_applang(QString _lang);
void delete_old_pictures();
void delete_old_records();
void update_menu();
- void update_all(bool forcechange);
+ void update_all();
void show_photobrowser(int mode);
void detectPlugins();
void set_used_desktop(int parameter);
@@ -189,6 +188,7 @@
bool get_date_list();
bool create_filenamelist();
bool loadPlugin(QString _pluginfilename);
+ bool same_date();
#if defined(Q_OS_LINUX)
bool detect_pluginDir();
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ultimatedailywallpaper-3.3.1/src/src.pro new/ultimatedailywallpaper-3.3.2/src/src.pro
--- old/ultimatedailywallpaper-3.3.1/src/src.pro 2023-07-24 17:32:42.000000000 +0200
+++ new/ultimatedailywallpaper-3.3.2/src/src.pro 2023-07-30 10:44:12.000000000 +0200
@@ -15,7 +15,7 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#---------------------------------------------------
-VERSION = 3.3.1
+VERSION = 3.3.2
DEFINES += APP_VERSION=\\\"$$VERSION\\\"
QT += core gui network xml concurrent sql
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ultimatedailywallpaper-3.3.1/update_languagefiles.sh new/ultimatedailywallpaper-3.3.2/update_languagefiles.sh
--- old/ultimatedailywallpaper-3.3.1/update_languagefiles.sh 1970-01-01 01:00:00.000000000 +0100
+++ new/ultimatedailywallpaper-3.3.2/update_languagefiles.sh 2023-07-30 10:44:12.000000000 +0200
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+BASEPATH="$(pwd)"
+
+lupdate ${BASEPATH}/src/src.pro
+sed -i 's|'${BASEPATH}'/|../|g' ${BASEPATH}/language/*.po
+sed -i 's|'${BASEPATH}'/|../|g' ${BASEPATH}/language/*.pot
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package gnu_parallel for openSUSE:Factory checked in at 2023-07-30 20:57:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnu_parallel (Old)
and /work/SRC/openSUSE:Factory/.gnu_parallel.new.32662 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnu_parallel"
Sun Jul 30 20:57:57 2023 rev:87 rq:1101343 version:20230722
Changes:
--------
--- /work/SRC/openSUSE:Factory/gnu_parallel/gnu_parallel.changes 2023-05-05 15:59:33.976869291 +0200
+++ /work/SRC/openSUSE:Factory/.gnu_parallel.new.32662/gnu_parallel.changes 2023-07-30 20:57:59.803299762 +0200
@@ -1,0 +2,8 @@
+Sat Jul 29 21:31:26 UTC 2023 - Dirk Müller <dmueller(a)suse.com>
+
+- update to 20230722:
+ * Time functions (e.g. yyyymmdd($secs) ) can now take secs
+ since epoch as argument.
+ * Bug fixes and man page updates.
+
+-------------------------------------------------------------------
Old:
----
parallel-20230422.tar.bz2
parallel-20230422.tar.bz2.sig
New:
----
parallel-20230722.tar.bz2
parallel-20230722.tar.bz2.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnu_parallel.spec ++++++
--- /var/tmp/diff_new_pack.pAcfyP/_old 2023-07-30 20:58:01.147307742 +0200
+++ /var/tmp/diff_new_pack.pAcfyP/_new 2023-07-30 20:58:01.151307765 +0200
@@ -17,7 +17,7 @@
Name: gnu_parallel
-Version: 20230422
+Version: 20230722
Release: 0
Summary: Shell tool for executing jobs in parallel
License: GPL-3.0-or-later
++++++ parallel-20230422.tar.bz2 -> parallel-20230722.tar.bz2 ++++++
++++ 5571 lines of diff (skipped)
++++++ parallel-20230422.tar.bz2.sig -> parallel-20230722.tar.bz2.sig ++++++
--- /work/SRC/openSUSE:Factory/gnu_parallel/parallel-20230422.tar.bz2.sig 2023-05-05 15:59:34.076869865 +0200
+++ /work/SRC/openSUSE:Factory/.gnu_parallel.new.32662/parallel-20230722.tar.bz2.sig 2023-07-30 20:57:59.883300237 +0200
@@ -2,7 +2,7 @@
# To check the signature run:
# echo | gpg
-# gpg --auto-key-locate keyserver --keyserver-options auto-key-retrieve parallel-20230422.tar.bz2.sig
+# gpg --auto-key-locate keyserver --keyserver-options auto-key-retrieve parallel-20230722.tar.bz2.sig
echo | gpg 2>/dev/null
gpg --auto-key-locate keyserver --keyserver-options auto-key-retrieve $0
@@ -10,32 +10,32 @@
-----BEGIN PGP SIGNATURE-----
-iQUHBAABCgAdFiEEzaAaQgjE90UGEH570atFFoiIiIgFAmREO9AACgkQ0atFFoiI
-iIihFSagiig343emvzaeHTVbNmpPGqdhlMmdGvR/Af25IWK93LGCAv8d+lnbtOOQ
-D3LaDeJYzKAk8V2OrnpMxmtp8ZYFpHbdsupDcFH6M41nhq5ygugU1O1txHmfAN83
-izO2tCYnnrgcdwYS4Kl3oDg0NVmGPJOwNfV15DhmyWNM4GMWzTd1Ozn1nRbwjeqD
-dSv4ZqkOpc6IuuLNpqWyEF4ULPBTIA0wq3/h8C7pgkPPV2W532OAAatqCTYP5Wxa
-FiBiknFEpXq2z8IB3HW0hTpYI+6lCl9MU4kTP2OSShg2CDNIBWk+aD1VZfRUPzNQ
-oYrk/1U7V0WiT9slsn6xDTgbdAVaq9yje/hx6hGJ/4v8EdY3XhffCEZ1+rUUlfKI
-pq5NaL/l+8Nrp7mfXTUXGa8G+fMd2jv7xe4HrhRSOq+v3zKs87iccII5NhmUpKKJ
-Wk26l7amA1Mx1uq1TPZCQgJacqIFtCiHBp2468geqHNqEtJ53+I52U+FjqvehCmR
-wUVg16GKByOWkEs+/s5znWoL2XbHGH6jMFC1QV0oNUfHYcuetdV6zko4VvuNR46f
-hHNVOCfl/m4dQFE2daCP2uxAdtwjanVaczCNr1mdeniJYaur0MHGgKrmZw8XFrdi
-2wznz2c9ZgSpjxakfkoxDqXcLqJxV1yoInQof1FlsAxFF5CRfEfTbAfoWZKhtJ0A
-Mo333RlWXkTBsmDRQcdLJtmEMA57ztre1ruf5G3NRA6SBXB+V2nF0Z6IyLxgm5tB
-C7M1enXnOT+frPOXzu7clelQea7AmMhEB4AZHSOm5/GOcfV5idb1FVwmdcmx+vPY
-dzaK+Y5AD6dHXCTo8fxGN9J3xxE+1ebvtj/dgQ+Me/FOPCz4EbXtJVVBk/adPLTy
-FZDh+HL/gX8Q5tTlXBsZm9CY/b/YrNSFh2Qj3gMHlwRuP0PB8v4MjQt106nNz2iK
-btTBjjt0Z0s5+D+7hVMXz5rzcKvF+DTL2d4ioty+1SVqeyqVv0afxF1YL989YCk3
-pSsneskhHdPXjQeAyX4M/M7ZDKczcTnfDwVW5neHlXgPFKNySKLsz9uWb4JtqKM6
-UeYvjZV25LRjSzrk9fwbJkiNt1u3+IWOlptlP5oTu6mSjTVW0+LOjJe6/QhBB6Ex
-EKrTEHSaC3B4Fi/UexK/scLXF8JKIBmikp5zwiPB/lfv/SIKoyC6H2w+MbhhVzOp
-HYIVSKZchThn80E0O20u9P2qZCeSDJulwlh0gjFz3TUoOmYhilJTBnpIfbZD36kF
-z9UQfqet8oL20FACcQSerFQ4DIiF+e3CUvzMTdpi+HWBdY5CFwMuOvRR+TnHmzKK
-HkdmAK60mvME0Zl/n8yApFTnx4lEbHfaRKc7nYDevitR1LhdYCNS7A5I/+O2EwE9
-/aglkrdpweEkKz2m+BYmMkj4w+ibHf3Ee8Ke/mpg6nOzfsn9g8ZtHUeTw5FtB90I
-9OWVvKIgLrwexiAciTnk8s40VNYmxfrkUk8+/1NjSLKuhstt58QMlDlKtEZk3K57
-SH0vFhk3CW/6/0fyZmOit75fNd4F2VwuLmVuWAkJPZnJyWknSuvRdyCC1DEUg0ov
-n01sPZ/t6o4zS7tsKh7sgDHnpi1eyAHRtDzunpLnbmODIhJBd6mg4x5b
-=xxMU
+iQUHBAABCgAdFiEEzaAaQgjE90UGEH570atFFoiIiIgFAmS9E/EACgkQ0atFFoiI
+iIhUnyagy5iptRe44f7yOtzktf7FpdxTADoGIxRIR9kHUH1UlPAm/qKPvnXhN4HB
+ZF2K3knspuIz2UWLhnPO2DHcEoqIwt8+BB3c0g5A6qQSZDfW04FuvvBGD0VeKrLS
+XGAb8hDfy9UnUxKvBNjRLH9N3Cp1bbnaoMzHWW3O+teuzeQA8vih6ueAB6hbFgRa
+LuO17c1mrPKLACSsxXcK6mbsrDlag1VilmsRmjyRf6fqFzchMjhzRvYPwfHWAz1m
+OAL/47lmjRmXtrl6SwsZXnpCyY1J8fsL49vcjHUAOe1k/I7pmEm6IwcYz3JVlOoo
+Z5bu6oitF4qg3o2NF9q4q5ZR+r+dnV3PoLs/6PHV9qQxU8u+Uhyuj/o1P2/5HoNj
+ved4N+ijlVzJA0ltySzKvR8ZAQYn41ecAgFT8K5qOnglK4Q++HnRMAutdKACCsiW
+bBZZIwGt24emEDaIBWIVQ7jdbj5yaKAF3iLsek4nVXKzqyU1fXMSrCKdeSMNC4MI
+m38AtXrcyOhrUgJRAILGCnT44Kj5/A1T5r6tkHV87FVDD5MgkiaTLLN/H4jZ+EgK
+Eawv6JKm6xgKbKs4F+um1o2XuXt2f2dVKlKoyY8pgvi97rKa69EiR3ZxtyzmE5LI
+7cru6WQ3hUIM+PyVv78X5MxJWNqcXhXfiTjYWHh5DGfWr+/HjhOImgqdg5GInFbf
+fIwBUrfo+cSWlalo0wxYGgP0//zc1CscZ9x0cvTQYSYhynRSIf4PP7UMwkebThLL
+d59mPh/sAWCf69bCbmLi4ylU0r5RPSweSHlm4Z5Q+whX7F4oewPdW8oGgdahRpxm
+xgjHFHgDRGfHjLHgRH2GQm8OUaqdiovA1SFYTFqCsb/HFYPbrUniGlxlMGk7W4Z6
+wEPwe/vkOmUOVTWCsSLi+lrULCAzkVsWB27XNRdR5ocKEDlhTVaYoe9+NUlaKYSz
+3+k040UG5YuOaqOBEmn1bkpHuHHt0MU3I92atUFByNDtd3sef4UYzWnlbv55HekQ
+XcwAmau2B32Q8yz+y6zE6FUQr5LiYY1PnzQVe348OTYjXcpU/gh5jZ7yAFRQQZ2j
+/RAjaC+3EbydVYsKadDLzvABW7SzDXEC3fgUXBiFkvlJiiB1s2VMZeS5LVryncoo
+IZ7TACoXyMwd8dCuSFveZUv0hzWY9VZNOP4gajkYBB75o+wAXSseOjWrr9lgyjw4
+MXW3INgptw8iD98QcCfG4NI1qbCbZpocpdBPbXoc3EM/hKBoFqPk/3MS98a+rjiw
+b/SxCdv8rmbY36jcVaeTc4RI5rR4wG9XvH8aZs6kHrWutJ6dAPuhJ708fE0lttVd
+pWxHbSCcpf6T8KrKMuNvIQxJPkHZfMuERprQ+VN4fJwWKQIkfJGAqv9FtCDBxt3r
+LCnm6TvTV/+Rft8Mpd3eHRhKygOxSN1GBRRG68wqHqdjgH6pwmmqxj/p8Qy6tZJR
+BoZG4qL9clHLtpp6GW9dyoOG9lenST9pFd6Xku838WkenHwy5Gb+HDH4clQQJ9Wj
+RVyApGmNNjwbrH5NSiPdmG8PUbBniGb1FWCXD1me9Mn7fdc16RBKlAsqTkWQmYq6
+Aj5PzRBiSPmox1UrNun//tvnvWjw0mktTdc91W3S4SfuBT0GCy8Oy8T+
+=N6Gs
-----END PGP SIGNATURE-----
++++++ parallel-remove-nag-screen.patch ++++++
--- /var/tmp/diff_new_pack.pAcfyP/_old 2023-07-30 20:58:01.983312705 +0200
+++ /var/tmp/diff_new_pack.pAcfyP/_new 2023-07-30 20:58:01.987312729 +0200
@@ -12,11 +12,11 @@
src/sem | 2 ++
2 files changed, 4 insertions(+)
-Index: parallel-20230322/src/parallel
+Index: parallel-20230722/src/parallel
===================================================================
---- parallel-20230322.orig/src/parallel
-+++ parallel-20230322/src/parallel
-@@ -2575,6 +2575,7 @@ sub parse_options(@) {
+--- parallel-20230722.orig/src/parallel
++++ parallel-20230722/src/parallel
+@@ -2604,6 +2604,7 @@ sub parse_options(@) {
# out, and if it works, you should post it on the email
# list. Ideas that will cost work and which have not been tested
# are, however, unlikely to be prioritized.
@@ -24,29 +24,29 @@
#
# Please note that GPL version 3 gives you the right to fork GNU
# Parallel under a new name, but it does not give you the right to
-@@ -2614,6 +2615,7 @@ sub parse_options(@) {
+@@ -2643,6 +2644,7 @@ sub parse_options(@) {
# accept to be added to a public hall of shame by removing the
- # line. That includes you, Andreas and George.
+ # line. That includes you, George and Andreas.
+}
parse_halt();
if($ENV{'PARALLEL_ENV'}) {
-Index: parallel-20230322/src/sem
+Index: parallel-20230722/src/sem
===================================================================
---- parallel-20230322.orig/src/sem
-+++ parallel-20230322/src/sem
-@@ -2600,6 +2600,7 @@ sub parse_options(@) {
+--- parallel-20230722.orig/src/sem
++++ parallel-20230722/src/sem
+@@ -2629,6 +2629,7 @@ sub parse_options(@) {
# runs. If that is too much trouble for you, why not use one of
# the alternatives instead?
# See a list in: 'man parallel_alternatives'
+ if (0) {
#
- # If you want GNU Parallel to be maintained in the future you
+ # If you want GNU Parallel to be maintained in the future, you
# should keep this line.
-@@ -2614,6 +2615,7 @@ sub parse_options(@) {
+@@ -2643,6 +2644,7 @@ sub parse_options(@) {
# accept to be added to a public hall of shame by removing the
- # line. That includes you, Andreas and George.
+ # line. That includes you, George and Andreas.
+}
parse_halt();
1
0