Show factorized number as simple fraction by default; Expression status tooltip tweaks; Fix compatibility with Qt < 5.7; Update translations; Increment version number

This commit is contained in:
Hanna K. 2024-05-06 08:13:59 +02:00
parent 837dd0fff3
commit 335a3982cd
19 changed files with 7914 additions and 7603 deletions

2
README
View File

@ -12,7 +12,7 @@ Qt, and CLI).
1. Requirements
* Qt5 (>= 5.6) or Qt6
* libqalculate (>= 5.0.0)
* libqalculate (>= 5.1.0)
2. Installation

View File

@ -6,7 +6,7 @@ Qalculate! is a multi-purpose cross-platform desktop calculator. It is simple to
## Requirements
* Qt5 (>= 5.6) or Qt6
* libqalculate (>= 5.0.0)
* libqalculate (>= 5.1.0)
## Installation
Instructions and download links for installers, binaries packages, and the source code of released versions of Qalculate! are available at https://qalculate.github.io/downloads.html.

View File

@ -70,6 +70,30 @@
</provides>
<translation type="qt">qalculate-qt</translation>
<releases>
<release version="5.1.0" date="2024-05-06">
<description>
<p>Changes:</p>
<ul>
<li>Improved history list efficiency</li>
<li>Add two's complement input and binary bits to preferences</li>
<li>Ask for the desired interpretation the first time percent addition is used (e.g. 100 + 10% equals 110 or 100.1)</li>
<li>Hide expression tooltip (after 300 ms) when input resumes, if delayed expression status is enabled</li>
<li>Download button in dialog shown when new version is available, on Windows</li>
<li>Support for solving equations containing if() function</li>
<li>Support for solving root(a, x)=b (requires rational value for ln(a)/ln(b))</li>
<li>New functions: powertower() and multiples()</li>
<li>New units for solar radius, mass, and luminosity</li>
<li>Use parentheses for exponent using scientific notation (with power of 10)</li>
<li>Support integer factorization of integers in matrix/vector, and of numerator and denominator in rational number</li>
<li>Relaxed conditions for (x^a)^b = x^(a × b) and x^a × x^b = x^(a + b) when complex numbers are deactivated (fixes segfaults)</li>
<li>Fix AltGr for input of operators on Windows</li>
<li>Fix (ax + n)^2 > 1, where n is even and a is not 1, returning false</li>
<li>Fix setbits() function</li>
<li>Fix Number::equals(0, ..., true) when number is infinite (affects replace() function)</li>
<li>Minor bug fixes and feature enhancements</li>
</ul>
</description>
</release>
<release version="5.0.0" date="2024-03-11">
<description>
<p>Changes:</p>

View File

@ -1,4 +1,4 @@
VERSION = 5.0.0
VERSION = 5.1.0
isEmpty(PREFIX) {
PREFIX = /usr/local
}

View File

@ -1,6 +1,6 @@
name: qalculate-qt
title: Qalculate! (Qt)
version: '5.0.0'
version: '5.1.0'
license: GPL-2.0+
summary: The ultimate desktop calculator
description: |
@ -42,7 +42,7 @@ apps:
parts:
libqalculate:
source: https://github.com/Qalculate/libqalculate.git
source-tag: v5.0.0
source-tag: v5.1.0
source-depth: 1
plugin: autotools
build-environment:
@ -77,8 +77,8 @@ parts:
- -usr/share/lintian
qalculate-qt:
source: https://github.com/Qalculate/qalculate-qt/releases/download/v5.0.0/qalculate-qt-5.0.0.tar.gz
source-checksum: sha512/8ad34952004ab46582642db685242a9922fd63db13256feaf70fdf2ea413f77b49fd4a65a860a19e2db6eea9215d237873da4f59b2e0dc00827fcaca90ac6de7
source: https://github.com/Qalculate/qalculate-qt/releases/download/v5.1.0/qalculate-qt-5.1.0.tar.gz
source-checksum: sha512/1400094786aa4c63dda1153f1a154bca9ff39407c36f88fd101338fc82a9e97eea919f30ee8abe2a315705c45c67778ac94661c3c009034b25f4de88dac4fa74
plugin: qmake
build-snaps:
- kde-frameworks-5-core18-sdk

View File

