mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-15 08:31:57 -05:00
52 lines
1.5 KiB
C++
52 lines
1.5 KiB
C++
|
#ifndef DIRECTORY_NODE_HPP__
|
||
|
#define DIRECTORY_NODE_HPP__
|
||
|
|
||
|
#include <QTreeWidgetItem>
|
||
|
#include <QString>
|
||
|
|
||
|
//
|
||
|
// Tree widget item representing a file system directory.
|
||
|
//
|
||
|
// It renders the directory name in the first column and progress
|
||
|
// information in the 2nd column. The progress information consists of
|
||
|
// two 64 bit integer values, the 1st in the DisplayRole is the number
|
||
|
// of bytes received and the 2nd in the UserRole the total bytes
|
||
|
// expected. The progress information is not automatically
|
||
|
// maintained, see the Directory class for an example of how to
|
||
|
// dynamically maintain the DirectoryNode progress values. The 1st
|
||
|
// column also renders a tristate check box that controls the first
|
||
|
// column check boxes of child items.
|
||
|
//
|
||
|
class DirectoryNode final
|
||
|
: public QTreeWidgetItem
|
||
|
{
|
||
|
public:
|
||
|
explicit DirectoryNode (QTreeWidgetItem * parent, QString const& name)
|
||
|
: QTreeWidgetItem {parent, Type}
|
||
|
{
|
||
|
setFlags (flags () | Qt::ItemIsUserCheckable | Qt::ItemIsTristate);
|
||
|
setText (0, name);
|
||
|
setCheckState (0, Qt::Unchecked);
|
||
|
|
||
|
// initialize as empty, the owning QTreeWidget must maintain these
|
||
|
// progress values
|
||
|
setData (1, Qt::DisplayRole, 0ll); // progress in bytes
|
||
|
setData (1, Qt::UserRole, 0ll); // expected bytes
|
||
|
}
|
||
|
|
||
|
bool operator == (QString const& name) const
|
||
|
{
|
||
|
return name == text (0);
|
||
|
}
|
||
|
|
||
|
static int const Type {UserType};
|
||
|
};
|
||
|
|
||
|
inline
|
||
|
bool operator == (QString const& lhs, DirectoryNode const& rhs)
|
||
|
{
|
||
|
return rhs == lhs;
|
||
|
}
|
||
|
|
||
|
#endif
|