removing hardcoded aliases from userinputhandler. some minor, internal improvements...
authorMarcus Eggenberger <egs@quassel-irc.org>
Tue, 22 Jul 2008 15:13:19 +0000 (17:13 +0200)
committerMarcus Eggenberger <egs@quassel-irc.org>
Tue, 22 Jul 2008 15:13:19 +0000 (17:13 +0200)
src/common/aliasmanager.cpp
src/common/syncableobject.cpp
src/common/syncableobject.h
src/core/corealiasmanager.cpp
src/core/userinputhandler.cpp
src/core/userinputhandler.h
src/qtui/settingspages/aliasesmodel.cpp
src/qtui/settingspages/aliasesmodel.h
src/qtui/settingspages/aliasessettingspage.cpp
src/qtui/settingspages/aliasessettingspage.h

index c03c4e4..f9b0385 100644 (file)
 #include <QStringList>
 
 AliasManager &AliasManager::operator=(const AliasManager &other) {
+  if(this == &other)
+    return *this;
+  
+  SyncableObject::operator=(other);
   _aliases = other._aliases;
   return *this;
 }
index 426bc86..ebe6ca0 100644 (file)
@@ -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;
 }
index 61915cb..c746d83 100644 (file)
@@ -65,6 +65,7 @@ public slots:
 
 protected:
   void renameObject(const QString &newName);
+  SyncableObject &operator=(const SyncableObject &other);
 
 signals:
   void initDone();
index 8fcdb02..af3353f 100644 (file)
@@ -54,5 +54,5 @@ CoreAliasManager::~CoreAliasManager() {
 
 void CoreAliasManager::loadDefaults() {
   // Default Aliases:
-  addAlias("j", "/join $1");
+  addAlias("j", "/join #$1");
 }
index e9b0139..b6a5c69 100644 (file)
@@ -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(" ");
index 81e5c17..436b254 100644 (file)
@@ -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);
index 588673c..8df2279 100644 (file)
@@ -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);
+}
index f10c818..f689f7a 100644 (file)
@@ -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();
 };
 
index 7aab01c..1b943d6 100644 (file)
@@ -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() {
index de1888c..9f36d56 100644 (file)
@@ -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