#include <QStringList>
AliasManager &AliasManager::operator=(const AliasManager &other) {
+ if(this == &other)
+ return *this;
+
+ SyncableObject::operator=(other);
_aliases = other._aliases;
return *this;
}
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;
}
protected:
void renameObject(const QString &newName);
+ SyncableObject &operator=(const SyncableObject &other);
signals:
void initDone();
void CoreAliasManager::loadDefaults() {
// Default Aliases:
- addAlias("j", "/join $1");
+ addAlias("j", "/join #$1");
}
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(" ");
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);
: 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 {
return QVariant();
}
case Qt::DisplayRole:
+ case Qt::EditRole:
switch(index.column()) {
case 0:
return aliasManager()[index.row()].name;
void AliasesModel::initDone() {
reset();
- emit modelReady();
+ emit modelReady(true);
}
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);
+}
signals:
void configChanged(bool);
- void modelReady();
+ void modelReady(bool);
private:
AliasManager _aliasManager;
private slots:
void clientConnected();
+ void clientDisconnected();
void initDone();
};
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() {
_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() {
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