40
qml/main.qml
40
qml/main.qml
@@ -126,12 +126,6 @@ Kirigami.ApplicationWindow {
|
|||||||
showPassiveNotification(i18n("Warning: %1", message));
|
showPassiveNotification(i18n("Warning: %1", message));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function onOpenLink(url) {
|
|
||||||
openLinkConfirmationComponent.createObject(QQC2.ApplicationWindow.overlay, {
|
|
||||||
url: url,
|
|
||||||
}).open();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function pushReplaceLayer(page, args) {
|
function pushReplaceLayer(page, args) {
|
||||||
@@ -376,38 +370,4 @@ Kirigami.ApplicationWindow {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Component {
|
|
||||||
id: openLinkConfirmationComponent
|
|
||||||
|
|
||||||
Kirigami.OverlaySheet {
|
|
||||||
id: openLinkConfirmation
|
|
||||||
required property var url;
|
|
||||||
|
|
||||||
header: Kirigami.Heading {
|
|
||||||
text: i18n("Confirm opening a link")
|
|
||||||
}
|
|
||||||
parent: QQC2.ApplicationWindow.overlay
|
|
||||||
contentItem: ColumnLayout {
|
|
||||||
QQC2.Label {
|
|
||||||
text: i18n("Do you want to open the link to %1?", `<a href='${url}'>${url}</a>`)
|
|
||||||
wrapMode: Text.WordWrap
|
|
||||||
}
|
|
||||||
QQC2.CheckBox {
|
|
||||||
id: dontAskAgain
|
|
||||||
text: i18n("Don't ask again")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
footer: QQC2.DialogButtonBox {
|
|
||||||
standardButtons: QQC2.DialogButtonBox.Ok | QQC2.DialogButtonBox.Cancel
|
|
||||||
onAccepted: {
|
|
||||||
Config.confirmLinksAction = !dontAskAgain.checked;
|
|
||||||
Config.save();
|
|
||||||
Qt.openUrlExternally(url);
|
|
||||||
openLinkConfirmation.close();
|
|
||||||
}
|
|
||||||
onRejected: openLinkConfirmation.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,10 +18,6 @@
|
|||||||
<label>Show notifications</label>
|
<label>Show notifications</label>
|
||||||
<default>true</default>
|
<default>true</default>
|
||||||
</entry>
|
</entry>
|
||||||
<entry name="ConfirmLinksAction" type="bool">
|
|
||||||
<label>Confirm link before opening them</label>
|
|
||||||
<default>true</default>
|
|
||||||
</entry>
|
|
||||||
<entry name="MergeRoomList" type="bool">
|
<entry name="MergeRoomList" type="bool">
|
||||||
<label>Merge Room Lists</label>
|
<label>Merge Room Lists</label>
|
||||||
<default>false</default>
|
<default>false</default>
|
||||||
|
|||||||
@@ -164,15 +164,9 @@ void RoomManager::joinRoom(Quotient::Connection *account,
|
|||||||
|
|
||||||
bool RoomManager::visitNonMatrix(const QUrl &url)
|
bool RoomManager::visitNonMatrix(const QUrl &url)
|
||||||
{
|
{
|
||||||
// Return true if the user cancels, treating it as an alternative normal
|
if (!QDesktopServices::openUrl(url)) {
|
||||||
// flow (rather than an abnormal flow when the navigation itself fails).
|
Q_EMIT warning(i18n("No application for the link"),
|
||||||
if (NeoChatConfig::self()->confirmLinksAction()) {
|
i18n("Your operating system could not find an application for the link."));
|
||||||
Q_EMIT openLink(url);
|
|
||||||
} else {
|
|
||||||
if (!QDesktopServices::openUrl(url)) {
|
|
||||||
Q_EMIT warning(i18n("No application for the link"),
|
|
||||||
i18n("Your operating system could not find an application for the link."));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -95,9 +95,6 @@ Q_SIGNALS:
|
|||||||
/// Displays warning to the user.
|
/// Displays warning to the user.
|
||||||
void warning(const QString &title, const QString &message);
|
void warning(const QString &title, const QString &message);
|
||||||
|
|
||||||
/// Ask user to open link and then open it.
|
|
||||||
void openLink(const QUrl &url);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
NeoChatRoom *m_currentRoom;
|
NeoChatRoom *m_currentRoom;
|
||||||
NeoChatRoom *m_lastCurrentRoom;
|
NeoChatRoom *m_lastCurrentRoom;
|
||||||
|
|||||||
Reference in New Issue
Block a user