mirror of
https://bitbucket.org/smil3y/katie.git
synced 2025-02-24 10:52:56 +00:00
parent
06fd9e9ec9
commit
c2fcbd64d3
1 changed files with 11 additions and 12 deletions
|
@ -182,22 +182,21 @@ void QSize::scale(const QSize &s, Qt::AspectRatioMode mode)
|
|||
if (mode == Qt::IgnoreAspectRatio || wd == 0 || ht == 0) {
|
||||
wd = s.wd;
|
||||
ht = s.ht;
|
||||
} else if (mode == Qt::KeepAspectRatio) {
|
||||
int rw = s.ht * wd / ht;
|
||||
if (rw <= s.wd) {
|
||||
wd = rw;
|
||||
ht = s.ht;
|
||||
} else {
|
||||
ht = s.wd * ht / wd;
|
||||
wd = s.wd;
|
||||
} else {
|
||||
bool useHeight;
|
||||
qint64 rw = qint64(s.ht) * qint64(wd) / qint64(ht);
|
||||
|
||||
if (mode == Qt::KeepAspectRatio) {
|
||||
useHeight = (rw <= s.wd);
|
||||
} else { // mode == Qt::KeepAspectRatioByExpanding
|
||||
useHeight = (rw >= s.wd);
|
||||
}
|
||||
} else { // mode == Qt::KeepAspectRatioByExpanding
|
||||
int rw = s.ht * wd / ht;
|
||||
if (rw >= s.wd) {
|
||||
|
||||
if (useHeight) {
|
||||
wd = rw;
|
||||
ht = s.ht;
|
||||
} else {
|
||||
ht = s.wd * ht / wd;
|
||||
ht = qint32(qint64(s.wd) * qint64(ht) / qint64(wd));
|
||||
wd = s.wd;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue