autoconnect-to-core work correctly... fiddle around with our Settings implementation
to try to make it work with SXE-enabled Qtopia (nope, still doesn't work).. And stop
Quassel from crashing at disconnect-from-core due to the nickview not being updated.
desktop.files=../src/qtopia/quasseltopia.desktop
desktop.path=/apps/Applications
-desktop.trtarget=example-nct
+#desktop.trtarget=example-nct
desktop.hint=nct desktop
-#pics.files=pics/*
-#pics.path=/pics/example
-#pics.hint=pics
+pics.files=../src/images/qirc-icon.png
+pics.path=/pics/quasselirc/
+pics.hint=pics
#help.source=help
#help.files=example.html
pkg.version=0.0.1-1
pkg.maintainer=www.quassel-irc.org
pkg.license=GPL
-pkg.domain=docapi,pim,profiles,window,qdl,qds,doc_write
+pkg.domain=window,net
// FIXME switch to netids!
// WHEN IS THIS NEEDED ANYHOW!?
+// ...only for finding the Buffer for a channel, I guess...
BufferInfo Client::bufferInfo(QString net, QString buf) {
foreach(Buffer *buffer_, buffers()) {
BufferInfo bufferInfo = buffer_->bufferInfo();
- if(bufferInfo.network() == net && bufferInfo.buffer() == buf)
+ if(!bufferInfo.network().compare(net, Qt::CaseInsensitive) && !bufferInfo.buffer().compare(buf, Qt::CaseInsensitive))
return bufferInfo;
}
Q_ASSERT(false); // should never happen!
#include "settings.h"
class ClientSettings : public Settings {
- Q_OBJECT
public:
virtual ~ClientSettings();
};
class AccountSettings : public ClientSettings {
- Q_OBJECT
public:
AccountSettings();
#include <QStringList>
#include <QDebug>
-#include "settings.h"
-
-Settings::Settings(QString g) : QObject(), group(g) {
+#ifdef Q_WS_QWS
+#include <Qtopia>
+#include <QCoreApplication>
+#endif
+#include "settings.h"
+Settings::Settings(QString g) : group(g) {
+
+#ifndef Q_WS_QWS
+ QSettings();
+#else
+ // FIXME sandboxDir() is not currently working correctly...
+ //if(Qtopia::sandboxDir().isEmpty()) QSettings();
+ //else QSettings(Qtopia::sandboxDir() + "/etc/QuasselIRC.conf", QSettings::NativeFormat);
+ // ...so we have to use a workaround:
+ /*
+ QString appPath = QCoreApplication::applicationFilePath();
+ if(appPath.startsWith(Qtopia::packagePath())) {
+ QString sandboxPath = appPath.left(Qtopia::packagePath().length() + 32);
+ QSettings(sandboxPath + "/etc/QuasselIRC.conf", QSettings::IniFormat);
+ } else {
+ QSettings();
+ }
+ */
+ QSettings();
+#endif
}
Settings::~Settings() {
}
QStringList Settings::allLocalKeys() {
- QSettings s;
- s.beginGroup(group);
- return s.allKeys();
+ beginGroup(group);
+ QStringList res = allKeys();
+ endGroup();
+ return res;
}
QStringList Settings::localChildKeys() {
- QSettings s;
- s.beginGroup(group);
- return s.childKeys();
+ beginGroup(group);
+ QStringList res = childKeys();
+ endGroup();
+ return res;
}
QStringList Settings::localChildGroups() {
- QSettings s;
- s.beginGroup(group);
- return s.childGroups();
+ beginGroup(group);
+ QStringList res = childGroups();
+ endGroup();
+ return res;
}
void Settings::setLocalValue(const QString &key, const QVariant &data) {
- QSettings s;
- s.beginGroup(group);
- s.setValue(key, data);
+ beginGroup(group);
+ setValue(key, data);
+ endGroup();
}
QVariant Settings::localValue(const QString &key, const QVariant &def) {
- QSettings s;
- s.beginGroup(group);
- return s.value(key, def);
+ beginGroup(group);
+ QVariant res = value(key, def);
+ endGroup();
+ return res;
}
void Settings::removeLocalKey(const QString &key) {
- QSettings s;
- s.beginGroup(group);
- s.remove(key);
+ beginGroup(group);
+ remove(key);
+ endGroup();
}
-
#include <QString>
#include <QVariant>
+#include <QSettings>
-class Settings : public QObject {
- Q_OBJECT
+class Settings : private QSettings {
public:
virtual ~Settings();
virtual void removeLocalKey(const QString &key);
QString group;
+
};
#include "settings.h"
class CoreSettings : public Settings {
- Q_OBJECT
public:
virtual ~CoreSettings();
***************************************************************************/
#include "nicklistwidget.h"
-#include "nicktreemodel.h"
+//#include "nicktreemodel.h"
NickListWidget::NickListWidget(QWidget *parent) : QDialog(parent) {
ui.setupUi(this);
}
void NickListWidget::setNickModel(NickTreeModel *model) {
- ui.nickView->setModel(model);
+ //ui.nickView->setModel(model);
}
#include "qtopiaui.h"
#include "signalproxy.h"
+#include <Qtopia>
+
// This constructor is the first thing to be called for a Qtopia app, so we do the init stuff
// here (rather than in a main.cpp).
QtopiaMainWin::QtopiaMainWin(QWidget *parent, Qt::WFlags flags) : QMainWindow(parent, flags) {
QCoreApplication::setApplicationName("Quassel IRC");
QCoreApplication::setOrganizationName("Quassel IRC Team");
- QSettings s(QSettings::UserScope, "quassel", "quassel");
- s.setValue("foo", "bar");
-
- //Style::init();
QtopiaUi *gui = new QtopiaUi(this);
Client::init(gui);
[Desktop Entry]
Comment[]=A Next-Gen IRC Client
Exec=quasseltopia
-Icon=example/Example
+Icon=/pics/quasselirc/qirc-icon.png
Type=Application
Name[]=QuasselTopia
connect(Client::instance(), SIGNAL(showConfigWizard(const QVariantMap &)), this, SLOT(showConfigWizard(const QVariantMap &)));
AccountSettings s;
+ QString lastacc = s.lastAccount();
ui.accountList->addItems(s.knownAccounts());
- curacc = s.lastAccount();
if(!ui.accountList->count()) {
//if(doAutoConnect) reject();
autoConnectToggled(true);
*/
} else {
- if(!curacc.isEmpty()) {
+ if(!lastacc.isEmpty()) {
//if(doAutoConnect) { qDebug() << "auto";
// AccountSettings s;
// int idx = ui.accountList->findText(s.autoConnectAccount());
// doConnect();
// }
//} else {
- int idx = ui.accountList->findText(curacc);
+ int idx = ui.accountList->findText(lastacc);
ui.accountList->setCurrentIndex(idx);
//}
}
ui.actionNetworkList->setEnabled(false);
ui.bufferWidget->hide();
ui.actionConnectCore->setEnabled(true);
+ nickListWidget->reset();
statusBar()->showMessage(tr("Not connected to core."));
}
}
void NickListWidget::setBuffer(Buffer *buf) {
+ if(!buf) {
+ ui.stackedWidget->setCurrentWidget(ui.emptyPage);
+ return;
+ }
if(buf->bufferType() != Buffer::ChannelType) {
ui.stackedWidget->setCurrentWidget(ui.emptyPage);
} else {
}
}
}
+
+void NickListWidget::reset() {
+ foreach(NickView *view, nickViews.values()) {
+ ui.stackedWidget->removeWidget(view);
+ view->deleteLater();
+ }
+}
public slots:
void setBuffer(Buffer *);
+ void reset();
private:
Ui::NickListWidget ui;
#include "nickmodel.h"
#include <QHeaderView>
-#include <QSortFilterProxyModel>
NickView::NickView(QWidget *parent) : QTreeView(parent) {
setGeometry(0, 0, 30, 30);
void NickView::setModel(NickModel *model) {
filteredModel->setSourceModel(model);
expandAll();
-
}