#include <QToolBar>
#include <QInputDialog>
-#ifdef HAVE_KDE4
-# include <KHelpMenu>
-# include <KMenuBar>
-# include <KShortcutsDialog>
-# include <KStatusBar>
-# include <KToggleFullScreenAction>
-# include <KToolBar>
-#endif
-
#ifdef HAVE_KF5
# include <KConfigWidgets/KStandardAction>
# include <KXmlGui/KHelpMenu>
#include "coreinfodlg.h"
#include "contextmenuactionprovider.h"
#include "debugbufferviewoverlay.h"
-#include "debuglogwidget.h"
+#include "debuglogdlg.h"
#include "debugmessagemodelfilter.h"
#include "flatproxymodel.h"
#include "icon.h"
#include "qtuisettings.h"
#include "qtuistyle.h"
#include "receivefiledlg.h"
+#include "resourcetreedlg.h"
#include "settingsdlg.h"
#include "settingspagedlg.h"
#include "statusnotifieritem.h"
# ifdef HAVE_QTMULTIMEDIA
# include "qtmultimedianotificationbackend.h"
# endif
-# ifdef HAVE_PHONON
-# include "phononnotificationbackend.h"
-# endif
# include "systraynotificationbackend.h"
# include "taskbarnotificationbackend.h"
#else /* HAVE_KDE */
# include "sslinfodlg.h"
#endif
-#ifdef HAVE_INDICATEQT
- #include "indicatornotificationbackend.h"
-#endif
-
#ifdef HAVE_NOTIFICATION_CENTER
#include "osxnotificationbackend.h"
#endif
#ifndef HAVE_KDE
# ifdef HAVE_QTMULTIMEDIA
QtUi::registerNotificationBackend(new QtMultimediaNotificationBackend(this));
-# endif
-# ifdef HAVE_PHONON
- QtUi::registerNotificationBackend(new PhononNotificationBackend(this));
# endif
QtUi::registerNotificationBackend(new TaskbarNotificationBackend(this));
#else /* HAVE_KDE */
QtUi::registerNotificationBackend(new SystrayNotificationBackend(this));
#endif
-#ifdef HAVE_INDICATEQT
- QtUi::registerNotificationBackend(new IndicatorNotificationBackend(this));
-#endif
-
#ifdef HAVE_NOTIFICATION_CENTER
QtUi::registerNotificationBackend(new OSXNotificationBackend(this));
#endif
this, SLOT(on_actionDebugHotList_triggered())));
coll->addAction("DebugLog", new Action(icon::get("tools-report-bug"), tr("Debug &Log"), coll,
this, SLOT(on_actionDebugLog_triggered())));
+ coll->addAction("ShowResourceTree", new Action(icon::get("tools-report-bug"), tr("Show &Resource Tree"), coll,
+ this, SLOT(on_actionShowResourceTree_triggered())));
coll->addAction("ReloadStyle", new Action(icon::get("view-refresh"), tr("Reload Stylesheet"), coll,
QtUi::style(), SLOT(reload()), QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_R)));
_helpDebugMenu->addAction(coll->action("DebugMessageModel"));
_helpDebugMenu->addAction(coll->action("DebugHotList"));
_helpDebugMenu->addAction(coll->action("DebugLog"));
+ _helpDebugMenu->addAction(coll->action("ShowResourceTree"));
_helpDebugMenu->addSeparator();
_helpDebugMenu->addAction(coll->action("ReloadStyle"));
void MainWin::showPasswordChangeDlg()
{
if(Client::isCoreFeatureEnabled(Quassel::Feature::PasswordChange)) {
- auto dlg = new PasswordChangeDlg(this);
- dlg->setAttribute(Qt::WA_DeleteOnClose);
- dlg->exec();
+ PasswordChangeDlg{}.exec();
}
else {
- auto box = new QMessageBox(QMessageBox::Warning, tr("Feature Not Supported"),
- tr("<b>Your Quassel Core does not support this feature</b>"),
- QMessageBox::Ok, this);
- box->setInformativeText(tr("You need a Quassel Core v0.12.0 or newer in order to be able to remotely change your password."));
- box->setAttribute(Qt::WA_DeleteOnClose);
- box->exec();
+ QMessageBox box(QMessageBox::Warning, tr("Feature Not Supported"),
+ tr("<b>Your Quassel Core does not support this feature</b>"),
+ QMessageBox::Ok);
+ box.setInformativeText(tr("You need a Quassel Core v0.12.0 or newer in order to be able to remotely change your password."));
+ box.exec();
}
}
void MainWin::onExitRequested(const QString &reason)
{
if (!reason.isEmpty()) {
- auto box = new QMessageBox(QMessageBox::Critical,
- tr("Fatal error"),
- "<b>" + tr("Quassel encountered a fatal error and is terminated.") + "</b>",
- QMessageBox::Ok, this);
- box->setInformativeText("<p>" + tr("Reason:<em>") + " " + reason + "</em>");
- box->setAttribute(Qt::WA_DeleteOnClose);
- box->exec();
+ QMessageBox box(QMessageBox::Critical,
+ tr("Fatal error"),
+ "<b>" + tr("Quassel encountered a fatal error and is terminated.") + "</b>",
+ QMessageBox::Ok);
+ box.setInformativeText("<p>" + tr("Reason:<em>") + " " + reason + "</em>");
+ box.exec();
}
}
void MainWin::showNotificationsDlg()
{
- auto dlg = new SettingsPageDlg(new NotificationsSettingsPage(this), this);
- dlg->setAttribute(Qt::WA_DeleteOnClose);
- dlg->exec();
+ SettingsPageDlg{new NotificationsSettingsPage{}}.exec();
}
void MainWin::on_actionConfigureNetworks_triggered()
{
- auto dlg = new SettingsPageDlg(new NetworksSettingsPage(this), this);
- dlg->setAttribute(Qt::WA_DeleteOnClose);
- dlg->exec();
+ SettingsPageDlg{new NetworksSettingsPage{}}.exec();
}
void MainWin::on_actionConfigureViews_triggered()
{
- auto dlg = new SettingsPageDlg(new BufferViewSettingsPage(this), this);
- dlg->setAttribute(Qt::WA_DeleteOnClose);
- dlg->exec();
+ SettingsPageDlg{new BufferViewSettingsPage{}}.exec();
}
void MainWin::userAuthenticationRequired(CoreAccount *account, bool *valid, const QString &errorMessage)
{
Q_UNUSED(errorMessage)
- auto dlg = new CoreConnectAuthDlg(account, this);
- dlg->setAttribute(Qt::WA_DeleteOnClose);
- *valid = (dlg->exec() == QDialog::Accepted);
+ CoreConnectAuthDlg dlg(account);
+ *valid = (dlg.exec() == QDialog::Accepted);
}
void MainWin::handleNoSslInClient(bool *accepted)
{
- auto box = new QMessageBox(QMessageBox::Warning, tr("Unencrypted Connection"), tr("<b>Your client does not support SSL encryption</b>"),
- QMessageBox::Ignore|QMessageBox::Cancel, this);
- box->setInformativeText(tr("Sensitive data, like passwords, will be transmitted unencrypted to your Quassel core."));
- box->setDefaultButton(QMessageBox::Ignore);
- box->setAttribute(Qt::WA_DeleteOnClose);
- *accepted = (box->exec() == QMessageBox::Ignore);
+ QMessageBox box(QMessageBox::Warning, tr("Unencrypted Connection"), tr("<b>Your client does not support SSL encryption</b>"),
+ QMessageBox::Ignore|QMessageBox::Cancel);
+ box.setInformativeText(tr("Sensitive data, like passwords, will be transmitted unencrypted to your Quassel core."));
+ box.setDefaultButton(QMessageBox::Ignore);
+ *accepted = box.exec() == QMessageBox::Ignore;
}
void MainWin::handleNoSslInCore(bool *accepted)
{
- auto box = new QMessageBox(QMessageBox::Warning, tr("Unencrypted Connection"), tr("<b>Your core does not support SSL encryption</b>"),
- QMessageBox::Ignore|QMessageBox::Cancel, this);
- box->setInformativeText(tr("Sensitive data, like passwords, will be transmitted unencrypted to your Quassel core."));
- box->setDefaultButton(QMessageBox::Ignore);
- box->setAttribute(Qt::WA_DeleteOnClose);
- *accepted = (box->exec() == QMessageBox::Ignore);
+ QMessageBox box(QMessageBox::Warning, tr("Unencrypted Connection"), tr("<b>Your core does not support SSL encryption</b>"),
+ QMessageBox::Ignore|QMessageBox::Cancel);
+ box.setInformativeText(tr("Sensitive data, like passwords, will be transmitted unencrypted to your Quassel core."));
+ box.setDefaultButton(QMessageBox::Ignore);
+ *accepted = box.exec() == QMessageBox::Ignore;
}
errorString += QString("<li>%1</li>").arg(error.errorString());
errorString += "</ul>";
- auto box = new QMessageBox(QMessageBox::Warning,
- tr("Untrusted Security Certificate"),
- tr("<b>The SSL certificate provided by the core at %1 is untrusted for the following reasons:</b>").arg(socket->peerName()),
- QMessageBox::Cancel, this);
- box->setInformativeText(errorString);
- box->addButton(tr("Continue"), QMessageBox::AcceptRole);
- box->setDefaultButton(box->addButton(tr("Show Certificate"), QMessageBox::HelpRole));
- box->setAttribute(Qt::WA_DeleteOnClose);
+ QMessageBox box(QMessageBox::Warning,
+ tr("Untrusted Security Certificate"),
+ tr("<b>The SSL certificate provided by the core at %1 is untrusted for the following reasons:</b>").arg(socket->peerName()),
+ QMessageBox::Cancel);
+ box.setInformativeText(errorString);
+ box.addButton(tr("Continue"), QMessageBox::AcceptRole);
+ box.setDefaultButton(box.addButton(tr("Show Certificate"), QMessageBox::HelpRole));
QMessageBox::ButtonRole role;
do {
- box->exec();
- role = box->buttonRole(box->clickedButton());
+ box.exec();
+ role = box.buttonRole(box.clickedButton());
if (role == QMessageBox::HelpRole) {
- auto dlg = new SslInfoDlg(socket, this);
- dlg->setAttribute(Qt::WA_DeleteOnClose);
- dlg->exec();
+ SslInfoDlg dlg(socket);
+ dlg.exec();
}
}
while (role == QMessageBox::HelpRole);
*accepted = role == QMessageBox::AcceptRole;
if (*accepted) {
- auto box2 = new QMessageBox(QMessageBox::Warning,
- tr("Untrusted Security Certificate"),
- tr("Would you like to accept this certificate forever without being prompted?"),
- nullptr, this);
- box2->setDefaultButton(box2->addButton(tr("Current Session Only"), QMessageBox::NoRole));
- box2->addButton(tr("Forever"), QMessageBox::YesRole);
- box2->setAttribute(Qt::WA_DeleteOnClose);
- box2->exec();
- *permanently = (box2->buttonRole(box2->clickedButton()) == QMessageBox::YesRole);
+ QMessageBox box2(QMessageBox::Warning,
+ tr("Untrusted Security Certificate"),
+ tr("Would you like to accept this certificate forever without being prompted?"),
+ 0);
+ box2.setDefaultButton(box2.addButton(tr("Current Session Only"), QMessageBox::NoRole));
+ box2.addButton(tr("Forever"), QMessageBox::YesRole);
+ box2.exec();
+ *permanently = box2.buttonRole(box2.clickedButton()) == QMessageBox::YesRole;
}
}
void MainWin::showCoreConnectionDlg()
{
- auto dlg = new CoreConnectDlg(this);
- dlg->setAttribute(Qt::WA_DeleteOnClose);
- if (dlg->exec() == QDialog::Accepted) {
- AccountId accId = dlg->selectedAccount();
+ CoreConnectDlg dlg;
+ if (dlg.exec() == QDialog::Accepted) {
+ AccountId accId = dlg.selectedAccount();
if (accId.isValid())
Client::coreConnection()->connectToCore(accId);
}
if (!netId.isValid()) {
// We still haven't found a valid network, probably no network selected, e.g. "/list"
// on the client homescreen when no networks are connected.
- auto box = new QMessageBox(QMessageBox::Information, tr("No network selected"),
- QString("<b>%1</b>").arg(tr("No network selected")),
- QMessageBox::Ok, this);
- box->setInformativeText(tr("Select a network before trying to view the channel list."));
- box->setAttribute(Qt::WA_DeleteOnClose);
- box->exec();
+ QMessageBox box(QMessageBox::Information, tr("No network selected"),
+ QString("<b>%1</b>").arg(tr("No network selected")),
+ QMessageBox::Ok);
+ box.setInformativeText(tr("Select a network before trying to view the channel list."));
+ box.exec();
return;
}
}
void MainWin::showNetworkConfig(NetworkId netId)
{
- auto dlg = new SettingsPageDlg(new NetworksSettingsPage(this), this);
- dlg->setAttribute(Qt::WA_DeleteOnClose);
+ SettingsPageDlg dlg{new NetworksSettingsPage{}};
if (netId.isValid())
- qobject_cast<NetworksSettingsPage *>(dlg->currentPage())->bufferList_Open(netId);
- dlg->exec();
+ qobject_cast<NetworksSettingsPage *>(dlg.currentPage())->bufferList_Open(netId);
+ dlg.exec();
}
void MainWin::showIgnoreList(QString newRule)
{
- auto dlg = new SettingsPageDlg(new IgnoreListSettingsPage(this), this);
- dlg->setAttribute(Qt::WA_DeleteOnClose);
+ SettingsPageDlg dlg{new IgnoreListSettingsPage{}};
// prepare config dialog for new rule
if (!newRule.isEmpty())
- qobject_cast<IgnoreListSettingsPage *>(dlg->currentPage())->editIgnoreRule(newRule);
- dlg->exec();
+ qobject_cast<IgnoreListSettingsPage *>(dlg.currentPage())->editIgnoreRule(newRule);
+ dlg.exec();
}
void MainWin::showCoreInfoDlg()
{
- auto dlg = new CoreInfoDlg(this);
- dlg->setAttribute(Qt::WA_DeleteOnClose);
- dlg->exec();
+ CoreInfoDlg{}.exec();
}
void MainWin::showSettingsDlg()
{
- SettingsDlg *dlg = new SettingsDlg();
- dlg->setAttribute(Qt::WA_DeleteOnClose);
+ SettingsDlg *dlg = new SettingsDlg(this);
//Category: Interface
dlg->registerSettingsPage(new AppearanceSettingsPage(dlg));
void MainWin::showAboutDlg()
{
- auto dlg = new AboutDlg(this);
- dlg->setAttribute(Qt::WA_DeleteOnClose);
- dlg->exec();
+ AboutDlg{}.exec();
}
void MainWin::showShortcutsDlg()
{
#ifdef HAVE_KDE
- auto dlg = new KShortcutsDialog(KShortcutsEditor::AllActions, KShortcutsEditor::LetterShortcutsDisallowed, this);
- foreach(KActionCollection *coll, QtUi::actionCollections()) {
- dlg->addCollection(coll, coll->property("Category").toString());
- }
- dlg->setAttribute(Qt::WA_DeleteOnClose);
- dlg->configure(true);
+ KShortcutsDialog dlg(KShortcutsEditor::AllActions, KShortcutsEditor::LetterShortcutsDisallowed);
+ foreach(KActionCollection *coll, QtUi::actionCollections())
+ dlg.addCollection(coll, coll->property("Category").toString());
+ dlg.configure(true);
#else
- auto dlg = new SettingsPageDlg(new ShortcutsSettingsPage(QtUi::actionCollections(), this), this);
- dlg->setAttribute(Qt::WA_DeleteOnClose);
- dlg->exec();
+ SettingsPageDlg{new ShortcutsSettingsPage{QtUi::actionCollections()}}.exec();
#endif
}
void MainWin::on_actionDebugLog_triggered()
{
- DebugLogWidget *logWidget = new DebugLogWidget(nullptr); // will be deleted on close
- logWidget->show();
+ auto dlg = new DebugLogDlg(this); // will be deleted on close
+ dlg->show();
}
+void MainWin::on_actionShowResourceTree_triggered()
+{
+ auto dlg = new ResourceTreeDlg(this); // will be deleted on close
+ dlg->show();
+}
void MainWin::showStatusBarMessage(const QString &message)
{