#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 "qtuisettings.h"
#include "qtuistyle.h"
#include "receivefiledlg.h"
+#include "resourcetreedlg.h"
#include "settingsdlg.h"
#include "settingspagedlg.h"
#include "statusnotifieritem.h"
#endif
_msgProcessorStatusWidget(new MsgProcessorStatusWidget(this)),
_coreConnectionStatusWidget(new CoreConnectionStatusWidget(Client::coreConnection(), this)),
- _titleSetter(this),
- _awayLog(0),
- _layoutLoaded(false),
- _activeBufferViewIndex(-1),
- _aboutToQuit(false)
+ _titleSetter(this)
{
setAttribute(Qt::WA_DeleteOnClose, false); // we delete the mainwin manually
connect(lockAct, SIGNAL(toggled(bool)), SLOT(on_actionLockLayout_toggled(bool)));
coll->addAction("ToggleSearchBar", new Action(icon::get("edit-find"), tr("Show &Search Bar"), coll,
- 0, 0, QKeySequence::Find))->setCheckable(true);
+ nullptr, nullptr, QKeySequence::Find))->setCheckable(true);
coll->addAction("ShowAwayLog", new Action(tr("Show Away Log"), coll,
this, SLOT(showAwayLog())));
coll->addAction("ToggleMenuBar", new Action(icon::get("show-menu"), tr("Show &Menubar"), coll,
- 0, 0))->setCheckable(true);
+ nullptr, nullptr))->setCheckable(true);
coll->addAction("ToggleStatusBar", new Action(tr("Show Status &Bar"), coll,
- 0, 0))->setCheckable(true);
+ nullptr, nullptr))->setCheckable(true);
#ifdef HAVE_KDE
_fullScreenAction = KStandardAction::fullScreen(this, SLOT(onFullScreenToggled()), this, coll);
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"));
return;
config->setLocked(QtUiSettings().value("LockLayout", false).toBool());
- BufferViewDock *dock = new BufferViewDock(config, this);
+ auto *dock = new BufferViewDock(config, this);
//create the view and initialize it's filter
- BufferView *view = new BufferView(dock);
+ auto *view = new BufferView(dock);
view->setFilteredModel(Client::bufferModel(), config);
view->installEventFilter(_inputWidget); // for key presses
// since this isn't our fault and we can't do anything about it, we suppress the resulting calls
return;
}
- QAction *action = qobject_cast<QAction *>(sender());
+ auto *action = qobject_cast<QAction *>(sender());
Q_ASSERT(action);
- BufferViewDock *dock = qobject_cast<BufferViewDock *>(action->parent());
+ auto *dock = qobject_cast<BufferViewDock *>(action->parent());
Q_ASSERT(dock);
// Make sure we don't toggle backlog fetch for a view we've already removed
void MainWin::bufferViewVisibilityChanged(bool visible)
{
Q_UNUSED(visible);
- BufferViewDock *dock = qobject_cast<BufferViewDock *>(sender());
+ auto *dock = qobject_cast<BufferViewDock *>(sender());
Q_ASSERT(dock);
if ((!dock->isHidden() && !activeBufferView()) || (dock->isHidden() && dock->isActive()))
nextBufferView();
// "All Buffers" is always the first dock created
if (_bufferViews.count() > 0)
return _bufferViews[0]->bufferView();
- return 0;
+ return nullptr;
}
BufferView *MainWin::activeBufferView() const
{
if (_activeBufferViewIndex < 0 || _activeBufferViewIndex >= _bufferViews.count())
- return 0;
+ return nullptr;
BufferViewDock *dock = _bufferViews.at(_activeBufferViewIndex);
- return dock->isActive() ? dock->bufferView() : 0;
+ return dock->isActive() ? dock->bufferView() : nullptr;
}
VerticalDock *dock = new VerticalDock(tr("Chat Monitor"), this);
dock->setObjectName("ChatMonitorDock");
- ChatMonitorFilter *filter = new ChatMonitorFilter(Client::messageModel(), this);
+ auto *filter = new ChatMonitorFilter(Client::messageModel(), this);
_chatMonitorView = new ChatMonitorView(filter, this);
_chatMonitorView->show();
dock->setWidget(_chatMonitorView);
void MainWin::setupHotList()
{
- FlatProxyModel *flatProxy = new FlatProxyModel(this);
+ auto *flatProxy = new FlatProxyModel(this);
flatProxy->setSourceModel(Client::bufferModel());
_bufferHotList = new BufferHotListFilter(flatProxy);
}
void MainWin::showCoreConfigWizard(const QVariantList &backends, const QVariantList &authenticators)
{
- CoreConfigWizard *wizard = new CoreConfigWizard(Client::coreConnection(), backends, authenticators, this);
+ auto *wizard = new CoreConfigWizard(Client::coreConnection(), backends, authenticators, this);
wizard->show();
}
void MainWin::showChannelList(NetworkId netId, const QString &channelFilters, bool listImmediately)
{
if (!netId.isValid()) {
- QAction *action = qobject_cast<QAction *>(sender());
+ auto *action = qobject_cast<QAction *>(sender());
if (action)
netId = action->data().value<NetworkId>();
if (!netId.isValid()) {
}
}
- ChannelListDlg *channelListDlg = new ChannelListDlg(this);
+ auto *channelListDlg = new ChannelListDlg(this);
channelListDlg->setAttribute(Qt::WA_DeleteOnClose);
channelListDlg->setNetwork(netId);
if (!channelFilters.isEmpty()) {
{
if (_awayLog)
return;
- AwayLogFilter *filter = new AwayLogFilter(Client::messageModel());
- _awayLog = new AwayLogView(filter, 0);
+ auto *filter = new AwayLogFilter(Client::messageModel());
+ _awayLog = new AwayLogView(filter, nullptr);
filter->setParent(_awayLog);
connect(_awayLog, SIGNAL(destroyed()), this, SLOT(awayLogDestroyed()));
_awayLog->setAttribute(Qt::WA_DeleteOnClose);
void MainWin::awayLogDestroyed()
{
- _awayLog = 0;
+ _awayLog = nullptr;
}
void MainWin::showSettingsDlg()
{
- SettingsDlg *dlg = new SettingsDlg(this);
+ auto *dlg = new SettingsDlg();
//Category: Interface
dlg->registerSettingsPage(new AppearanceSettingsPage(dlg));
auto transfer = Client::transferManager()->transfer(transferId);
if (transfer) {
if (transfer->status() == Transfer::Status::New) {
- ReceiveFileDlg *dlg = new ReceiveFileDlg(transfer, this);
+ auto *dlg = new ReceiveFileDlg(transfer, this);
dlg->show();
}
}
void MainWin::closeEvent(QCloseEvent *event)
{
QtUiSettings s;
- QtUiApplication *app = qobject_cast<QtUiApplication *> qApp;
+ auto *app = qobject_cast<QtUiApplication *> qApp;
Q_ASSERT(app);
// On OSX it can happen that the closeEvent occurs twice. (Especially if packaged with Frameworks)
// This messes up MainWinState/MainWinHidden save/restore.
{
Q_UNUSED(parent);
- bool hasFocus = QApplication::activeWindow() != 0;
+ bool hasFocus = QApplication::activeWindow() != nullptr;
for (int i = start; i <= end; i++) {
QModelIndex idx = Client::messageModel()->index(i, ChatLineModel::ContentsColumn);
void MainWin::clientNetworkCreated(NetworkId id)
{
const Network *net = Client::network(id);
- QAction *act = new QAction(net->networkName(), this);
+ auto *act = new QAction(net->networkName(), this);
act->setObjectName(QString("NetworkAction-%1").arg(id.toInt()));
act->setData(QVariant::fromValue<NetworkId>(id));
connect(net, SIGNAL(updatedRemotely()), this, SLOT(clientNetworkUpdated()));
connect(act, SIGNAL(triggered()), this, SLOT(connectOrDisconnectFromNet()));
- QAction *beforeAction = 0;
+ QAction *beforeAction = nullptr;
foreach(QAction *action, _networksMenu->actions()) {
if (!action->data().isValid()) // ignore stock actions
continue;
void MainWin::clientNetworkUpdated()
{
- const Network *net = qobject_cast<const Network *>(sender());
+ const auto *net = qobject_cast<const Network *>(sender());
if (!net)
return;
- QAction *action = findChild<QAction *>(QString("NetworkAction-%1").arg(net->networkId().toInt()));
+ auto *action = findChild<QAction *>(QString("NetworkAction-%1").arg(net->networkId().toInt()));
if (!action)
return;
void MainWin::clientNetworkRemoved(NetworkId id)
{
- QAction *action = findChild<QAction *>(QString("NetworkAction-%1").arg(id.toInt()));
+ auto *action = findChild<QAction *>(QString("NetworkAction-%1").arg(id.toInt()));
if (!action)
return;
void MainWin::connectOrDisconnectFromNet()
{
- QAction *act = qobject_cast<QAction *>(sender());
+ auto *act = qobject_cast<QAction *>(sender());
if (!act) return;
const Network *net = Client::network(act->data().value<NetworkId>());
if (!net) return;
void MainWin::onJumpKey()
{
- QAction *action = qobject_cast<QAction *>(sender());
+ auto *action = qobject_cast<QAction *>(sender());
if (!action || !Client::bufferModel())
return;
int idx = action->property("Index").toInt();
void MainWin::bindJumpKey()
{
- QAction *action = qobject_cast<QAction *>(sender());
+ auto *action = qobject_cast<QAction *>(sender());
if (!action || !Client::bufferModel())
return;
int idx = action->property("Index").toInt();
void MainWin::on_actionDebugNetworkModel_triggered()
{
- QTreeView *view = new QTreeView;
+ auto *view = new QTreeView;
view->setAttribute(Qt::WA_DeleteOnClose);
view->setWindowTitle("Debug NetworkModel View");
view->setModel(Client::networkModel());
_bufferHotList->invalidate();
_bufferHotList->sort(0, Qt::DescendingOrder);
- QTreeView *view = new QTreeView;
+ auto *view = new QTreeView;
view->setAttribute(Qt::WA_DeleteOnClose);
view->setModel(_bufferHotList);
view->show();
void MainWin::on_actionDebugBufferViewOverlay_triggered()
{
- DebugBufferViewOverlay *overlay = new DebugBufferViewOverlay(0);
+ auto *overlay = new DebugBufferViewOverlay(nullptr);
overlay->setAttribute(Qt::WA_DeleteOnClose);
overlay->show();
}
void MainWin::on_actionDebugMessageModel_triggered()
{
- QTableView *view = new QTableView(0);
- DebugMessageModelFilter *filter = new DebugMessageModelFilter(view);
+ auto *view = new QTableView(nullptr);
+ auto *filter = new DebugMessageModelFilter(view);
filter->setSourceModel(Client::messageModel());
view->setModel(filter);
view->setAttribute(Qt::WA_DeleteOnClose, true);
void MainWin::on_actionDebugLog_triggered()
{
- auto dlg = new DebugLogDlg(this);
+ 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)
{