Skip to content

Commit

Permalink
stringify command line after QApplication created, fixes setting of n…
Browse files Browse the repository at this point in the history
…on latin1 status from command line
  • Loading branch information
Ri0n committed Oct 7, 2012
1 parent f9874ca commit de78e0e
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 7 deletions.
2 changes: 1 addition & 1 deletion src/libpsi
16 changes: 13 additions & 3 deletions src/main.cpp
Expand Up @@ -37,6 +37,7 @@
#include <QProcess>
#include <QTime>
#include <QLibraryInfo>
#include <QHashIterator>

#include <stdlib.h>
#include <time.h>
Expand Down Expand Up @@ -84,7 +85,7 @@
using namespace XMPP;


PsiMain::PsiMain(const QMap<QString, QString>& commandline, QObject *par)
PsiMain::PsiMain(const QHash<QString, QString>& commandline, QObject *par)
: QObject(par)
, cmdline(commandline)
{
Expand Down Expand Up @@ -492,7 +493,7 @@ int main(int argc, char *argv[])

PsiCli cli;

QMap<QString, QString> cmdline = cli.parse(argc, argv, QStringList() << "uri", &argc);
QHash<QByteArray, QByteArray> cmdline = cli.parse(argc, argv, QList<QByteArray>() << "uri", &argc);

if (cmdline.contains("uri")) {
#ifdef URI_RESTART
Expand Down Expand Up @@ -562,7 +563,16 @@ int main(int argc, char *argv[])
}
#endif

PsiMain *psi = new PsiMain(cmdline);
// now when QApplication created and text codecs initiaized we can convert
// command line arguments to strings
QHash<QString,QString> cmdlines;
QHashIterator<QByteArray,QByteArray> clIt(cmdline);
while (clIt.hasNext()) {
clIt.next();
cmdlines.insert(QString::fromLocal8Bit(clIt.key().constData()),
QString::fromLocal8Bit(clIt.value().constData()));
}
PsiMain *psi = new PsiMain(cmdlines);
// check if we want to remote-control other psi instance
if (psi->useActiveInstance()) {
delete psi;
Expand Down
6 changes: 3 additions & 3 deletions src/main.h
Expand Up @@ -23,15 +23,15 @@

#include <QString>
#include <QObject>
#include <QMap>
#include <QHash>

class PsiCon;

class PsiMain : public QObject
{
Q_OBJECT
public:
PsiMain(const QMap<QString, QString>& commandline, QObject *parent=0);
PsiMain(const QHash<QString, QString>& commandline, QObject *parent=0);
~PsiMain();

bool useActiveInstance();
Expand All @@ -49,7 +49,7 @@ private slots:
private:
QString lastProfile, lastLang;
bool autoOpen;
QMap<QString, QString> cmdline;
QHash<QString, QString> cmdline;

PsiCon *pcon;

Expand Down

0 comments on commit de78e0e

Please sign in to comment.