LINUX.ORG.RU

История изменений

Исправление energyclab, (текущая версия) :

Из одного main могу сказать следующее

ApplicationSettings *Settings = new ApplicationSettings();
[.code]
Нет смысла создавать объект в куче. Читай доки, там ясно написано, что создание QSetting и работа с ним - очень быстрые операции, по-этому, там, где он тебе нужен, просто создаешь на стеке

QSettings s;
...
QObject::connect(StreamProcessor->audioDecoder, SIGNAL(bufferReady()), StreamProcessor, SLOT(transferSamples()));
    QObject::connect(DjProcessor->audioDecoder, SIGNAL(bufferReady()), DjProcessor, SLOT(transferSamples()));

Если ты собираешься связывать сигналы и слоты одного и того же объекта класса, то это, как правило, делается внутри этого класса...так сказать сокрытие информации от пользователя.

client.connectToServer("radon");
...
return app.exec();

Здесь нужно понимать, что подключение идет еще до запуска основного лупа qt, обычно это плохая практика и делаю что то типа этого

app.postEvent(client, new StartEvent())
...
return app.exec();
так, например, если ты захочешь завершить программу через qApp -> quit(), она завершится, т.к. основной цикл уже запущен... (естественно, в классе надо переопределить event и там обработать StartEvent)

QSettings(QDir::homePath()+"/.radon/radon.conf"

я бы заменил на нечто такое

QSettings(tr("%1%2").arg(QDir::homePath()).arg("/.radon/radon.conf"))
Хотя, именно в твоем примере можно оставить и конкатенацию

Ну и тебе уже сказал panter_dsd, определись со стилем, и не только именования переменных и и вообще с оформлением кода. т.к. инкапсулированные переменные и методы лучше оформлять как private ну или protected

QString artist;
    QString title;
    QString album;
    QString comment;
    QString genre;
    uint track;
    uint year;

    void setTitle(QString title);
    void setArtist(QString artist);
    void setAlbum(QString album);
    void setComment(QString comment);
    void setGenre(QString genre);
    void setTrack(uint track);
    void setYear(uint year);
нет смысла создавать сеттеры, когда у тебя переменные и так public

Еще заметил у тебя класс ApplicationSettings, спрашивается «ЗАЧЕМ»... тем более, зачем класс?

 this->artist = QString::fromStdWString(artist.toCWString());
    this->album = QString::fromStdWString(album.toCWString());
    this->title = QString::fromStdWString(title.toCWString());
    this->comment = QString::fromStdWString(comment.toCWString());
    this->genre = QString::fromStdWString(genre.toCWString());
    this->track = track;
    this->year = year;

this здес не нужен, т.к. ты и так внутри объекта...

Исходная версия energyclab, :

Из одного main могу сказать следующее

ApplicationSettings *Settings = new ApplicationSettings();

Нет смысла создавать объект в куче. Читай доки, там ясно написано, что создание QSetting и работа с ним - очень быстрые операции, по-этому, там, где он тебе нужен, просто создаешь на стеке

QSettings s;
...

QObject::connect(StreamProcessor->audioDecoder, SIGNAL(bufferReady()), StreamProcessor, SLOT(transferSamples())); QObject::connect(DjProcessor->audioDecoder, SIGNAL(bufferReady()), DjProcessor, SLOT(transferSamples()));

Если ты собираешься связывать сигналы и слоты одного и того же объекта класса, то это, как правило, делается внутри этого класса...так сказать сокрытие информации от пользователя.

client.connectToServer(«radon»); ... return app.exec();

Здесь нужно понимать, что подключение идет еще до запуска основного лупа qt, обычно это плохая практика и делаю что то типа этого

app.postEvent(client, new StartEvent())
...
return app.exec();
так, например, если ты захочешь завершить программу через qApp -> quit(), она завершится, т.к. основной цикл уже запущен... (естественно, в классе надо переопределить event и там обработать StartEvent)

QSettings(QDir::homePath()+«/.radon/radon.conf»

я бы заменил на нечто такое

QSettings(tr("%1%2").arg(QDir::homePath()).arg("/.radon/radon.conf"))
Хотя, именно в твоем примере можно оставить и конкатенацию

Ну и тебе уже сказал panter_dsd, определись со стилем, и не только именования переменных и и вообще с оформлением кода. т.к. инкапсулированные переменные и методы лучше оформлять как private ну или protected

QString artist; QString title; QString album; QString comment; QString genre; uint track; uint year;

void setTitle(QString title); void setArtist(QString artist); void setAlbum(QString album); void setComment(QString comment); void setGenre(QString genre); void setTrack(uint track); void setYear(uint year);

нет смысла создавать сеттеры, когда у тебя переменные и так public

Еще заметил у тебя класс ApplicationSettings, спрашивается «ЗАЧЕМ»... тем более, зачем класс?

this->artist = QString::fromStdWString(artist.toCWString()); this->album = QString::fromStdWString(album.toCWString()); this->title = QString::fromStdWString(title.toCWString()); this->comment = QString::fromStdWString(comment.toCWString()); this->genre = QString::fromStdWString(genre.toCWString()); this->track = track; this->year = year;

this здес не нужен, т.к. ты и так внутри объекта...