Ran qmlformat and make license
This commit is contained in:
parent
f2560b7531
commit
9ab1296131
@ -10,10 +10,10 @@ import im.nheko 1.0
|
|||||||
|
|
||||||
ApplicationWindow {
|
ApplicationWindow {
|
||||||
id: roomDirectoryWindow
|
id: roomDirectoryWindow
|
||||||
|
|
||||||
|
property RoomDirectoryModel publicRooms
|
||||||
|
|
||||||
visible: true
|
visible: true
|
||||||
|
|
||||||
property RoomDirectoryModel publicRooms : RoomDirectoryModel {}
|
|
||||||
|
|
||||||
x: MainWindow.x + (MainWindow.width / 2) - (width / 2)
|
x: MainWindow.x + (MainWindow.width / 2) - (width / 2)
|
||||||
y: MainWindow.y + (MainWindow.height / 2) - (height / 2)
|
y: MainWindow.y + (MainWindow.height / 2) - (height / 2)
|
||||||
minimumWidth: 650
|
minimumWidth: 650
|
||||||
@ -29,38 +29,12 @@ ApplicationWindow {
|
|||||||
onActivated: roomDirectoryWindow.close()
|
onActivated: roomDirectoryWindow.close()
|
||||||
}
|
}
|
||||||
|
|
||||||
header: RowLayout {
|
|
||||||
id: searchBarLayout
|
|
||||||
spacing: Nheko.paddingMedium
|
|
||||||
width: parent.width
|
|
||||||
|
|
||||||
implicitHeight: roomSearch.height
|
|
||||||
|
|
||||||
MatrixTextField {
|
|
||||||
id: roomSearch
|
|
||||||
|
|
||||||
Layout.fillWidth: true
|
|
||||||
selectByMouse: true
|
|
||||||
|
|
||||||
font.pixelSize: fontMetrics.font.pixelSize
|
|
||||||
padding: Nheko.paddingMedium
|
|
||||||
color: Nheko.colors.text
|
|
||||||
placeholderText: qsTr("Search for public rooms")
|
|
||||||
onTextChanged: searchTimer.restart()
|
|
||||||
}
|
|
||||||
|
|
||||||
Timer {
|
|
||||||
id: searchTimer
|
|
||||||
|
|
||||||
interval: 350
|
|
||||||
onTriggered: roomDirView.model.setSearchTerm(roomSearch.text)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ListView {
|
ListView {
|
||||||
id: roomDirView
|
id: roomDirView
|
||||||
|
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
model: publicRooms
|
model: publicRooms
|
||||||
|
|
||||||
delegate: Rectangle {
|
delegate: Rectangle {
|
||||||
id: roomDirDelegate
|
id: roomDirDelegate
|
||||||
|
|
||||||
@ -70,12 +44,10 @@ ApplicationWindow {
|
|||||||
property int avatarSize: fontMetrics.lineSpacing * 4
|
property int avatarSize: fontMetrics.lineSpacing * 4
|
||||||
|
|
||||||
color: background
|
color: background
|
||||||
|
|
||||||
height: avatarSize + 2.5 * Nheko.paddingMedium
|
height: avatarSize + 2.5 * Nheko.paddingMedium
|
||||||
width: ListView.view.width
|
width: ListView.view.width
|
||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
|
|
||||||
spacing: Nheko.paddingMedium
|
spacing: Nheko.paddingMedium
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
anchors.margins: Nheko.paddingMedium
|
anchors.margins: Nheko.paddingMedium
|
||||||
@ -103,6 +75,7 @@ ApplicationWindow {
|
|||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
id: roomNameRow
|
id: roomNameRow
|
||||||
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
spacing: 0
|
spacing: 0
|
||||||
|
|
||||||
@ -113,10 +86,12 @@ ApplicationWindow {
|
|||||||
font.pixelSize: fontMetrics.font.pixelSize * 1.1
|
font.pixelSize: fontMetrics.font.pixelSize * 1.1
|
||||||
fullText: model.name
|
fullText: model.name
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
id: roomDescriptionRow
|
id: roomDescriptionRow
|
||||||
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.preferredWidth: parent.width
|
Layout.preferredWidth: parent.width
|
||||||
spacing: Nheko.paddingSmall
|
spacing: Nheko.paddingSmall
|
||||||
@ -125,6 +100,7 @@ ApplicationWindow {
|
|||||||
|
|
||||||
Label {
|
Label {
|
||||||
id: roomTopic
|
id: roomTopic
|
||||||
|
|
||||||
color: roomDirDelegate.unimportantText
|
color: roomDirDelegate.unimportantText
|
||||||
font.weight: Font.Thin
|
font.weight: Font.Thin
|
||||||
Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft
|
Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft
|
||||||
@ -136,14 +112,17 @@ ApplicationWindow {
|
|||||||
verticalAlignment: Text.AlignVCenter
|
verticalAlignment: Text.AlignVCenter
|
||||||
wrapMode: Text.WordWrap
|
wrapMode: Text.WordWrap
|
||||||
}
|
}
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: numMembersRectangle
|
id: numMembersRectangle
|
||||||
|
|
||||||
Layout.fillWidth: false
|
Layout.fillWidth: false
|
||||||
Layout.margins: Nheko.paddingSmall
|
Layout.margins: Nheko.paddingSmall
|
||||||
width: roomCount.width
|
width: roomCount.width
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
id: roomCount
|
id: roomCount
|
||||||
|
|
||||||
color: roomDirDelegate.unimportantText
|
color: roomDirDelegate.unimportantText
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
Layout.fillWidth: false
|
Layout.fillWidth: false
|
||||||
@ -151,25 +130,34 @@ ApplicationWindow {
|
|||||||
font.pixelSize: fontMetrics.font.pixelSize
|
font.pixelSize: fontMetrics.font.pixelSize
|
||||||
text: model.numMembers.toString()
|
text: model.numMembers.toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: buttonRectangle
|
id: buttonRectangle
|
||||||
|
|
||||||
Layout.fillWidth: false
|
Layout.fillWidth: false
|
||||||
Layout.margins: Nheko.paddingSmall
|
Layout.margins: Nheko.paddingSmall
|
||||||
width: joinRoomButton.width
|
width: joinRoomButton.width
|
||||||
|
|
||||||
Button {
|
Button {
|
||||||
id: joinRoomButton
|
id: joinRoomButton
|
||||||
|
|
||||||
visible: publicRooms.canJoinRoom(model.roomid)
|
visible: publicRooms.canJoinRoom(model.roomid)
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
width: Math.ceil(0.1 * roomDirectoryWindow.width)
|
width: Math.ceil(0.1 * roomDirectoryWindow.width)
|
||||||
text: "Join"
|
text: "Join"
|
||||||
onClicked: publicRooms.joinRoom(model.index)
|
onClicked: publicRooms.joinRoom(model.index)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
footer: Item {
|
footer: Item {
|
||||||
@ -189,7 +177,40 @@ ApplicationWindow {
|
|||||||
foreground: Nheko.colors.mid
|
foreground: Nheko.colors.mid
|
||||||
z: 7
|
z: 7
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
publicRooms: RoomDirectoryModel {
|
||||||
|
}
|
||||||
|
|
||||||
|
header: RowLayout {
|
||||||
|
id: searchBarLayout
|
||||||
|
|
||||||
|
spacing: Nheko.paddingMedium
|
||||||
|
width: parent.width
|
||||||
|
implicitHeight: roomSearch.height
|
||||||
|
|
||||||
|
MatrixTextField {
|
||||||
|
id: roomSearch
|
||||||
|
|
||||||
|
Layout.fillWidth: true
|
||||||
|
selectByMouse: true
|
||||||
|
font.pixelSize: fontMetrics.font.pixelSize
|
||||||
|
padding: Nheko.paddingMedium
|
||||||
|
color: Nheko.colors.text
|
||||||
|
placeholderText: qsTr("Search for public rooms")
|
||||||
|
onTextChanged: searchTimer.restart()
|
||||||
|
}
|
||||||
|
|
||||||
|
Timer {
|
||||||
|
id: searchTimer
|
||||||
|
|
||||||
|
interval: 350
|
||||||
|
onTriggered: roomDirView.model.setSearchTerm(roomSearch.text)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -82,10 +82,10 @@ RoomDirectoryModel::getViasForRoom(const std::vector<std::string> &aliases)
|
|||||||
|
|
||||||
vias.reserve(aliases.size());
|
vias.reserve(aliases.size());
|
||||||
|
|
||||||
std::transform(
|
std::transform(aliases.begin(),
|
||||||
aliases.begin(), aliases.end(), std::back_inserter(vias), [](const auto &alias) {
|
aliases.end(),
|
||||||
return alias.substr(alias.find(":") + 1);
|
std::back_inserter(vias),
|
||||||
});
|
[](const auto &alias) { return alias.substr(alias.find(":") + 1); });
|
||||||
|
|
||||||
return vias;
|
return vias;
|
||||||
}
|
}
|
||||||
@ -126,7 +126,8 @@ RoomDirectoryModel::data(const QModelIndex &index, int role) const
|
|||||||
void
|
void
|
||||||
RoomDirectoryModel::fetchMore(const QModelIndex &)
|
RoomDirectoryModel::fetchMore(const QModelIndex &)
|
||||||
{
|
{
|
||||||
if (!canFetchMore_) return;
|
if (!canFetchMore_)
|
||||||
|
return;
|
||||||
|
|
||||||
nhlog::net()->debug("Fetching more rooms from mtxclient...");
|
nhlog::net()->debug("Fetching more rooms from mtxclient...");
|
||||||
|
|
||||||
@ -191,5 +192,5 @@ RoomDirectoryModel::displayRooms(std::vector<mtx::responses::PublicRoomsChunk> f
|
|||||||
|
|
||||||
prevBatch_ = next_batch;
|
prevBatch_ = next_batch;
|
||||||
|
|
||||||
nhlog::ui()->debug ("Finished loading rooms");
|
nhlog::ui()->debug("Finished loading rooms");
|
||||||
}
|
}
|
||||||
|
@ -27,8 +27,9 @@ class RoomDirectoryModel : public QAbstractListModel
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
Q_PROPERTY (bool loadingMoreRooms READ loadingMoreRooms NOTIFY loadingMoreRoomsChanged)
|
Q_PROPERTY(bool loadingMoreRooms READ loadingMoreRooms NOTIFY loadingMoreRoomsChanged)
|
||||||
Q_PROPERTY (bool reachedEndOfPagination READ reachedEndOfPagination NOTIFY reachedEndOfPaginationChanged)
|
Q_PROPERTY(bool reachedEndOfPagination READ reachedEndOfPagination NOTIFY
|
||||||
|
reachedEndOfPaginationChanged)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit RoomDirectoryModel(QObject *parent = nullptr, const std::string &s = "");
|
explicit RoomDirectoryModel(QObject *parent = nullptr, const std::string &s = "");
|
||||||
@ -52,10 +53,7 @@ public:
|
|||||||
return static_cast<int>(publicRoomsData_.size());
|
return static_cast<int>(publicRoomsData_.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
bool canFetchMore(const QModelIndex &) const override
|
bool canFetchMore(const QModelIndex &) const override { return canFetchMore_; }
|
||||||
{
|
|
||||||
return canFetchMore_;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool loadingMoreRooms() const { return loadingMoreRooms_; }
|
bool loadingMoreRooms() const { return loadingMoreRooms_; }
|
||||||
|
|
||||||
@ -85,9 +83,9 @@ private:
|
|||||||
std::string userSearchString_;
|
std::string userSearchString_;
|
||||||
std::string prevBatch_;
|
std::string prevBatch_;
|
||||||
std::string nextBatch_;
|
std::string nextBatch_;
|
||||||
bool canFetchMore_ {true};
|
bool canFetchMore_{true};
|
||||||
bool loadingMoreRooms_ {false};
|
bool loadingMoreRooms_{false};
|
||||||
bool reachedEndOfPagination_ {false};
|
bool reachedEndOfPagination_{false};
|
||||||
std::vector<mtx::responses::PublicRoomsChunk> publicRoomsData_;
|
std::vector<mtx::responses::PublicRoomsChunk> publicRoomsData_;
|
||||||
|
|
||||||
std::vector<std::string> getViasForRoom(const std::vector<std::string> &room);
|
std::vector<std::string> getViasForRoom(const std::vector<std::string> &room);
|
||||||
|
@ -286,8 +286,7 @@ TimelineViewManager::TimelineViewManager(CallManager *callManager, ChatPage *par
|
|||||||
"EmojiCategory",
|
"EmojiCategory",
|
||||||
"Error: Only enums");
|
"Error: Only enums");
|
||||||
|
|
||||||
qmlRegisterType<RoomDirectoryModel>(
|
qmlRegisterType<RoomDirectoryModel>("im.nheko", 1, 0, "RoomDirectoryModel");
|
||||||
"im.nheko", 1, 0, "RoomDirectoryModel");
|
|
||||||
|
|
||||||
#ifdef USE_QUICK_VIEW
|
#ifdef USE_QUICK_VIEW
|
||||||
view = new QQuickView(parent);
|
view = new QQuickView(parent);
|
||||||
|
Loading…
Reference in New Issue
Block a user