mirror of
https://github.com/transmission/transmission.git
synced 2025-12-24 12:28:52 +00:00
There're places where manual intervention is still required as uncrustify is not ideal (unfortunately), but at least one may rely on it to do the right thing most of the time (e.g. when sending in a patch). The style itself is quite different from what we had before but making it uniform across all the codebase is the key. I also hope that it'll make the code more readable (YMMV) and less sensitive to further changes.
60 lines
1.0 KiB
C++
60 lines
1.0 KiB
C++
/*
|
|
* This file Copyright (C) 2014-2015 Mnemosyne LLC
|
|
*
|
|
* It may be used under the GNU GPL versions 2 or 3
|
|
* or any future license endorsed by Mnemosyne LLC.
|
|
*
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <QToolButton>
|
|
|
|
class PathButton : public QToolButton
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
enum Mode
|
|
{
|
|
DirectoryMode,
|
|
FileMode
|
|
};
|
|
|
|
public:
|
|
PathButton(QWidget* parent = nullptr);
|
|
|
|
void setMode(Mode mode);
|
|
void setTitle(const QString& title);
|
|
void setNameFilter(const QString& nameFilter);
|
|
|
|
void setPath(const QString& path);
|
|
const QString& path() const;
|
|
|
|
// QWidget
|
|
virtual QSize sizeHint() const;
|
|
|
|
signals:
|
|
void pathChanged(const QString& path);
|
|
|
|
protected:
|
|
// QWidget
|
|
virtual void paintEvent(QPaintEvent* event);
|
|
|
|
private:
|
|
void updateAppearance();
|
|
|
|
bool isDirMode() const;
|
|
QString effectiveTitle() const;
|
|
|
|
private slots:
|
|
void onClicked();
|
|
void onFileSelected(const QString& path);
|
|
|
|
private:
|
|
Mode myMode;
|
|
QString myTitle;
|
|
QString myNameFilter;
|
|
QString myPath;
|
|
};
|