From: Marcus Eggenberger Date: Tue, 22 Jul 2008 15:13:19 +0000 (+0200) Subject: removing hardcoded aliases from userinputhandler. some minor, internal improvements... X-Git-Tag: 0.3.0~242 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=f7eb3911860f30e6bccce3c77d03fc25e87d7f93 removing hardcoded aliases from userinputhandler. some minor, internal improvements to the alias settingspage --- diff --git a/src/common/aliasmanager.cpp b/src/common/aliasmanager.cpp index c03c4e42..f9b0385b 100644 --- a/src/common/aliasmanager.cpp +++ b/src/common/aliasmanager.cpp @@ -24,6 +24,10 @@ #include AliasManager &AliasManager::operator=(const AliasManager &other) { + if(this == &other) + return *this; + + SyncableObject::operator=(other); _aliases = other._aliases; return *this; } diff --git a/src/common/syncableobject.cpp b/src/common/syncableobject.cpp index 426bc86c..ebe6ca0e 100644 --- a/src/common/syncableobject.cpp +++ b/src/common/syncableobject.cpp @@ -37,10 +37,19 @@ SyncableObject::SyncableObject(QObject *parent) SyncableObject::SyncableObject(const SyncableObject &other, QObject *parent) : QObject(parent), _initialized(other._initialized), - _allowClientUpdates(false) + _allowClientUpdates(other._allowClientUpdates) { } +SyncableObject &SyncableObject::operator=(const SyncableObject &other) { + if(this == &other) + return *this; + + _initialized = other._initialized; + _allowClientUpdates = other._allowClientUpdates; + return *this; +} + bool SyncableObject::isInitialized() const { return _initialized; } diff --git a/src/common/syncableobject.h b/src/common/syncableobject.h index 61915cbb..c746d838 100644 --- a/src/common/syncableobject.h +++ b/src/common/syncableobject.h @@ -65,6 +65,7 @@ public slots: protected: void renameObject(const QString &newName); + SyncableObject &operator=(const SyncableObject &other); signals: void initDone(); diff --git a/src/core/corealiasmanager.cpp b/src/core/corealiasmanager.cpp index 8fcdb022..af3353fd 100644 --- a/src/core/corealiasmanager.cpp +++ b/src/core/corealiasmanager.cpp @@ -54,5 +54,5 @@ CoreAliasManager::~CoreAliasManager() { void CoreAliasManager::loadDefaults() { // Default Aliases: - addAlias("j", "/join $1"); + addAlias("j", "/join #$1"); } diff --git a/src/core/userinputhandler.cpp b/src/core/userinputhandler.cpp index e9b01399..b6a5c697 100644 --- a/src/core/userinputhandler.cpp +++ b/src/core/userinputhandler.cpp @@ -146,13 +146,6 @@ void UserInputHandler::handleInvite(const BufferInfo &bufferInfo, const QString emit putCmd("INVITE", serverEncode(params)); } -void UserInputHandler::handleJ(const BufferInfo &bufferInfo, const QString &msg) { - QString trimmed = msg.trimmed(); - if(trimmed.length() == 0) return; - if(trimmed[0].isLetter()) trimmed.prepend("#"); - handleJoin(bufferInfo, trimmed); -} - void UserInputHandler::handleJoin(const BufferInfo &bufferInfo, const QString &msg) { Q_UNUSED(bufferInfo) QStringList params = msg.trimmed().split(" "); diff --git a/src/core/userinputhandler.h b/src/core/userinputhandler.h index 81e5c178..436b2546 100644 --- a/src/core/userinputhandler.h +++ b/src/core/userinputhandler.h @@ -40,7 +40,6 @@ public slots: void handleDeop(const BufferInfo &bufferInfo, const QString &text); void handleDevoice(const BufferInfo &bufferInfo, const QString &text); void handleInvite(const BufferInfo &bufferInfo, const QString &text); - void handleJ(const BufferInfo &bufferInfo, const QString &text); void handleJoin(const BufferInfo &bufferInfo, const QString &text); void handleKick(const BufferInfo &bufferInfo, const QString &text); void handleKill(const BufferInfo &bufferInfo, const QString &text); diff --git a/src/qtui/settingspages/aliasesmodel.cpp b/src/qtui/settingspages/aliasesmodel.cpp index 588673c2..8df22791 100644 --- a/src/qtui/settingspages/aliasesmodel.cpp +++ b/src/qtui/settingspages/aliasesmodel.cpp @@ -30,15 +30,13 @@ AliasesModel::AliasesModel(QObject *parent) : QAbstractItemModel(parent), _configChanged(false) { -// _aliasManager.addAlias("a", "aa"); -// _aliasManager.addAlias("b", "bb"); -// _aliasManager.addAlias("c", "cc"); -// _aliasManager.addAlias("d", "dd"); - // we need this signal for future connects to reset the data; connect(Client::instance(), SIGNAL(connected()), this, SLOT(clientConnected())); + connect(Client::instance(), SIGNAL(disconnected()), this, SLOT(clientDisconnected())); if(Client::isConnected()) clientConnected(); + else + emit modelReady(false); } QVariant AliasesModel::data(const QModelIndex &index, int role) const { @@ -61,6 +59,7 @@ QVariant AliasesModel::data(const QModelIndex &index, int role) const { return QVariant(); } case Qt::DisplayRole: + case Qt::EditRole: switch(index.column()) { case 0: return aliasManager()[index.row()].name; @@ -192,7 +191,7 @@ void AliasesModel::commit() { void AliasesModel::initDone() { reset(); - emit modelReady(); + emit modelReady(true); } void AliasesModel::clientConnected() { @@ -201,3 +200,11 @@ void AliasesModel::clientConnected() { connect(&_aliasManager, SIGNAL(initDone()), this, SLOT(initDone())); connect(&_aliasManager, SIGNAL(updated(const QVariantMap &)), this, SLOT(revert())); } + +void AliasesModel::clientDisconnected() { + // clear alias managers + _aliasManager = AliasManager(); + _clonedAliasManager = AliasManager(); + reset(); + emit modelReady(false); +} diff --git a/src/qtui/settingspages/aliasesmodel.h b/src/qtui/settingspages/aliasesmodel.h index f10c8186..f689f7a7 100644 --- a/src/qtui/settingspages/aliasesmodel.h +++ b/src/qtui/settingspages/aliasesmodel.h @@ -56,7 +56,7 @@ public slots: signals: void configChanged(bool); - void modelReady(); + void modelReady(bool); private: AliasManager _aliasManager; @@ -69,6 +69,7 @@ private: private slots: void clientConnected(); + void clientDisconnected(); void initDone(); }; diff --git a/src/qtui/settingspages/aliasessettingspage.cpp b/src/qtui/settingspages/aliasessettingspage.cpp index 7aab01cc..1b943d6f 100644 --- a/src/qtui/settingspages/aliasessettingspage.cpp +++ b/src/qtui/settingspages/aliasessettingspage.cpp @@ -40,7 +40,7 @@ AliasesSettingsPage::AliasesSettingsPage(QWidget *parent) connect(ui.newAliasButton, SIGNAL(clicked()), &_aliasesModel, SLOT(newAlias())); connect(ui.deleteAliasButton, SIGNAL(clicked()), this, SLOT(deleteSelectedAlias())); connect(&_aliasesModel, SIGNAL(configChanged(bool)), this, SLOT(setChangedState(bool))); - connect(&_aliasesModel, SIGNAL(modelReady()), this, SLOT(enableDialog())); + connect(&_aliasesModel, SIGNAL(modelReady(bool)), this, SLOT(enableDialog(bool))); } void AliasesSettingsPage::load() { @@ -53,9 +53,9 @@ void AliasesSettingsPage::save() { _aliasesModel.commit(); } -void AliasesSettingsPage::enableDialog() { - ui.newAliasButton->setEnabled(true); - ui.deleteAliasButton->setEnabled(true); +void AliasesSettingsPage::enableDialog(bool enabled) { + ui.newAliasButton->setEnabled(enabled); + ui.deleteAliasButton->setEnabled(enabled); } void AliasesSettingsPage::deleteSelectedAlias() { diff --git a/src/qtui/settingspages/aliasessettingspage.h b/src/qtui/settingspages/aliasessettingspage.h index de1888c8..9f36d56f 100644 --- a/src/qtui/settingspages/aliasessettingspage.h +++ b/src/qtui/settingspages/aliasessettingspage.h @@ -35,21 +35,15 @@ public: public slots: void save(); void load(); -// void defaults(); - -// private slots: -// void widgetHasChanged(); - + +private slots: + void enableDialog(bool); + void deleteSelectedAlias(); + private: Ui::AliasesSettingsPage ui; AliasesModel _aliasesModel; - - // bool testHasChanged(); - -private slots: - void enableDialog(); - void deleteSelectedAlias(); }; #endif //ALIASESSETTINGSPAGE_H