Single_application::Single_application(int &argc, char *argv[], const QString uniqueKey): QApplication(argc, argv) { { // player = new QMediaPlayer(); // QDialog* lol =new QDialog; // QGridLayout* lal = new QGridLayout; // // playlist = new QMediaPlaylist(player); ply = new video_player(); sharedMemory.setKey(uniqueKey); // when can create it only if it doesn't exist if (sharedMemory.create(5000)) { sharedMemory.lock(); *(char*)sharedMemory.data() = '\0'; sharedMemory.unlock(); alreadyExists = false; // start checking for messages of other instances. QTimer *timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(checkForMessage())); timer->start(200); } // it exits, so we can attach it?! else if (sharedMemory.attach()){ alreadyExists = true; } else{ // error } } }
SingleApplication::SingleApplication(int &argc, char *argv[], const QString uniqueKey) : QApplication(argc, argv) { sharedMemory.setKey(uniqueKey); if (sharedMemory.attach()) _isRunning = true; else { _isRunning = false; // attach data to shared memory. QByteArray byteArray("0"); // default value to note that no message is available. if (!sharedMemory.create(byteArray.size())) { qDebug("Unable to create single instance."); return; } sharedMemory.lock(); char *to = (char*)sharedMemory.data(); const char *from = byteArray.data(); memcpy(to, from, qMin(sharedMemory.size(), byteArray.size())); sharedMemory.unlock(); // start checking for messages of other instances. QTimer *timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(checkForMessage())); timer->start(1000); } }
SingleApplication::SingleApplication(int &argc, char *argv[], const QString uniqueKey) : QApplication(argc, argv) { sharedMemory.setKey(uniqueKey); // when can create it only if it doesn't exist if (sharedMemory.create(5000)) { sharedMemory.lock(); *(char*)sharedMemory.data() = '\0'; sharedMemory.unlock(); bAlreadyExists = false; // start checking for messages of other instances. QTimer *timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(checkForMessage())); timer->start(200); } // it exits, so we can attach it?! else if (sharedMemory.attach()){ bAlreadyExists = true; } else{ // error } }
//! [0] S2Controller::S2Controller(QWidget *parent): QWidget(parent), networkSession(0) { hostLabel = new QLabel(tr("&Server name:")); portLabel = new QLabel(tr("S&erver port:")); cmdLabel = new QLabel(tr("Command:")); QString ipAddress; ipAddress = QHostAddress(QHostAddress::LocalHost).toString(); int portnumber= 1236; hostLineEdit = new QLineEdit("10.128.48.53"); portLineEdit = new QLineEdit("1236"); portLineEdit->setValidator(new QIntValidator(1, 65535, this)); cmdLineEdit = new QLineEdit; hostLabel->setBuddy(hostLineEdit); portLabel->setBuddy(portLineEdit); statusLabel = new QLabel(tr(" - - - ")); sendCommandButton = new QPushButton(tr("Send Command")); sendCommandButton->setDefault(true); sendCommandButton->setEnabled(true); connectButton = new QPushButton(tr("connect to PrairieView")); connectButton->setEnabled(true); quitButton = new QPushButton(tr("Quit")); getReplyButton = new QPushButton(tr("get reply")); buttonBox = new QGroupBox; QVBoxLayout *vb = new QVBoxLayout; vb->addWidget(sendCommandButton); vb->addWidget(quitButton); vb->addWidget(connectButton); vb->addWidget(getReplyButton); buttonBox->setLayout(vb); tcpSocket = new QTcpSocket(this); connect(hostLineEdit, SIGNAL(textChanged(QString)), this, SLOT(enablesendCommandButton())); connect(portLineEdit, SIGNAL(textChanged(QString)), this, SLOT(enablesendCommandButton())); connect(sendCommandButton, SIGNAL(clicked()), this, SLOT(sendCommand())); connect(connectButton, SIGNAL(clicked()), this, SLOT(initializeS2())); connect(tcpSocket, SIGNAL(readyRead()), this, SLOT(checkForMessage())); connect(this, SIGNAL(messageIsComplete()), this, SLOT(processMessage())); connect(this, SIGNAL(newMessage(QString)), this, SLOT(messageHandler(QString))); connect(this, SIGNAL(newMessage(QString)), this, SLOT(posMonListener(QString))); connect(quitButton, SIGNAL(clicked()), this, SLOT(sendX())); connect(tcpSocket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(displayError(QAbstractSocket::SocketError))); QGridLayout *mainLayout = new QGridLayout; mainLayout->addWidget(hostLabel, 0, 0); mainLayout->addWidget(hostLineEdit, 0, 1); mainLayout->addWidget(portLabel, 1, 0); mainLayout->addWidget(portLineEdit, 1, 1); mainLayout->addWidget(cmdLabel, 2,0); mainLayout->addWidget(cmdLineEdit,2,1); mainLayout->addWidget(statusLabel, 3, 0, 1, 2); mainLayout->addWidget(buttonBox, 4, 0, 1, 2); setLayout(mainLayout); setWindowTitle(tr("smartScope2 Controller")); portLineEdit->setFocus(); QNetworkConfigurationManager manager; if (manager.capabilities() & QNetworkConfigurationManager::NetworkSessionRequired) { // Get saved network configuration QSettings settings(QSettings::UserScope, QLatin1String("Trolltech")); settings.beginGroup(QLatin1String("QtNetwork")); const QString id = settings.value(QLatin1String("DefaultNetworkConfiguration")).toString(); settings.endGroup(); // If the saved network configuration is not currently discovered use the system default QNetworkConfiguration config = manager.configurationFromIdentifier(id); if ((config.state() & QNetworkConfiguration::Discovered) != QNetworkConfiguration::Discovered) { config = manager.defaultConfiguration(); } networkSession = new QNetworkSession(config, this); connect(networkSession, SIGNAL(opened()), this, SLOT(sessionOpened())); sendCommandButton->setEnabled(false); statusLabel->setText(tr("Opening network session.")); networkSession->open(); } //enablesendCommandButton(); //! [5] ii =-1; okToSend= true; cancelPosMon = false; inPosMonMode = false; }