diff options
author | 2021-05-30 22:04:28 +0530 | |
---|---|---|
committer | 2021-05-30 22:04:28 +0530 | |
commit | 84f120f133ba1b2ca7db2cf99010245ed1d94234 (patch) | |
tree | b74e0585cf144532b5a7d78e132794d54af312aa | |
parent | 6045235c1d9a2dfd91d593a9d62b2f5fa09b8c8c (diff) | |
download | whatsie-84f120f133ba1b2ca7db2cf99010245ed1d94234.tar.gz whatsie-84f120f133ba1b2ca7db2cf99010245ed1d94234.zip |
allow passing app arguments
-rwxr-xr-x | snap_launcher/bin/whatsie | bin | 1718656 -> 1723208 bytes | |||
-rw-r--r-- | snap_launcher/whatsie.desktop | 9 | ||||
-rw-r--r-- | src/main.cpp | 10 | ||||
-rw-r--r-- | src/mainwindow.cpp | 34 | ||||
-rw-r--r-- | src/mainwindow.h | 2 | ||||
-rw-r--r-- | src/settingswidget.cpp | 3 |
6 files changed, 39 insertions, 19 deletions
diff --git a/snap_launcher/bin/whatsie b/snap_launcher/bin/whatsie Binary files differindex e4ee637..259c5da 100755 --- a/snap_launcher/bin/whatsie +++ b/snap_launcher/bin/whatsie diff --git a/snap_launcher/whatsie.desktop b/snap_launcher/whatsie.desktop index 2eeac11..e5c9560 100644 --- a/snap_launcher/whatsie.desktop +++ b/snap_launcher/whatsie.desktop @@ -2,12 +2,13 @@ Version=1.0 GenericName=WhatSie Name[en_US]=WhatSie -Comment=Qt WhatsApp Client +Comment=Qt WhatsApp Web Client Name=WhatSie Type=Application Icon=${SNAP}/meta/gui/icon.png Keywords=WhatSie;WhatsApp -Exec=whatsie %F -Categories=Network;Qt; +Exec=whatsie %u +Categories=Chat;Network;InstantMessaging;Qt; +MimeType=x-scheme-handler/web.whatsapp.com;x-scheme-handler/http;x-scheme-handler/https; Terminal=false -StartupNotify=false +X-GNOME-UsesNotifications=true diff --git a/src/main.cpp b/src/main.cpp index 0a93f8e..ebb0623 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -16,7 +16,6 @@ int main(int argc, char *argv[]) { QApplication app(argc, argv); app.setWindowIcon(QIcon(":/icons/app/icon-256.png")); - //argv[argc++] = "--single-process"; QApplication::setAttribute(Qt::AA_EnableHighDpiScaling); static const char ENV_VAR_QT_DEVICE_PIXEL_RATIO[] = "QT_DEVICE_PIXEL_RATIO"; @@ -48,6 +47,15 @@ int main(int argc, char *argv[]) QWebEngineSettings::defaultSettings()->setAttribute(QWebEngineSettings::FullScreenSupportEnabled, true); MainWindow window; + + QStringList argsList = app.arguments(); + qWarning()<<"Launching with argument"<<argsList; + foreach (QString argStr, argsList) { + if(argStr.contains("http")){ + qWarning()<<"Link passed as argument"; + window.loadAppWithArgument(argsList.last()); + } + } window.show(); return app.exec(); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index d63b1d4..9219d6f 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -23,7 +23,7 @@ MainWindow::MainWindow(QWidget *parent) setWindowTitle(QApplication::applicationName()); setWindowIcon(QIcon(":/icons/app/icon-256.png")); - setMinimumWidth(800); + setMinimumWidth(500); setMinimumHeight(600); restoreGeometry(settings.value("geometry").toByteArray()); @@ -73,6 +73,12 @@ MainWindow::MainWindow(QWidget *parent) }); } +void MainWindow::loadAppWithArgument(const QString arg) +{ + qWarning()<<"Opening"<<arg; + this->webEngine->page()->load(QUrl(arg)); +} + void MainWindow::updatePageTheme() { QString webPageTheme = "web"; //implies light @@ -315,11 +321,10 @@ void MainWindow::closeEvent(QCloseEvent *event) { settings.setValue("geometry", saveGeometry()); settings.setValue("windowState", saveState()); - -// getPageTheme(); -// QTimer::singleShot(500,[=](){ -// qWarning()<<"THEME"<<settings.value("windowTheme").toString(); -// }); + getPageTheme(); + QTimer::singleShot(500,[=](){ + settingsWidget->refresh(); + }); if(QSystemTrayIcon::isSystemTrayAvailable() && settings.value("closeButtonActionCombo",0).toInt() == 0){ this->hide(); @@ -423,7 +428,7 @@ void MainWindow::createActions() void MainWindow::quitApp() { getPageTheme(); - QTimer::singleShot(800,[=](){ + QTimer::singleShot(500,[=](){ qWarning()<<"THEME"<<settings.value("windowTheme").toString(); qApp->quit(); }); @@ -439,6 +444,7 @@ void MainWindow::createTrayIcon() trayIconMenu->addAction(reloadAction); trayIconMenu->addAction(lockAction); trayIconMenu->addSeparator(); + trayIconMenu->addAction(openUrlAction); trayIconMenu->addAction(settingsAction); trayIconMenu->addAction(aboutAction); trayIconMenu->addSeparator(); @@ -843,20 +849,20 @@ void MainWindow::newChat() { bool ok; QString text = QInputDialog::getText(this, tr("New Chat"), - tr("Enter a valid WhatsApp number you want to chat with."), QLineEdit::Normal, + tr("Enter a valid WhatsApp number with country code (ex- +91XXXXXXXXXX)"), QLineEdit::Normal, "",&ok); - if (ok && isPhoneNumber(text)){ - qWarning()<<"Opening new Chat with"<<text; - this->webEngine->page()->load(QUrl("https://web.whatsapp.com/send?phone="+text)); - }else{ - QMessageBox::information(this,QApplication::applicationName()+"| Error", + if (ok){ + if(isPhoneNumber(text)) + this->webEngine->page()->load(QUrl("https://web.whatsapp.com/send?phone="+text)); + else + QMessageBox::information(this,QApplication::applicationName()+"| Error", "Invalid Phone Number"); } } bool MainWindow::isPhoneNumber(const QString phoneNumber) { - const QString phone = "^((\\+?(\\d{2}))\\s?)?((\\d{2})|(\\((\\d{2})\\))\\s?)?(\\d{3,15})(\\-(\\d{3,15}))?$"; + const QString phone = "^\\+(((\\d{2}))\\s?)?((\\d{2})|(\\((\\d{2})\\))\\s?)?(\\d{3,15})(\\-(\\d{3,15}))?$"; QRegularExpression reg(phone); return reg.match(phoneNumber).hasMatch(); } diff --git a/src/mainwindow.h b/src/mainwindow.h index a78bea0..f5c51b2 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -50,6 +50,8 @@ public slots: void handleWebViewTitleChanged(QString title); void handleLoadFinished(bool loaded); void handleDownloadRequested(QWebEngineDownloadItem *download); + void loadAppWithArgument(const QString arg); + protected slots: void closeEvent(QCloseEvent *event) override; diff --git a/src/settingswidget.cpp b/src/settingswidget.cpp index 9d4904a..2750e4d 100644 --- a/src/settingswidget.cpp +++ b/src/settingswidget.cpp @@ -147,6 +147,8 @@ void SettingsWidget::loadDictionaries(QStringList dictionaries) void SettingsWidget::refresh() { + ui->themeComboBox->setCurrentText(utils::toCamelCase(settings.value("windowTheme","light").toString())); + ui->cacheSize->setText(utils::refreshCacheSize(cachePath())); ui->cookieSize->setText(utils::refreshCacheSize(persistentStoragePath())); @@ -165,6 +167,7 @@ void SettingsWidget::refresh() //enable disable spell check ui->enableSpellCheck->setChecked(settings.value("sc_enabled",true).toBool()); + } void SettingsWidget::updateDefaultUAButton(const QString engineUA) |