void Process::initialize(size_t bufSize) // ---------------------------------------------------------------------------- // Initialize the process and streambuf // ---------------------------------------------------------------------------- { num = snum++; // Allocate data to be used by the streambuf char *ptr = new char[bufSize]; setp(ptr, ptr + bufSize); // Set up the stderr/stdout signal mechanism connect(this, SIGNAL(readyReadStandardOutput()), this, SLOT(readStandardOutput())); connect(this, SIGNAL(readyReadStandardError()), this, SLOT(readStandardError())); // Set up debug traces IFTRACE(process) { connect(this, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(debugProcessFinished(int,QProcess::ExitStatus))); connect(this, SIGNAL(error(QProcess::ProcessError)), this, SLOT(debugProcessError(QProcess::ProcessError))); } }
// Before each test void SubscriptionTests::init() { // Create the services service1 = new Service(QDBusConnection::SessionBus, SERVICE_NAME1); test_int = new Property(*service1, "Test.Int"); test_double = new Property(*service1, "Test.Double"); service2 = new Service(QDBusConnection::SessionBus, SERVICE_NAME2); test_string = new Property (*service2, "Test.String"); test_bool = new Property(*service2, "Test.Bool"); // Nullify the values (we create the same Properties over and // over, and they will keep their old values. test_int->unsetValue(); test_double->unsetValue(); test_string->unsetValue(); test_bool->unsetValue(); // Initialize test program state isReadyToRead = false; // Start the client client = new QProcess(); sconnect(client, SIGNAL(readyReadStandardOutput()), this, SLOT(readStandardOutput())); client->start("client"); // Record whether the client was successfully started clientStarted = client->waitForStarted(); // Associate shorter names for the test services when communicating with the client if (clientStarted) { writeToClient("assign session " SERVICE_NAME1 " service1\n"); writeToClient("assign session " SERVICE_NAME2 " service2\n"); } }
int MPlayerProcess::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QProcess::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: mediaPosition((*reinterpret_cast< int(*)>(_a[1]))); break; case 1: volumeChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 2: durationChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 3: volumeLevelChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 4: fileNameChanged((*reinterpret_cast< QString(*)>(_a[1]))); break; case 5: paused(); break; case 6: sizeChanged(); break; case 7: openStream((*reinterpret_cast< QString(*)>(_a[1]))); break; case 8: togglePlayPause(); break; case 9: setMediaPosition((*reinterpret_cast< int(*)>(_a[1]))); break; case 10: setVolume((*reinterpret_cast< int(*)>(_a[1]))); break; case 11: setLoop((*reinterpret_cast< bool(*)>(_a[1]))); break; case 12: setSpeed((*reinterpret_cast< int(*)>(_a[1]))); break; case 13: setAudioDelay((*reinterpret_cast< int(*)>(_a[1]))); break; case 14: readStandardOutput(); break; default: ; } _id -= 15; } return _id; }
Compiler::Compiler(QWidget *parent) : Page(parent), m_serial(this) { setupUi(this); QObject::connect(&m_compiler, SIGNAL(readyReadStandardError()), this, SLOT(readStandardError())); QObject::connect(&m_compiler, SIGNAL(readyReadStandardOutput()), this, SLOT(readStandardOutput())); QObject::connect(&m_compiler, SIGNAL(finished(int, QProcess::ExitStatus)), UserProgram::instance(), SLOT(compileFinished(int, QProcess::ExitStatus))); QObject::connect(&m_serial, SIGNAL(downloadFinished(QString)), this, SLOT(compileFile(QString))); m_serial.start(); }
Compiler::Compiler(QWidget *parent) : QDialog(parent) { setupUi(this); #ifdef QT_ARCH_ARM setWindowState(windowState() | Qt::WindowFullScreen); #endif QObject::connect(&m_compiler, SIGNAL(readyReadStandardError()), this, SLOT(readStandardError())); QObject::connect(&m_compiler, SIGNAL(readyReadStandardOutput()), this, SLOT(readStandardOutput())); }
// Before each test void ServiceTest::init() { // Initialize test program state isReadyToRead = false; // Start the client client = new QProcess(); sconnect(client, SIGNAL(readyReadStandardOutput()), this, SLOT(readStandardOutput())); client->start("client"); // Record whether the client was successfully started clientStarted = client->waitForStarted(); }
MPlayerMediaWidget::MPlayerMediaWidget(QWidget *parent) : AbstractMediaWidget(parent), muted(false), volume(0), aspectRatio(MediaWidget::AspectRatioAuto), deinterlacing(false), timerId(0), videoWidth(0), videoHeight(0), videoAspectRatio(1) { videoWidget = new MPlayerVideoWidget(this); standardError.open(stderr, QIODevice::WriteOnly); connect(&process, SIGNAL(error(QProcess::ProcessError)), this, SLOT(error(QProcess::ProcessError))); connect(&process, SIGNAL(readyReadStandardOutput()), this, SLOT(readStandardOutput())); connect(&process, SIGNAL(readyReadStandardError()), this, SLOT(readStandardError())); process.start(QString("mplayer -idle -osdlevel 0 -quiet -slave -softvol -vf yadif " "-volume 0 -wid %1").arg(videoWidget->winId())); }
UpdateProcess::UpdateProcess(QObject *parent) : QProcess(parent) { _currentCommand = NoCommand; _socksPort = 0; connect(this, SIGNAL(readyReadStandardError()), this, SLOT(readStandardError())); connect(this, SIGNAL(readyReadStandardOutput()), this, SLOT(readStandardOutput())); connect(this, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(onFinished(int, QProcess::ExitStatus))); setEnvironment(systemEnvironment()); }
MPlayerProcess::MPlayerProcess(QWidget *videoWidget) { connect( this , SIGNAL(readyReadStandardOutput()) , SLOT(readStandardOutput()) ); QStringList arguments; arguments << "-noaspect" << "-nomouseinput" << "-wid" << QString::number( videoWidget->winId() ) << "-slave" << "-dr" << "-identify" << "-nodouble" << "-nojoystick" << "-nolirc" << "-idle" << "-idx" << "-vo" << "xv"; start("mplayer", arguments); }
Utilities::Process::Process(QObject *parent) : QProcess(parent) { connect( this, SIGNAL(readyReadStandardError()), this, SLOT(readStandardError())); connect( this, SIGNAL(readyReadStandardOutput()), this, SLOT(readStandardOutput())); }
MangaListWidget::MangaListWidget(QWidget* parent): QWidget(parent), _scansDirectory(Utils::getScansDirectory()), _currentChaptersListOnWeb(), _chaptersToCheck(), _currentIndex(), _editOn(false), _coverHasToBeSet(false) { /// Available chapters process _checkAvailableChaptersProcess = new QProcess(this); connect(_checkAvailableChaptersProcess, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(checkAvailableChapterIsDone(int,QProcess::ExitStatus))); connect(_checkAvailableChaptersProcess, SIGNAL(readyReadStandardOutput()), this, SLOT(readStandardOutput())); /// Top buttons _markReadButton = new QPushButton; _markReadButton->setIcon(QIcon(Utils::getIconsPath()+"/check.gif")); _markReadButton->setFixedWidth(37); connect(_markReadButton, SIGNAL(clicked()), this, SLOT(markRead())); _markUnreadButton = new QPushButton; _markUnreadButton->setIcon(QIcon(Utils::getIconsPath()+"/uncheck.gif")); _markUnreadButton->setFixedWidth(37); connect(_markUnreadButton, SIGNAL(clicked()), this, SLOT(markUnread())); _downloadButton = new QPushButton; _downloadButton->setIcon(QIcon(Utils::getIconsPath()+"/download.gif")); _downloadButton->setFixedWidth(37); connect(_downloadButton, SIGNAL(clicked()), this, SLOT(goToDownload())); _addMangaButton = new QPushButton; _addMangaButton->setIcon(QIcon(Utils::getIconsPath()+"/plus.png")); _addMangaButton->setFixedWidth(37); connect(_addMangaButton, SIGNAL(clicked()), this, SLOT(addManga())); _checkNewChaptersButton = new QPushButton; _checkNewChaptersButton->setIcon(QIcon(Utils::getIconsPath()+"/checkChapters.png")); _checkNewChaptersButton->setFixedWidth(37); connect(_checkNewChaptersButton, SIGNAL(clicked()), this, SLOT(decorateMangaNames())); QHBoxLayout* buttonsLayout = new QHBoxLayout; buttonsLayout->addWidget(_markReadButton); buttonsLayout->addWidget(_markUnreadButton); buttonsLayout->addWidget(_downloadButton); buttonsLayout->addWidget(_addMangaButton); buttonsLayout->addWidget(_checkNewChaptersButton); buttonsLayout->setAlignment(Qt::AlignHCenter); /// Manga information QPixmap pixmap(Utils::getIconsPath()+"/setCover.png"); _mangaPreviewLabel = new QLabel; _mangaPreviewLabel->setFixedHeight(400); _mangaPreviewLabel->setAlignment(Qt::AlignTop | Qt::AlignHCenter); _mangaPreviewLabel->setStyleSheet("margin: 20px;"); _mangaPreviewLabel->setAttribute(Qt::WA_Hover); _mangaPreviewLabel->installEventFilter(this); _mangaPreviewLabel->setPixmap(pixmap); _genreLabel = new QLabel; _genreLabel->setFont(QFont("Monospace", 8)); _authorLabel = new QLabel; _authorLabel->setFont(QFont("Monospace", 8)); _artistLabel = new QLabel; _artistLabel->setFont(QFont("Monospace", 8)); _publisherLabel = new QLabel; _publisherLabel->setFont(QFont("Monospace", 8)); _magazineLabel = new QLabel; _magazineLabel->setFont(QFont("Monospace", 8)); _startDateLabel = new QLabel; _startDateLabel->setFont(QFont("Monospace", 8)); _editMangaInfoButton = new QPushButton("Edit"); _editMangaInfoButton->setCheckable(true); _editMangaInfoButton->setFixedWidth(100); connect(_editMangaInfoButton, SIGNAL(toggled(bool)), this, SLOT(toggleEditMangaInfo(bool))); QFormLayout* genreLayout = new QFormLayout; genreLayout->addRow("Genre:", _genreLabel); QFormLayout* authorLayout = new QFormLayout; authorLayout->addRow("Author:", _authorLabel); QFormLayout* artistLayout = new QFormLayout; artistLayout->addRow("Artist:", _artistLabel); QFormLayout* publisherLayout = new QFormLayout; publisherLayout->addRow("Publisher:", _publisherLabel); QFormLayout* magazineLayout = new QFormLayout; magazineLayout->addRow("Magazine:", _magazineLabel); QFormLayout* startDateLayout = new QFormLayout; startDateLayout->addRow("Start date:", _startDateLabel); QVBoxLayout* mangaInfoLayout = new QVBoxLayout; mangaInfoLayout->addWidget(_mangaPreviewLabel); mangaInfoLayout->addLayout(genreLayout); mangaInfoLayout->addLayout(authorLayout); mangaInfoLayout->addLayout(artistLayout); mangaInfoLayout->addLayout(publisherLayout); mangaInfoLayout->addLayout(magazineLayout); mangaInfoLayout->addLayout(startDateLayout); mangaInfoLayout->addWidget(_editMangaInfoButton); mangaInfoLayout->setAlignment(Qt::AlignTop); QGroupBox* mangaInfoGroupBox = new QGroupBox("Information"); mangaInfoGroupBox->setLayout(mangaInfoLayout); mangaInfoGroupBox->setFixedWidth(350); mangaInfoGroupBox->setAlignment(Qt::AlignLeft); /// Chapters model _model = new QStandardItemModel; initModel(); /// Chapters view _chapterInfoWidget = new ChapterInfoWidget; _view = new QColumnView; QList<int> widths; widths << 300 << 400 << 400; _view->setColumnWidths(widths); _view->setResizeGripsVisible(false); _view->setFixedWidth(1102); _view->setSelectionMode(QAbstractItemView::ExtendedSelection); _view->setModel(_model); _view->setPreviewWidget(_chapterInfoWidget); connect(_view, SIGNAL(updatePreviewWidget(QModelIndex)), this, SLOT(updateChaptersInfo(QModelIndex))); connect(_view, SIGNAL(clicked(QModelIndex)), this, SLOT(updateMangaInfo(QModelIndex))); connect(_view, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(goToRead(QModelIndex))); QHBoxLayout* listLayout = new QHBoxLayout; listLayout->addWidget(mangaInfoGroupBox); listLayout->addWidget(_view); QStringList headerLabels; headerLabels << "Manga"; _model->setHorizontalHeaderLabels(headerLabels); /// Set current index to first manga if any _view->setCurrentIndex(_model->index(0, 0)); updateMangaInfo(_model->index(0, 0)); /// Main layout QLabel* titleLabel = new QLabel("Manga List"); titleLabel->setFont(QFont("", 18, 99)); QVBoxLayout* mainLayout = new QVBoxLayout; mainLayout->addWidget(titleLabel); mainLayout->addLayout(buttonsLayout); mainLayout->addLayout(listLayout); setLayout(mainLayout); /// Schedule a new available manga check every thirty minutes QTimer* timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(decorateMangaNames())); timer->start(1000*60*30); }