void MainWindow::createActions() { openSettingsAct = new QAction(tr("&Open Application Settings..."), this); openSettingsAct->setShortcuts(QKeySequence::Open); connect(openSettingsAct, SIGNAL(triggered()), this, SLOT(openSettings())); openIniFileAct = new QAction(tr("Open I&NI File..."), this); openIniFileAct->setShortcut(tr("Ctrl+N")); connect(openIniFileAct, SIGNAL(triggered()), this, SLOT(openIniFile())); openPropertyListAct = new QAction(tr("Open Mac &Property List..."), this); openPropertyListAct->setShortcut(tr("Ctrl+P")); connect(openPropertyListAct, SIGNAL(triggered()), this, SLOT(openPropertyList())); openRegistryPathAct = new QAction(tr("Open Windows &Registry Path..."), this); openRegistryPathAct->setShortcut(tr("Ctrl+G")); connect(openRegistryPathAct, SIGNAL(triggered()), this, SLOT(openRegistryPath())); refreshAct = new QAction(tr("&Refresh"), this); refreshAct->setShortcut(tr("Ctrl+R")); refreshAct->setEnabled(false); connect(refreshAct, SIGNAL(triggered()), settingsTree, SLOT(refresh())); exitAct = new QAction(tr("E&xit"), this); exitAct->setShortcuts(QKeySequence::Quit); connect(exitAct, SIGNAL(triggered()), this, SLOT(close())); autoRefreshAct = new QAction(tr("&Auto-Refresh"), this); autoRefreshAct->setShortcut(tr("Ctrl+A")); autoRefreshAct->setCheckable(true); autoRefreshAct->setEnabled(false); connect(autoRefreshAct, SIGNAL(triggered(bool)), settingsTree, SLOT(setAutoRefresh(bool))); connect(autoRefreshAct, SIGNAL(triggered(bool)), refreshAct, SLOT(setDisabled(bool))); fallbacksAct = new QAction(tr("&Fallbacks"), this); fallbacksAct->setShortcut(tr("Ctrl+F")); fallbacksAct->setCheckable(true); fallbacksAct->setEnabled(false); connect(fallbacksAct, SIGNAL(triggered(bool)), settingsTree, SLOT(setFallbacksEnabled(bool))); aboutAct = new QAction(tr("&About"), this); connect(aboutAct, SIGNAL(triggered()), this, SLOT(about())); aboutQtAct = new QAction(tr("About &Qt"), this); connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt())); #ifndef Q_WS_MAC openPropertyListAct->setEnabled(false); #endif #ifndef Q_WS_WIN openRegistryPathAct->setEnabled(false); #endif }
int MainWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QMainWindow::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: openSettings(); break; case 1: openIniFile(); break; case 2: openPropertyList(); break; case 3: openRegistryPath(); break; case 4: about(); break; default: ; } _id -= 5; } return _id; }
void linuxContinue ( char *error_message, int thread_num, /* Specific worker to launch or */ /* special value ALL_WORKERS */ int wait_flag) { #ifdef __linux__ #define PROCNAME "/proc/%d/exe" #endif #ifdef __FreeBSD__ #define PROCNAME "/proc/%d/file" #endif pid_t my_pid, running_pid; char filename[30]; int fd; struct stat filedata; ino_t inode1, inode2; /* Compare this process' ID and the pid from the INI file */ my_pid = getpid (); openIniFile (LOCALINI_FILE, 1); running_pid = IniGetInt (LOCALINI_FILE, "Pid", 0); if (running_pid == 0 || my_pid == running_pid) goto ok; #if defined (__APPLE__) || defined (__HAIKU__) goto ok; #elif defined (__OS2__) { USHORT handle1 = 0, handle2 = 0; unsigned char buf[0x2000]; if( !DosQuerySysState(0x01, 0, 0, 0, (PCHAR)buf, 0x2000) ) { PQPROCESS p = ((PQTOPLEVEL)buf)->procdata; while(p && p->rectype == 1) { if( p->pid == running_pid ) handle1 = p->hndmod; if( p->pid == my_pid ) handle2 = p->hndmod; p = (PQPROCESS)(p->threads + p->threadcnt); } if( handle1 != handle2 ) goto ok; } } #else /* See if the two pids are running the same executable */ sprintf (filename, PROCNAME, my_pid); fd = _open (filename, _O_RDONLY); if (fd < 0) goto ok; fstat (fd, &filedata); inode1 = filedata.st_ino; _close (fd); sprintf (filename, PROCNAME, running_pid); fd = _open (filename, _O_RDONLY); if (fd < 0) goto ok; fstat (fd, &filedata); inode2 = filedata.st_ino; _close (fd); if (inode1 != inode2) goto ok; #endif /* The two pids are running the same executable, raise an error and return */ if (error_message != NULL) printf ("%s", error_message); return; /* All is OK, save our pid, run, then delete our pid */ ok: IniWriteInt (LOCALINI_FILE, "Pid", my_pid); LaunchWorkerThreads (thread_num, wait_flag); if (wait_flag) IniWriteInt (LOCALINI_FILE, "Pid", 0); }