@ -162,7 +162,7 @@ void ExpressionTipLabel::resizeEvent(QResizeEvent *e) {
}
ExpressionTipLabel::~ExpressionTipLabel() {}
void ExpressionTipLabel::hideTip() {
if(!hideTimer.isActive()) hideTimer.start(300, this);
if(isVisible() && !hideTimer.isActive()) hideTimer.start(300, this);
}
void ExpressionTipLabel::hideTipImmediately() {
hide();
@ -2108,7 +2108,7 @@ void ExpressionEdit::setStatusText(const QString &text, bool is_expression) {
current_status_text = text;
current_status_is_expression = is_expression;
if(settings->expression_status_delay > 0) {
if(tipLabel && tipLabel->isVisible()) tipLabel->hideTip();
if(tipLabel) tipLabel->hideTip();
if(!toolTipTimer) {
toolTipTimer = new QTimer(this);
toolTipTimer->setSingleShot(true);
@ -2728,6 +2728,7 @@ void ExpressionEdit::onTextChanged() {
previous_pos = textCursor().position();
tabbed_index = -1;
if(completionTimer) completionTimer->stop();
if(tipLabel && settings->expression_status_delay > 0) tipLabel->hideTip();
if(block_text_change) return;
if(expression_undo_buffer.isEmpty() || str != expression_undo_buffer.last()) {
if(expression_undo_buffer.isEmpty()) {
@ -3103,6 +3104,7 @@ void ExpressionEdit::onCursorPositionChanged() {
tabbed_index = -1;
if(completionTimer) completionTimer->stop();
if(toolTipTimer) toolTipTimer->stop();
if(tipLabel && settings->expression_status_delay > 0) tipLabel->hideTip();
if(block_text_change) return;
cursor_has_moved = true;
int epos = document()->characterCount() - 1 - textCursor().position();

View File

@ -57,8 +57,10 @@ int main(int argc, char **argv) {
app.setApplicationName("qalculate-qt");
app.setApplicationDisplayName("Qalculate!");
app.setOrganizationName("qalculate");
#if (QT_VERSION >= QT_VERSION_CHECK(5, 7, 0))
app.setDesktopFileName("io.github.Qalculate.qalculate-qt");
app.setApplicationVersion("5.0.0");
#endif
app.setApplicationVersion("5.1.0");
#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
app.setAttribute(Qt::AA_UseHighDpiPixmaps);
#endif

View File

@ -1002,7 +1002,7 @@ void QalculateQtSettings::loadPreferences() {
max_plot_time = 5;
preferences_version[0] = 5;
preferences_version[1] = 0;
preferences_version[1] = 1;
preferences_version[2] = 0;
if(file) {

View File

@ -5587,10 +5587,12 @@ void QalculateWindow::calculateExpression(bool force, bool do_mathoperation, Mat
if(do_stack && stack_index != 0) {
MathStructure *save_mstruct = mstruct;
mstruct = CALCULATOR->getRPNRegister(stack_index + 1);
if(do_factors && (mstruct->isNumber() || mstruct->isVector()) && to_fraction == 0 && to_fixed_fraction < 2) to_fraction = 2;
executeCommand(do_pfe ? COMMAND_EXPAND_PARTIAL_FRACTIONS : (do_expand ? COMMAND_EXPAND : COMMAND_FACTORIZE), false);
mstruct = save_mstruct;
} else {
if(do_factors && mstruct->isInteger() && !parsed_mstruct->isNumber()) prepend_mstruct = *mstruct;
if(do_factors && (mstruct->isNumber() || mstruct->isVector()) && to_fraction == 0 && to_fixed_fraction < 2) to_fraction = 2;
executeCommand(do_pfe ? COMMAND_EXPAND_PARTIAL_FRACTIONS : (do_expand ? COMMAND_EXPAND : COMMAND_FACTORIZE), false);
if(!prepend_mstruct.isUndefined() && mstruct->isInteger()) prepend_mstruct.setUndefined();
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -2494,19 +2494,19 @@ Do you want to overwrite the function?</source>
</message>
<message>
<source>Binary two&apos;s complement representation</source>
<translation>Представление двоичных чисел с дополнительным кодом</translation>
<translation type="vanished">Представление двоичных чисел с дополнительным кодом</translation>
</message>
<message>
<source>Hexadecimal two&apos;s complement representation</source>
<translation>Представление шестнадцатеричных чисел с дополнительным кодом</translation>
<translation type="vanished">Представление шестнадцатеричных чисел с дополнительным кодом</translation>
</message>
<message>
<source>Use lower case letters in non-decimal numbers</source>
<translation>Использовать строчные буквы в недесятичных числах</translation>
<translation type="vanished">Использовать строчные буквы в недесятичных числах</translation>
</message>
<message>
<source>Spell out logical operators</source>
<translation>Изложить логично логические операции</translation>
<translation type="vanished">Изложить логично логические операции</translation>
</message>
<message>
<source>Preferences</source>
@ -2519,35 +2519,35 @@ Do you want to overwrite the function?</source>
</message>
<message>
<source>Use dot as multiplication sign</source>
<translation>Использовать точку как знак умножения</translation>
<translation type="vanished">Использовать точку как знак умножения</translation>
</message>
<message>
<source>Use Unicode division slash in output</source>
<translation>Использовать косую черту деления Юнокода в выводе</translation>
<translation type="vanished">Использовать косую черту деления Юнокода в выводе</translation>
</message>
<message>
<source>Use E-notation instead of 10^n</source>
<translation>Использовать E-нотацию вместо 10^n</translation>
<translation type="vanished">Использовать E-нотацию вместо 10^n</translation>
</message>
<message>
<source>Use &apos;j&apos; as imaginary unit</source>
<translation>Использовать «j» для мнимой единицы</translation>
<translation type="vanished">Использовать «j» для мнимой единицы</translation>
</message>
<message>
<source>Use comma as decimal separator</source>
<translation>Использовать запятую в качестве десятичного разделителя</translation>
<translation type="vanished">Использовать запятую в качестве десятичного разделителя</translation>
</message>
<message>
<source>Ignore comma in numbers</source>
<translation>Игнорировать запятую в числах</translation>
<translation type="vanished">Игнорировать запятую в числах</translation>
</message>
<message>
<source>Ignore dots in numbers</source>
<translation>Игнорировать точки в числах</translation>
<translation type="vanished">Игнорировать точки в числах</translation>
</message>
<message>
<source>Copy unformatted ASCII by default</source>
<translation>Копировать неформатированный ASCII по умолчанию</translation>
<translation type="vanished">Копировать неформатированный ASCII по умолчанию</translation>
</message>
<message>
<source>Round halfway numbers away from zero</source>
@ -2559,7 +2559,7 @@ Do you want to overwrite the function?</source>
</message>
<message>
<source>Indicate repeating decimals</source>
<translation>Указывать повторяющиеся десятичные дроби</translation>
<translation type="vanished">Указывать повторяющиеся десятичные дроби</translation>
</message>
<message>
<source>Use caret for bitwise XOR</source>
@ -2755,7 +2755,7 @@ Do you want to overwrite the function?</source>
</message>
<message>
<source>Use special duodecimal symbols</source>
<translation>Использовать специальные двенадцатеричные символы</translation>
<translation type="vanished">Использовать специальные двенадцатеричные символы</translation>
</message>
<message>
<source>Language:</source>
@ -2849,6 +2849,30 @@ Do you want to overwrite the function?</source>
<source>Round down</source>
<translation>Округлять вниз</translation>
</message>
<message>
<source>Two&apos;s complement output:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Two&apos;s complement input:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Binary</source>
<translation type="unfinished">Двоичное</translation>
</message>
<message>
<source>Hexadecimal</source>
<translation type="unfinished">Шестнадцатеричное</translation>
</message>
<message>
<source>Binary bits:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Automatic</source>
<translation type="unfinished">Автоматическое</translation>
</message>
</context>
<context>
<name>QApplication</name>
@ -3469,6 +3493,10 @@ You can get version %3 at %2.</source>
<source>Open variables menu</source>
<translation>Открыть меню переменных</translation>
</message>
<message>
<source>Download</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QalculateTranslator</name>
@ -4452,6 +4480,22 @@ Do you wish to replace the current action (%1)?</source>
<source>decimals</source>
<translation>десятичные дроби</translation>
</message>
<message>
<source>Percentage Interpretation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please select interpretation of percentage addition</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add percentage of original value</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add percentage multiplied by 1/100</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UnitEditDialog</name>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff