| /* |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| #include "notification.h" |
| |
| #include <QApplication> |
| |
| void Dialogs::beep(int scId, int ecId, int times) { |
| Q_UNUSED(scId) |
| Q_UNUSED(ecId) |
| Q_UNUSED(times) |
| |
| _player.setVolume(100); |
| _player.setMedia(QUrl::fromLocalFile("/usr/share/sounds/ubuntu/stereo/bell.ogg")); |
| _player.play(); |
| } |
| |
| void Dialogs::alert(int scId, int ecId, const QString &message, const QString &title, const QString &buttonLabel) { |
| QStringList list; |
| list.append(buttonLabel); |
| |
| confirm(scId, ecId, message, title, list); |
| } |
| |
| void Dialogs::confirm(int scId, int ecId, const QString &message, const QString &title, const QStringList &buttonLabels) { |
| Q_UNUSED(ecId); |
| |
| if (_alertCallback) { |
| qCritical() << "can't open second dialog"; |
| return; |
| } |
| _alertCallback = scId; |
| |
| QString s1, s2, s3; |
| if (buttonLabels.size() > 0) |
| s1 = buttonLabels[0]; |
| if (buttonLabels.size() > 1) |
| s2 = buttonLabels[1]; |
| if (buttonLabels.size() > 2) |
| s3 = buttonLabels[2]; |
| |
| QString path = m_cordova->get_app_dir() + "/../qml/notification.qml"; |
| QString qml = QString("PopupUtils.open(%1, root, { root: root, cordova: cordova, title: %2, text: %3, promptVisible: false, button1Text: %4, button2Text: %5, button3Text: %6 })") |
| .arg(CordovaInternal::format(path)).arg(CordovaInternal::format(title)).arg(CordovaInternal::format(message)) |
| .arg(CordovaInternal::format(s1)).arg(CordovaInternal::format(s2)).arg(CordovaInternal::format(s3)); |
| |
| m_cordova->execQML(qml); |
| } |
| |
| void Dialogs::prompt(int scId, int ecId, const QString &message, const QString &title, const QStringList &buttonLabels, const QString &defaultText) { |
| Q_UNUSED(ecId); |
| |
| if (_alertCallback) { |
| qCritical() << "can't open second dialog"; |
| return; |
| } |
| _alertCallback = scId; |
| |
| QString s1, s2, s3; |
| if (buttonLabels.size() > 0) |
| s1 = buttonLabels[0]; |
| if (buttonLabels.size() > 1) |
| s2 = buttonLabels[1]; |
| if (buttonLabels.size() > 2) |
| s3 = buttonLabels[2]; |
| QString path = m_cordova->get_app_dir() + "/../qml/notification.qml"; |
| QString qml = QString("PopupUtils.open(%1, root, { root: root, cordova: cordova, title: %2, text: %3, promptVisible: true, defaultPromptText: %7, button1Text: %4, button2Text: %5, button3Text: %6 })") |
| .arg(CordovaInternal::format(path)).arg(CordovaInternal::format(title)).arg(CordovaInternal::format(message)) |
| .arg(CordovaInternal::format(s1)).arg(CordovaInternal::format(s2)) |
| .arg(CordovaInternal::format(s3)).arg(CordovaInternal::format(defaultText)); |
| |
| m_cordova->execQML(qml); |
| } |