Files
transmission/qt/Utils.h
Charles Kerr 833e37dab5 build: bump Qt minimum to 5.15 (#7943)
* deps: bump QT_MINIMUM from 5.6 to 5.15

* chore: remove now-obsolete qt >= 5.8 checks

* chore: remove now-obsolete qt >= 5.14 checks
2025-12-18 07:39:25 -06:00

61 lines
1.6 KiB
C++

// This file Copyright © Mnemosyne LLC.
// It may be used under GPLv2 (SPDX: GPL-2.0-only), GPLv3 (SPDX: GPL-3.0-only),
// or any future license endorsed by Mnemosyne LLC.
// License text can be found in the licenses/ folder.
#pragma once
#include <utility>
#include <QPointer>
#include <QRect>
#include <QSpinBox>
#include <QString>
class QAbstractItemView;
class QColor;
class QHeaderView;
class QIcon;
class QModelIndex;
class Utils
{
public:
static QIcon getIconFromIndex(QModelIndex const& index);
static QString removeTrailingDirSeparator(QString const& path);
static void narrowRect(QRect& rect, int dx1, int dx2, Qt::LayoutDirection direction)
{
if (direction == Qt::RightToLeft)
{
qSwap(dx1, dx2);
}
rect.adjust(dx1, 0, -dx2, 0);
}
static int measureViewItem(QAbstractItemView const* view, QString const& text);
static int measureHeaderItem(QHeaderView const* view, QString const& text);
static QColor getFadedColor(QColor const& color);
template<typename DialogT, typename... ArgsT>
static void openDialog(QPointer<DialogT>& dialog, ArgsT&&... args)
{
if (dialog.isNull())
{
dialog = new DialogT{ std::forward<ArgsT>(args)... }; // NOLINT clang-analyzer-cplusplus.NewDelete
dialog->setAttribute(Qt::WA_DeleteOnClose);
dialog->show();
}
else
{
dialog->raise();
dialog->activateWindow();
}
}
static void updateSpinBoxFormat(QSpinBox* spinBox, char const* context, char const* format, QString const& placeholder);
};